WordPress caching plugins compared: what each one does and how to choose
A page cache saves each finished page and serves that copy, so WordPress does not rebuild it for every visitor. Check whether your host already runs one before you add a plugin. Five caching plugins compared on how they cache, what is free and what each one needs.
- By
- WP Ministry
- Published
In short
- A page cache stores the finished page and hands out that copy. It is the kind of caching that changes most for a visitor.
- Find out whether your host already runs a page cache. If it does, do not add a second one.
- Run one page cache at a time. Browser caching and an object cache can sit beside it.
- LiteSpeed Cache only caches pages on a LiteSpeed server or through QUIC.cloud. On Apache or nginx its page cache does nothing.
- WP Super Cache, WP Fastest Cache and W3 Total Cache cache pages in their free versions. WP Rocket is paid only.
- Cart, checkout and account pages must never be served from a cache, and neither should pages for logged-in users.
WordPress builds a page each time someone asks for it. It runs PHP, reads the database, puts the result into the theme's templates and sends the finished HTML. A page cache keeps that finished HTML and hands the stored copy to the next visitor, so the server skips the work of building it again.
This page compares five caching plugins. It does not rank them. Which one fits depends on the server your site runs on, whether your host already caches pages, and how many settings you want to look after.
Three kinds of caching
- Page cache. Stores whole pages as static files and serves those. This is what people mean by a caching plugin, and it is what the comparison below is about.
- Browser cache. A visitor's own browser keeps stylesheets, scripts and images it has already downloaded, so a second page view asks the server for less. The site controls this with headers that say how long each file may be kept.
- Object cache. Stores the results of database lookups so that WordPress does not repeat them. WordPress has one built in, but it lasts only for a single request. One that lasts between requests needs a service such as Redis or Memcached on the server, which is usually something your host provides.
These do not compete. One page cache, the browser cache and an object cache can all run on the same site.
Find out whether your host already caches pages
Some hosts run a page cache on the server, in front of WordPress. Kinsta's documentation says caching plugins will in most cases not work on its platform, because page caching is already done at server level. WP Engine's says caching plugins can conflict with the caching built into its platform, and it does not allow W3 Total Cache.
Before you install anything:
- Read your host's documentation or ask its support whether the plan includes page caching and how to clear it.
- Look at Site Health. Under Tools, then Site Health, WordPress runs a check on live sites that reports whether it found a page cache.
- Look at the response headers. Open your home page in a private window with the browser's developer tools on the network tab, and select the first request. A header that names a cache and reports a hit, such as
x-litespeed-cache: hit, means a cache answered.
Two page caches on one site get in each other's way. Each keeps its own copy of a page and clears it on its own schedule. When you publish a change, one may refresh while the other keeps serving the old page. LiteSpeed's instructions for its own plugin say to deactivate every other full-page cache plugin first, because only one should be used at a time.
If your host caches pages, use that cache and leave plugin page caching off.
How to choose
- What the server is. One of the five only caches pages on a LiteSpeed server. Others write rules into
.htaccess, which Apache and LiteSpeed read and nginx does not. - Whether the site sells anything. A store has pages that must never be cached. Some plugins leave them out on their own. With the rest, you set that up.
- How much you want to configure. Some plugins cache pages and stop there. Others also shrink and combine stylesheets and scripts. Each of those settings can break a layout, so turn them on one at a time and look at the site after each. If one breaks it, switch it off and clear the cache.
- Free or paid. Four have a free version in the WordPress.org plugin directory. One is paid only.
The five plugins side by side
| Plugin | Free version | How pages are cached | Beyond the page cache | What it needs |
|---|---|---|---|---|
| WP Super Cache | Yes | Static HTML files, served through PHP or by the web server's rewrite rules | Page compression, preloading, basic CDN support | Custom permalinks |
| W3 Total Cache | Yes, with a paid Pro version | On disk or in memory, including Redis and Memcached | Free: minify, browser cache, database and object cache, CDN, lazy load. Pro adds fragment caching and more | Redis or Memcached on the server for the in-memory choices |
| LiteSpeed Cache | Yes | By the LiteSpeed web server itself, outside WordPress's files | On any server: minify, lazy load, browser cache, object cache support, database cleaner | A LiteSpeed server or QUIC.cloud CDN for the page cache |
| WP Fastest Cache | Yes, with a paid Premium version | Static HTML files, served by rewrite rules | Free: minify HTML and CSS, combine CSS and JS, Gzip, browser caching, preload, CDN. Premium adds image optimization, lazy load and more | On nginx, Gzip and browser caching are set up by hand |
| WP Rocket | No. Paid only, with a free trial | HTML files, switched on at activation | Browser caching and compression rules, lazy load, file optimization, CDN address rewriting | A license |
WP Super Cache
WP Super Cache is made by Automattic. It generates static HTML files from your pages, and the server sends those in place of running WordPress. Visitors who are not logged in, have not left a comment and have not opened a password-protected post get the static files.
Simple mode serves the files through PHP, needs no change to .htaccess, and is the mode its listing recommends. Expert mode uses Apache's mod_rewrite to bypass PHP altogether. It is faster, and the listing warns that it edits .htaccess, which can take the site down if done wrongly. The listing's recommended settings include compressing pages and not caching pages for known users.
It suits a site that needs a page cache and little else.
W3 Total Cache
W3 Total Cache is made by BoldGrid. Its free version covers every kind of caching named above: pages, database queries, objects and browser caching. Each can be stored on disk or in memory, with Redis, Memcached and APCu among the choices. It also minifies HTML, CSS and JavaScript, lazy loads images and manages a CDN.
The paid Pro version adds fragment caching for pages that are partly dynamic, delivery of the whole site through a CDN, and controls for delaying scripts.
Its listing advises caution with the disk method for the database and object caches on shared hosting, because the disk may not be fast enough.
It suits a site on a server that has Redis or Memcached, looked after by someone who knows what each layer does.
LiteSpeed Cache
LiteSpeed Cache is free, and its listing says it will stay free and open source. What it needs is specific. Its page cache is not built by the plugin. It is built by the LiteSpeed web server, and the plugin tells that server what to cache and when to clear it. The cached pages are stored by the server, not in WordPress's folders.
The listing separates two sets of features. The first works on any web server, Apache and nginx included: minifying and combining CSS and JavaScript, lazy loading, browser cache settings, object cache support, a database cleaner and image optimization. The second needs a LiteSpeed product: automatic page caching, WooCommerce support, a private cache for logged-in users and separate desktop and mobile caches. Those work on LiteSpeed Web Server Enterprise with its cache module, OpenLiteSpeed, LiteSpeed WebADC, or through the QUIC.cloud CDN.
So on an Apache or nginx host without QUIC.cloud, this plugin gives you no page cache. Ask your host which web server you are on before you install it.
Image optimization and some page optimization run on QUIC.cloud's online services, which the listing says need payment at certain usage levels.
It suits any site whose host runs LiteSpeed.
WP Fastest Cache
WP Fastest Cache, by Emre Vona, generates static HTML files and serves them with rewrite rules. The free version clears the cache when a post or page is published, can clear it on a timer, preloads the cache, and lets you exclude pages. It also minifies HTML and CSS, combines CSS and JavaScript files, switches on Gzip compression and browser caching, and rewrites static file addresses to a CDN.
Its listing says it works on nginx, but there you set up Gzip and browser caching yourself, because nginx has no .htaccess file.
The paid Premium version adds a separate mobile cache, a widget cache, JavaScript minification, image optimization, lazy loading and database cleanup.
It suits an owner who wants a page cache and the common extras in one free plugin.
WP Rocket
WP Rocket is sold by its maker and is not in the WordPress.org directory. There is no free version. Its pricing page offers a free trial.
Page caching is switched on when the plugin is activated. On Apache and LiteSpeed servers it also writes rules for browser caching and compression into .htaccess. On nginx those go in the server's own configuration. Beyond caching it offers lazy loading, optimization of CSS and JavaScript files, and address rewriting for a CDN.
Logged-in users are not given cached pages unless you switch on its user cache. On a store it leaves the Cart, Checkout and My Account pages out of the cache for WooCommerce and several other ecommerce plugins.
On hosts that cache pages themselves, including Kinsta, WP Engine, WordPress.com and Pressable, its documentation says its own page cache is switched off automatically and the other features stay available.
It suits an owner who would rather pay than configure, and a site whose host caches pages but offers none of the other optimizations.
What must never be cached
A cached page is the same for everyone who receives it. That is wrong for any page built for one person.
- Cart, Checkout and My Account. WooCommerce's documentation says these must stay out of the cache because they show information specific to the current customer and their cart. It names a cached My Account page as the cause of a password reset that loops.
- Visitors with something in the cart. If the cache has a setting for cookies, exclude WooCommerce's:
woocommerce_cart_hash,woocommerce_items_in_cartandwp_woocommerce_session_. - Logged-in users. The dashboard, the admin bar and members' pages are personal. Leave caching for logged-in users off unless you know why you need it.
WooCommerce tells WP Super Cache not to cache those three pages, and WP Rocket leaves them out on its own. With any other plugin, and with a host's cache, check the exclusions yourself. Then place an order in a private window without logging in. If the checkout misbehaves, see how to fix a WooCommerce checkout that is not working. How to speed up WooCommerce covers the rest of a store.
Which one to use when
- If your host already caches pages, do not add a page cache. Use the host's, and learn where its clear button is.
- If your host runs LiteSpeed, use LiteSpeed Cache. The server does the caching, and the plugin is free.
- If you are on Apache or nginx and want a page cache and nothing more, WP Super Cache in Simple mode does that with few settings.
- If you want minification and browser caching from the same free plugin, look at WP Fastest Cache.
- If the server has Redis or Memcached and someone who understands them, W3 Total Cache can use them for pages, objects and database queries.
- If you would rather pay for a plugin that caches from the moment it is activated, that is WP Rocket.
Whichever you choose, check that it works. Open a page in a private window and view its source: WP Super Cache and WP Fastest Cache each leave an HTML comment at the bottom of a cached page. LiteSpeed sends an x-litespeed-cache: hit header.
A page cache deals with one cause of a slow site. How to speed up WordPress covers the others. If you would rather hand the job over, our speed optimization service is a one-time job: you name the pages, and we measure them before the work and again after it.
Common questions
I changed a page and visitors still see the old one. Why?
They are being given a stored copy. Clear the plugin's cache from its settings screen, then your host's cache and your CDN's if you have them, then reload in a private window. Caching plugins clear a page when you update it, but a change to a menu, a widget or a stylesheet can leave other pages stale.
How do I switch from one caching plugin to another?
Clear the old plugin's cache, deactivate it and delete it before you activate the new one. If the new plugin then does not cache, look for files the old one left behind. WP Rocket's documentation notes that leftovers from a removed caching plugin can stop it from working.
Do I still need a caching plugin if I use a CDN?
Usually, yes. A CDN serves static files such as images and stylesheets from servers near the visitor. Cloudflare, for one, does not cache a page's HTML unless you set it up to, so the page itself still comes from your server. How to set up a CDN for WordPress explains how the two fit together.

