Comparison of Best Cache Plugins for WordPress (Free & Paid)


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.

AutoptimizeLiteSpeedW3TCWP Fastest CacheSwift PerformanceWP Rocket
Pricing modelFreeFeeFreemiumFreemiumFreemiumPremium
Easy of use7/106/104/107/106/1010/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.

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 – 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.

AutoptimizeLiteSpeedW3TCWP Fastest CacheSwift PerformanceWP Rocket
First Paint0.9s0.4s1.0s0.6s0.3s0.3s
Contentful Paint0.9s0.4s1.0s0.7s0.5s0.3s
Fully load2.1s1.7s2.4s1.9s1.6s1.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:

fcp fmp google psi

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:

  1. Download and parse HTML
  2. Apply style from inlined critical CSS (most important)
  3. Download JavaScript and CSS files (should be at the bottom or defer)
  4. 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.

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:

cache plugins poll

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

wordpress cache plugins flow chart

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!

swift performance

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

wp rocket

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!

You May Also Like