Pretty much every blog and a lot of other websites besides have a familiar bar somewhere on the page. Maybe it’s a floating sidebar, maybe it’s above or below a blog post, or maybe it’s sitting in a footer. You know it, you’ve seen it before: it’s the bar of social sharing buttons.
Many of these buttons, today, no longer show share count numbers. Sometimes the site owner simply doesn’t care about the share counts, and just wants the functionality available. Other times it’s because the buttons themselves have an issue or error preventing accurate share totals, so the site owner turns them off. Still other times, it shows numbers, but the numbers are inaccurate.
Of course, how often do you double-check the share counts for a blog post you’re reading? I can’t say I ever have. Everyone else out there could be faking their numbers and I’d never have spared enough attention to notice.
In any case, if you’re one of the people using a social sharing plugin – which is most of you, I imagine – you might want to double-check that your counts are accurate. In particular, check out Facebook. If Facebook is showing an inaccurate number, or simply showing zero, there are some common causes you can check to fix it.
1. The Plugin Points to the Old API
Facebook, like most social networks and business apps that use one, makes changes to its API periodically. The way Facebook does it, they have a rolling series of supported levels of the API. They might have, for example, versions 1.3, 1.4, 1.5, 1.6, and 1.7 all supported. When they push an update and roll out 1.8, the support for 1.3 will drop. It’s not exactly a sequence like that, of course; they announce a specific date for the end of support for a given API level, and cancel out that version once that date arrives.
This mostly just gives developers who rely on the API time to adjust to any new changes before an update deprecates something they use. For example, if Facebook changes the way they display a certain piece of data, it’s possible that an app using the old source will cease working once the old source is deprecated.
See where I’m going with this? Some time ago, Facebook changed their Graph API. This broke the share totals for all third party social sharing buttons. This change came about in 2016, right around the time Twitter dropped support for share counts entirely.
Of course, a lot of people, myself included, misinterpreted what this meant. Facebook wasn’t removing share count data entirely; they were changing how it’s accessed. For a while, this meant that all third party social sharing buttons no longer accessed social share counts for Facebook, while the official Facebook buttons still worked.
Today, you can still access the social share count data through the most recent version of the Graph API, version 3.1 (as of this writing). You can read the documentation here.
Of course, what this means is that if you’re using a plugin that still tries to access data using the old version of the API, that version no longer works. The API query will respond with an error, and the social sharing button will have no data to display. Usually, this results in a zero. So, the first thing I would try if your share totals are zeroed out is to update your social sharing button plugin. If your plugin is up to date, but hasn’t been updated in over a year, try switching to a different, more recently updated plugin.
2. HTTPS Migration
Having a secure website is a great benefit to users these days. Using basic SSL encryption – the HTTPS protocol rather than HTTP – helps users feel secure in using your site, as well as making it harder for their traffic to be skimmed and snooped or monitored in any way. ISP-level tracking can still monitor traffic, as well as various malware and intrusions, but the more roadblocks you put in the way of threats, the better off you’ll be.
Plus, Google considers a secure site to be a slight SEO benefit. It’s not huge, by any means, but it could bump you up a single range for some less competitive keywords. You never know, right? Besides, it might be more important in the future, so you might as well do it now.
SSL is not without issues. One common issue you’ll come across is cross-site embedded content. If you’re trying to embed non-encrypted content into an encrypted page, you might run into errors with the content not displaying. Another issue, of course, is simply having to pay for an SSL certificate.
Another issue is with URL tracking. Compare these two URLS:
- http://www.example.com
- https://www.example.com
They both look like they go to the same place, right? And they do; if you clicked on both of them – assuming they lead to a real site, of course – you would end up on the same page. However, the two URLS are not the same. Think of it like one product having two serial numbers. Both numbers reference the same product, but the numbers are different.
Google is smart enough to recognize that both pages are the same, though you may need to implement canonicalization to tell them which one is the one they should treat as the real copy.
Many elements of the web operate on the one URL, one entity principle. Social share count buttons and APIs are another. Facebook’s API asks you for a URL and returns data about it. Since the two examples above are two different URLs, they will have two different sets of data.
If your share counts are inaccurate, this is one potential cause. You need to recover your old share totals and merge them with your new share counts. Some sharing buttons do this automatically (like Social Warfare), while others might need a little help.
That post includes step by step instructions for implementing proper redirects and canonicalization, as well as telling Facebook about the migration and forcing a re-scrape of the data to get accurate counts. Facebook, like Google, can adjust for the migration, but they need to know about it first.
3. Update Delays
Facebook has approximately infinity users, as far as any realistic expectations for technology are concerned. The fact is, any data recording is by necessity going to be done on a rolling basis, rather than in real time. Real time analytics are a luxury for small businesses or for the largest brands with incredible resources.
Facebook has resources and can keep their API data available and up to date in real time, but they don’t always do so. They often cache their data for 90% of what’s out there, and only query for new data when necessary. Only the most actively viral or important data is updated in real time, and even then it’s often on a delay. Imagine if you had a blog post go viral and you could see your likes go up and down rapidly in real time. Sure, it’s neat, but what use is it?
There are two caching-related issues at play here. First, your like box plugin might be polling for data that is cached. You’ll only get updated share counts once a day or so, depending on a bunch of different factors only Facebook knows. Alternatively, it’s likely that your share count button caches data so it doesn’t need to poll the API every time a new user loads your page. It dramatically reduces load times and server overhead, while providing accurate enough data. It also helps prevent your API access from being revoked for overuse.
There’s no real solution to this problem. You just have to wait for Facebook to update the data. If it’s your like button plugin caching data, you may be able to adjust the code of the plugin itself to refresh the cache more frequently, or you might not. It really depends on the plugin, whether it’s open enough that you can access and edit the code, and whether or not you know what you’re doing if you try.
4. Bad Likes Purged
Facebook periodically goes through their site and removes accounts that are bots, spammers, or otherwise exploiting the site in some way. Sometimes it’s a huge purge like the major Instagram purges, but most often it’s just a few here or there. It’s no big deal; it’s a constant thing.
However, when these accounts are removed, all of their engagement is removed as well. The same happens for regular accounts that temporarily or permanently delete themselves. This means your likes and shares are probably going to go up and down periodically. Older content will lose likes over time when no more are coming in.
Some people will be affected more than others when bots are removed. If your posts had a lot of bot engagement – whether you purchased it or not – that engagement is very likely to disappear within six months or a year.
Of course, by that point, it no longer matters. The average blog only has about 10% of its content as evergreen content worth checking out beyond the first few weeks after its published. That means even if the engagement disappears, no one is going to notice and it won’t really matter.
You can’t really solve this problem any way other than by building legitimate engagement rather than buying fake engagement. Once the engagement is gone, you can’t really recover it unless you want to run old posts through your promotion engine again, which might be a waste depending on how useful they might be and how old they are.
5. Wrong Target
One of the other issues I see comes up a lot, usually when someone notices that a brand new post has a lot more likes than it should. Alternatively, it comes up when you notice that all of your posts have the same like totals. Any guesses as to what the problem is?
It’s pretty simple. Instead of configuring your like button properly, you’ve essentially just added the same URL to every like button site-wide. Instead of pointing to the URL of the post, it points to the URL of your homepage, or even just a random other post that got set as the every-post.
If this happens, every instance of the button will poll for data for the URL you specified, which will be the same one, so every instance will have he same post like and share counts.
It’s not difficult to fix this. It usually happens when you accidentally use code for the site-based like counter rather than the post-based like counter. You know, the one that tracks your follower count, which Facebook helpfully names “likes”, as opposed to post likes, which they have rebranded to be Reactions. Just swap out the button code and you should be good to go.
There you have the top five most common causes of inaccuracies with your like button count. If you have inaccuracies and these don’t fix it, let me know. I’m curious what other issues people have encountered in the wild. Frankly, most of these five aren’t very common either. The HTTPS migration is by far the most common issue I’ve seen, and while the solution is a bit technical, it works just fine. Otherwise, these are virtually non-issues, or at least not issues that matter. Don’t rely on the long-term viability of bot engagement, follow the configuration instructions for any social sharing plugin you use, and you have most possible issues solved before they can start.