The WP Rocket plugin is viewed by many people as a “best in class” caching solution for WordPress sites.
In this review we look at how well it performs in real life and whether or not it’s worth the annual fee.
Let’s get to it.
Before WP Rocket:
After WP Rocket:
As you can see we’ve shaved almost 2 seconds off the load time, which equates to a 54% improvement.
Plus, the site now generates 21 fewer HTTP requests than before.
There’s been a small increase in the YSlow score, but we could give that a 10% boost by installing Autoptimize along with WP Rocket.
What Is WP Rocket?
WP Rocket is a WordPress caching and database optimization plugin for WordPress sites first released way back in 2013.
Since then it’s grown in popularity to become one of the most popular caching tools for WordPress users.
What’s interesting is that although there are lots of free caching plugins out there, several hundred thousand websites use WP Rocket instead:
And the reason for that is because WP Rocket wraps the functionality of several different plugins into a single tool.
It’s far more than just another caching plugin.
How We Set Up WP Rocket
Our test environment was as follows:
- Hosting: SiteGround shared
- Theme: OceanWP + Elementor (review)
- WordPress: 5.2.2
- Elementor agency template
The first thing to be aware of is that WP Rocket has to be manually installed after you purchase it – it’s not available from the WP plugin repository.
But doing that is simply a matter of downloading the ZIP file, going to Plugins -> Add new and then uploading it.
The final step is to activate it.
What happens next is WP Rocket’s biggest selling point – it automatically configures itself to your site for optimal performance.
While that’s a nice sales pitch, it’s also not entirely true.
The results we posted at the start of this review were only possible after we spent a few minutes tweaking WP Rocket.
So don’t treat it as a set-and-forget caching plugin, because it’s not.
The WP Rocket Dashboard
There are actually only 4 options on this screen you need to concern yourself with…which are displayed all the way over to the right-hand side of the page:
- Clear Cache – clears the WP Rocket cache for your site
- Preload Cache – caches all your site pages/posts so they can be served faster
- Purge OPCache – Clears out any PHP code stored in shared memory in PHP 5.5 or above
- Regenerate Critical CSS – useful if you’ve made significant changes to your CSS files
Note: The ‘Purge OPCache’ function is useful for anyone running a membership site, forum, or any type of site that requires users to log in to access information.
This is where you can adjust the various cache settings depending on the type of site you’re running, and its user profile i.e. desktop vs. mobile.
‘Enable caching for mobile devices’ is enabled by default when you activate the plugin, but you will need to manually turn on the ‘Separate cache for mobile devices’ function.
This is suitable for membership sites, or where users need to login to view information. There’s usually no need to use this feature if you have a public-facing site.
The set amount of time before your global cache is automatically purged, which will be useful for sites that post content on a daily basis:
Or in plain English, this is where you can reduce the number of HTTP requests your site makes while possibly decreased your page load times.
But it is worth testing how all-in-one plugins compare to separate plugins to see how they impact overall site performance.
The only setting enabled by default is ‘Combine Google Fonts files’ because it will have no real impact on how your site runs i.e. missing fonts are replaced by default fonts.
From here you can choose to:
- Minify HTML – this removes all the blank spaces from within your HTML files, reducing their file size
- Combine Google Fonts files – Reduces the number of HTTP calls made to the Google Fonts API
- Remove query strings from static resources – removes the version query string from file names
Our test results are based on enabling all of the above functions.
None of these options are enabled by default because making changes to your CSS files could potentially break your site:
But based on past experience, we’ve yet to see that happen with WP Rocket or any other half-decent caching/optimization plugin.
Minify CSS Files – this is pretty much the exact same as the ‘Minify HTML’ feature in that it reduces the size of these files, so they take less time to deliver from your server.
Combine CSS files – some WordPress themes can contain literally dozens of style sheet files, all of which mean more HTTP requests. This feature allows you to combine all of those separate CSS files into a single file.
Optimize CSS delivery – this stops any requests from style sheets that would negatively impact page speed.
Exclude CSS Files – only useful if you have CSS files you do not want optimized, for whatever reason.
Each of these scripts can bloat your site code, forcing your browser to wait for them to load synchronously.
What that means for users is they’re sitting looking at a blank screen while your browser struggles to load multiple JS files, all demanding equal attention.
WP Rocket also has image optimization functionality as standard.
The first optimization is ‘LazyLoad’, which means that your site only loads images as you scroll down the page.
This gives the perception that your page is loading more quickly, whereas all that’s happening is that images are loaded “on-demand”.
But being able to lazy load iFrames and videos is very handy because rendering all that external data can kill your page load times and bandwidth quotas with your hosting provider.
Note: We had to turn off the LazyLoad feature in WP Rocket because it conflicted with ShortPixel.
Emojis and Embeds
These functions allow you to turn off emojis on your site, and you can also stop people from embedding unwanted content on your posts or pages.
Perfmatters is the only other plugin we’ve used (and trust) that allows you to disable emojis, so it’s neat to see that WP Rocket also has this feature.
By the way, we’re not saying you can replace the Perfmatters plugin with WP Rocket though – Perfmatters is well worth the price.
This section covers both DNS prefetch requests and preloading your entire site into the cache:
With most other caching plugins your page is only added to the cache when it’s accessed.
This means the initial page request will be slow, but all subsequent requests will be faster.
However, with preloading your entire site is cached in advance, so users should experience faster page load times.
The preload function will start at your homepage and work its way through your site unless you instruct it to use a sitemap instead.
One word of caution is that “cache preloading” a site with hundreds/thousands of pages could cause a server spike, temporarily slowing down your entire site.
Prefetch DNS Requests
Every time your site accesses a web resource (API, etc) of any kind, a DNS request is generated.
It takes time for the DNS server to be contacted, to resolve your request, and then point you at the correct URL.
You can shortcut that entire process by listing the servers you want to resolve in advance:
The best way to imagine this is if you were trying to find a telephone number in a directory.
With prefetch, you’d already know exactly what page, line, and column the telephone number is listed under.
Without prefetch, you’d have to manually check the entire page of the directory until you found the number you needed.
There are certain elements of your site that you never want to be included in your cache.
Examples of this include login URLs, cart and checkout pages for an e-commerce store and cookies.
The ‘Advanced Rules’ tab of WP Rocket allows you to specify which URLs you want to be excluded from the cache:
Or do the same thing for cookies:
You can also choose to block ‘User Agents’ from viewing cached pages. So you could block Googlebot or a web browser agent from viewing cached pages:
You also have the option of purging specific pages/range of pages from the cache when you update any post or page:
You can also cache specific URLs with query strings if you need to, although is usually in the domain of serious e-commerce developers or platforms.
Most WordPress users will never need to touch the ‘Advanced Rules’ section.
The database cleanup feature is a perfect example of why WP Rocket isn’t just a caching plugin.
In most other circumstances you’d need to use a plugin like WP-Optimize to give your WordPress database a spring clean.
But now you can do pretty much all of that from within WP Rocket.
As you can see from the above screenshot the ‘Post Cleanup’ feature allows you to get rid of those post revisions and drafts you no longer need.
But you can also permanently delete spam comments and any comments you already sent to trash.
It also allows you to clear out ‘transients’ which are usually leftover settings from plugins you haven’t used since forever:
And finally you have the options to either completely optimize your WordPress database, or schedule future cleanups:
You already use a CDN and you’re wondering if you can integrate it with WP Rocket?
Yes, you can.
The WordPress Heartbeat API isn’t a terrible idea because it does help keep all elements of your WordPress website in sync with each other.
The problem is that all of this real-time data sharing eats up server resources.
So you’re best to control the Heartbeat API where possible, and WP Rocket allows you to do just that:
But it also allows you to reduce the activity of or disable Heartbeat for the backend, the post editor or at the frontend of the site:
WP Rocket also offers a number of add-ons to make your site even more efficient.
They didn’t try to provide add-ons for every single service under the sun – just the ones that people use most often.
Google Analytics is a typical example of this.
WP Rocket allows you to host your GA scripts locally, cutting down on response times and a hefty dose of external HTTP requests.
But you also get add-ons for:
- Facebook Pixel
The only one of the above we tested during the review was the Cloudflare add-on.
Once you’ve linked it to your Cloudflare account you can choose the following options:
- Development mode – temporarily take your site offline
- Optimal settings – automatically configure Cloudflare to work in tandem with WP Rocket
- Relative protocol – only enable this if you’re using Cloudflare SSL, which our test site isn’t
The ‘Clear All Cloudflare Cache Files’ feature saved us a lot of time going back and forth to the Cloudflare web-based dashboard to purge it yet again during testing.
And finally, you have a set of tools to import export existing settings for WP Rocket.
But one tool that’s worth a special mention is the ‘Rollback’ feature.
We rarely see this in plugins and wish more developers would take a leaf out of the WP Rocket team’s book.
WP Rocket Alternatives
So, is WP Rocket the best WordPress caching plugin, or are there other plugins you could use to achieve the same goals?
The honest answer is “Yes”.
Let’s take a look at the more popular ones.
W3 Total Cache
With 1 million active installations, W3 Total Cache has a lot of loyal users, and it does a pretty good job at improving page load times.
But the interface is a little bit “dense” – it’s just not very intuitive unless you know exactly what you’re doing.
Plus, to get the full power of the plugin you have to upgrade to the paid option, which is $99 per year.
WP Super Cache
This plugin has a feature that makes so much sense it boggles the mind that other caching plugins don’t use it – you get to choose between ‘Easy’ and ‘Advanced’ caching.
In terms of improving site performance, WP Super Cache lags behind W3 Total Cache by a full second in improving fully loaded time for a page.
The other problem is that this is just a caching plugin – it has no other functionality.
WP Fastest Cache
It has a full range of optimizations that you enable by simply checking a box. We also like little touches like ‘Clear cache when a post or page is published” and there’s a dedicated option for enabling Gzip compression for your site.
WP Fastest Cache also ties with W3 total cache in terms of how much of a positive impact they had on page speed scores.
The primary function of Autoptimize is to clear up the clutter in your HTML, CSS and JS files. This minification/aggregation will have an impact on page speed.
But it doesn’t have a dedicated caching function.
But you can most definitely use Autoptimize in conjunction with a caching plugin and database optimization plugin to achieve results comparable with WP Rocket.
And that brings us to the end of our WP Rocket review.
What this plugin offers is a hands-free approach to site caching and database optimization.
Tech nerds will probably stick with using a number of plugins to cache, optimize and tweak their WP install.
With that said, WP Rocket is an easy-to-use caching and performance optimization plugin, but it does cost $49 per year for one site.
Just be prepared to spend time adjusting its settings to get the most from this plugin.
You can download your copy of WP Rocket here.