Book me

The best WordPress caching plugin is the one that matches your server. If your host runs LiteSpeed, start with LiteSpeed Cache: it is free and its page cache runs inside the web server. On Apache or Nginx without a host-level cache, WP Rocket or FlyingPress give you page caching and front-end optimization in one paid plugin. WP Super Cache and Cache Enabler are free, simple page caches. W3 Total Cache does the most and asks the most of you. And if your host or CDN already caches HTML, you may not need a page cache plugin at all.

This is a comparison of documented features, licensing and hosting requirements, not a benchmark. I don’t publish “we tested 12 plugins” numbers because a result on my test server says very little about your theme, your plugins and your visitors. What I can tell you is where each plugin fits, what goes wrong with it in real audits, and how to measure the choice on your own site. Caching is one step of the broader process in how to speed up WordPress.

What does a WordPress caching plugin actually do?

Most plugins sold as “caching plugins” do two different jobs, and it helps to keep them apart when you compare:

  • Page cache. The plugin saves the finished HTML of a page and serves that copy to the next anonymous visitor, so WordPress, PHP and the database don’t run again. This is the part that lowers TTFB.
  • Cache preloading. A crawler visits your URLs after a purge so the first real visitor doesn’t get the slow, uncached version.
  • Browser cache headers for static files, so returning visitors don’t download the same CSS and images again.
  • Front-end optimization: minifying CSS and JavaScript, removing unused CSS, deferring or delaying scripts, lazy loading images. This is not caching. It changes what the browser has to do, which is where LCP and INP are won or lost.
  • Object cache integration, in some plugins. This only helps when the server runs Redis or Memcached, and it speeds up the requests a page cache can’t serve, like the admin, logged-in users and the WooCommerce cart.

If the difference between these layers is fuzzy, read page cache vs object cache vs edge cache: which one you actually need before you pick a plugin. Many of the caching problems I find in audits come from two tools doing the same job, or from nobody doing the job the site needed.

How do the main caching plugins compare?

The table summarizes what each option documents. Prices and plan limits change, so check the vendor’s page before you buy.

OptionLicenseWhere the page cache worksFront-end optimizationWho it fits
WP RocketPremium, annual license by number of sitesAny server (Apache, Nginx, LiteSpeed)Yes: minify, remove unused CSS, delay JavaScript, lazy loadSites that want one paid plugin with sensible defaults
LiteSpeed CacheFree; QUIC.cloud services have free and paid tiersLiteSpeed Web Server or OpenLiteSpeed, or through the QUIC.cloud CDNYes, extensive; some features run on QUIC.cloudSites hosted on LiteSpeed
FlyingPressPremium, annual licenseAny serverYes: remove unused CSS, delay JavaScript, lazy load, self-hosted fontsPerformance-minded builds that prefer fewer settings
W3 Total CacheFree, with a paid Pro versionAny server; disk, Memcached, Redis or APCu storageMinify and CDN support; more in ProEngineers who want control of each layer
WP Super CacheFree, by AutomatticAny server; Expert mode serves files through rewrite rulesNoBlogs and simple sites that only need a page cache
Cache EnablerFree, by KeyCDNAny serverMinimal (HTML minification)A lightweight page cache paired with a separate optimization tool
Server or edge cachePart of the hosting plan or CDNHost level (Nginx FastCGI cache, Varnish, LiteSpeed) or edge (Cloudflare, QUIC.cloud)No, pair it with an optimization plugin if neededManaged hosting and sites with visitors far from the server

Which is the best WordPress caching plugin for your site?

WP Rocket

WP Rocket is the plugin I recommend most often to teams without an engineer on staff. It runs on any server, turns on page caching and preloading when you activate it, and keeps the riskier options (remove unused CSS, delay JavaScript) behind checkboxes with exclusion fields. It is premium only, with no free version in the WordPress.org directory. Its Remove Unused CSS feature is processed on WP Rocket’s own servers, which matters if you care where your pages are sent. The detailed matchups are in WP Rocket vs LiteSpeed Cache and FlyingPress vs WP Rocket.

If you go with WP Rocket, the code WPLIGHT gives 25% off (affiliate link details in the WP Rocket coupon guide).

LiteSpeed Cache

LiteSpeed Cache (on WordPress.org) is free, but its page cache needs a LiteSpeed server. On LiteSpeed Web Server or OpenLiteSpeed, the cache lives in the web server itself, so cached pages are answered without touching PHP. On Apache or Nginx you still get the optimization features, and you can get page caching through the QUIC.cloud CDN. It has more settings than anything else on this list, including private cache for logged-in users and ESI for punching dynamic blocks out of cached pages. Image optimization and critical CSS generation run on QUIC.cloud, which has quotas.

FlyingPress

FlyingPress is a premium plugin by Gijo Varghese, who also wrote Flying Scripts and Flying Pages. It covers the same ground as WP Rocket (page cache, unused CSS, delayed JavaScript, lazy loading, font handling) with a smaller settings screen. It runs on any server. It is a younger product from a smaller team, so check the documentation and changelog for the integrations your site depends on.

W3 Total Cache

