Have you checked the response time of your WordPress site?
If it is slow, the lack of proper caching may be a reason. Since WordPress runs a lot of PHP scripts and database queries in the backend, it is hard to make it fast enough without a caching mechanism.
The word caching means storing frequently used data in memory instead of generating it each time. The same concept applies to WordPress caching too. If you can save the HTML responses of your posts and pages in cache, your site can serve it pretty fast to your visitors.
In this article, we will compare a couple of caching plugins for WordPress that can make your site load quickly.
In the end, we will also look at a few web hosts that offer server-level caching in addition to page caching.
How to Test a Caching Plugin
Caching shows most of its effect in the waiting time and TTFB (response time). Pingdom Tools show this metric in yellow color in the timeline graph, while GTmetrix shows it in purple color.
A low waiting time results in a faster TTFB, which in turn reduces the total loading time.
For this test, I set up a default WordPress installation on a shared server without any caching. Then I measured the waiting time, TTFB, and total loading time using both Pingdom and GTmetrix.
Here is the summary of my test set-up:
- WordPress 5.2.4
- Twenty Nineteen Theme
- Home page with sample content – 10 paragraphs & 10 images
- Shared Server (from GoDaddy) – Location: North America
- GTmetrix tests from Dallas, USA
- Pingdom Tests from San Francisco, USA
Then I repeated the same tests by activating each caching plugin one after the other.
The challenge was that each plugin differs from one another in terms of features and functionalities. So, to make the readings as fair as possible, I turned on the caching option only and kept all the other options in its default values.
Best Caching Plugins
Based on the tests, I’ve found the following plugins to be highly effective in improving WordPress performance.
To avoid making a long list, I’ve excluded a few plugins that didn’t give the results I expected.
Also, I’ve only included free plugins in the list. That’s why I didn’t add WP Rocket, although it has some great reviews online.
W3 Total Cache
W3 Total Cache turned out to be the best performer in my tests. Enabling the Disk: Enhanced option alone brought down the backend time to 79ms on GTmetrix.
Beginners often complain that W3TC is challenging to set up due to the sheer number of options available. However, you need not touch any of those advanced settings to get a performance boost.
WP Fastest Cache
If you are a novice, you will notice WP Fastest Cache as highly easy to set up. Unlike W3TC, its minimal admin panel gives no room for confusion.
Performance-wise, WP Fastest Cache came out in a close second position below W3 Total Cache.
However, the plugin does not fully support multi-site WordPress yet. Otherwise, it is a reliable option with an excellent balance between features and speed.
WP Super Cache
Similar to WP Fastest Cache, WP Super Cache is another plugin that is quite easy to set up and use.
With over 2 million active installations, it is one of the most used plugins in the WordPress directory.
It supports multi-site as well, although you may need to enable it on each site.
However, it lacks some advanced features like Object Caching, if you need it.
WP Super Cache offers two options for caching:
- Simple (default)
I’ve found that selecting the Expert option gave more speed, whereas the Simple caching was not up to the mark.
Expert Caching works by adding rewrite rules to your Htaccess file, which results in faster loading times.
Cache Enabler is a lightweight WordPress caching plugin from KeyCDN.
Out of all the caching plugins I’ve tested, it has the least number of configuration options, making it extremely easy for anyone to use.
With over 60k installations and 4.5 rating, many people like Comet Cache.
While it is not as good as the plugins above, Comet Cache could bring the wait time down to 112 ms (GTmetrix), and 126ms (Pingdom).
Moreover, if your hosting has Varnish enabled on the server-level, you can configure Breeze to work with it, allowing you to set two levels of caching – page caching & Varnish caching.
However, since my test server does not support Varnish, the results below show only the effect of page caching. As you can see, Breeze is not that great without server-level caching.
Swift Performance Lite
At only 20k installations, Swift Performance may not be as popular as the other plugins. However, if you need extra features like lazy loading, you can try this plugin.
With the convenient Auto-config option, the plugin configures itself, making the process profoundly simple.
By default, the plugin removes render-blocking resources and generates critical path CSS too. The auto-configuration wizard also turns on the lazy loading feature, although I have turned it off for this test.
Swift Performance has a premium version also more features like image optimization and database optimization.
Overall, this one plugin alone can do the job of multiple plugins.
Speed Tests Summary
|W3 Total Cache||79||157||87.5||166|
|W3 Fastest Cache||82||170||87.7||172|
|WP Super Cache (Expert)||83||189||98||178|
|Swift Performance Lite||86||169||109||265|
|WP Super Cache (Simple)||97||213||111||193|
Despite the slight inconsistencies in results, W3 Total Cache, WP Fastest Cache, and WP Super Cache (expert mode) gave the best results.
- Is there a way to improve the speed further?
- Yes, with server-level caching.
For that, you need a web host that provides server-level caching on top of page caching.
I might get a bit technical here, but this post won’t be complete without mentioning them.
Web Hosts with Server-level Caching – An Introduction
Usually, page caching works by storing static HTML response in the Disk and serving it to subsequent visitors. Still, the request is reaching the Apache server (most shared hosts use Apache).
To take it one step further, you can place Varnish or Nginx in the front. With such a stack, the request does not even touch the Apache webserver, let alone PHP and MySQL.
It helps to reduce resource consumption, thereby increasing the ability to handle more concurrent users.
Here, I’m mentioning four such hosts that support server-level caching. I’ve arranged them in order from least expensive to most expensive.
LiteSpeed / Hostinger
LiteSpeed Cache is a WordPress plugin that offers deep integration with the LiteSpeed server. All WordPress sites on Hostinger have this plugin activated by default so that you don’t need to install another plugin.
Varnish / Cloudways
I’ve mentioned above that the Breeze plugin is not that great in page caching performance. But when coupled with Varnish, it blows everything out of the water, even W3 Total Cache.
That’s what Cloudways gives you on its platform. It has allowed me to bring down the waiting time of this website below 50ms.
SG Optimizer / SiteGround
SiteGround also offers server-level caching on all its plans except the lowest StartUp plan.
SuperCacher, the technology they’ve developed using Nginx reverse proxy, makes it possible to serve content directly from the RAM, without even fetching it from the Disk.
Kinsta – a managed WordPress host – recommends that you don’t need any other caching plugin while on their platform.
Their platform provides multiple levels of caching by default, including page caching and object caching.
However, the pricing, which starts at $30/mo, can look like a bit expensive if you’re coming from a shared platform.
Are these the only hosts that provide server-level caching? Of course not. These are only the ones I’ve come across. You can mention more in the comments, and I’ll take a look.
Summary – Which Cache Plugin to Choose?
If you feel overwhelmed by the number of choices, I will simplify it into the following points.
- If you can get a host with server-level caching, then it is the best choice.
- Otherwise, if you are on a traditional host or VPS, then use W3 Total Cache. Its page cache speed is the best.
- If what you prefer is simplicity, then try WP Fastest Cache or WP Super Cache. Both are almost similar in performance while providing a straightforward interface.
Anyway, utilizing at least one level of caching is always better than none at all if you care about performance. So, which is your favorite caching plugin?