Feature Comparison

All the cache plugins support CSS and JS minify, combine, async/defer, CDN integration, browser caching, Gzip etc. So I’ve excluded them from the list.

Autoptimize LiteSpeed W3TC WP Fastest Cache Swift Performance WP Rocket Pricing model Free Fee Freemium Freemium Freemium Premium Easy of use 7/10 6/10 4/10 7/10 6/10 10/10 Full Page Cache ❌ ✅ ✅ ✅ ✅ ✅ Inbuilt Image Optimization ✅ (via ShortPixel CDN) ✅ ❌ ✅ (paid) ✅ (paid) ❌ Lazy loading images ✅ ✅ ❌ ✅ ✅ ✅ Optimize YouTube embeds ❌ ✅ ❌ ✅ ✅ ✅ Generate Critical CSS per page ✅ (via addon $7/m) ✅ ❌ ❌ ✅ ✅ Disable cache per page/post ❌ ✅ ❌ ❌ ✅ ✅ Database Optimizer ❌ ✅ ❌ ✅ (paid) ✅ ✅ Allow plugins per page ❌ ❌ ❌ ❌ ✅ ❌ Varnish integration ❌ – ✅ ❌ ✅ ✅

Most of the features are self-explanatory. But here some hard terms:

Full-page cache – If the entire HTML is generated and saved, then that’s called full page cache. Some plugins like Autoptimize can create cached versions of CSS, JS etc, but it won’t generate HTML and cache it. If full page cache is enabled most probably PHP won’t be even executed on each request.

Why you shouldn’t use Autoptimize alone? As you have already noticed in the feature comparison, Autoptimize doesn’t have the full page caching. So it’s recommended to use it along with any other full page cache plugins



Critical CSS (discussed in detail below) – The CSS that is required just for rendering the above fold of a page. Usually, critical css is inlined in the top and original css files are asynchronously loaded. This helps to render the webpage fast.

Varnish – Varnish is a cache layer, installed in the webserver. The HTML responses can be cached in memory (RAM) and served from there. This results in very fast response time and less load to the server. It’s important to clear varnish cache when the WordPress cache is purged.

Load Time Comparison

In order to test different cache plugins, I created a staging environment for my blog – staging.wpspeedmatters.com. Then installed each plugin one by one and tested it via GTmetix. Links to the reports of each is in the table.

I’ve removed all third-party scripts (except GA) and CDN integration since their speed is independent of my server and may vary at any point of time. This can lead to inaccurate results.

Autoptimize LiteSpeed W3TC WP Fastest Cache Swift Performance WP Rocket TTFB 0.4s 0.1s 0.4s 0.1s 0.1s 0.1s First Paint 0.9s 0.4s 1.0s 0.6s 0.3s 0.3s Contentful Paint 0.9s 0.4s 1.0s 0.7s 0.5s 0.3s Onload 1.1s 0.7s 1.2s 0.8s 0.6s 0.4s Fully load 2.1s 1.7s 2.4s 1.9s 1.6s 1.5s

TTFB – Time to first byte. The taken to get the first piece of response from the server, including network latency.

First Paint – First paint time is the first point at which the browser does any sort of rendering on the page. Depending on the structure of the page, this first paint could just be displaying the background colour (including white), or it could be a majority of the page being rendered.

Contentful Paint – This timing aims to be more representative of your user’s experience, as it flags when actual content has been loaded in the page, and not just any change – but it may often be the same time as First Paint.

Onload – The time at which JavaScript window.onload event fires. This occurs when the processing of the page is complete and all the resources on the page (images, CSS, etc.) have finished downloading.

Fully Load – Even after downloading everything, some scripts may request additional data after Onload. Examples are Google Analytics (to send data), lazy loaded images, QuickLink. Fully load time includes time taken for these requests too.

Why you should ignore the fully loaded time

Have you analyzed your site through Google PageSpeed Insights and noticed that it never shows you the fully loaded time? This what they give:

From a user’s perspective, a fast website is fast when are able to see something. They don’t care if Google Analytics is sending data in the background or image outside viewport have started downloading etc.

Instead of focussing on fully load time, give more importance to render time (first contentful paint, first meaningful paint, time to interactive etc).

Which plugins can improve render time?

In order to load the website quickly and display the contents fast, following should be the order:

Download and parse HTML Apply style from inlined critical CSS (most important) Download JavaScript and CSS files (should be at the bottom or defer) Download images and so on

What is Critical CSS and why it’s important?

Critical Path CSS is the CSS that is required to render the above fold content of each web page. As the name suggest the “critical” css that helps browser to paint fast and render it, before downloading the complete css files.

Usually, critical path css in inlined in the head and the original css file is loaded asynchronously or in the footer for the best user experience.

without critical css path

with critical css path

Cache Plugins that can Generate Critical CSS

As described in the article, only external services can generate Critical CSS. Both paid plugins like WP Rocket and Swift Performance do this for each page.

Conclusion – Which is the Best Cache Plugin?

Looking at the features and load time comparison, both WP Rocket and Swift Performance outperformed all other free cache plugins.

I recently ran a poll in our Facebook Group. Here are the results:

Here is a flow chart that can give you a better idea:

WP Rocket vs Swift Performance?

For advanced users, Swift Performance can be tuned to achieve very good results. You also get image optimization like ShortPixel. So that’s like killing 2 birds with one stone!

But I use WP Rocket, it’s much easier to use, very fewer options to configure and achieve great performance at the same time.

Which cache plugin do you use? Do you want me to add any other plugins to the comparison?

Comment below if you’ve any queries or feedback. I read and reply to each of them within 8 hours!