W3 Total Cache (on WordPress.org) gives you page cache, object cache, database cache, browser cache, minify and CDN settings in one plugin, each with a choice of storage backend. That flexibility is real, and so is the risk. The problems I find with it are almost always configuration: database or object cache stored on disk on a slow shared disk, minify enabled on top of another plugin’s minify, or rewrite rules that never made it into the Nginx config. If you know what each layer does, it works. If you don’t, pick something with fewer knobs.

WP Super Cache

WP Super Cache (on WordPress.org) is maintained by Automattic and does one thing: page caching. In Expert mode it writes rewrite rules so the web server returns the static HTML file without loading PHP. It has no CSS or JavaScript optimization, which I see as a feature on simple sites. Pair it with a dedicated optimization plugin only if you measured a front-end problem.

Cache Enabler

Cache Enabler (on WordPress.org) from KeyCDN is a small disk page cache with a short settings page and an HTML minification option. It suits people who want a page cache and plan to handle assets elsewhere. Before installing any of the free plugins, look at “Last updated” and the support forum on WordPress.org. Maintenance activity changes over time.

Server and edge caching

A cache in the server (Nginx FastCGI cache, Varnish, LiteSpeed) or at a CDN edge (Cloudflare cache rules or APO, QUIC.cloud) answers before WordPress loads, which is faster than any PHP plugin can be. Many managed hosts cache pages this way and either block page cache plugins or ask you not to use them. Edge caching also shortens the distance to visitors, which a plugin can’t do. You still need something to purge the cache when content changes, and you may still want a plugin for front-end optimization with its page cache turned off.

Do you need a caching plugin if your host already caches pages?

Usually not for the page cache. Two page caches stacked on each other give you two places to purge, two sets of exclusion rules and stale pages that nobody can explain. Check your host’s documentation first. Some hosts publish a list of disallowed caching plugins, and WP Rocket documents hosts where it turns off its own page cache and keeps only the optimization features.

The front-end side is a separate question. A host cache fixes TTFB, but it won’t remove render-blocking CSS or delay a chat widget. If your LCP or INP problem is in the browser, an optimization plugin can still help, configured so it doesn’t cache pages. The best plugins for Core Web Vitals covers that side.

How do you measure a caching plugin on your own site?

Don’t decide from a PageSpeed score taken five minutes after activation. This is the order I use:

  1. Record a baseline. Save the field data from PageSpeed Insights or the Search Console Core Web Vitals report: p75 LCP, INP, CLS and TTFB. CrUX is a 28-day rolling window, so this is your “before”.
  2. Confirm the cache is serving. Look at the response headers in the browser’s Network panel. LiteSpeed sends x-litespeed-cache: hit, Cloudflare sends cf-cache-status, many hosts send an x-cache header, and several plugins add an HTML comment at the end of cached pages. WordPress Site Health (6.1 and later) also checks whether a page cache is detected.
  3. Measure TTFB logged out, cold and warm. Run curl -o /dev/null -s -w "%{time_starttransfer}\n" https://example.com/ a few times right after a purge and again after preloading. A working page cache shows a large drop between the two.
  4. Test what must not be cached: cart, checkout, account pages, logged-in views, forms with nonces, currency or language switchers.
  5. Turn on front-end options one at a time. After each one, click through menus, sliders, forms and the cart with the console open. Delay JavaScript is the option that breaks things most often.
  6. Wait for field data. Compare p75 numbers after the 28-day window has rolled over, not the next morning.

If TTFB stays high with a confirmed cache hit, the problem is the network or the host, not the plugin. How to reduce TTFB in WordPress covers what to check next.

Which caching mistakes do I see most in audits?

  • Two page caches active at once, often a plugin on top of the host cache.
  • Two optimization plugins minifying and deferring the same files.
  • A cookie or query string (UTM parameters are the usual one) that makes every visit from a campaign miss the cache.
  • Preloading the whole sitemap on small shared hosting, which makes the server slower for real visitors after every purge.
  • Treating a lab score of 100 as proof, while field INP is poor because delayed scripts all run on the first tap.

Frequently asked questions

What is the best free WordPress caching plugin?

On a LiteSpeed server, LiteSpeed Cache. On any other server, WP Super Cache or Cache Enabler for a plain page cache, or W3 Total Cache if you want more control and know how to configure it.

Can I run two caching plugins together?

Not two page caches. You can run one page cache (plugin or host) plus one optimization plugin with its page cache off, as long as they don’t both minify or defer the same assets.

Will a caching plugin fix Core Web Vitals?

It fixes the server part. A page cache lowers TTFB, which helps LCP. INP and CLS depend on JavaScript, layout and images, and a plugin only helps there if its optimization features address your actual bottleneck.

Is NitroPack a caching plugin?

NitroPack is a SaaS optimization service with a WordPress connector plugin. The optimization runs on its infrastructure instead of your server. I compare it in NitroPack vs WP Rocket.

If you have a caching plugin installed and your field data still fails, the cause is probably somewhere else in the stack. My WordPress performance audit finds which layer is slow and gives you the fix order, and the WebOption team can implement the fixes if you don’t have developers to do it.

Work with Daniel More in Performance