WordPress Changes Not Showing: Cloudways Varnish and WP Rocket, Two Cache Layers
WordPress changes not showing? Cloudways Varnish and WP Rocket are two caches. How to clear each, read response headers, plus a post-deploy checklist.
On this page
- 1.10 October 2026: WP Rocket cleared, visitors still saw the old version
- 2.Which cache layers a page request passes through
- 3.What WP Rocket caches and how to clear it
- 3.1What WP Rocket stores
- 3.2When it clears automatically
- 3.3Clearing by hand: the dashboard button or WP-CLI
- 4.What Cloudwaysâ Varnish is and how to clear it
- 4.1On by default, and it does not notice content changes by itself
- 4.2Clearing it in the Cloudways dashboard
- 4.3When WP Rocketâs Varnish add-on fails to clear it
- 5.The Cloudflare layer: HTML is not cached by default
- 6.How to tell which layer served the page
- 6.1Check cf-cache-status first
- 6.2Then check age
- 6.3The WP Rocket layer
- 7.Post-deploy cache clearing checklist
- FAQ
On 10 October 2026, Claude Code made changes to my Jason Career website and finished deploying them, yet visitors still saw the old version. Jason Career is a WordPress site on Cloudways with WP Rocket installed, and clearing the WP Rocket cache changed nothing: Varnish, at the Cloudways server level, was also holding a copy of the old page and had to be cleared separately.
The short version: Cloudways Varnish and WP Rocket are two different cache layers, and clearing only one is not enough. Since that day, Jason Career clears both layers on every deployment, and this rule has been written into Claudeâs long-term memory. Cloudflare also sits in front of the site. It does not cache HTML by default, but if you turn on a cache rule, it becomes a third layer. Below, based on the official documentation, I go through what each layer stores, how to clear it and how to tell from the response headers which layer served a page, and I finish with the checklist I use now.
This is a record of how I run my own website, combined with notes from the official Cloudways, WP Rocket and Cloudflare documentation consulted on 17 October 2026. Each providerâs interface, defaults and commands may change, so check the official documentation before acting.
10 October 2026: WP Rocket cleared, visitors still saw the old version
Jason Career is run by Claude Code: it connects to the Cloudways server over SSH and changes the site with WP-CLI, the WordPress command-line tool (the full setup is in Running WordPress Without Knowing SSH). For the combination of hosting, plugins and theme, see How to Build a WordPress E-commerce and Course Site.
What happened that day was simple: the changes were done and the WP Rocket cache was cleared, but visitors still got the old page. Only after Varnish at the Cloudways server level was cleared separately did the changes appear. The fix had two parts:
- From then on, clear both WP Rocket and Varnish on every deployment.
- Write this rule into Claudeâs long-term memory, so it is not missed in the next session either.
Why didnât WP Rocket clear Varnish along the way? The notes from that day only recorded the fix, not the cause. WP Rocketâs official documentation lists two situations in which Varnish does not get cleared, covered in the âCloudwaysâ Varnishâ section below.
Which cache layers a page request passes through
When a visitor opens an article on Jason Career, the request passes through the layers below in order. If an outer layer has the page stored, it returns it directly and the inner layers are never asked.
| Layer | Where it is | What it stores | Who clears it |
|---|---|---|---|
| Cloudflare | The CDN in front of the site (the response headers include server: cloudflare) |
By default, static files such as images, CSS and JS; HTML is not cached by default | The Cloudflare dashboard or API |
| Varnish | The Cloudways server level | Full-page responses | The Cloudways dashboard, the API, or a purge request sent by a WordPress plugin |
| WP Rocket | A WordPress plugin | Each page saved as a static HTML file, plus minified CSS and JS | The WP Rocket dashboard, WP-CLI, or automatically when a post is edited |
That Cloudflare does not cache HTML by default comes from Cloudflareâs default cache behavior documentation. I have not yet gone through which cache rules Jason Career actually has turned on in Cloudflare, so this post does not assume whether it caches HTML or not; how to check comes later.
What WP Rocket caches and how to clear it
What WP Rocket stores
According to WP Rocketâs page caching documentation (updated 29 April 2025), page caching is on by default and saves each page as a static HTML file under /cache/wp-rocket/your-domain/, for example index-https.html. When a visitor arrives, the server returns this file directly without running PHP or querying the database.
Another document (updated 24 June 2026) lists WP Rocketâs other cache locations, for example minified CSS and JS in /cache/min/. The cache has a lifespan, and the official explanation gives a default of 10 hours.
When it clears automatically
WP Rocketâs documentation (updated 24 June 2026) says that when you publish or edit a post or page, it clears the cache for that post, the home page and related pages such as category archives.
The trigger here is âediting a postâ. For changes that are not post edits, such as changing custom code in Code Snippets or site-wide CSS, the documentation does not say the cache is cleared automatically. All of Jason Careerâs customizations live in plugins like this, so after deploying, the cache has to be cleared by hand.
Clearing by hand: the dashboard button or WP-CLI
- Dashboard: WP Rocketâs âClear and preload cacheâ.
- WP-CLI: WP Rocket has a WP-CLI extension. The install and clear commands from the official documentation (updated 25 November 2025) are:
# Install WP Rocket's WP-CLI extension
wp package install wp-media/wp-rocket-cli:trunk
# Clear the whole site's cache without asking for confirmation
wp rocket clean --confirm
# Clear a single URL only
wp rocket clean --permalink=<url>
The same document makes a point of saying: this command does not clear the Varnish cache. If you deploy with WP-CLI, you still need to deal with Varnish separately after clearing WP Rocket.
What Cloudwaysâ Varnish is and how to clear it
On by default, and it does not notice content changes by itself
Varnish is a caching server that sits in front of the website. The official Cloudways blog (updated 26 September 2025) says Varnish is on by default on Cloudways, and in the usual setup every request goes through Varnish first.
The Breeze article in the Cloudways help center says that without Breeze or a similar plugin notifying it, Varnish does not notice by itself that the siteâs content has changed. It keeps serving the old content until its lifespan (TTL, 4 hours by default) expires or someone clears it by hand. Breeze is Cloudwaysâ own caching plugin; Jason Career uses WP Rocket.
Clearing it in the Cloudways dashboard
The steps from the official Cloudways blog (updated 8 November 2023):
- Log in to the Cloudways platform and open the server.
- Open âManage Servicesâ.
- Click âPurgeâ on the Varnish row.
The same post also covers clearing Varnish with the Cloudways API (POST /service/varnish, with action set to purge), which requires generating an API key on the platform first. The key is a secret: do not put it in Git or paste it into a chat.
When WP Rocketâs Varnish add-on fails to clear it
WP Rocketâs Varnish documentation (updated 14 January 2026) says that on Cloudways it detects the hosting environment and automatically enables its Varnish add-on, clearing Varnish whenever the WP Rocket cache is cleared. By that account, clearing once should be enough. In practice, the documentation lists two exceptions elsewhere:
| Situation | What the official documentation says |
|---|---|
Clearing with the WP-CLI command wp rocket clean |
Command documentation: does not clear Varnish |
| A proxy such as Cloudflare in front of the site | Proxy documentation (updated 14 August 2023): the proxy may prevent Varnish from being cleared; with WP Rocketâs Cloudflare add-on this is handled automatically, otherwise you need to install the official helper plugin |
Jason Career meets both conditions: Claude Code works through WP-CLI, and Cloudflare sits in front of the site. The notes do not say which one caused the problem on 10 October, and I wonât guess here. Whichever it was, clearing Varnish separately after deploying avoids it.
The Cloudflare layer: HTML is not cached by default
Cloudflareâs documentation states that its CDN does not cache HTML or JSON by default; what it caches by default are file extensions such as CSS, JS, images and fonts. So when you have only changed article content, the problem is usually not Cloudflare. If you changed a CSS or JS file, Cloudflare may still be holding the old file.
If you have turned on a rule to cache HTML in Cloudflare, or the change is to a static file, you need to clear Cloudflare. According to Cloudflareâs purge cache documentation, even the free plan can purge by URL, hostname, tag or prefix, or purge everything for the whole domain, and Cloudflare recommends purging by URL first. The steps for purging by URL:
- In the Cloudflare dashboard, go to the domainâs âConfigurationâ page.
- Under âPurge Cacheâ, choose âCustom Purgeâ.
- For âPurge byâ, choose âURLâ and paste the URLs to clear (paths are case-sensitive).
- Confirm and click âPurgeâ.
If you use WP Rocketâs Cloudflare add-on, WP Rocketâs documentation (updated 11 June 2026) says it usually clears Cloudflare in sync with WP Rocketâs cache. But if you use the Cloudflare Enterprise offered through Cloudways, Cloudways does not provide the API key and zone ID, so WP Rocket cannot sync and you have to clear Cloudflare yourself.
How to tell which layer served the page
After clearing the caches, the most direct way to confirm is to look at the response headers. The steps:
- Open the page you want to check in a private window, so your login state and the browserâs own cache donât interfere.
- Open the developer tools, switch to the âNetworkâ tab and reload.
- Click the first request (the page itself) and look at âResponse Headersâ.
Check cf-cache-status first
Cloudflareâs cache status documentation lists what the cf-cache-status values mean:
| Value | Meaning |
|---|---|
HIT |
Found in Cloudflareâs cache |
MISS |
Cacheable, but not in the cache at the time, so fetched from the origin server |
EXPIRED |
In the cache but expired, so fetched from the origin server instead |
DYNAMIC |
Cloudflare decided not to cache this resource and passed it straight to the origin server |
BYPASS |
Would normally be cacheable, but the origin serverâs response could not be cached |
A HIT means this page came from Cloudflare, Varnish and WP Rocket behind it were never asked, and Cloudflare is what you need to clear. With default settings, HTML pages usually show DYNAMIC, meaning the request did reach Cloudways. Also, Cloudflareâs documentation points out that a successful response to a purge request does not mean the content was actually removed: check that cf-cache-status is no longer HIT after purging.
Then check age
When cf-cache-status is not HIT, look at age. WP Rocketâs documentation says that in a Varnish environment, age is the number of seconds this page has been in the Varnish cache, and it resets to zero after Varnish is cleared. If age is still a large number when you reload after clearing, Varnish was not cleared.
I did not find any other header name for identifying Varnish in the official Cloudways documentation, so here I rely only on the age header described in WP Rocketâs documentation.
The WP Rocket layer
WP Rocketâs page cache is files on the server. The check in the official documentation is to look in the /cache/wp-rocket/your-domain/ folder: after clearing, the files for the affected pages disappear and are only regenerated when someone visits or the cache is preloaded.
Post-deploy cache clearing checklist
Jason Career now clears both WP Rocket and Varnish on every deployment. Adding what the official documentation says, the full order is to clear from the inside out: once an outer cache is cleared, it goes back to the inner layer for the page, and if the inner layer is still stale, the outer layer stores the old version again.
| Step | What to do | How |
|---|---|---|
| 1 | Confirm which pages or files changed this time | Note article content, custom code, CSS and JS separately |
| 2 | Clear WP Rocket | âClear and preload cacheâ in the dashboard, or wp rocket clean --confirm |
| 3 | Clear Cloudwaysâ Varnish | âPurgeâ on Varnish under Manage Services on the platform, or the Cloudways API; always do this step when using wp rocket clean |
| 4 | Clear Cloudflare if needed | If Cloudflare caches HTML, or you changed CSS or JS, purge by URL with Custom Purge |
| 5 | Confirm in a private window | cf-cache-status is not HIT, age is zero or small, and the page shows the new version |
| 6 | Write the rule into the AIâs working rules | So the next session follows the same order |
Step 6 was added after 10 October: the rule to clear both layers was written into Claudeâs long-term memory, so a deployment in a new session follows the same order. For how I limit what AI can do on the live website, see Running WordPress Without Knowing SSH. More posts are on the AI startup topic page.
FAQ
Why is my WordPress site unchanged after clearing the WP Rocket cache?
Cloudways has another Varnish cache at the server level. Jason Career ran into this on 10 October 2026: clearing WP Rocket alone was not enough, and Varnish had to be cleared separately before visitors could see the change. Since then, both layers are cleared on every deployment.
Doesn't WP Rocket clear Cloudways' Varnish automatically?
WP Rocket's official documentation says that on Cloudways it automatically enables its Varnish add-on and clears Varnish along with its own cache. But the documentation also lists two exceptions: the WP-CLI command wp rocket clean does not clear Varnish, and when a proxy such as Cloudflare sits in front of the site, Varnish may not get cleared.
Where do I clear the Varnish cache on Cloudways?
According to the official Cloudways blog, go to the server's Manage Services in the platform dashboard and click Purge on the Varnish row. Cloudways also has an API that can clear Varnish.
Does Cloudflare cache WordPress HTML pages?
Cloudflare's official documentation says its CDN does not cache HTML by default. Unless you have set up a cache rule, Cloudflare usually does not store your article pages. To check, look at the cf-cache-status response header: only HIT means the page came from Cloudflare's cache.
How can I tell which cache layer served the page a visitor sees?
Open the page in a private window and, in the browser's developer tools, check the response headers of the first request on the Network tab. A cf-cache-status of HIT means it came from Cloudflare. If it is not HIT, look at age: WP Rocket's documentation says it is the number of seconds the page has been in the Varnish cache, and it resets to zero after Varnish is cleared.
Which caches should I clear after deploying WordPress changes?
Clear from the inside out: first WP Rocket, then Cloudways' Varnish, and finally Cloudflare if it caches HTML. Afterwards, confirm with a private window and the response headers, then write this order into your deployment process.
Related articles
- AI Polishing a Multilingual Site on My Own: How I Had Claude Code Check 271 FilesAI polishing in practice: Claude Code reran a polishing skill on 271 files in 4 languages, 5 posts first, then 10 batches; 178 files changed, checked by script.
- How to Build a WordPress E-commerce and Course Site: The Cloudways and Flatsome Stack Behind Jason Career, Run by One PersonA WordPress e-commerce and course site's real stack: Cloudways, Cloudflare, Flatsome, WooCommerce, LearnDash, 65 plugins by use, run by Claude Code over SSH.
- Embedding X Posts Without Loading X's Script: Static Cards for Social Posts That Handle Backups, Privacy and DeletionsEmbed X posts without widgets.js: Jason Finance builds static cards from archived screenshots, author, time and link, kept if deleted. Archiving and copyright.

Jason
Account Manager in Google Large Customer Sales and Columbia MBA admit, sharing the money tools and experience he actually uses.
Comments
Sign in with Google to comment. Your comment will not show your Google profile picture or name; it appears under a randomly generated nickname to protect your privacy.
By signing in you agree to this site's privacy policy.