If Cloudflare serves old content after an update, compare the public page with the origin response. The stale copy may be in the CDN, the application cache, or the CMS output itself.
If a page never seems to cache, first check whether it should. A public article and a logged-in account page need different cache behavior.
Capture the failing response
Record the exact URL, time, visible content, and CF-Cache-Status. Repeat the request under the conditions that fail: for example, logged out, from a particular location, or with a particular query string.
Then compare the origin using your normal authorized diagnostic route. If the origin also returns old content, investigate the application or CMS cache before changing Cloudflare.
Read the effective cache rules and headers
Check for:
- broad HTML caching that includes personalized pages;
- a long edge TTL without a working update-and-purge process;
- cookies, query parameters, or Workers that change the response or caching behavior;
- origin cache headers that differ from what you intended;
- preview or staging settings applied in production.
Cache-Control: no-cache requires revalidation; it does not mean the same thing as no-store. Cloudflare's behavior also depends on its Origin Cache Control settings. Check the cache-control documentation alongside the actual rule and response.
Correct the cause, then purge
Narrow the caching rule to the intended public pages, or correct the headers generated by the application. Confirm that personalized content remains excluded from shared caching.
Once the rule or response is correct, purge the affected URLs or cache tags. Repeated full-site purges can temporarily hide the problem without fixing how the next response is cached.
Check the next cache hit
Request the affected page again, then repeat after the cache is populated. Confirm the content, status, canonical, and headers remain correct. Compare a public page with a page that should bypass shared caching.
For an update problem, also test one subsequent content change. That checks whether the publishing and invalidation process works, rather than only whether a manual purge removed today's stale copy.
