Want a faster website? PageSpeed Insights and GTmetrix will never help you
Many website owners find their websites extremely slow and immediately head to Google for answers, tips and tricks to improve performance. They usually end up with well promoted PageSpeed Insights and GTmetrix tools.
PageSpeed Insights is by Google so it’s great?
If Google made something distantly related to performance and having the word “speed” inside the name — what do you expect Google to return in search results? Of course it will show you their very own PageSpeed Insights and you will think it’s the only, most complete and most of all true(?) website performance benchmarking tool ever made!
Same thing in regards with Gtmetrix — if something is popular it can’t be possible it’s a bad thing, right?
Just like PageSpeed Insights, it’s a good tool only for those people who want to get scores only. After all the changes, after all the optimizations they do — they are left alone with the site that is slow as before. The change you get in real perceived performance after following their recommendations is negligible. All you get is a score that you think is decent, but your website visitors think otherwise — You scored 95 on PageSpeed Insights? congrats! your website is still loading 10 seconds? I don’t think your website visitors will congratulate you with your “decent” score then.
And to add insult to an injury, with all those amazing optimization recommendations coming from these 2 tools — website owners end up with a website that breaks every time Wordpress / Magento / you name your CMS here are updated to another new version.
There are very serious issues with both tools. If you understand those, you will know that these tools should not be used for anything other than bragging about your own stupidity:
They are not really telling you the reason why your website is slow
Both tools report frontend issues whereas the most common performance issue is backend performance configuration of the software and hardware that is running the website. You can minify assets, enable Expires headers, Gzip compression, etc. etc. only to find yourself with same slow website that you had before you ever hit Google for answers.
But how can you really get faster website if not through the use of those tools?
First of all, consider the hosting plan that you are running your website from.
Are you paying $5/month for shared hosting at Godaddy or Dreamhost? Why would you expect ANY performance paying that much? Unless you are using a $5 VPS server powered by providers like Vultr, you can never achieve decent performance for this budget. This is due to the nature of shared hosting itself: your website performance depends on low end hardware and popularity of websites hosted by other clients on the same server. This is not the case with VPS servers.
Will PageSpeed Insights and GTmetrix tell you that your hosting is no good? No, they won’t. They will make you do all those silly client side optimizations in vain — those things that for sites like Wordpress and Magento, make little to no sense. Because their performance is bound by server, server and nothing but server.
Switching to VPS (virtual private server) hosting plan is only first step in getting well performed website.
Server Software & Real Optimization
Now what PageSpeed Insights and GTmetrix will never tell you, is how you can optimize your software. Simply for the fact that they can’t SSH into your server to tell you what issues you have.
Neither they can tell you what is the perfect setup for your website. Below you can find the real problems to slow performing website in 99% of cases:
No full page cache configured in PHP website
Doesn’t matter if you are using Wordpress, Joomla, Symfony framework website or anything different. There is always a need to use full page cache solution. For instance, with Wordpress, you should be using W3 Total Cache, and Joomla has its own caching. Without full page cache, it is hard to achieve good performance, unless you have high end server running your website.
MySQL query caching disabled
It is never enabled on shared hosting, yet even many managed VPS providers have it disabled. You should enable this setting.
No PHP accelerator installed
You should always install and make use of PHP accelerator extensions: Zend Opcache or APC.
Apache is used
Yes, it is popular web server software. But Nginx beats it in terms of performance, same like plane is faster than ferry for transportation :)
Remove Apache and install Nginx. You will have all the same features of a web server, with low memory impact and incredible speed.
HDD is slow
Hardware issue. There is no reason not to use a server that is powered with SSD drive. If you know the difference of Windows operating system running off plain HDD vs SSD in terms of boot time, you know what kind of performance difference you can gain with a server that is using SSD. Learn how to test SSD speed on a VPS.
There is NO guaranteed RAM for your website on a shared hosting, it will underperform always. Consider ordering a VPS with at least 2GB of RAM for a busy website.