The 5 Best WordPress Caching Plugins for Speed Up Any Websites in 2020

5-Best-WordPress-Caching-Plugins-wpfairs

A caching plugin stores a built copy of your pages so WordPress does not have to run PHP and query the database for every visitor. That is the whole mechanism, and it is why caching is usually the single largest speed win available to a WordPress site. Below: what these plugins actually do, the pages they must never cache, and five free options with the page-load figures measured for this article.

This is an archive post from 2020

The plugin versions, screenshots and timing figures below were current in March 2020 and are kept for the record. Do not pick a caching plugin from them — several of these plugins have changed substantially since, and the measurements were taken on a site and a host that no longer exist. For a current comparison that accounts for Core Web Vitals and WooCommerce exclusions, read WooCommerce caching plugins: what breaks and what works instead. The explanation of how caching works, and what cannot be cached, has not changed and is still worth reading.

What a WordPress caching plugin actually does

Without caching, every visit means work: your server runs WordPress, WordPress queries the database, PHP assembles the HTML, and only then does the browser get something to render. Two people loading the same post cause that work to happen twice.

A page cache saves the finished HTML the first time and serves that copy to everyone after, skipping PHP and the database entirely. That is where the speed comes from. Most plugins in this category then layer on extras: browser cache headers, minification, GZIP compression, CDN integration, and cache preloading so the first visitor does not pay the cost of building the page.

One thing to check before you install anything: if you are on managed WordPress hosting, your host is probably caching at the server level already, and adding a plugin on top can cause stale pages rather than faster ones. Ask your host what they cache before you add a second layer.

What page caching breaks, and how to avoid it

Page caching works because the same HTML is correct for every visitor. The moment that stops being true, caching becomes a bug. Anything personalised — a logged-in dashboard, a form with a nonce, a cart — must be excluded.

The WooCommerce cart and checkout pages are the classic example. Their contents differ per visitor by definition, so serving a cached copy shows one customer another customer’s totals or an empty cart that will not update. Most competent caching plugins exclude the standard WooCommerce pages automatically — WP Rocket does, for instance — but you should verify it rather than assume it, and any custom cart, account or quote page you built yourself needs excluding by hand.

Worth knowing if you run a store: WooCommerce’s newer Cart and Checkout blocks move that dynamic content into Store API requests rather than the page HTML, which changes where the uncacheable part lives without making the checkout cacheable. WooCommerce block checkout vs shortcode: which to use covers that difference and what else changes when you switch.

Five free WordPress caching plugins, as tested in 2020

The five tested here, with page load measured using WebPageTest. Treat the ordering as a 2020 snapshot rather than a recommendation.

  1. WP Super Cache
  2. W3 Total Cache
  3. WP Fastest Cache
  4. WP Rocket
  5. Cache Enabler

1. WP Super Cache

WP Super Cache plugin page
WP Super Cache

WP Super Cache comes from Automattic, the company behind WordPress.com and Jetpack. Its appeal is simplicity: you can turn caching on from one screen and be finished.

There are two configuration paths, Easy and Advanced. Easy is a single toggle. Advanced exposes CDN integration, cache exclusions, browser caching and cache preloading.

WP Super Cache easy settings screen
WP Super Cache, Easy settings
WP Super Cache advanced settings screen
WP Super Cache, Advanced settings

2. W3 Total Cache

W3 Total Cache plugin page
W3 Total Cache

W3 Total Cache has the most options of anything in this list, covering page cache, minification, database cache, object cache, opcode cache, fragment cache and CDN integration.

W3 Total Cache settings menu
W3 Total Cache, general settings

Every menu item has its own settings page, which is either the point or the problem depending on who you are. If you know what object cache and database cache mean and you want control over each layer, this is the one. If you do not, you will almost certainly misconfigure something, and one of the simpler plugins here will give you most of the benefit with none of the risk.

3. WP Fastest Cache

WP Fastest Cache plugin page
WP Fastest Cache

WP Fastest Cache sits between the two above: considerably simpler than W3 Total Cache, with more on offer than a single toggle. Page caching plus minification, file concatenation, browser caching, GZIP compression and cache preloading.

WP Fastest Cache settings screen
WP Fastest Cache settings

Setup is a list of checkboxes for the features you want. The Delete Cache and Exclude tabs are where you clear the cache and keep specific pages out of it — the Exclude tab is the one to visit if you run a store.

4. WP Rocket

WP Rocket plugin page
WP Rocket

The one paid plugin in this list, and the only one with no free version on WordPress.org. It turns page caching on the moment you activate it, with no configuration required.

WP Rocket dashboard
WP Rocket dashboard

Beyond page caching it covers minification and concatenation, cache preloading, browser caching, database optimisation, GZIP compression, deferred JavaScript, DNS prefetching and lazy loading. Whether that is worth paying for depends on how much configuration time you want to spend, because the free plugins above reach a similar place with more effort.

5. Cache Enabler

Cache Enabler plugin page
Cache Enabler

Cache Enabler comes from KeyCDN and is deliberately minimal. Three decisions and you are done: how long the cache lives, when it clears automatically, and what to exclude.

Cache Enabler settings screen
Cache Enabler settings

Being simple is not the same as being ineffective. For a content site with no store and no membership area, a plain page cache is most of what caching has to offer.

The 2020 page load results

ConfigurationPage load
No caching plugin2.742 s
WP Super Cache2.339 s
W3 Total Cache2.413 s
WP Fastest Cache2.310 s
WP Rocket2.355 s
Cache Enabler2.359 s
Measured with WebPageTest in March 2020 on a single site and host. The spread between the five is 0.049 s — well inside run-to-run variation, so read this as “all five helped and none of them separated from the others”, not as a ranking.

That is the honest reading of the table, and it is the same conclusion most caching comparisons reach if they report their numbers rather than their preferences: the gap between having a page cache and not having one is large, and the gap between any two reasonable page caches is noise. Pick on configuration effort and on whether it handles your dynamic pages correctly, not on a tenth of a second.

Where to go from here

Leave a Reply to This Post