How-to
Understanding Cache Statuses
What hit, dynamic, miss, revalidated, expired, stale, and none mean.
2 min readLast updated 26 April 2026
Cache status values
| Status | Meaning | Good or bad? |
|---|---|---|
| hit | Served from Cloudflare's edge cache without contacting your origin | Good -- fast, cheap |
| dynamic | The response was not eligible for caching (e.g. API endpoints, personalised pages) | Neutral -- expected for dynamic content |
| miss | Cache-eligible but not in cache; fetched from origin | Can be bad at scale -- indicates cache pollution or cold starts |
| revalidated | Cache had a stale copy; validated with origin and served the cached version | Good -- efficient |
| expired | Cache copy expired; fetched fresh from origin | Neutral -- normal cache lifecycle |
| stale | Served a stale copy while revalidating in the background | Good -- fast for the user |
| none | No caching applied (e.g. POST requests, no-cache headers) | Neutral -- expected for mutations |
What to watch for
A healthy SFCC storefront typically shows:
- 35-55% hit -- product images, static assets, and some product pages are cached
- 40-60% dynamic -- SFCC storefront pages (
/on/demandware.store) are dynamic by design and always bypass cache, along with API calls, cart, checkout, and personalised content - 1-5% miss -- acceptable for cache churn and new content
The hit rate is lower than a typical static site because SFCC routes most storefront page requests through its application server, which sets Cache-Control: no-cache or similar headers. This is expected behaviour, not a problem. The Overview tile auto-detects SFCC traffic patterns (when dynamic traffic exceeds 40% of the total) and adjusts its "Healthy" sublabel to "SFCC typical: 35-55%" accordingly.
If an ASN shows 90%+ miss or dynamic, it's either hitting uncacheable URLs (normal for API traffic) or deliberately bypassing the cache (suspicious if it's also high-volume).