When it comes to speeding up your WordPress site, using a good WordPress caching plugin is one of the most popular tips you’ll see.
It’s in pretty much every piece of advice written on the subject: and for a good reason – a caching plugin (like WP Super Cache, W3 Total Cache, and WP Rocket: three most popular — and arguably best — WordPress caching plugins) will almost always make a huge difference, especially on cheap WordPress hosting.
However, you still might have questions… questions like:
- What’s the best WordPress caching plugin?
- Do I need to pay for a premium caching plugin, or is a free caching plugin from WordPress.org ok?
- How big of an impact does caching make? Can it turn cheap shared WordPress hosting (like Bluehost) into something that rivals much pricier managed WordPress hosting (like WPEngine)?
In this post, I’m going to try to answer all three of these questions with real testing data by testing the above-mentioned three caching plugins and two different hosts, namely Bluehost and WPEngine.
I’ll take you through the performance test data for each plugin. Then, I’ll try to help you make sense of it all at the end of the post.
Side note – check out this post if you’re not sure exactly what caching is.
WP Super Cache vs W3 Total Cache vs WP Rocket: What I’m Comparing
In this post, I’m going to compare three of the most popular WordPress caching plugins:
- WP Super Cache – Free – a simple offering from Automattic (the same company behind WordPress.com). It’s active on over 2 million WordPress sites and offers a beginner-friendly approach to caching.
- W3 Total Cache – Free – this is the most flexible (and complicated) WordPress caching plugin you’ll find. While setting it up can be a little overwhelming, it gives you tons of nitty-gritty options for controlling how caching works at your site.
- WP Rocket– $49+ – the only premium option on this list, WP Rocket justifies its price with a user-friendly interface and lots of non-caching performance features, like minification, database optimization, lazy loading, and more. Learn more in our WP Rocket review.
Beyond that, I’ll also compare two different hosts:
- Bluehost – the cheap $4.95 Plus shared plan – this is where I’ll use the caching plugins. I’m on the USA data center, which is located in Utah.
- WP Engine – the cheapest Startup plan – I’ll use WP Engine’s built-in caching here. I’m also on the USA data center, which WP Engine’s support team told me is in South Carolina (specifically, Google us-east1).
The basic idea with this latter comparison is to help you understand if using a good caching plugin on cheap WordPress hosting (Bluehost) can get you close to the page load times of a quality managed WordPress host (WP Engine).
So in total, you’ll see five data sets:
- Bluehost with no caching to act as a “control”
- WP Super Cache on Bluehost
- W3 Total Cache on Bluehost
- WP Rocket on Bluehost
- WP Engine with its built-in server-level caching – no plugin
Finally, to make sure this approximates a “real-world” situation, I’m going to use a complete Avada demo site. Avada is one of the most popular themes in existence, and the Avada demo sites include lots of images and other “heavy” elements, which should create a testing environment that mimics a real WordPress site in the wild.
For each situation, I’ll:
- Run four tests on GTmetrix and take the average score. I’m using GTmetrix’s Dallas, TX test location and I’ll do this on two separate days (so 8 tests total for each configuration).
- Use Load Impact to simulate 50 visitors over 5 minutes to see how each situation performs under scale. I’ll use Load Impact’s Ashburn, VA test location (AKA Washington, DC).
Alrighty, with all that explanation out of the way, let’s get into the data!
1. The Control: The Basic Site at Bluehost With No Caching
To create the basic site, I installed Avada and imported the complete Freelancer demo site (including all the content and widgets).
Here’s how the site looks (there’s also lots of below-the-fold content):
It’s pretty weighty, with:
- Lots of images
- Animated counters
- A contact form
Basically, it’s similar to a real site when it comes to the amount of “stuff” going on. Beyond that, I installed some other common plugins, like Yoast SEO.
Finally, it’s important to note that, while Bluehost does come with its own in-dashboard caching solution, I turned it off for these tests. So there is zero caching going on for these tests.
First, I ran it through GTmetrix eight times on two separate days:
That puts the overall average at 3.7 seconds across all eight tests.
Then, I ran it through Load Impact (analysis below):
You can see that as the number of active visitors increases (blue line), the page load times jump around a lot (green line) and have huge spikes near the end (going up well over 10 seconds). The biggest traffic spikes start around the time when there are 40 active visitors and continue until the end.
Basically, this is telling you that, while Bluehost’s cheap shared plan can load your site in an average of 3.7 seconds for a single visitor, it has trouble loading your site that quickly if there are 40+ people visiting your site at the same time. If you have a high-traffic site, this means your page load times might be erratic in a real-world situation.
Beyond raw page load times, caching plugins can also help you scale your site, so it will be interesting to see if the caching plugins can smooth out the Load Impact chart for Bluehost.
2. WP Super Cache on Bluehost
WP Super Cache is a super simple caching plugin from the folks at Automattic. If you want, you can simply install and activate the plugin, select a radio box, and call it a day:
In fact, that’s pretty much how I configured my test site. While WP Super Cache does handle some other things, I only turned on the settings that are marked “Recommended”:
All in all, if you want something that’s simple and free, WP Super Cache is a stellar option. Here’s how it performed in the tests…
That gives WP Super Cache an overall average of 1.86 seconds, which is about a 50% reduction from the no caching test. We can confirm that page caching does indeed work!
Unfortunately, WP Super Cache wasn’t able to change the same pattern in Load Impact. You can see that page load times are pretty steady up until there are ~40 visitors active. Then, they jump up over 10 seconds again:
3. W3 Total Cache on Bluehost
As I mentioned earlier, W3 Total Cache is the most flexible caching plugin on this list, but at the same time, it’s also the most complicated caching plugin on this list.
Beyond throwing tons of different terms at you – database cache, opcode cache, etc. – each type of caching also gets its own detailed settings area:
This is a big departure from WP Super Cache, where you can pretty much just click a button and call it a day.
For this test, I enabled page caching and minification, but nothing else. I believe this is the simplest, most accessible configuration for most WordPress sites, but it’s also important to note that this test does not include every single feature in W3 Total Cache, so you might be able to get a bigger performance boost if you play with its settings.
Here’s how W3 Total Cache performed…
Overall, this gives W3 Total Cache an average of 2.30 seconds.
And when I ran it through Load Impact, you get the same 10+ second load times around the 40 visitor mark (for some reason, Load Impact changed the colors on this graph. Green is active visitors and blue is load time):
4. WP Rocket on Bluehost
Finally, let’s take a look at WP Rocket, which is the only premium cache plugin on this list.
WP Rocket has the absolute simplest setup process when it comes to page caching. As soon as you activate the plugin, it automatically starts using page caching right away! You don’t even need to click a button like you do with WP Super Cache (I jest – both of them are super easy to use).
Beyond that, another reason to consider paying for WP Rocket is all the other performance features it offers. In addition to page caching, you get lots of other helpful tweaks like:
- Minification and concatenation for HTML/CSS/JS files
- Lazy loading for images and videos
- GZIP compression
- Database optimization
- DNS prefetching
To make this a fair comparison, I’m going to only run the tests with minification enabled (like I did with W3 Total Cache). Beyond that, WP Rocket automatically applies GZIP compression and browser caching upon activation.
Here’s how WP Rocket performed in GTmetrix with just the default improvements and the minification feature:
That gives us an overall average of 1.71 seconds for WP Rocket.
Like the others, you can still see that same spike in Load Impact. The 10+ second spike happened a little later this time – around 43 active visitors – however, I’m not sure if that’s meaningful enough to draw any conclusions about WP Rocket:
Again, Load Impact changed the colors of the graph for some reason – green is active visitors.
5. WP Engine With Its Server-Level EverCache System
Finally, let’s add a different perspective by seeing how these caching plugins (on cheap Bluehost hosting) stack up to a pricier managed WordPress host – WP Engine. Check out our WP Engine review to learn more about WP Engine’s features.
Can you get close to WP Engine’s performance just by using the best WordPress caching plugin on your site? Let’s find out!
It’s important to note that WP Engine includes page caching and object caching at a server level (via its EverCache system). So even though I haven’t installed a caching plugin at WP Engine, my WP Engine test site is still benefiting from caching.
That gives WP Engine an overall average of 1.41 seconds.
And where you’ll see an even bigger difference is in the Load Impact test. The load times were rock-solid (between 300 – 400 ms) for all 50 visitors:
This is a huge contrast to Bluehost, where load times started jumping above 10 seconds around the 40 visitor mark.
So if you have a high-traffic site, there’s really no comparison between WP Engine and Bluehost’s cheap shared plans.
Putting the Data Together and Drawing Conclusions
To help you see how everything compares, here’s the average GTmetrix load time for each test situation (remember – this is the average from eight separate tests on two separate days):
|No Caching||WP Super Cache||W3 Total Cache||WP Rocket||WP Engine|
|3.70 s||1.86 s||2.30 s||1.71 s||1.41 s|
First, there are two obvious conclusions:
- Page caching does indeed make a big performance difference, especially on a cheap shared host like Bluehost. You can see reductions of 50%+ just by installing a caching plugin.
- Caching is still not going to make your $3.50 per month hosting look like $35 per month hosting. While the GTmetrix load times get close, the biggest difference is in the Load Impact test.
Then, there are the caching plugins themselves…
According to my testing, WP Rocket offered the best improvements with an average of 1.71 seconds (even without enabling other performance improvements, like lazy loading). However, WP Super Cache was right on its tail at 1.86 seconds.
So is paying $49 for WP Rocket worth it? Well, it might be for you, especially because WP Rocket also makes it easy to implement other performance tweaks.
However, you certainly don’t need to pay for WP Rocket just to speed up your site, and you can still get a noticeable improvement in your site’s page load times just by using the free plugins at WordPress.org (like WP Super Cache).
As for W3 Total Cache, that’s a bit of a tricky one because I didn’t necessarily have the plugin running at “full speed”. That is, I only enabled page caching and minification, while W3 Total Cache offers lots of other caching methods.
But I think that’s kind of the point…
If you’re an average user, it can be tough to know which W3 Total Cache features you need, and which you don’t. What’s more, the payoff might not even be worth it for you when you consider how other, simpler plugins can also make big improvements for your site.
So while I don’t want to entirely write off W3 Total Cache for all situations, I think you’ll be better off with another caching plugin unless you already know your way around techniques like object caching and database caching.
In the end…
If you have some space in your budget and want the best of the best, get WP Rocket (or just upgrade your hosting to WP Engine, because that was the overall best-performing option). And if you want something 100% free that will get you almost to the same spot, go with WP Super Cache.