
The short answer: every response that goes through Cloudflare carries a header, cf-cache-status, that says whether it came from the copy stored at Cloudflare or from the server. You read it in the browser or with a command. Once you know, you stop guessing: you purge only the address that changed, instead of emptying the whole cache, and you notice when stale content is not coming from Cloudflare at all.
The values you will see
| Value | What it means |
| HIT | Served from Cloudflare’s copy. The server was not even asked. |
| MISS | There was no copy. It fetched from the server and, if it can, keeps it for next time. |
| EXPIRED | There was a copy, but its lifetime had passed. It fetched a new one from the server. |
| REVALIDATED | The expired copy was confirmed with the server as still valid, and served. |
| BYPASS | The server or a rule said not to store this response, for example with a header marking it private. |
| DYNAMIC | Cloudflare does not consider this content for caching. According to its documentation, that is normal for HTML pages when no rule says otherwise. |
| The header is missing | The request did not go through Cloudflare: the name is grey, or the DNS still points at the server. See orange cloud or grey cloud. |
Checking the status and purging only what changed
|
|
|
|
|
|
curl -sI https://www.yourdomain/path/to/file.css
| DYNAMIC or BYPASS on a page with stale content means Cloudflare is not to blame. It did not store that response. Look in the site’s cache, for example the WordPress caching plugin (LiteSpeed Cache for WordPress), and in the browser’s, with a private window. |
| For files that change (CSS, JavaScript, the logo), rename them or add a version instead of purging on every edit: a new address is never in the cache. See versioned file names and cache busting. |
|
Cloudflare still serving the old version after purging? Send us the address and what the command showed. Open a support ticket |
RECOMMENDED PRODUCT Web hosting with cPanel Domain and SSL included, daily backups and the panel you already know. from KSh858.00/mo (3-year plan, with coupon) See plans |











