About
Compatibility Matrix
Which themes, plugins and hosting environments work with Caching Out, and what to do when two of them overlap. If yours is not listed, it is most likely fine: tell us and we will add it.
Performance results vary depending on hosting, theme, plugins and traffic. Benchmark figures are measured on our published test suite and are not a guarantee of results on any specific site.
Requirements: WordPress 6.4 or later, tested up to 7.1. PHP 8.0 or later (7.4 is the floor at which the plugin loads and tells you to upgrade).
Status legend
| Status | Meaning |
|---|---|
| Verified | Tested on a real site or in the automated tests that run at every release |
| Built in | Caching Out has dedicated handling for it |
| Caveat | Works, with a limitation described in the note |
| Conflict | Do not run both; the fix is in the note |
| Untested | No dedicated handling and not yet tested; expected to work |
WordPress
| Version | Status | Note |
|---|---|---|
| 6.4 to 6.8 | Verified | |
| 6.9 | Untested | Expected to work; 7.0 and 7.1 are verified. |
| 7.0 and 7.1 | Verified | |
| Multisite | Verified | Each site has its own cache and settings. Pro adds Network Admin: a sites list, per-site purge, and applying settings to chosen sites with a preview. |
PHP
| Version | Status | Note |
|---|---|---|
| 7.4 | Caveat | The plugin loads and shows a notice asking for PHP 8.0; nothing else runs. |
| 8.0 to 8.2 | Verified | |
| 8.3 | Verified | cachingout.com runs on PHP 8.3. |
| 8.4 | Untested |
Servers and hosting
| Environment | Status | Note |
|---|---|---|
| Apache | Verified | Cached pages are served before WordPress loads. Browser caching and compression rules are written to .htaccess in one step, never over another plugin's section. |
| LiteSpeed | Verified | Works like Apache. Deactivate LiteSpeed Cache first (see "Another page cache" below). Moving away later: Removing Caching Out completely. |
| NGINX | Caveat | Page caching works unchanged. Browser caching and compression need a short snippet added by hand: Server configuration. |
| IIS (Windows) | Untested | Page caching should work; no web.config rules are written. |
| Managed hosts with their own page cache (WP Engine, Kinsta, SiteGround, Cloudways, Rocket.net and similar) | Caveat | The gain from page caching may be small behind the host's cache; file, media and database optimisation still apply. On SiteGround, switch off SG Optimizer's caching. The Filesystem Check shows anything the host will not let the plugin write. |
Other caching plugins and services
Caching Out never overwrites another plugin's advanced-cache.php or
.htaccess section, and never touches object-cache.php. When it finds
another plugin's file it leaves it alone, does not switch page caching on,
and tells you which plugin owns it.
| Plugin or service | Status | Note |
|---|---|---|
| WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Fastest Cache, Cache Enabler, FlyingPress, WP Rocket, and any other page-cache plugin | Conflict | Two page caches must never run together. Deactivate the other one first. |
| Hummingbird | Caveat | Switch off its page caching; its other modules can stay if each job is done by one plugin only. |
| Autoptimize | Caveat | Switch off its CSS and JavaScript options when you use Caching Out's file optimisation. |
| Perfmatters | Caveat | Switch off its script manager when you use Delay JavaScript or Unused CSS/JS (Pro). |
| Redis Object Cache, Memcached | Verified | Fully compatible: Caching Out has no object cache of its own. |
| Cloudflare | Built in (Pro) | Purges Cloudflare's cache whenever Caching Out purges its own: everything, or single URLs. |
| Varnish | Built in (Pro) | Purges by URL; a full flush needs a Varnish configuration that accepts purges. |
| Sucuri firewall | Built in (Pro) | Clears the whole Sucuri cache (Sucuri has no per-URL clear). |
Online stores
Cart, checkout and account pages, the store's background requests, and every visitor with a cart, session or login cookie are never cached, in both editions, with nothing to configure. No setting can switch this off.
| Plugin | Status | Note |
|---|---|---|
| WooCommerce | Built in, Verified | A product's page is purged when its stock or price changes, and the cache is cleared when an order changes status. |
| Easy Digital Downloads | Built in | Checkout, confirmation and purchase history pages are never cached; purged when a payment changes status. |
| WooCommerce Subscriptions, Memberships, Bookings | Untested | Covered by the WooCommerce protections. |
| Multi-currency plugins (WOOCS, WMC) | Caveat | A visitor who has chosen a currency always gets a live page, so currency switching is correct but not cached. |
Multilingual plugins
| Plugin | Status | Note |
|---|---|---|
| WPML | Built in | Each language is cached separately when it has its own URL (directory or domain). Languages that share one URL are not cached. |
| Polylang | Built in, Verified | Same as WPML. |
| TranslatePress, Weglot, MultilingualPress | Untested |
Page builders
Builder editing and preview screens are never cached.
| Builder | Status | Note |
|---|---|---|
| Block editor (Gutenberg) | Verified | The core block styles are always loaded normally. |
| Elementor, Elementor Pro | Built in, Verified | If a widget breaks with Combine CSS on, exclude that stylesheet. |
| Divi, Beaver Builder, Bricks, WPBakery | Built in | |
| Brizy, Oxygen, Breakdance, Spectra, GenerateBlocks, Kadence Blocks | Untested | Block-based builders need nothing special. A classic builder's preview may need a URL exclusion on the Cache tab. |
SEO plugins
| Plugin | Status | Note |
|---|---|---|
| Yoast SEO | Built in, Verified | Its sitemap is found for cache preloading (Pro). |
| Rank Math, All in One SEO | Built in | Their sitemaps are found for preloading (Pro). |
| SEOPress, The SEO Framework, Slim SEO | Untested | WordPress's own sitemap is used for preloading. |
Images
Caching Out never converts or compresses images, and never sends them anywhere. It delivers the copies your image plugin has made.
| Plugin | Status | Note |
|---|---|---|
| Imagify, ShortPixel, Smush, EWWW | Verified | Pro serves the WebP and AVIF copies they make. The page cache is cleared when they re-compress an image, so cached pages never keep old image sizes. |
| Converter for Media | Built in (Pro) | Its copies in the separate uploads-webpc folder are recognised. |
| Site Kit by Google (consent mode) | Caveat | Its consent-mode tag is never held back by Delay JavaScript. See File optimisation. |
Forms, membership and courses
Logged-in visitors never get a cached page, and a page that carries a one-time security token is not cached.
| Plugin | Status | Note |
|---|---|---|
| Contact Form 7 | Built in, Verified | |
| WPForms | Built in | |
| Gravity Forms, Ninja Forms, Formidable, Fluent Forms | Untested | Pages with a form token are not cached. |
| MemberPress, LearnDash | Built in | Member and course pages are never cached. |
| Restrict Content Pro, Paid Memberships Pro, LifterLMS, BuddyPress, bbPress | Untested | Public forum pages may need a URL exclusion on the Cache tab. |
Consent banners and analytics
| Plugin | Status | Note |
|---|---|---|
| CookieYes, Cookiebot, Complianz, FAZ Cookie Manager, Borlabs Cookie, iubenda, Real Cookie Banner, Cookie Notice, Termly, Osano, Usercentrics, cookie-script | Built in | Their scripts are never delayed and their stylesheets are never deferred, so the banner always appears. Any other consent plugin: add its folder name to the Delay JavaScript and excluded CSS lists. |
| Google Analytics, Google Tag Manager | Verified | Never delayed unless you switch on "also delay analytics". |
Security plugins
| Plugin | Status | Note |
|---|---|---|
| Wordfence | Verified | Works alongside; no special handling needed. |
| Sucuri Security, Solid Security (iThemes), All In One WP Security | Untested | If one of them rewrites .htaccess and removes Caching Out's rules, save the Browser Cache tab again. |
| reCAPTCHA, Cloudflare Turnstile | Caveat | Exclude the widget's script from Delay JavaScript if a form must work before the visitor first scrolls or clicks. |
Themes
Your theme's own stylesheet is always loaded normally, so CSS optimisation cannot break the theme's layout. Stylesheets from the most-installed WordPress.org themes are re-tested at every release.
| Theme | Status | Note |
|---|---|---|
| Twenty Twenty-Three, Twenty Twenty-Four, Twenty Twenty-Five | Verified | |
| Astra, GeneratePress, Kadence, OceanWP, Neve, Blocksy, Hello Elementor, Storefront | Verified | |
| Flatsome, WoodMart, Shoptimizer, Divi, Avada, Enfold, The7, Salient, Newspaper, JNews | Untested | Commercial themes are not in our test set. |
Known conflicts and fixes
Another page cache. Deactivate it before you activate Caching Out. Caching Out will not overwrite its file, tells you which plugin owns it, and keeps every other optimisation running.
A consent banner disappears. A script that never ran or a stylesheet that was deferred is the usual cause, not the page cache. Add the consent plugin's folder name to the Delay JavaScript and excluded CSS lists. If the banner is missing only on cached pages, the consent plugin is deciding on the server whether to show it: switch on its cache compatibility mode if it has one, purge, and check in a private window.
Images look stretched. Add the no-lazy or skip-lazy class to the
image; Caching Out then leaves its width and height alone.
Language or currency switching on the same URL. Deliberately not cached: a visitor with a language or currency cookie always gets a live page.
Deactivating and removing. Deactivating removes the plugin's
advanced-cache.php file and its scheduled tasks and leaves the site
running; it deliberately leaves
the WP_CACHE line and the .htaccess rules in place. Deleting the plugin
removes everything. Step by step: Removing Caching Out completely.
Reporting a compatibility issue
Email support@cachingout.com with your WordPress and PHP versions, the
server type, your active theme and plugins, the steps that show the
problem, and the Filesystem Check result. If you can, add the value of the
X-CachingOut-Cache response header with CACHINGOUT_DEBUG switched on
in wp-config.php (Troubleshooting shows how).