Best WordPress Cache Plugins
Using the best WordPress cache plugins may make your site fast, but they may make it slow down (at least according to site speed measurement tools). We look ways that might have a greater impact on site speed, and what a wordpress caching plugins do, and when to use them.
5 Best WordPress Caching Plugins to Speed Up Your Website
What is Cache?
Cache is a collection of temporarily stored data for quick access upon request. In computers, information is usually stored on hard disk. When it is requested, a computer needs to run several processes before the information can be presented.
Caching solves this issue by processing the frequently requested information and then storing it in a temporary storage or memory. This allows computers to access it the file quickly.
Why does a cache not speed up my site speed score?
Many site speed testing tools, like PageSpeed Insight and GTMetrix test the raw load speed of the site. That means, the first time a new user visits the site. This is done because if I user is a first time visitor to your site, and it is slow, they very likely won't wait for it to load. It's a dud. It might be the best site ever, but it's too slow, and people don't have the patience.
I'm telling you this because a cache will not help that, in fact, the first request will write the information generated for the web page into a file, and therefore will be marginally slower.
This trade off, of the cache plugin running, and writing to files is offset by future requests to the page, where the files will be use to load the content for the page a lot faster. The real benefit although, is that if you get a lot of users visit at the same time, the cached version will be a lot faster. So when you start out with a website, and you get 10 visits a month, a cache plugin will make very little difference.
Are all Cache Plugins The Same?
A cache plugin is a WordPress plugin that saves information either on the server or in the browser, in an attempt to make the site more efficient, increase website speed, and to give a better experience to the visitor. It takes a WordPress website and attempts to improve WordPress performance.
Many WordPress caching plugins will do a whole lot of different things. For example browser caching, where a static html file is generated for the page is downloaded to the browser cache, along with images, scripts and css (these will all have an expiry date where they must be reloaded). Then if it is read again, it loads from the local cache (much quicker). Page speed tools test for this as a factor.
You can use the WordPress dashboard to preload the cache (it goes away and pre-calculates the cache files, so that they're already ready), you can also clear the cache (often you need to tell WordPress to clear then preload after you do some maintenance)
What Do WordPress Caching Plugins Commonly Do?
A WordPress cache plugins attempt to enable page caching where once the page is generated, it does not need to be regenerated until it changes (or a cache timeout occurs, where it is considered stale and needs to be reloaded). Cache plugins also attempt to store static assets such as scripts, css, images. Cache plugins also offer the ability to do minification of js files, minify html and minify css files, which removes spaces, and unnecessary data (making the files smaller and faster to load).
Most cache plugins allow you to
switch caching off for logged in users. The reason that you would do
this, is these users are often people like you and I who are writing or
editing the content, and when we do this, the caches need to change. We
don't want to have to clear the caches every few minutes, that would
just be annoying. But we will come back to the site, so it being a
little slower isn't a problem. If you allow users to log in to you
site, you might now want to allow caching to work for logged in users as
Some of the more advanced plugins allow caching of google analytics - what happens is the plugin downloads the script, then has a background process, that monitors the script on the server, and updates it when necessary. This removes the need to contact the google server as the page is being loaded.
Some of the more advanced
cache plugins have features to use object and database caching, features
that need to be available on the hosting server to be used. These may
or may not be beneficial, and will depends a lot upon the type of site,
and the number and frequency of visitors.
Many cache plugins include the ability to use a CDN or content delivery network, which uses the geographically closest server to serve up content (images mostly) This means that the request for the page can run in parallel, a request is made for the images, and at the same time, the rest of the page is loaded.
This can have a huge impact on site speed, and brings me to the next point..
Images can really slow a site down
When the internet first started and it took over a minute to load a single image, websites were optimized to serve up the image that would look okay, and load quickly. These days, we can load up the most amazing high resolution picture in less than a second (with a fast connection)
This has lead us to not care about the impacts of image size, or resolution. We download a 4000x4000 image that looks awesome on our big screen, with our fast internet connection, and think nothing of it.
If you were to write an awesome blog post with 10 images on it, and each one is 4000x4000 and loads in just under a second, then the site will take a little under 10 seconds just for the images to load. The rest of the web page will take longer. I know I've used a silly example, but it is to illustrate a point.
The question should be what is the optimal size of image and resolution to have the desired effect, but still have it load quickly? This can include lazy loading, which is where only the images that are in view are loaded, and as the user scrolls through the site the other images load as they come into view.
This can be helped by using more modern image formats (webp being a great choice), which can sometimes decrease the size of an image by 70% or more.
Then there are mobile devices, which is often a lot smaller...
Why is my mobile site much slower?
I often come across the case where my sites have an optimal desktop experience, the site looks awesome, and loads quickly. And the mobile site sucks, looks a bit ordinary, and is very slow.
This is where mobile first design comes in, which is increasingly important as more people use mobile devices to work from.
Back to the idea of the image, if you put that on a mobile device, it might be 25% the size it was on the desktop. If the same size image is being loaded, it will still take just under a second to load (assuming the same speed internet connection) but then will be scaled down to 25%. Instead the correct sized image should be served up, as it will be a lot faster.
With mobile devices, we often do not need a lot of the "desktop-like" features that we use on the desktop version of the site. Mobile sites because of the screen size, often need to be simplified for ease of navigation, especially if you have fat fingers!
This means that certain site features will be switched off, but the scripts that were needed for the desktop site are still loaded, and shouldn't be.
Since the site speeds will vary massively depending upon the location of the servers and the location of the visitor, it is a good idea to use testing tools that can cover across a number of devices, so that you get a better overall picture. Check this tool out, it's free.
What has the biggest impacts on site speed?
As we have already seen, images make a big difference to site speed. Another huge factor is hosting. This is both the type of hosting, and the location of the hosting (more later). There is also the web server being used (common ones being Apache and NGINX) - changing from whatever the hosting company uses may require you to purchase a VPS. This would require building and maintaining a server or set of servers for this purpose.
Another factor that has a huge impact on site speed is the WordPress theme that you are using. If you use something that wasn't written with site speed as a consideration, and is all fancy looking with features that do not add any value, no matter what you do, your site will load slowly.
If you have monetized your site with ads, such as AdSense or any other ad network, these will all require calling to load an undefined amount of images, scripts and html into your page. You cannot cache this content as it is third party (Google's in the case of AdSense) The more ads you have on your site, generally the slower that the site is.
Configuration of the server is also a major factor in the site speed. So for example if you are using an old version of PHP, the site will be slower. If Gzip compression is not enabled, it will be slower. You can also enabled memory caching solutions that can speed things up.
Fast WordPress Themes
The challenge with WordPress themes is that the fastest is often not the one that will give you the best features, or allow you to create the content on your site, and hence make money.
I would recommend that you go with plugins that are also page builders, and use the fastest of those that are available. I use OptimizePress on this particular site. I also used Elementor. Both of these plugins are fantastic plugins both as site builders and relatively fast solutions.
I have Newspaper Theme, which is a great theme, but should have used OptimizePress instead as it does the same job, but a whole lot more. If you just want a magazine style theme with adsense, it's a very nice theme.
I have also tried a number of different stand alone themes, which work, but then you will probably want a page builder to work with your site (or miss out on rich features otherwise).
Fast Hosting for WordPress solutions
I see a lot of hosting reviews for fast hosting, that are standard shared hosting solutions. I have sites hosted on these servers, they're older and I'm lazy and haven't moved them. The thing that you often don't see with shared servers is that they are cheaper because you are sharing them with, in some cases thousands of other sites. Someone else's site can impact the speed of your site. If you send a lot of traffic to your site, it can get disabled (yes, I have had that happen - and that site I did move!)
Aside from the problems, with shared hosting, depending upon who you go with you can get good of bad experiences. I'd say that you would want a shared hosting solution until the point where you need a more powerful one, because you have a lot of traffic, and are making money. A shared hosting server can take you a long way before it needs replacing, but that depends upon what company that you use.
If this is a scenario that you are driving towards, and you're not technical, you want a company that will help you to upgrade your servers to the right level for your requirements, with the minimum of impacts. In todays cloud based environments, there is simply no excuse for this being a difficult or costly process.
If you can get a shared server with a SSD hard drive it will be a lot faster (basically a hard drive that uses computer memory) Doing this means that every site that is hosted on that server will be quicker without doing anything. If that costs you $1 more per month, that's worth it. If your site is faster than most other people's without doing anything, you're more likely to get better rankings. If you're trying to serve your customers, a fast loading site should be priority.
I use D9 Hosting for this and many of my other sites. I have HostGator hosting, which is okay, but the little bit more money for D9 hosting is really worth doing, in my experience. It has less other shared sites on the server, I believe the server has more configurable options, and the package I have has SSD and unlimited domain capacilty (D9 Max+)
Will CloudFlare make my WordPress website quicker?
CloudFlare does a lot of what a WordPress caching plugin will do to improve WordPress performance. It is essentially a site that sits in front of your site and intercepts and attempts to improve the speed of your WordPress website.
It is probably the simplest way to get fast cached results for a website. It works as a CDN, it includes security features, it enable html minification, js minify, css minify. You can enable brotli compression (which is better than gzip compression).
There are many paid features such as image optimization, and the ability for it to automatically optimize your WordPress site. I think that this is a great idea, until it isn't. You need to have control over these things, and some way to understand how this impacts your site.
For example, if your mobile view is responsive, and loads slightly differently to your desktop website, then you may get the wrong version of your website. Let me explain. The last user has their page cached and stored at CloudFlare. If you then come along from a mobile device and require that view, if the url being used for the page is the same, you will get the non-mobile optimized page from the previous desktop user. This gets worse, then next desktop user will then get the view of the last mobile device user.
The reason for this is that the caching solution uses a key - a string value to identify the unique instance of the page. CloudFlare by default doesn't allow you to generate a key to say, this is a mobile device. There is a workaround for this, but then it makes the CloudFlare environment non-standard, and only recommended for people who understand the impact.
I am technically minded, and could implement the workaround, but found that there are better ways to do this, and to achieve the same website speed benefits for my WordPress site. So I switched CloudFlare off.
If you have a simple website, and it doesn't change much depending on whether it is mobile or desktop, it may still work for you. I recommend you try it on desktop, then immediately load up on mobile, and see what version you get there. Then go back to desktop and see if you get the mobile version.
I've made CloudFlare sound like a terrible option, it's not, it is very good, very easy to use, and performs very well, you just need to be aware of the problems.
Use a different Web Server?
I mentioned earlier that to increase the speed of the website you might consider changing the web server. This article isn't intended to go in depth on how to do that, as it's technical complicated, and can take days to get right. This is only to alert you to the possibility.
I changed my site to a VPS server on digital ocean (get $100 discount with this link), I changed from Apache to NGINX. If you're not technical, and have the money to do this, it's worth it for a fast site, get someone who knows about this stuff to sort it out for you.
There is plenty of help out there on how to set up NGINX, but from my experience, there isn't one single location to go to, to find out how to get everything working easily. A lot of trial an error. I tested a reverse proxy cache, and a FastCGI cache (which seemed to be the best in the end). I also implemented something to use my webp images where one was available. This also had https automatic certificate renewal, and I implemented the cache keys so that it understood how to cache for mobile devices. I had some CPM ads running on the site, and got to almost 2000 users in a minute. Having the cloud based VPS was awesome as I could crank it up to a slightly more powerful server until I got the settings right. This is where NGINX excels - multiple users at the same time, apparently it can support up to 50,000 at the same time!
If you're interested in the details of this, please drop a comment below, and I will create an article - it's a technical subject, and that isn't really the purpose of this site, unless you want it.
Best WordPress Cache Plugin Conclusion
My "other job" is as a technical consultant, so I advise people on the servers that they need, and software, and so on, and have been doing this for many years. My hope on writing this article was to tell you what most people won't tell you about hosting. It's usually about how good it is, and how enabling a caching plugin will fix everything. I wanted to educate you in how it all works, without getting into too much detail. There are plenty of articles on the 5 Best WordPress Caching Plugins, How to speed up a WordPress site, what is the best hosting, how to optimize images and so on.
I have used the premium plugin, WP Rocket plugin, which was okay, but I found that my requirements outgrew it after a time. Very good for beginners, as it's very easy to use, and gets quite good results. I tried WP Fastest cache and WP super cache plugin, there were okay, but my experience was that there are better solutions out there.
I also use W3 Total Cache, the free version is quite good for a lot of scenarios, and can get the basics of your site going. Warning: This is quite a technical WordPress cache plugin, although it now has a wizard to help you set it up automatically, it is nowhere near as clean and easy to use as WP Rocket, but I believe it is a lot more powerful. Both of these plugins will generate cached files that can be administered through the WordPress dashboard. My advice is you're a beginner, stick with WP Rocket, if you either have the money to pay someone to set this up, or need to squeeze more advanced requirements from caching, then W3 Total Cache might be the way to go, or a VPS for the ultimate solution (Go to digital ocean, or d9 hosting for those).
Part of having a successful business is to have a mentor, and as I'm mentioning to you what I have experience of, rather than blindly promoting, I thought that I'd also like to mention my mentor john thornhill, who initially put me onto some of these products, and I'm glad that he did. He also mentors me on how to create become a super affiliate. It's a year long mentor program, and you can get to be in a position to be a super affiliate in 60 days. I can't recommend him enough, he's a really nice guy to work with, and super knowledgeable.
If you liked this article, please share it so others can benefit from it (The button are on the left of the screen!). If you want to know more on a particular topic, please drop me a comment, and I will reply.