Skip to content

Share counts

How share counts work, and why most networks stopped

By Hannah Voss, Editor · Reviewed September 2026 · 6 min read

Quick answer

A share count is a number the network reports for a URL, not something your site measures. Facebook reports an engagement total that combines shares, reactions and comments; X removed public counts in 2015 and LinkedIn in 2018. Plugins fetch what is still available, cache it, and add the results, so counts differ between tools and are rarely exact.

Small stacks of grey paper discs linked by fine lines that converge into a single file of discs leading to one tall stack

Your site does not count shares

When someone shares a post, the share happens on the network. Your site never sees it. A share counter is therefore a request to each network asking how many times it has seen a given address, followed by some arithmetic. The old explainer on this domain, on how Facebook and other networks calculate share count, was widely linked because this surprises almost everyone the first time.

Where a share count comes from01Reader shareson network02Countedper URL03Plugin askson a schedule04Cacheper post05Countersum shown
Every step can drift: the network's definition, the URL variant, the cache age.

What Facebook's number includes

Facebook's Graph API reports engagement for a URL as separate figures: shares, reactions, comments, and comments made through its comments plugin. Many counters add some or all of these together and label the total "shares". That is why a post can show more shares in your counter than anyone remembers sharing, and why two plugins can show different numbers for the same page.

How share counts are calculated, step by step

The arithmetic is simple once you see the inputs. In our worked example, the counts are invented but the shape is what the Graph API returns as of the cited reference. One post, published at https://example.com/post/, has been shared under four addresses because the site moved from http to https two years ago and a newsletter added a tracking parameter.

URL variant asked for                              share_count  reaction_count  comment_count
https://example.com/post/                               212              96             14
http://example.com/post/                                 37              20              3
https://www.example.com/post/                             4               0              0
https://example.com/post/?utm_source=newsletter          11               2              0
MethodWhat it adds upCounter shows
Shares, https only212212
Shares, all four variants212 + 37 + 4 + 11264
Engagement, https only212 + 96 + 14322
Engagement, all four variants264 + 118 + 17399
Plus a Pinterest pin count of 9any of the above + 9273 to 408

Four honest tools can therefore show 212, 264, 322 or 399 for the same post on the same day, and none of them is lying. Which figure you want depends on what you tell readers the number means. A counter labelled "shares" should add the share_count fields only; a counter labelled "engagement" or shown as a bare number can add everything. Pick one, and apply it to every post.

Networks that removed counts

Share count availability over time2015X removes counts2017Delicious closes2018LinkedIn removes2019Google+ closesNowFew networks left
Each removal left zeros in older share plugins that kept asking.

X stopped publishing tweet counts for URLs in November 2015. LinkedIn removed its share count in 2018. Google+ closed to consumers in 2019. Pinterest has long exposed a pin count through the endpoint its own widget uses, but that endpoint is undocumented and can change. Some services estimate counts from their own data, which is a different thing from the network's figure.

Why counts disagree

CauseEffect
http versus https, www versus apexThe network counts each as a different URL
Tracking parameters in shared linksShares split across many URL variants
Changed permalinksThe count starts again at zero on the new address
Engagement versus sharesTotals that mix reactions and comments look inflated
Cache ageCounts lag real activity by hours or days

Plugins that were careful asked for several variants of the address and added them, which recovers some of the split. After a site moves to https, counts often drop for exactly this reason. The fix list in share counts not updating walks through the variants in order.

What goes wrong

  • Counting on every page view. A plugin that asks the network each time a page loads hits the rate limit on the first busy day, receives errors, and shows zero. Counts belong in a per-post cache with a timestamp; the schedule in fetching the Facebook share count from the Graph API is a sensible default.
  • Mixing definitions across networks. Adding a Facebook engagement total to a Pinterest pin count produces a number that means nothing. Add like with like, or show each network separately.
  • Losing the old address. After a permalink change, the network still holds the old count on the old URL. Keep a redirect in place and ask for both addresses, or the count restarts at zero.
  • Trusting a third-party estimate. Some services report a number for X or LinkedIn long after those networks stopped publishing one. It is an estimate from that service's own sample, and it should be labelled as such or left out.
  • Reading a count as a quality signal. A high number says a link travelled; it says nothing about who wrote the page or whether a machine did. The publisher notes on what a share count cannot tell you about who made the post cover that gap.

Should you show a counter at all?

Counts work as social proof when they are high. Low numbers, or a row of zeros from networks that no longer report, do the opposite. A common compromise is to show a total only above a threshold you choose, and hide it otherwise. In our worked example a threshold of 100 would show the 264 on the post above and hide the counter on a new post with 6 shares.

Check it worked

  • Pick one post and write down the number your counter shows and the time you read it.
  • Request the same URL from the Graph API yourself, with your app token, and note share_count and the other three fields; see how to create a Facebook access token if you have none.
  • Repeat for the http and www variants. Your counter's number should equal one of the sums in the table above; if it equals none of them, the plugin is adding something else or reading a stale cache.
  • Wait one full refresh cycle and read the counter again. It should change only when the API figures change.
  • Confirm that networks which no longer publish counts are hidden rather than shown as zero.

For the wider picture, see the share counts section. Readers who get this far often also need how to create a Facebook app ID or tracking shares and pageviews in analytics.

Sources

Questions

Why does my share count differ from another tool's?

Tools differ in which networks they ask, which URL variants they check, whether they include reactions and comments, and how old their cache is.

Can I still get X share counts?

Not from X. Public URL counts were removed in 2015; any number shown now is an estimate from another source.

Does Facebook's share count include likes?

The engagement data separates shares, reactions and comments, but many counters add them into one total.

How often do share counts update?

As often as your plugin asks the network, which is typically on a schedule from hourly for new posts to weekly for old ones. Page caching adds a further delay because visitors see the stored HTML until it expires or is purged.

Why did my share counts go down?

The most common causes are a move to https or a permalink change, which leaves the old count on the old address, and a plugin update that changed from adding engagement to adding shares only. Rate limit errors shown as zero are the third.

Share this guide

Hannah Voss, Editor. Checks every guide against a working WordPress install and the networks' current documentation. Last reviewed September 2026.

  1. Facebook share count: getting it from the Graph APIHow to get the Facebook share count for a URL from the Graph API, why the old REST API stopped working, rate limits, and how plugins should cache the result.6 min read
  2. Share count not updating or not accurate: a fix listShare counts stuck at zero or wrong? Work through tokens, caches, cron, URL variants and rate limits in order, and why you should never add fake shares.6 min read
  3. How to create a Facebook access tokenCreate the right Facebook access token for share counts and plugins: user, page and app tokens compared, how long each lasts, and how to keep the token safe.6 min read