WordPress Page Cache Not Working? How to Check and Fix It in 2026
A broken WordPress page cache can silently kill your site’s performance while you assume everything is fine. Pages load slowly, the server works harder than it should, and visitors leave — all without a single error message telling you something is wrong.
This guide shows you exactly how to run a wordpress page cache not working check, what to look for, and how managed WordPress hosting removes most of the risk.
Why Caching Breaks Without Warning
Page caching saves a static copy of your rendered HTML so PHP and the database don’t have to rebuild the page on every request. When it breaks silently, every visitor triggers a full server-side render — the same load as having no cache at all.
Common causes include:
– A plugin update that conflicts with your cache plugin
– A theme or WooCommerce session cookie that forces cache bypass on every request
– A CDN or proxy stripping cache headers before they reach the browser
– Hosting-level caching disabled after a migration
– An .htaccess change that bypassed the cache rewrite rules
None of these produce a visible error. Your site still loads — just slowly.
Step 1: Check Response Headers Directly
The fastest way to confirm whether caching is active is to inspect the HTTP response headers your server returns. Open a terminal and run:
curl -I https://yourdomain.com
Look for these headers:
X-Cache: HIT— the page was served from cache ✅X-Cache: MISS— the page was built fresh (first request is normal, but repeated misses are not)Cache-Control: max-age=0— browser is told never to cache this page ⚠️Pragma: no-cache— an old directive that forces a bypass ⚠️Set-Cookieon a cacheable page — a session cookie prevents most cache engines from storing the response ⚠️
If you see MISS on two or three back-to-back requests for the same URL, your cache is not working.
Step 2: Use a Browser to Inspect Network Timing
Open Chrome DevTools (F12) → Network tab → reload your homepage. Click the first HTML document request and look at the Timing tab.
- “Waiting for server response” under 100ms: cache is likely serving the page
- “Waiting for server response” 400ms+: the server is building the page from scratch
Also check the Response Headers panel in the same tab for the X-Cache, Age, and Cache-Control values mentioned above.
Step 3: Check Your Cache Plugin’s Own Diagnostics
Every major WordPress cache plugin has a built-in test:
- WP Rocket → Settings → Tools → “Enable cache preloading” and check the preload log for errors
- W3 Total Cache → Performance → Dashboard → look for warnings next to Page Cache
- LiteSpeed Cache → LiteSpeed Cache → Toolbox → Log. Enable logging for 5 minutes and reload a page — the log will show HIT or MISS per URL
- WP Super Cache → Settings → WP Super Cache tab → click “Test Cache”. It visits your front page twice and compares the timestamps baked into the HTML.
WP Super Cache’s built-in test is the most beginner-friendly: it literally tells you “The pages do not match” if caching is broken.
Step 4: Check for Cookie-Based Cache Bypasses
Cache plugins skip storing a response when a session cookie is present — this prevents logged-in users from seeing each other’s personalised content. But misconfigured plugins can set a cookie on every anonymous visitor, meaning the cache never fires for anyone.
In Chrome DevTools → Application → Cookies, reload the page while logged out and check whether any cookies are being set. If you see woocommerce_items_in_cart, wordpress_logged_in_*, or any plugin-generated session cookie on a page that should be fully public, that is your problem.
Fix: configure your cache plugin to exclude those cookies, or configure WooCommerce to suppress the cart cookie on non-shop pages.
Step 5: Check Your Hosting-Level Cache
Some hosts (including CM Cloud’s Managed WordPress plans) run a server-level cache independent of your plugin. If a plugin thinks it’s caching but the host’s layer is disabled or misconfigured, results are unpredictable.
On CM Cloud Managed WordPress, the hosting panel shows your server-level cache status. If you recently migrated or restored a backup, confirm in the panel that caching is still enabled — restores occasionally reset server-level settings.
Common Fixes
Cache plugin conflicts after updates
Deactivate all plugins except the cache plugin, then test with curl -I. Reactivate plugins one by one until the cache breaks again — that plugin is the conflict.
.htaccess corruption
WP Super Cache and W3 Total Cache write rewrite rules into .htaccess. A theme or plugin update can overwrite or corrupt those rules. In your cache plugin settings, look for a “Repair” or “Restore .htaccess” option.
CDN stripping headers
If you’re running Cloudflare, check whether “Cache Level” is set to “Bypass” for your domain. Also confirm your WordPress URL matches your Cloudflare-proxied domain exactly — an HTTP/HTTPS mismatch can cause every request to appear uncached.
Full-page cache disabled on Managed WordPress hosting
For customers on CM Cloud Managed WordPress: open your hosting dashboard, navigate to the WordPress settings for your site, and verify the server-level cache toggle is on. See cmcloudhosting.com/pricing for plan details.
Why Managed WordPress Reduces This Risk
Self-managed caching is the single biggest source of silent performance failures on WordPress. With CM Cloud Managed WordPress, the server-level cache is configured and maintained by CM Cloud — you don’t need to install a cache plugin, edit .htaccess, or diagnose header conflicts.
Plugin-level caches (WP Rocket, etc.) can still be added on top for extra control, but the baseline performance layer is already running. That eliminates the most common failure modes above.
CM Cloud Managed WordPress vs Competitors
| Provider | Starter Price (USD) | XAF | EUR | Key Feature |
|---|---|---|---|---|
| CM Cloud | $6.99/mo | XAF 4,500 | €6.50 | NVMe, server-level cache managed, AI credits, no long lock-in |
| Hostinger | $2.99/mo promo* | — | — | 48-month lock-in required; renews at $10.99/mo |
| Kinsta | $35.00/mo | — | — | Premium managed, enterprise focus |
| SiteGround | $13.99/mo | — | — | SuperCacher, Cloudflare CDN |
*Hostinger’s $2.99/mo rate requires a 48-month commitment and renews at $10.99/mo. CM Cloud has no extreme commitment requirement.
See full plan details at cmcloudhosting.com/pricing.
Quick Checklist: WordPress Page Cache Not Working Check
- [ ] Run
curl -I yourdomain.comtwice — look forX-Cache: HITon the second request - [ ] Check DevTools Network timing — server response under 100ms suggests cache is active
- [ ] Run your cache plugin’s built-in diagnostic test
- [ ] Confirm no session cookies are set for anonymous visitors
- [ ] Check
.htaccessrewrite rules are intact - [ ] Verify CDN cache level is not set to Bypass
- [ ] Confirm server-level cache is enabled in your hosting control panel
Get a Hosting Layer That Handles Caching for You
If you’re tired of debugging caching configurations, CM Cloud Managed WordPress starts at $6.99/mo (XAF 4,500 / €6.50) and includes server-level caching managed by CM Cloud — no plugin required, no .htaccess edits, no silent misses.
👉 View Managed WordPress plans at cmcloudhosting.com/pricing