Social media buttons are a natural choice for most of us when building a website with content we want to be shared. Despite what we might of heard about how badly they affect performance or break visitors privacy, they seem like a necessary choice.
Because our new brand and website redesign is just around the corner (yes, we are aware XHTML is not cool anymore), we would like to make an informed decision when it comes to replacing those ‘old school’ sharing buttons on this blog.
So we decided to test the following popular social media buttons solutions for performance, features, ease of setup and privacy issues:
* If you just want static social sharing buttons or links you can use social share URLs. The requirement for the custom buttons solution in this test was that the buttons needed to show the number of shares.
How we tested
To simulate a real world scenario, we set up a test WordPress site running on the Twenty Fifteen theme on our preview server. We then created a sample blog post with no buttons. This blog post served as a reference point that we could compare all of the other solutions to.
We installed the social media sharing solutions using their respective WordPress plugins and made a copy of the sample blog post for each solution. For each solution, we set up 5 basic buttons for each post – Facebook, Twitter, LinkedIn, Google+ and Reddit.
Before running our test for any particular solution we made sure to deactivate all other plugins so they wouldn’t interfere.
Performance test and evaluation
We used Webpagetest.org for testing performance. We ran 2 tests for each blog post, one from San Francisco with DSL connection and another one from Frankfurt with 3G connection. Each of the tests were run 3 times and the results were compared to our control post which had no buttons.
Evaluating performance of social media buttons is tricky.
Authors of social media buttons claim that by loading them asynchronously they can minimize their performance impact. This means that often there are only a few requests and KBs on the document complete event, but many more requests and KBs appear on the fully loaded page.
This doesn’t mean those additional requests and KBs only count when you pay for the transferred bytes. In an ideal situation they shouldn’t prevent a user from interacting with the website. However, especially on mobile devices, additional network activity can slow down your browser or cause the page to act weird when the buttons start rendering.
This also affects perceived performance. Speed Index is a good indicator of perceived performance, however it cannot catch some issues mentioned above.
To make the results more objective we compared all solutions to the No buttons results and calculated differences in Speed Index, Time, Number of Requests and Size both for the Document Loaded and Fully Loaded events. For each of these criterias (7 in total) we have determined the solution rank among the others. Finally we made a sum of all ranks to determine the final performance rank.
Our main criteria for how each solution respects visitors privacy was how many first-party and third-party cookies were set. Realistically you don’t need any cookie for the share functionality to work on your site.
You don’t need any cookie for the share functionality to work
Some buttons proved this to be true with zero cookies set, while others were clearly more of a tracking platform than just sharing buttons.
Sometimes additional cookies were set when a user clicks on a certain share button, as the social platform comes into play. This is also a matter of how sharing is done internally within the plugin, because no cookies are really needed for sharing functionality to be initiated on your page.
However, we didn’t take these additional cookies into account as we assumed that when a user decides to click on a sharing button they might be aware of the privacy consequences. Thus our main criteria for privacy remains whether the solution sets any cookies at all, which may be important for those visitors who have no interest in interacting with social sharing buttons on our site.
Features and setup evaluation
Next, we tested how easy it was to set up the solution and what features it offers. To make this manageable we focused on some basic features, namely:
If the counters work correctly – a test tweet to our test account was made to verify this
If it works on mobile – it doesn’t have to have a special mobile versions but at least it should work and shouldn’t break badly
If it can hide zeroes – because the zeroes on sharing buttons don’t look good.
If it displays consistently – the buttons should provide consistent look and feel.
If it’s easy to add other buttons– how easy was it to add other buttons to the existing set
For the setup evaluation we checked:
If buttons work without signup – why you should sign up somewhere for having social media sharing available on your site?
If buttons have a WP plugin – a good WP plugin can make administration easier
How easy are they to set up– how easy is initial setup and further adjustments
For each of these criteria we assigned points and calculated the overall scores.
Almost every button set offered some version of premium features if you were willing to pay for them. For simplicity we only compared what was available in the free versions.
The final rank
The final rank was determined by calculating the score for each criteria – Performance, Features, Privacy and Setup and running a weight formula on each – we set the following weights:
Performance – 40%
Features – 30%
Privacy – 20%
Setup – 10%
Test results – The good, the bad and the ugly
Before we get to the top 3 winners, let’s take a look at the results starting from the 4th place right down to the worst solution in our test.
When it comes to performance, Simple Share Buttons is quite specific in our test. It has very few requests and only adds an additional 45KB on the fully loaded page. However, it suffered from a long delay to load the first byte and had the worst Speed Index result of the entire group.
Simple Share Buttons suffers from the very long time to the first byte.
Even with 9 different image sets the buttons counters look a bit old-fashioned. The link underline comes from the Twenty Fifteen theme and would have to be removed by custom CSS. This shows that the buttons are not fully immune to your own styles.
Another small issue was that after our own test share, the counter initially hadn’t updated and was only updated when we checked the page the next day.
On a positive note, this plugin doesn’t set any cookies and the WP admin interface is very easy to use.
Despite the initial critique, this plugin can be one of the best solutions out there especially if you pay for the additional features in the Plus version (10 USD per site). The plus version might solve most of the issues we had with the plugin – it can hide zeroes and should load faster with the cached share counts (this may improve time to the first byte but we haven’t tested it).
Flare by Filament isn’t a classic WordPress plugin which adds social media buttons to your posts. Rather it’s a sharing bar application which requires you to register for an account. The WordPress plugin simply redirects you to your Filament account where you can change buttons’ settings.
This is understandable but the process of setting up or updating the buttons is not very user friendly. When you do any change to your buttons you have to drag and position them on the page again.
Flare is also the only solution which literally doesn’t work on mobile – it doesn’t break, it simply doesn’t display at all. That’s because mobile support is only included in the Pro version ($89 / year).
Flare’s performance is decent and it doesn’t set any cookie but limited features and cumbersome setup prevented it from scoring better in our test.
AddThis performed 2nd best in our test, however like other competitors it wasn’t amazing performance either (consider it’s still just 6.8 out of 10).
One of the problems with AddThis is that it doesn’t show individual shares – only the aggregated count. Also, the shares count increases immediately after you click the button not when you actually share the content, which raises some questions of how the shares are counted. In our case, the blog post was shared just once, yet the counter shows 3 shares, probably because we clicked the Twitter button 3 times.
Like most other solutions, AddThis doesn’t allow you to have both Facebook Like & Share buttons in one set.
AddThis is a marketing platform so naturally it tries to go beyond simple sharing which sometimes may result in questionable practices like the canvas fingerprinting ‘scandal’.
Indeed it sets many 3rd party cookies and also content breakdown by domain looks a bit disturbing. So if the visitors privacy is your main concern, you should probably avoid AddThis.
On the other hand the WP plugin is easy to use and setup.
Shareaholic made the most requests out of all solutions on fully loaded page – 53, and shortly we will see why. Obviously, with so many requests, your performance will always be just average / poor.
The buttons look nice and display consistently. The WP admin isn’t difficult to navigate but you are required to set up an account at Shareaholic.
The biggest issue comes with privacy. Shareaholic sets cookies like a drunk person having one free drop after another at a party.
Shareaholic could be easily renamed to Cookieaholic
Some of the domain names for which 3rd party cookies are set are w55c.net, openx.net, nexac.com, ih.adscale.de, yahoo.com, bidswitch.net, casalemedia.com. The content breakdown by domain is intimidating and makes clear what’s the main purpose of this platform – tracking users and monetizing it.
If you know what you are doing (eg. looking for a “Content Amplification Platform”) you can give Shareaholic a try, but otherwise better stay away from it so you don’t wake up with a hangover the next day.
9th place – Official Buttons
Performance – 1.3
Features – 6
Privacy – 8.3
Setup – 5
Total Score – 4.5
What can we say about the official buttons except that you should never use them if you care about performance.
Performance is the 2nd worst in the test with the biggest total file size both for the document complete and fully loaded events. This is no surprise as the buttons are provided by different vendors and cannot benefit from combining resources.
Privacy surprisingly isn’t a big issue, with only 1 cookie set by Google and 1 by Reddit. If you believe in the goodwill of large corporations, you have nothing to worry about (at least you know that you will be tracked by someone who is already tracking you).
Of course, there is no common WP plugin for the official buttons which makes the setup and updates difficult and inflexible. No one would really like to deal with it if there are better options for WordPress.
Thus official buttons rather serves as a comparison purpose in this test.
ShareThis performed the worst in our test. It made the most requests (36) and had the 2nd biggest files size (469KB) on the document complete event. Whatever it had to do (or thinks it has to do), this isn’t the best starting point – it’s like starting your triathlon wearing one of these.
ShareThis offers a few options for buttons displaying but the minimalist set doesn’t display counters. The buttons with counters were displayed incorrectly in our case:
WordPress admin interface is not very convenient with options spread to 6 steps you have to go over and over if you want to change something.
Similar to AddThis and Shareaholic, ShareThis is also one of those ‘platforms’ which sets a lot of cookies and makes big number of requests to the 3rd party domains. Whether this is intentional or unhandled technical challenge, together with other issues it makes ShareThis the worst solution in our test.
Share by SumoMe is like a sibling of Flare by Filament. Again, it’s a collection of tools you have to sign up to. Once you install its WP plugin you can load your SumoMe account. Contrary to Flare the admin interface is displayed as an overlay inside the WP and updating your buttons is much easier.
SumoMe beats Flare in terms of free features too – it works on mobile by default and allows to have Facebook Share and Like displayed at once as 2 different buttons.
On the other hand, it didn’t avoid setting at least one cookie (although, it’s a first-party cookie) and its performance score is slightly worse than Flare. However, the 3rd place shows that a good user experience and well balanced features play an important role in the rating of any software.
SumoMe also offers a handful of other applications to grow your website traffic so it’s probably best used in combination with those. In such case don’t forget to test how adding additional applications affects overall performance of your website.
Jetpack is another specific solution in our test. It’s a plugin which brings various advanced functionality of WordPress.com to self-hosted WordPress sites. In total there are about 35 different features and one of them is sharing buttons functionality. One disatvantage of Jetpack is that it forces you to connect your site to a WordPress.com account.
The sharing buttons available are currently limited to Facebook, Twitter, LinkedIn, Reddit, Google+, StumbleUpon, Tumblr, Pinterest and Pocket but you can add a new sharing service through WP admin dialog. Shares are counted correctly.
Be aware that even if you want to a simple sharing functionality, Jetpack might activate other features after installing the plugin. So review and turn off those which you don’t need for better performance. Jetpack developers could do some performance optimization too, for example the sharing JS library isn’t fully minified.
Jetpack (at least its sharing functionality alone) doesn’t set any cookies. Its WP admin is easy to use and obviously is very similar to the WP admin itself.
Jetpack showed a good mix of decent performance, features and privacy, which brought it to the 2nd place in our test.
1st place – Custom Buttons
Performance – 9.0
Features – 8
Privacy – 10
Setup – 5
Total Score – 8.5
And the winner is …. not that surprising. Custom buttons offer the best performance and with a little bit of effort also the best flexibility out of all solutions. In addition to excellent performance, one of the biggest advantages is that you can easily make the buttons match your website design and tailor them to your overall UX.
We have implemented custom buttons using Genericons icons available in the Twenty Fifteen theme and by Barebones Share Buttons library which also counts the number of shares. By default Facebook and Twitter counts are available but it shouldn’t be difficult to add counters for other providers too.
By default zeroes are displayed but again this is something which can be handled with a simple update to the library.
Adding counts for other providers might slightly affect performance with additional requests. If top performance is your main concern you should use a service like SharedCount and query its API for number of shares for each service at once. Free service offers 1000 requests a day (or 10,000 if you later log in with Facebook account).
In such case the solution would really be just using social share URLs in your share links or buttons, and finding out shares counts using the SharedCount API.
We realize that some our evaluation criteria can be subjective. That’s why we have made the spreadsheet with results available here. It includes detailed performance results, links to the Webpagetest tests and our rating of the features. You can make a copy of it and play with the criteria and their weight. For example if you increase the Privacy weight, the results might be different.
Our recommendation based on the test results is clear – if you need them, and if you can, build custom social media sharing buttons. That’s by far the best performance solution and can help you avoid any potential privacy issues.
It requires some effort and might not be as fancy as some other solutions in the test, but you will have the buttons code fully under control and can customize them to match your brand and UX needs. As you can see, the counters (one of the things which differentiate social media buttons from the plain social share URLs) are also doable with the custom buttons.
If you require or can benefit from additional features then your second choice can be solutions like Jetpack, Share by SumoMe or Simple Share buttons. Use our test to help you decide if potential trade-offs in performance and privacy are worth it.
If you have some remarks on the test, its methodology or tested solutions, please share them in the comments below. Thank you.