Tired of people asking you what the “best” cache plugin is (or are you one of those people)? Well here ya go.
I have extensive tutorials for almost every one of these and have spent hundreds of hours playing with them (going back to one of my first tutorials on W3 Total Cache back in 2013).
How are these ranked? Maybe it’s better if I give examples.
WP Rocket used to be #1 but they’re focusing too much on “scores” and not enough on real world browsing experience (RocketCDN isn’t great either). This is mainly why FlyingPress and LiteSpeed Cache are at the top since they do both. SiteGround Optimizer lacks features, has a history of compatibility issues, and support often blames other themes/plugins. Cloudflare’s plugin is just used to add APO, Breeze is getting better but still needs work, and most free cache plugins like WP Fastest Cache barely address core web vitals and lack way too many features. And finally, you have NitroPack which moves things off the main-thread to give you false scores.
Sound accurate? Let me know if you agree in the comments.
|SG Optimizer||WP Rocket||FlyingPress||LiteSpeed Cache|
|Object cache integration||✓||x||x||✓|
|Remove unused CSS||x||Inline||Separate file||Separate file|
|Preload critical images||x||x||✓||x|
|Exclude above the fold images||By class/type||By URL/class||Automatic||Automatic|
|Lazy load background images||x||Inline HTML||lazy-bg class||x|
|Add missing image dimensions||x||✓||✓||✓|
|Lazy load iframes||x||✓||✓||✓|
|YouTube iframe preview image||x||✓||✓||✓|
|Self-host YouTube placeholder||x||x||✓||x|
|Host fonts locally||x||x||✓||✓|
|Bloat removal (beyond Heartbeat)||x||x||✓ (read details)||x|
|Lazy render HTML elements||x||x||✓||✓|
|Advanced cache control||x||x||x||✓|
|Limit post revisions||Delete all||Delete all||Delete all||Keep some|
|Full page caching||✓||x||x||✓|
|CDN image optimization||x||x||✓||✓|
|CDN image resizing for mobile||x||x||x||✓|
|CDN DDoS protection||x||x||✓||✓|
|CDN bandwidth||Unmetered||Very limited||Unlimited||Unlimited|
|Documentation||Not detailed||Good||Not detailed||Good|
|View tutorial||View tutorial||View tutorial||View tutorial|
FlyingPress is faster than WP Rocket and years ahead of SiteGround Optimizer.
Not only does it address core web vitals, but it’s optimized for real-world browsing speed (as opposed to just “scores”). There are several differences in the way it removes unused CSS, preloads pages, and lazy loads images/iframes compared to WP Rocket or similar cache plugins.
FlyingCDN is faster, more reliable, and cheaper than RocketCDN (StackPath). It uses BunnyCDN’s geo-replication and Bunny Optimizer (see my post on the best WordPress CDNs).
It’s also more stable. Gijo runs several Facebook Groups (including WP Speed Matters) where he gets lots of feedback and answers questions. When issues or feature requests come up, he’s quick to update the plugin. Things work smoothly compared to ongoing issues in other cache plugins: WP Rocket’s remove unused CSS issues, SiteGround Optimizer’s purging issues and lack of Cloudflare documentation, and other features customers have been waiting years for.
The only reason I wouldn’t use FlyingPress is if you’re on LiteSpeed and use LiteSpeed Cache.
- Faster “remove unused CSS”– as Vikas explains in a Facebook post, the remove unused CSS feature in FlyingPress is more effective than WP Rocket. Since this post, Perfmatters added the option for a separate file. Meaning FlyingPress + Perfmatters is most effective.
- Preload critical images – automatically detects images in the viewport and preloads them (Perfmatters also has this). These images are usually different across your site, so manually preloading them is tedious since you don’t want to preload unused images.
- Exclude leading images from lazy load – instead of manually excluding images from lazy load, both FlyingPress and Perfmatters let you set a number (usually 2-3) of images that are typically shown above the fold. Since above the fold images can be different from page to page, this is easier and (usually) more effective. You can also exclude images manually.
- Preload pages – Flying Pages (which is built-in to FlyingPress) does a better job of link preloading than WP Rocket and has smart features to prevent it from causing CPU spikes. Last time I saw, elementor.com was using Flying Pages… that’s when you know it’s good.
- Lazy render HTML elements – similar to lazy loading images only you can lazy load any element (footer, copyright section, and comments are common examples). As shown in the documentation, you’ll open your site in Chrome Dev Tools, copy selectors you want to lazy render, and add them to FlyingPress. I believe it’s the only cache plugin that does it.
- Lazy load background images – FlyingPress lets you add lazy-bg to your background image’s additional CSS to lazy load it. With WP Rocket and many cache plugins, it requires a more tedious process of moving background images to inline HTML, or it’s sometimes not supported at all. This can cause defer offscreen image errors in PageSpeed Insights.
- Host fonts locally – hosting fonts locally is faster especially since you can preload them. Most cache plugins don’t do this and WP Rocket even discourages it which is questionable.
- Self-host YouTube placeholder – if you embed YouTube videos, the thumbnail is loaded from i.ytimg.com which creates an external request. This also means the image can’t be cached, served from a CDN, and will cause errors in PageSpeed Insights. FlyingPress automatically downloads the image and hosts it locally which solves all these problems.
More Optimizations Than Other Cache Plugins
No server-side caching is the biggest con of FlyingPress which is only possible on LSC + SG Optimizer. The only other thing I’d like to see is bloat removal options (Heartbeat, limiting post revisions without deleting them all in the database settings, changing the autosave interval, disabling XML-RPC, etc. But most of these can be done with a few lines of code or Perfmatters. While the documentation is very straightforward, some things can be elaborated on (and spell checked). Otherwise, it does an excellent job of addressing core web vitals and browsing speed.
FlyingCDN uses BunnyCDN which already makes it better than most CDNs (including RocketCDN) when you compare PoPs and Tbps speed, reliability on cdnperf.com, and price. FlyingCDN also uses BunnyCDN’s geo-replication + Bunny Optimizer. This requires no extra configuration outside of setting up FlyingCDN and is usually much cheaper than going to BunnyCDN directly. FlyingCDN is a flat $0.03/GB but on BunnyCDN, you will have to pay for 3 things: CDN ($0.01/GB – $0.06/GB depending on the region), geo-replication ($0.045/GB to use all 5 replicated regions), and Bunny Optimizer ($9.5/mo). Gijo recommends using Cloudflare + BunnyCDN which is also the same setup I use. QUIC is the only comparable CDN in this list IMO.
LiteSpeed Cache has one of the highest ratings on WordPress (4.8/5) with 3+ million installations, so why is it #2?
Mainly because you have to use a LiteSpeed server to get access to all the features. Plus, the settings can be difficult to configure. And realistically, most people don’t configure them the right way since it gets a little technical. But if you’re using a LiteSpeed server and know what you’re doing (or just follow my LiteSpeed Cache guide), then of course you should be using it.
It has a lot going for it between server-side caching, QUIC, and Guest Mode settings which optimizes for first time visitors. Plus, it’s completely free when you use a LiteSpeed server.
- Server caching – SiteGround Optimizer is the only other cache plugin with server-side caching, but LiteSpeed is arguably faster than Nginx (and integrates Redis + memcached).
- Guest Mode + Guest Optimization – improves load time for first-time visitors (see their docs). Guest optimization is even more aggressive with page and image optimizations.
- Public + private caching – LiteSpeed has several options to control the public cache (a page that anyone can see) vs. private cache (a page that is changed based on the visitor).
- ESI – controls how specific elements on dynamic pages are cached. I wouldn’t mess with this unless you really know what you’re doing since ESI can also slow down your website.
- TTL settings – most cache plugins don’t have anywhere close to the TTL settings as LSC.
- UCSS – removes unused CSS with faster method of loading used CSS in a separate file.
- Image optimization – the biggest difference in image optimization is LQIP (low quality image placeholder) which reduces CLS by showing a blurred/minified version of images to be used as the placeholder. It can also compress images, remove EXIF data, and use WebP.
- Gravatar cache – this can be especially helpful when your blog has lots of comments.
- Crawler – crawls your website for pages with an expired cache and refreshes them, but should be used carefully and it’s not recommended unless you know what you’re doing.
QUIC.cloud’s free plan only uses 6 of their PoPs while the paid standard plan uses all 70 PoPs with DDoS protection. Two key advantages of QUIC are HTTP/3 and HTML caching which is similar to Cloudflare’s APO. If you’re using LiteSpeed Cache, the paid version of QUIC is worth it. QUIC also uses true HTTP/3 and is also used for LiteSpeed Cache’s image + page optimizations.
3. WP Rocket
WP Rocket is basically just copying FlyingPress and everyone else at this point (seems like the settings barely changed the last 2 years).
They’re focusing too much on scores and not real world browsing like FlyingPress + LiteSpeed Cache. I also feel like they’re trying to make the plugin so user-friendly that without the helper plugins, it leaves little room for configuration. They also don’t seem to be innovating as much.
Still no image optimization. No more renewal discounts for first-time customers. Ongoing problems with removing unused CSS. People constantly rolling back to previous versions. And the number of unique features just isn’t comparable to FlyingPress + LiteSpeed Cache. Even when compared to LSC, WP Rocket uses marketing jargon while LSC lists technical details. It shows you who their target audience really is: people who value ‘plugin and play’ over results.
WP Rocket is still a great cache plugin and their documentation is the gold standard. But as far as being the gold standard for cache plugins, they’ve been surpassed for the time being. I try to keep this comparison unbiased but can tell you there was a major difference in browsing speed when I moved from WP Rocket to FlyingPress (and many people who switch also say the same).
- Remove unused CSS – as I already mentioned, WP Rocket is slower because it will inline the unused CSS (instead of loading it in an external stylesheet). It’s also not uncommon for it to break websites, increase CPU usage, or not work at all due to the server going down. I wouldn’t consider this unique since FlyingPress / LSC / Perfmatters do it (and are better).
- Helper plugins – WP Rocket has several helpful plugins to customize how things operate.
- CDN features – RocketCDN only serves CSS, JS, and images from the CDN (nothing else).
- Image optimization – you will need to use a separate plugin or CDN to optimize images.
- Preload images – above the fold images should be preloaded but there’s no setting for it.
- Better option to lazy load background images – WP Rocket only lazy loads background images if they’re used in inline HTML (which is why you may see errors for defer offscreen images in PageSpeed Insights). I’m sure most people would find it easier to add a “lazy-bg” helper CSS class which Google also talks about. Optimole also has a similar solution.
- Exclude leading images from lazy load – instead of manually excluding above the fold images based on URLs, it would be better to set a number like FlyingPress or Perfmatters.
- Host fonts locally – I honestly can’t believe WP Rocket tells you not to host fonts locally when Google Fonts create third-party requests, can’t be preloaded, and they violate GDPR.
- CDN Features – RocketCDN lacks features in FlyingCDN, Bunny, QUIC.cloud (read below).
One of the worst CDNs.
RocketCDN uses StackPath which was removed from cdnperf.com (I’m not sure why, but I know StackPath had major issues and managed to get a screenshot before it was removed). It’s only capable of 65 Tbps while BunnyCDN can do 80 Tbps. RocketCDN’s “unlimited bandwidth” for $7.99/mo is misleading since you will get cut off at a certain point, then prompted to pay more. Finally, RocketCDN is only a CDN which files from StackPath (no extra features beyond the CDN). No geo-replication, image optimization, HTML caching, etc. It’s another plug and play feature lacking too many things for it to be comparable to Bunny or QUIC. TLDR: don’t use RocketCDN.
Read my SiteGround Optimizer tutorial and I bet you’ll stop using this plugin.
The only thing I would use it for is caching (dynamic, memcached, Cloudflare), then disable all features and use something else (just make sure you only use 1 plugin for file-based caching). The reason is because it doesn’t optimize for core web vitals nearly as much as other plugins. It also has similar issues I have with SiteGround’s hosting. They like to hype it up to be the best, but in reality it has many critical issues which SiteGround isn’t willing to take accountability for.
Why You Shouldn’t Use It
- Compatibility issues – long history of issues with Elementor, Divi, WooCommerce, WPML, and other plugins if you check the support forums and bad reviews. While all plugins have compatibility issues, it’s SiteGround’s response which makes this an even bigger problem.
- Support constantly blames other themes/plugins – instead of fixing compatibility issues, SiteGround blames other themes/plugins instead of fixing the problem. They also flag reviews when people complain about CPU limits. A complete lack of accountability.
- Long list of lacking features – poor job of addressing core web vitals (see full list below).
- Documentation – little to no documentation about using Cloudflare with the plugin and much of the documentation reads likely sales copy instead of explaining how things work.
- Dynamic caching – full-page caching from Nginx which SG Optimizer is needed for.
- Memcached – object cache stores database queries which SG Optimizer is needed for.
- Cloudflare full page cache – caches HTML and improves TTFB in many global locations.
Lacking Features – too many to list here (see table in the FlyingPress section).
To use SiteGround’s CDN, you must also use their DNS which was previously blocked by Google for 4 days (leading to a lot of money/rankings being lost). While the CDN isn’t part of SiteGround Optimizer, I’m guessing they’ll add it at some point. I would wait a few months (or even years) before considering using it. You never know what issues may arise when you’re on SiteGround.
Cloudflare’s plugin is used to add APO.
It caches HTML which gives you a faster TTFB when testing your site in worldwide locations using KeyCDN. It’s a different caching layer than your cache plugin which means you should leave page caching ON in your cache plugin when using APO. It’s $5/month through Cloudflare.
- Proxy traffic through Cloudflare in the DNS settings
- Purchase APO in Cloudflare
- Install the Cloudflare plugin
- Create an API token and add it to the plugin
- Purge cache in your cache plugin, then in Cloudflare
- Confirm APO is working using uptrends.com
For advanced users, the level of control you get with Swift is awesome.
Just beware of scam reports since many people reported getting billed after canceling their subscription. They still have a Lite version and also started offering a “Swift Extra plugin” which gives you many pro features for free. All you have to do is register your website with Swift. It’s been updated for core web vitals, has a plugin organizer, and does a nice job optimizing images.
You really need to go through the settings to see what this plugin is capable of. Just don’t upgrade to the Pro version unless you’re ready to call your bank, and don’t expect support either. Even though some people like WP Johnny swear by it, it’s hard to get behind a plugin when I can’t trust the developers. This is the main reason I had to push it down to the #6 spot.
- Plugin organizer
- Advanced cache settings
- Warmup + prebuild settings
- Great job with image optimization
- Multiple settings to prevent CPU spikes
- Remove unused CSS
- Preload fonts/images (pro feature)
As much as I love Cloudways, Breeze still needs work. I’ve been giving them feedback so hopefully it helps improve the plugin (feel free to leave a comment with suggestions). So far they’ve added prefetch, heartbeat control, and redesigned the interface which is a good start.
It still has many negative reviews, compatibility issues, and lacking features. I use Cloudways with Cloudflare Enterprise but use FlyingPress instead of Breeze. I’d suggest the same for now.
- Varnish support – purge Varnish when the Breeze cache is purged.
- Move JS files to footer – you really need to be careful when doing this.
- Critical CSS
- Remove unused CSS
- Need more cache + preload settings
- Preconnect third-party fonts + CDN URLs
- Choose font-display: swap, default, auto, etc
- Integration with Cloudflare and Cloudflare Enterprise
- Image optimization (nothing beyond a few lazy load settings)
- Lazy load background images or support an additional CSS class
Have you seen the W3 Total Cache settings recently?
And they still recommend StackPath instead of BunnyCDN (I’ll just assume this is because StackPath pays out cash to their affiliates while BunnyCDN is only able to give out credits).
- Setup guide – tests various caching/optimization methods and shows best results.
- Image service – compress images and serve them in WebP (free credits every month).
- Disable jQuery migrate – you can find this under the “user experience” settings in W3TC.
- Multiple cache methods (Redis, memcached, etc) – this depends on what you’re using.
- Remove unused CSS
- Font optimization
- Database optimization
- Image optimization features
- Preload, prefetch, preconnect
- lazy loading iframes (pro feature)
- Non render-blocking CSS/JS (pro feature)
Used to add Redis object cache to your site, which I definitely recommend.
Most hosts use Redis or memcached. Redis is arguably faster with efficient memory usage and disk I/O dumping, especially for larger sites. Then there’s Object Cache Pro which is even faster. How you add Redis/memcached to your website depends on which host/cache plugin you use:
Step 1: Enable Redis or memcached on your server.
- cPanel – Select PHP Version → Extensions. Then enable Redis or memcached (not both).
- Cloudways – Servers → Settings & Packages → Packages → Install Redis. This will install Redis Object Cache Pro which you can find as a drop-in plugin under Plugins → Drop-ins.
- SiteGround – Site Tools → Speed → Caching → Memcached. Once this is on, the memcached setting in SiteGround Optimizer won’t be grayed out and can be activated.
- RunCloud – use the RunCloud Hub plugin which also has settings for configuring Redis.
Step 2: Enable Redis or memcached in your cache plugin if applicable. LiteSpeed Cache, SiteGround Optimizer, W3 Total Cache, and Swift all have settings for them. For example, in LiteSpeed Cache, you would go to the Object Cache settings, turn on object cache, and set the method to Redis or memcached (if you fail the connection test, you need to enable it on your server in step 1). If your cache plugin doesn’t have settings, use the Redis Object Cache plugin.
10. WP Fastest Cache
This plugin has gone completely stale.
When writing my tutorial on WP Fastest Cache, I spent more time finding workarounds for lacking features than I did showing how to configure the settings. No updates for core web vitals and the changelog doesn’t even have dates (probably because there’s been no major updates).
I don’t understand how it still has 1 million installations and a 4.9/5 star review. Almost every review says “great support” with no substance. There is literally 1 tab that says “settings” while other tabs prompt you to buy the premium version or set up a CDN. Do I need to explain more?
WP Fastest Cache is completely outdated. Sure it’s easy, but only because it lacks so many things. For a free cache plugin, you’re better off using Swift Performance or W3 Total Cache.
There are way too many lacking features to list here since WP Fastest Cache hasn’t even been updated to address core web vitals. You will need to install numerous extra plugins if you want to catch up to most cache plugin features which can lead to compatibility/performance issues.
11. WP Super Cache
Truly a cache plugin, not much else in terms of core web vitals.
No optimizations for fonts, images, CSS, JS, or browser resource hints. Automattic barely maintains this plugin if you check the changelog and no significant features have been added for years, let alone address web vitals. It’s similar to WP Fastest Cache since with the exception of CDN settings, it only has one short page of settings in the Advanced tab. Most cache plugins do a lot more than caching now. Because of so many lacking features, it’s one of my last picks.
“Controversial” is the word I’ll use to describe NitroPack.
It moves things off the main-thread which gives you great scores (because most tools like PageSpeed Insights don’t detect it) but load times are much slower than other cache plugins. Just like WP Rocket, it optimizes more for scores than real world browsing, only way worse. If you test a WordPress site that uses NitroPack, you will probably come to the same conclusion.
If you Google “NitroPack review” and check out Matthew Woodward’s #1 result, the SEO title literally says “How We Got Perfect PageSpeed Scores.” If you look at his test, it says NitroPack eliminated 2/3 of requests and reduced page size by 82%. That’s what I call too good to be true.
I’ve tried every plugin on this list except for NitroPack. I’ve seen websites that use it and have been totally unimpressed. I’ve read the articles explaining why it’s blackhat and it’s also crazy expensive. There are very few things I’m not willing to even test – and NitroPack is one of them.
Do You Agree?
Let me know in the comments. Obviously cache plugins and their speed results can vary on each website, but I at least suggest trying a couple out and see which one works best for you.