What is WP Rocket?
WP Rocket is a premium WordPress caching plugin that claims to make any website super-fast. It has specific requirements without which it cannot work.
The plugin has absolutely no free version available, but it does come with a no-questions asked money-back guarantee.
It is one of the most highly rated caching plugins with a very simple interface that takes out the complexity of implementing caching. Its simplicity is what makes it a popular choice among users.
Well, truth be told, WP Rocket indeed manages to make a WordPress site fast, but if you are in need of an even faster website (which I assume, you are), you will have to use a CDN alongside the caching plugin.
Speed Results – Before and After WP Rocket
It only makes sense to show you the speed results before and after using WP Rocket. Afterall, it is a premium plugin and you should get a direct evidence of whether it is worth purchasing the plugin or not.
Of course, no one will want to go through an entire review only to find out at the end that the product is not worth your time and money. So, I will be your savior! Ha Ha! Just kidding!
So, here are the results before installing WP Rocket on one of my websites:
Google PageSpeed Insights (Mobile)
Google PageSpeed Insights (Desktop)
The results you see above are before the implementation of any caching. The website is hosted with Namecheap shared hosting (Stellar Plan). It uses the GeneratePress Premium theme. Here is the quick list of plugins installed:
With these plugins, no CDN and no caching, the speed of the website is quite impressive for now. But what happens when I apply WP Rocket?
Let’s find out. But before that, here is the list of plugins now installed on the website:
You can clearly see that WP Rocket is installed on the website. Of course, I will not walk you through the configuration now (because I will save it for later). Here is what happens after installing and configuring the plugin, and performing everything necessary that the plugin asks to do:
Google PageSpeed Insights (Mobile):
Google PageSpeed Insights (Desktop):
What did you just see? Yes! It is a perfect 100 on desktop tests from Google PageSpeed Insights and a near-perfect score on mobile.
In case you don’t remember, the website didn’t have any CDN implemented, and that’s the kind of speed you experience with WP Rocket caching.
With a CDN in place, you can get better speeds for mobile. For desktop, there’s nothing better to achieve! Still, a CDN can help you eliminate the speed fluctuations you observe with repeated tests on Google PageSpeed Insights.
Of course, you may argue that things like ads, Google Analytics and other stuff will change the story!
Yes, they will! That’s why WP Rocket has certain features that will allow you to circumvent some of those issues. I will cover them later in this segment. Also, adding a CDN will greatly help!
Okay, now that I have established that WP Rocket can indeed to wonders, it is time to take a look at the detailed review and find out what this plugin can do for you.
But before I start with the detailed WP Rocket review, here is something you need to know:
System Requirements for WP Rocket
You need to ensure that you have the following configuration available before you purchase WP Rocket:
- PHP Version: At least PHP 7.0. Luckily, most of the web hosting companies are now offering 7.3 as the default version.
- Web Server: You should be using Apache, or NGINX, or LiteSpeed, or Windows server. If you are running Apache, you should have mod_rewrite, mod_expires, and mod_deflate available.
- WordPress: You should be running WordPress CMS with “Pretty” permalinks. You can set the permalink structure directly from your WordPress dashboard. Here is a screenshot of the permalink option you should be using:
Remember, a pretty permalink actually refers to a clean URL structure that people can easily remember. You can use a custom structure as well, but make sure that it is very clean and easy to remember.
As long as you are fulfilling these system requirements, you are good to go! You can happily download WP Rocket (after buying a premium plan) and use it.
Now that you are aware of what you need to run the caching plugin, let’s go through the WP Rocket review in details.
WP Rocket Review: Walkthrough and Setup
When you purchase WP Rocket, you will receive an installable zip file that you need to upload through your WordPress dashboard and install it. Once installed, you need to activate the plugin as you would normally do for any other plugin.
Once you have installed and activated the plugin, you can access the settings from Dashboard >> Settings >> WP Rocket.
After you follow the path you will see this screen by default:
Obviously, you can scroll down the page to find a few more options like some FAQ, quick links to getting started videos, etc. There isn’t a lot of interesting things here. But you do get the options of preloading, clearing, purging cache, and regenerating critical CSS. Those are single-click actions that you can perform from the dashboard.
One the left side you can see different tabs. That’s the menu from where you can access various settings. When you first install the plugin, you will see an extra menu called Image Optimization. On that tab, WP Rocket will ask you to install Imagify – an image optimization plugin developed by the same developers.
I will recommend that you install it and optimize your images. It works like a charm. Once you install it, it will ask you to add an API. You can register directly from inside the WordPress dashboard and you will receive and email with the API key. Here is how the email content looks like:
Once you receive the API, you can insert the API manually and you should be ready to go. After you install the Imagify plugin, you can see it on your WordPress dashboard menu.
I will cover the Imagify plugin settings later in this WP Rocket Cache review.
After you have installed the Imagify plugin, the ‘Image Optimization’ tab will vanish from the WP Rocket plugin menu.
Okay, to the review now…
The Cache Tab
The Cache tab is the most important tab. You need to enable caching for the plugin to work wonders for your website. This is how the tab looks like:
You will find three major options here. They are:
Enable this option so that your website is cached for mobile devices as well. This means that whenever a person visits your website from a mobile device, the user will hit the cached pages.
However, do not enable the option for ‘Separate cache files for mobile devices’ if you are using a responsive theme that automatically adjusts to the screen size.
Enable that option only and only if you have a separate mobile site or if you have a mobile specific theme (not a responsive theme) on your site.
Enable this option only if you offer user-specific content or if you have restricted content on your website. If you have a simple blog or a website that offers the same content to every user, or it doesn’t have any restricted content on it, you should always leave this option unchecked.
Cached files are usually stale files. They will keep showing up unless you replace them with fresh cached files after you update your website. So, you need to ensure that old cached files are removed periodically and replaced by the new cache files.
You can purge cache manually, but the smart way of doing this is to set an expiration time, that is, define the lifespan for a set of cached files. After that time, the old cached files will be purged completely and replaced by newer versions. This will ensure that all the fresh content on your website remains available to everyone.
The default value is 10 hours, and it should work properly for most of the websites. However, if you are updating your website frequently, you can set the expiration to a lower time.
If you update your website less frequently (such as one post a day), you can set it to 24 hours. That’s perfectly fine!
Once you have configured everything, save the changes and move on to the next tab.
The File Optimization Tab
This is a very important tab. This is where you will get the options of minifying CSS and JS files. This is how the tab looks like (shown as two different screenshots):
This is the segment for CSS optimization:
This is the segment for JS optimization:
Let us go through the CSS segment first.
CSS file optimization
Minification: Unless you enable minification of CSS, the other options will not be available. It is always safe to minify your CSS files to reduce the file size. It doesn’t matter how many CSS files are there or how big a CSS file is. You can safely minify the CSS.
Minification will only remove white spaces and comments from the CSS files. These white spaces and comments are meant only for humans. They help to improve the readability of the CSS files. Removing them makes it extremely difficult for people to read the CSS files.
Removing those unnecessary stuff doesn’t prevent the machines from reading the CSS files efficiently, and nor does that impact the functioning of the CSS scripts in any way!
Check the option to minify the CSS files.
Combine: First thing first – there is no need to enable this option if you are using HTTP/2 protocol. Your server needs to support this protocol. So, ask your hosting provider and clarify things.
Even if you are using HTTP/2 protocol, you can enable combining of CSS files, but that might not necessarily help in improving the speed. On the contrary, it may actually break your site’s design. HTTP/2 is better in delivering files compared to HTTP/1. If combining the CSS files is not breaking your site even when you are using the HTTP/2 protocol, you can keep it.
So, thoroughly test your website after you enable CSS file combining feature.
Do remember that you can combine CSS files only and only when you enable minification of CSS files.
Excluded CSS Files: This is for advanced users. Combining some CSS files can cause issues. So, it is better to exclude them from minification. If you know which CSS files should not be combined, you can specify the URLs of those CSS files in this area. Make sure that you are putting the path to each CSS file in a separate line.
Optimize CSS Delivery: Be careful with this option! It can break your website, especially if you are using any page builder plugin that uses a lot of CSS codes (bloated CSS). Optimizing CSS delivery essentially refers to deferring CSS loading to eliminate render blocking issues.
You need to understand that CSS, by definition, is render blocking at times. Some CSS needs to load first to ensure that your web page loads correctly.
Often, deferring CSS files can lead to what is called FOUC or flash of unstyled content. That leads to bad user experience. So, optimizing CSS delivery is not always a good choice.
If you are enabling this option, make sure that you are testing your website thoroughly (use an incognito window of your browser and test on multiple browsers). If you see errors (like your website not styled properly or your there is FOUC), uncheck the option and clear the cache.
JS File Optimization
Combine JS files: Again, if you are using HTTP/2 protocol, this is not usually needed. If you are enabling this option, make sure that you are testing your site thoroughly. If you find any errors, you should disable this feature.
If you are using HTTP/1 protocol, combining JS files is a good practice as that will reduce the number of HTTP requests.
Exclude Inline JS: There are certain themes and plugins that use inline JS. They are placed inline because they are required for proper functioning. You should not be combining them. One such example is the recaptcha that uses inline JS.
If your site is breaking, go back and disable combining the JS files. To exclude JS files from combining, you need to provide the paths in which the files will be found and put them inside the given field (one per line).
If you don’t know which JS files should be excluded, disable all plugins except WP Rocket and enable combining. If your site isn’t breaking, your theme doesn’t use any such JS. You can now activate one plugin at a time and enable combining to find out the result.
This method will allow you to isolate the plugin which uses inline JS. You can then easily find the JS files and place them in the ‘exclude’ list.
Load JS Deferred: Some JS files can load before the loading of other website files and lead to render blocking issue. You can defer them simply by checking this option. Once you defer them, they will load only after the website loads.
Do remember that some JS files are critical for proper rendering of the web page. So, you should ensure that you are thoroughly testing your website after enabling this feature. If something is not right, disable this feature and clear the cache.
Delay JS Execution: Be very careful about this! Usually, you should not be touching this option unless you know what you are doing. By enabling this option, you will ensure that a JS file is not executed user interaction takes place (like scrolling, clicking, etc.).
You will find a few JS files are prepopulated. The developers of WP Rocket have tested them thoroughly and know that delaying their execution is not going to impact a website’s performance. You can add more, but do that carefully.
There are certain JS files that need to load in what is called ‘Above the Fold,’ before user interaction takes place. Play safe and don’t fool around with this option unless you are one hundred percent sure.
Once you have configured everything, save the changes.
The Media Tab
You will find a lot of options in this tab, and all of them are important. Let’s go through the options one at a time. Ready?
Lazyload: This is the first segment in the Media tab. This is for lazy-loading images, videos, iframes. Doing so reduces the number of HTTP requests, and also improves the page load time.
Activate every option that you find here. If there are specific iframes or images that you want to exclude from Lazyload, you can do that too, but I will never recommend doing that until you have a very good reason for doing so.
Image Dimensions: Many people do not realize that the missing width and height attributes for images can cause one terrible problem – cumulative layout shifts! Yes, that is a parameter that Google is currently using for search rankings.
Just enable this feature! It is good!
Embeds: Enable this option, it is helpful in ensuring fewer HTTP requests.
Three things will happen when you disable WordPress embeds:
- Other people cannot embed content from your website on their websites.
- You cannot embed content from other disallowed websites on your website.
- All JS requests related to WordPress embeds are completely removed.
These actions will collectively reduce the HTTP requests to your server, and thereby help to improve your website’s speed and performance.
WebP compatibility: If you have already downloaded Imagify plugin as suggested by WP Rocket, you don’t have to worry about this option. Imagify will handle the WebP compatibility. There are settings for that in Imagify. I will be covering Imagify later in this article.
However, if you are not using Imagify for some reason, you should enable WebP caching here. It will ensure that your website server is serving WebP version of images on supported browsers. As of now, WebP is supported only by Google Chrome. Other browsers will enable this support sooner or later.
That’s all! Once you have configured everything, just go ahead and save the changes and then move on to the next tab.
The Preload Tab
The caching mechanism is quite interesting. The cache that WP Rocket creates is cleared under certain conditions. Those conditions include:
- Whenever you change the settings of WP Rocket.
- When the lifespan of the cache expires.
- Whenever you click on the preload link from WP Rocket dashboard or from admin toolbar.
- Whenever you update a post or page, the cache for that page or post and anything related to that post or page (can be pagination, tag, category, home, etc.).
It is necessary that under all the above circumstances new cache files are generated automatically to ensure that the site remains fast.
You should invariably keep preloading active. By default, WP Rocket keeps preloading active. You can also use sitemap-based preloading. If you are using SEO plugins, WP Rocket will automatically identify the sitemaps generated by them and first preload the homepage and then the URLs found in the sitemap. WP Rocket supports the following SEO plugins:
- Yoast SEO
- All-in-One SEO
- The SEO Framework
If you are not using any of those SEO plugins, you can manually provide the sitemap.
There is something called Preload Links. What is that?
Your any webpage may have several links (internal or external). There is a possibility that a visitor may click on the link. So, WP Rocket will quickly preload those links and keep the cache files ready even if the visitor only hovers the mouse on them, but doesn’t click on any. This increases the perceived page load speed.
Do not forget that link preloading can put enormous pressure on your server, because preloading links instantly requires a lot of resources. So, if you are on a cheap shared hosting server, consider turning off this option. However, enable it if you don’t need to worry about your server resources.
Prefetch DNS Requests: You can use many external files on your website. For instance, you may use ads from ad networks, Google Analytics script, etc.
When a visitor requests your webpage, these external resources will load from another server, and not your website’s origin server. This can lead to slow website load speeds.
The Prefetch DNS function ensures that the external resources are loaded even before the user actually makes a query. This will ensure that the external resources load faster.
Preload Fonts: If you have ever tested your website with Google PageSpeed Insights, you might have noticed a warning called Preload Key Requests. That warning is related to fonts.
This is what you will see in Google PageSpeed Insights:
If you are using GeneratePress, you can get rid of this problem by changing a small setting in the theme customization area. Head over to WordPress Dashboard >> Appearance >> Customize >> General >> Icon Type.
Just change the icon type to SVG and this error should be gone.
In case you are not using GeneratePress, you can get rid of the problem by preloading the fonts using WP Rocket.
You need to find the path to the font file causing the error and specify the path in the given field. That’s all!
Copy the path to all the fonts that are causing the issue and add them in the designated area.
Once you have configured everything, hit the Save Changes button!
The Advanced Rules Tab
Be careful! If you don’t know what to do, just skip this segment. There may be a few things that you never want to cache. For instance, if you have custom login and logout pages, you should never cache them.
Again, there are certain cookies that you might not want to cache. Similarly, there can be page URLs, query strings, etc. that should not be cached depending on the type of website you have.
You can selectively avoid caching those things to ensure that your website’s functions are not hampered at all!
I will repeat again! You should be careful about what you are excluding. Since this tab is designed specifically for advanced users, you need to be absolutely sure about what you are going. You do anything from here, your website will break or completely inaccessible.
The Database Tab
There is nothing special here. You will get options for periodically optimize your database. Keeping your database clean will ensure that website loads faster. You can even set up automatic cleanup if you want.
You must always backup your database before running database optimization. Once WP Rocket carries out the optimizations defined by you, there will be no way to undo those changes.
The CDN Tab
This is where you can integrate CDN with your WP Rocket plugin. You will get the option of using RocketCDN, but that is not a necessity. You can use any other CDN. In case you are using Cloudflare, there is an easy way to integrate that from the Add-Ons tab.
If you are using any other CDN (apart from Cloudflare), you can always go ahead and integrate it through the CDN tab.
You will need the CDN URL for your domain that you need to put in the CDN CNAME field.
If you want to exclude certain files from being served through CDN, you should specify those files here.
Also, if you localize your Google fonts (that is, host them on your server), you can always serve those fonts from the CDN (or you can preload those fonts (from Preload tab).
You SHOULD NOT be touching this segment. It is only and only for very advanced users. The default settings are perfectly fine. Do not make changes unless you know what you are doing.
WordPress heartbeat is an ajax call that uses the file admin-ajax.php. If you know for sure that this file is eating up a lot of CPU, only then should you think of optimizing this.
Yes, there can be conditions where this file can cause problems. The only way to know this is to check the speed test waterfalls (GTmetrix can let you know).
If you find out that there is some problem with your admin-ajax.php file, you can reduce the heartbeat activity with a single click. Do not disable heartbeat completely because all the plugins and themes that are using the API will completely stop working.
The Add-Ons Tab
This area is fantastic! It helps to extend the functionality of WP Rocket with single clicks and zero configuration.
For instance, you can quickly improve browser caching for Google Analytics and Facebook Pixel by localizing them on your server. You will never need any additional plugins to do the job for you.
If you are using Varnish cache on your server, you should activate the add-on. There are many hosting companies that implement Varnish cache (Cloudways is one just managed cloud hosting company).
Why should you activate this add-on? Because it will ensure that everytime you are purging the WP Rocket cache, the varnish cache is also purged automatically, ensure that everything is synced!
In the CDN tab segment I stated that you can quickly add Cloudflare CDN using add-ons. All you need to do here is turn on the Cloudflare add and enter the credentials. You can even purge Cloudflare cache directly from inside WP Rocket.
Similarly, if you are using Sucuri firewall and cache, you can use turn on the Sucuri add-on and enter the API key.
You can even clear Sucuri cache from inside WP Rocket settings! How cool is that?
The Tools Tab
There is nothing to explain here. You can import or export settings of WP Rocket from here. You can even rollback to a previous version in case an updated version of WP Rocket is causing some issue.
Do not forget that if you are rolling back to a previous version, you should send a support request to the team at WP Rocket. They will resolve the issue you are facing with the latest version of the plugin.
The Tutorials Tab
There is nothing here in this tab except a bunch of video tutorials. If you are having some difficulty with the configuration, these videos will help you.
If you don’t feel like going through the tutorials, you can always send a support request to these folks and they will resolve your issue.
Okay, that brings us to the end of this WP Rocket walkthrough.
Yes, I will tell you about Imagify!
At the beginning of this WP Rocket Cache review, I said that the plugin will ask you to download and install another plugin called Imagify.
Imagify is an image optimization plugin that can help you to compress and resize images that you upload on your website.
I will recommend that you install this plugin as it will not only help you optimize the images you upload, but also the images that are present in your theme. It can create and serve WebP versions of the images.
It can resize the images and even let you choose between Lossy and Lossless compression. Their Starter Plan is free.
In case you decide to install Imagify, here is what you will see after you install it and activate it using the API key you receive in your email:
The settings area will give you several options that you need to configure. Let’s take a look at them one by one.
Level of optimization: You can select between three levels – normal, aggressive, and ultra. Aggressive is the default option selected and that works perfectly fine. You can decide to go for ultra compression, but I won’t suggest doing that. There is a visual comparison available as well. You can select the compression level after visually comparing the compression or optimization results.
Auto-optimize images on upload: Always select this option to ensure that whenever you are uploading an image to your site.
Backup original images: This is your choice. I usually don’t do this because it keeps eating up the vital server storage space. You can always keep the original images on your local computer.
Keep all EXIF data from your images: If you keep this data, you will be using lossless image compression. If you decide to remove the EXIF data, you will be choosing lossy image compression. I will recommend that you select lossy image optimization. That will reduce the image weight even further.
That’s not all! There is more in the settings area. Scrolling down, you will find the following:
This is the segment where you can decide whether you want WebP format or not, and if you select WebP, then how exactly do you want to display them. The preferred way is to use the <picture> tag, but for that you have to specify the CDN URL if you are using a CDN.
Also, do not forget that using the <picture> tag can break certain themes. So, make sure that after you implement this, you are testing your website thoroughly. In case using the <picture> tag breaks your site; you can switch to rewrite rules where your website’s .htaccess file will be edited.
You will see other options like resizing images larger than 2560 pixels, adding custom folders and decide whether Imagify should optimize different image sizes that WordPress automatically creates.
Finally, you will have display options where you can decide whether you want to show Imagify menu on the toolbar or not. That’s your choice.
Once you are done configuring, save the changes and then go to the bulk optimizer.
Once you go to the bulk optimizer and click on the big blue button which says IMAGIF’EM ALL. This will kick start the bulk optimization of the images.
Now, let’s take a look at the pricing structure.
WP Rocket Pricing
As I told you earlier, WP Rocket is not a free plugin. It is a premium one. You need to purchase it to use it.
Unfortunately, WP Rocket has a subscription-based pricing plan. Irrespective of which plan you choose, you will get one year of updates and support after your initial purchase. After a year, you need to renew. Good news is that renewals take place at a 30% discount!
Here is a quick list of different plans:
|Number of sites
WP Rocket caching plugin is the only plugin that matches the features offered by LiteSpeed Cache. The thing is LiteSpeed Cache is completely free. On the downside, it works best with LiteSpeed Enterprise or OpenLiteSpeed web server. To make it work with NGINX or Apache, you will need to use QUIC.cloud CDN.
WP Rocket has no such restriction. It can work will all! You can use Apache, NGINX, LiteSpeed Enterprise or OpenLiteSpeed, or Windows server. Yes, WP Rocket is powerful, and just like every other caching plugin it works best when combined with a CDN.
If you have the budget, you can use WP Rocket as your go-to caching solution for your WordPress site. Yes, I do recommend WP Rocket!