Ready to configure the best WP Rocket Settings?
WP Rocket was rated #1 in numerous Facebook polls because it comes with more speed optimization features than any other cache plugin. That’s why it usually yields better results in PageSpeed Insights and GTmetrix. It also means you don’t need a bunch of extra speed plugins.
The ideal WP Rocket settings (click on image to enlarge):
If you haven’t bought WP Rocket yet, I would appreciate you using my affiliate link. I also donate a good chunk of my affiliate income to charity. You can get 10% off by going to their coupons page, sign up for their email list, and they’ll email you a coupon.
Leave both options off unless you want to be a beta tester or let WP Rocket collect your data anonymously which results in a (very small) performance decrease. RocketCDN is covered in the CDN section which I recommend using instead of Cloudflare. You can clear the cache or regenerate critical CSS if you make design/plugin changes but they don’t appear on your site.
These are good cache settings as long as you don’t use a plugin for your mobile website and don’t allow multiple users to login to your site (eg. bbPress). I increased cache lifespan from 10 to 24 so the cache doesn’t have to refresh as often, which saves a little bit on server resources.
Mobile Cache – enables caching for mobile devices. Only enable “separate cache files for mobile devices” if you use a plugin for your mobile website (like the free version of WP Touch).
User Cache – leave disabled unless you have multiple users logging into your website (bbPress for example) where there is user-specific content. It gives each user their own cached version.
Cache Lifespan – a lower number means the cache will refresh more frequently, but it consumes more resources. A cache lifespan with a higher number means it won’t refresh as frequently, but saves resources. Do you care more about your cache building frequently or saving server resources? Since I only publish a couple posts a week, I increased it to 24 hours.
3. File Optimization
Exclude CSS + JS – if for some reason a minification option messes up your site layout, locate the problematic file and add it here. See WP Rocket’s post on resolving issues with minification.
Optimize CSS Delivery – your page will start loading without CSS styles which is a depreciated item in PageSpeed Insights. WP Rocket automatically generates this for you, but often, it doesn’t work properly. Follow these steps to make sure optimized CSS delivery works properly.
- Search “rocket-critical-css” in your source code to make sure it’s working.
- If it doesn’t appear, regenerate critical CSS in WP Rocket and page builders (if applicable).
- Run your site through PurifyCSS.
- Download the combined, purified, and minified CSS.
- Paste CSS code in the “fallback critical CSS” field (image below).
- Disable optimize CSS delivery on individual pages/posts if needed.
- Exclude problematic files from CSS delivery using WP Rocket’s helper plugin.
Remove jQuery Migrate – removes the jQuery migrate file which automatically loads in WordPress (and creates an additional request) but is usually not needed on most websites.
Install Autoptimize with these settings:
Most sites should enable everything especially in the lazyload settings. If you use embedded YouTube videos on your site, replacing the YouTube iframe with a preview image can cut load times in half since videos are very heavy. You’ll also still need a plugin to create WebP images.
Lazy Load – delays loading of images, iframes, and videos until you scroll down the page and they become visible. This significantly reduces initial load times and HTTP requests, but constantly loading images as you scroll can be annoying (test it out for yourself). Always lazy load videos and replace iframes with a preview image since embedded videos are very heavy.
Pro tip on lazy loading videos in Elementor – Adam from WP Crafter made a YouTube video on using Elementor to load videos faster. When I tested it, the results were great. Not only was I able to embed videos with 0 GTmetrix errors, but I could also customize colors, play buttons, and overall branding of videos. Unfortunately my blog doesn’t use Elementor (only my pages), but I recommend following his video if yours does – especially if you see GTmetrix errors when enabling WP Rocket’s lazy loading.
Add Missing Image Dimensions – WP Rocket will add missing width + height attributes to HTML images which should fix nearly all specify image dimension errors in speed testing tools.
Disable WordPress Embeds – similar to Cloudflare’s hotlink prevention, it prevents other sites from embedding your content on their site which sucks up bandwidth and stresses your server.
WebP Caching – enable if you’re using WebP images. If you’re not using WebP images already, you should since they load faster and look nicer than JPEG + PNG. Using WebP also fixes the serve images in next-gen format item in PageSpeed Insights. You will still need a plugin that converts images to WebP. I use WebP Converter For Media plugin but Imagify, ShortPixel, and most image optimization plugins have an option to convert images to WebP (TingPNG does not unfortunately). Finally, check your image files in the source code to make sure they use .webp.
Preloading is done automatically by WP Rocket when you activate it with your XML sitemap. Prefetching and preloading fonts are especially important for optimizing fonts and third party scripts which you can find in the Reduce DNS Lookups section of your GTmetrix YSlow report.
Preloading – tell browsers to start fetching resources that will be needed soon.
Preload Links – according to WP Rocket’s article, this feature makes it so if a user hovers over, or touches, a link for 100ms or more, the HTML of that page will be fetched in the background, so that when they actually click the link, the page will appear to load nearly instantly.
Prefetch DNS Requests – run your site through GTmetrix and look at the Reduce DNS Lookups section in your YSlow report. You will see all third party scripts loading on your site which can be anything from Google Fonts to Google Analytics, Maps, ASense, Tag Manager, YouTube, or even social media platforms if you embed social posts or use social share buttons on your blog.
Grab all those URLs from your report and paste them into the Prefetch DNS Requests section of WP Rocket. This will help browsers anticipate those external requests and load them faster.
//maps.googleapis.com //maps.gstatic.com //fonts.googleapis.com //fonts.gstatic.com //use.fontawesome.com //ajax.googleapis.com //apis.google.com //google-analytics.com //www.google-analytics.com //ssl.google-analytics.com //www.googletagmanager.com //www.googletagservices.com //googleads.g.doubleclick.net //adservice.google.com //pagead2.googlesyndication.com //tpc.googlesyndication.com //youtube.com //i.ytimg.com //player.vimeo.com //api.pinterest.com //assets.pinterest.com //connect.facebook.net //platform.twitter.com //syndication.twitter.com //platform.instagram.com //referrer.disqus.com //c.disquscdn.com //cdnjs.cloudflare.com //cdn.ampproject.org //pixel.wp.com //disqus.com //s.gravatar.com //0.gravatar.com //2.gravatar.com //1.gravatar.com //sitename.disqus.com //s7.addthis.com //platform.linkedin.com //w.sharethis.com //s0.wp.com //s1.wp.com //s2.wp.com //stats.wp.com //ajax.microsoft.com //ajax.aspnetcdn.com //s3.amazonaws.com //code.jquery.com //stackpath.bootstrapcdn.com //github.githubassets.com //ad.doubleclick.net //stats.g.doubleclick.net //cm.g.doubleclick.net //stats.buysellads.com //s3.buysellads.com
Preload Fonts – copy your font files from GTmetrix Waterfall (they have a tab for font files) and paste them in WP Rocket’s preload fonts field. Retest your website and they should load faster.
Preload your largest contentful paint image – WP Rocket doesn’t let you preload other files (you may see a recommendation in PSI to preload your first contentful paint image). To do this, you can add the following code to your header or use Pre* Party Resource Hints or Perfmatters.
What about preconnect? – WP Rocket automatically preconnects your CDN URL (in the CNAME field of your CDN settings) and fonts.gstatic.com if you’re using a CDN URL and Google Fonts. WP Rocket does not let you add other domains to preconnect (these should be used sparingly anyway), but if you want use preconnect to establish early connections to other third-party sites, use Pre* Party Resource Hints, Perfmatters, or add this code to your header.
6. Advanced Rules
Advanced Rules are mainly for eCommerce sites, however WP Rocket is already compatible with most solutions like WooCommerce and BigCommerce. But if you’re having issues with cart widgets, caching, or something related to eCommerce, WP Rocket has documentation for that.
Otherwise, leave this blank.
Never Cache URLs – if you’re using an eCommerce shopping cart that is not supported by WP Rocket, add your cart and checkout pages here which will exclude these pages from the cache.
Never Cache Cookies – same principle as previous option only based on cookies.
Never Cache User Agents – prevent Googlebot or other user agents from caching pages.
Always Purge URLs – let’s say you have a blogroll on your homepage. If you create a new post, you want that homepage blogroll updated immediately by emptying the homepage cache. That’s what this setting does, however WP Rocket automatically clears the cache for your homepage, categories and tags once new content is created… so there is usually no need for this. But if there are other page’s cache you want cleared when new content is posted, add it.
Cache Query Strings – mainly used to cache search result pages + price filters on eCommerce.
Scheduling database cleanups keeps your site and admin fast, just know what you’re deleting!
- Revisions – old versions of your posts which are saved when you hit “Publish.”
- Auto Drafts – automatically saved versions of your post if you don’t hit “Publish.”
- Trashed Posts – posts and drafts you deleted.
- Spam Comments – comments marked as spam.
- Trashed Comments – comments marked as trash.
- Expired Transients – transients that have expired and are still in your database.
- All Transients – stores data that takes a long time to retrieve (eg. social counts on blogs).
- Optimize Tables – optimizes database tables to run more efficiently.
- Automatic Cleanup – how often you want WP Rocket to clean your database.
Delete Unused Plugin Tables (Not With WP Rocket) – one thing WP Rocket doesn’t do is let you go through your individual database tables and delete tables left behind by old plugins that aren’t installed anymore. I recommend installing WP-Optimize and going through your tables every so often, especially if you deleted plugins (plus it shows you the actual size of the tables). The tables that say “not installed” are the ones that were left behind by old, uninstalled plugins.
CDNs are great if you have visitors far away from your origin server. They mirror your site on multiple data centers which reduces the geographic distance between your server and visitors.
Which CDN is best?
- BunnyCDN – higher performance CDN highly recommended in multiple Facebook Groups (see this thread, this thread, and this thread). Instructions require creating a pull zone then copy/paste your CDN URL into WP Rocket. Or just use the BunnyCDN plugin.
- Cloudflare – free, but not a true CDN since Cloudflare doesn’t serve assets from a CDN URL. Great for smaller websites, however there are higher performance CDNs out there. If using Cloudflare, it’s worth $5/month for their APO. Be sure to add a cache everything page rule, enable WAF, hotlink protection, and set the browser cache expiration to 1 year.
- RocketCDN – paid CDN, easiest to setup through WP Rocket, uses StackPath’s data centers, but RocketCDN doesn’t always perform well and can actually increase TTFBs.
- Check Their Data Centers – CDNs have data centers all over the world. If one has data centers heavily concentrated in the area you want, that is something worth considering.
The CDN tab is for RocketCDN, BunnyCDN, and CDNs that use a CDN URL. It’s not for Cloudflare which requires changing nameservers then using the Cloudflare tab.
Step 1: Sign up for a CDN (I recommend BunnyCDN).
Step 2: Create a pull zone and choose the locations you want.
Step 3: Copy your CDN URL.
Step 4: Paste CDN URL into WP Rocket’s CDN CNAME(s) field.
Testing CDNs – since Cloudflare is set up differently and requires changing nameservers, the “content delivery network” in GTmetrix will still be red (but it will be green for other CDNs). That doesn’t mean Cloudflare isn’t working; use the Claire Chrome Extension to make sure it is.
Exclude Files From CDN – lets you serve files locally instead of the CDN. Usually, these files come from plugins designed to disregard cross domain load. In most cases, there is no need.
Instead of using the Heartbeat Control plugin, WP Rocket has it built-in.
The WordPress Heartbeat API tells you when other users are editing a page/post and shows you real-time plugin notifications. You usually want to disable Heartbeat completely, or at least reduce it, since it consumes resources and contributes to CPU overages (eg. on SiteGround).
If you’re using any of these services, activate it’s add-on.
Google Tracking – fixes the “leverage browser caching” issue for Google Analytics in your GTmetrix report by hosting Google Analytics locally. If it’s still not 100%, use the Flying Analytics plugin. If you’re using Google Analytics, remember to optimize it in the Preload tab.
Facebook Pixel – enable if using Facebook Pixel to host it locally. If you’re using Facebook Pixel, remember to optimize it in the Preload tab.
Varnish – configured automatically depending on whether your host uses Varnish (Cloudways, Flywheel, WP Engine). Otherwise if they don’t use Varnish, this will be disabled automatically.
Cloudflare – enable if using Cloudflare.
Synchronize Sucuri Cache – enable if using Sucuri. This automatically clears Sucuri’s cache whenever you clear WP Rocket’s cache which helps keep your content synchronized. For the Sucuri Firewall API Key (For Plugin), login to Sucuri here, select your website, go to the API tab, then copy your API Key (For Plugin) and paste in WP Rocket when you expand the Sucuri field.
This section is only if you’re using Cloudflare instead of another CDN.
Sign up for Cloudflare and you will come to a page where they assign you 2 nameservers.
Change nameservers in your domain registrar to the one’s Cloudflare gave you.
Add your Cloudflare information to WP Rocket.
- Global API Key – found in your Cloudflare dashboard.
- Account Email – same email you used to sign up for Cloudflare.
- Zone ID – found in your Cloudflare dashboard.
- Domain – your website’s domain name.
- Development Mode – use when making a lot of code changes to your site.
- Optimal Settings – activates optimal Cloudflare settings: minification, aggressive caching, and deactivates Rocket Loader for better compatibility. Most common issue is Rocket Loader, but I also noticed it turns on email decoding which made my GTmetrix report worse, so I don’t use this (and instead configured Cloudflare in their dashboard).
- Relative Protocol – sometimes if people download files from your site, there are no contents in them. Leaving this option OFF will prevent this from happening.
- Clear All Cloudflare Cache Files – do this after you’re done configuring WP Rocket.
Automatic Platform Optimization – definitely worth $5/month since dynamic parts of your site (HTML) will also be cached which can result in much faster TTFBs. You can enable APO in your Cloudflare speed settings or by using the Cloudflare plugin. See their setup instructions.
Configure Cloudflare Settings In The Dashboard – a lot of people have been asking about Cloudflare’s dashboard and how to configure it. Here are the things I recommend you do.
- Enable Brotli (Speed Settings)
- Enable and test Railgun (Speed Settings)
- Test Rocket Loader (Speed Settings) but can often break sites
- Enable hotlink protection (Scrape Shield Settings)
- Setup page rules for WordPress (Page Rules Settings, below are the top 3 I recommend)
Page Rule 1: Cache Everything And Force HTTPS – cache your website aggressively.
Page Rule 2: Secure The WordPress Admin And Bypass Cache – sets security level of the admin to high and bypasses Cloudflare’s cache in the admin, since you don’t want CDNs (or apps + performance features like Rocket Loader) running inside the admin.
Page Rule 3: Decrease Bandwidth Of WP Uploads – since the content in your WP Uploads folder does not change frequently, increasing Edge Cache TTL to a month can save on bandwidth, since the WP Uploads folder cache won’t be refreshed as often.
As I mentioned, Cloudflare won’t fix the content delivery network item in GTmetrix because of the way it’s setup. Instead, use the Claire Chrome Extension to make sure Cloudflare is working.
12. Image Optimization
WP Rocket recommends Imagify because it’s their plugin.
But even when you select lossless compression, it’s definitely not lossless and neither is ShortPixel. I used both for many months and switched to TinyPNG which I’m very happy with. The only thing about TinyPNG is that it doesn’t support WebP in which case you will need a plugin like WebP Converter For Media. But I find the quality is much better than with Imagify.
Import and export your WP Rocket settings, or rollback to the previous version of WP Rocket.
Export Settings – export your settings to use on multiple sites.
Import Settings – import your pre-configured settings here.
Rollback – if you update to a new version of WP Rocket and it causes issues, this will fall back to the previous version.
Enable Google Font Optimization – combines fonts into 1 single file, ensures text remains visible while loading fonts, and preconnects fonts (tells browsers you intend to load Google Fonts). Remember to prefetch and preload fonts in the Preload tab and be minimal with the number of fonts, weights, and font icons. All these have an impact on your font’s load times.
Tip For “Serving Static Assets With An Efficient Cache Policy”
If you’re using WP Rocket and see “serve static assets with an efficient cache policy” in PageSpeed Insights, this means you need to set your browser cache expiration to 180 days.
If you view the code WP Rocket adds to your .htaccess, the cache expiration for images and fonts is only 4 months (about 2 months short of Google’s 180 day requirement). If you see this recommendation in PSI, you simply need to change the expiration to 180 days (about 6 months).
Edit your .htaccess (you can use Htaccess File Editor if you don’t know how). Change the expiration from 4 months to 180 days. You may only want to do this for file types being flagged.
Remember, you can only set a browser cache expiration for resources hosted on your site (images, fonts, etc). You cannot control the browser cache expiration for third-party code.
WP Rocket = #1 Rated Cache Plugin
WP Rocket comes with many features most cache plugins don’t (see below). That means if you were to use other cache plugins, you would need to install about 5-10 extra plugins to get these features when WP Rocket already has them built-in (more features, yet less plugins on your site). That’s also why WP Rocket yields better results in GTmetrix/Pingdom and is what I use.
WP Rocket includes:
- Database cleanup – or use WP-Optimize
- CSS/JS optimization – or use Autoptimize
- Host Google Analytics locally – or use Flying Analytics
- CDN URL integration – or use BunnyCDN / CDN Enabler
- Heartbeat control – or use Heartbeat Control / manual code
- Preload links/instant page – or use Perfmatters / Flying Pages
- Lazy load images/videos – or use Optimole / WP YouTube Lyte
- Host Facebook Pixel locally – no other plugin does this that I know
- Prefetch/preload – or use Pre* Party Resource Hints / manual code
- Font-display:swap – or use Swap Google Fonts Display / manual code
WP Rocket is #1 in most Facebook polls (click on image to enlarge):
I tested WP Rocket, WP Fastest Cache, and W3 Total Cache… making sure all cache plugin settings were configured optimally. WP Rocket won BUT this with the lazy load feature turned ON. The other cache plugins do not have a lazy load option and when I turned lazy load off in WP Rocket, I got a .5s load time… the exact same as WP Fastest Cache. I didn’t see a huge difference when clicking through my pages – both loaded super quickly. I know Pingdom can show different load times during different tests, but I just wanted to share my own experience.
WP Rocket (.406)
WP Fastest Cache (.527)
W3 Total Cache (.619)
Cloudways: Who I Recommend For Hosting
Most hosting recommendations are honestly garbage.
Join the WordPress Hosting Facebook Group to get unbiased feedback from knowledgeable people who’ve been around the block. I won’t tell you to switch hosts if you don’t need to, so run your website through Lighthouse and check for slow server response times (TTFB) over 600ms.
If your TTTFB is slow, many people in Facebook groups (including myself) use Cloudways WordPress Hosting. Specifically their DigitalOcean or Vultr High Frequency plan. Sure, it’s $10-$13/month, but we’re talking about speed, TTFB, and core web vitals – not being cheap.
Take a look at conversations, migration results, and polls posted in some of these Facebook groups. Or look at Backlinko’s PageSpeed Test where he found SiteGround has a slow TTFB. You already know GoDaddy and EIG brands (Bluehost and HostGator) are obviously not good. Hosting affects TTFB, LCP, and other web vitals which will be a ranking factor as of May, 2021.
Here are 22 people who moved to Cloudways and posted their results (click image to enlarge):
Recent Facebook polls taken on “the best hosting” (click image to enlarge):
I use Cloudways DigitalOcean who is #1 in most recent Facebook polls.
Not saying hosting is everything, but it helps.
This is a simple Pingdom test to measure TTFB + load times of 16 WordPress hosts. I installed the same Astra Starter Site on 16 hosting accounts (using separate domains) while measuring Pingdom load times for 1 week at 30 minute check intervals, as well as TTFB in various tools. No caching or CDN (with same plugins) are being used since I’m strictly comparing the server. Some domains are still live (cwdoserver.com is hosted on a $10/month Cloudways DO plan and stgrndserver.com is on SiteGround GrowBig). I cancelled most accounts since it got expensive. Even when browsing through those 2 sites or running your own tests, you’ll see the difference.
I use Cloudways because:
- My TTFB is consistently under 200ms.
- Free migration service made it easy to try them.
- They continuously update their speed technology.
- Multiple caching levels (Redis, memcached, Varnish).
- Support is great as reflected in their Trustpilot reviews.
- Free SSL, staging, bot protection, cron job management.
- Monthly pricing with no long-term contracts or high renewals.
- They have a Cloudways Users Facebook Group to ask questions
- Choice of 5 cloud providers: DO, Vultr, AWS, Google Cloud, Linode.
- Their community manager answered my questions when signing up.
- Launching a server yourself and using their migrator plugin is also easy.
- Ain’t nobody got time for shared hosting when trying to pass web vitals.
Affiliate Disclaimer – if you sign up for Cloudways using my affiliate link, I seriously appreciate it. I try to support my recommendations with real, unbiased evidence. I also make donations ($6,000 to GoFundMe so far) and your support would help. It’s easy to request a free migration and promo code OMM25 gets you 25% off the first 2 months.
Watch My WordPress Speed Optimization Video
Here’s my full WordPress speed guide, or watch my video. It’s a 44 minute video but I cover pretty much everything (timestamps in video description) and you will learn lots of good stuff.
FAQs / Documentation
I spent many hours digging through their documentation to make sure this tutorial uses the best WP Rocket settings, but they are still extremely helpful if you haven’t checked them out.
There are also video tutorials in the Tutorials tab to help configure your WP Rocket settings.
Tutorials I found the most helpful:
- Getting Started
- My Site Is Broken
- Hosting Compatibility
- Using WP Rocket With A CDN
- Using WP Rocket With Cloudflare
- Resolve 500 Internal Server Error
- Resolving Issues With Minification
- Using WordFence With WP Rocket
- NGINX Configuration For WP Rocket
- Using iThemes Security With WP Rocket
- How To Check If WP Rocket Is Caching Your Pages
Frequently Asked Questions
What's the best way to configure WP Rocket?
The most important steps are to test each setting in the file optimization tab, setup a CDN, disable heartbeat, and take advantage of prefetch and preload.
How do I use a CDN with WP Rocket?
If using RocketCDN (powered by StackPath), sign up through the prompt in WP Rocket. If using Cloudflare, you will change nameservers. If using another CDN like BunnyCDN or KeyCDN, you will copy/paste your CDN URL into WP Rocket.
How do I eliminate render-blocking resources in WP Rocket?
What other speed optimization plugins do you need besides WP Rocket?
You still need an image optimization plugin like ShortPixel, font optimization (eg. OMGF), and Asset CleanUp or Perfmatters to selectively disable plugins. Autoptimize gives you better control of async/defer and can help you eliminate render-blocking resources issues.
What's the best free alternative to WP Rocket?
The LiteSpeed Cache plugin is the best free alternative but requires a LiteSpeed server. Otherwise, W3 Total Cache is a free alternative, however it's also difficult to configure.
What is WP Rocket's pricing?
$49/year for 1 site, $99/year for 3 sites, and $249 for unlimited sites. You can get a 10% discount by signing up for their email list on WP Rocket's coupons page.
Which image optimization plugin works best with WP Rocket?
Even though WP Rocket recommends Imagify (which is owned by them), ShortPixel is a more popular image optimization plugin.
Still need help? Drop your GTmetrix report URL in the comments and I’ll share my advice.
See Also: My full WordPress speed optimization guide (it’s good, I promise).