Cache Not Working Troubleshooting
Diagnose cache misses and stale-content issues from symptom to action. No input is sent to a server.
Status
Runs in your browser. No input is sent to a server. You can paste request and response separated by a blank line.
How to use
Paste symptoms and headers, then run troubleshooting. Read the report top-down for the fastest path to fixes.
Notes (this tool)
- Results depend on pasted data only. Always verify real CDN/proxy configuration too.
- Mask sensitive values (Cookie, Authorization) before pasting.
About this page
What does this tool do?
Analyzes request/response headers (Cache-Control, Expires, Age, ETag, Last-Modified, Vary, etc.) and extracts likely cache-failure causes.
Combines symptom text with resource type (API/HTML/static assets) to return prioritized fixes.
Common symptoms
- Old content remains after deployment
- Resources are fetched every time with no cache hit
- Behavior differs only through CDN
- 304 revalidation does not behave as expected
- Some users still see stale responses while others do not
Debugging workflow (recommended)
- Paste symptom text and request/response headers (blank-line separated is OK)
- Review “Likely causes” from top to bottom
- Apply “Next actions” one by one and re-check
- Use dedicated inspect tools for deeper detail when needed
Recommendations by resource type
- API (JSON): use no-store for sensitive data; otherwise no-cache + ETag/Last-Modified
- HTML: no-cache + must-revalidate (or short max-age + validators)
- Static assets: long max-age + immutable + versioned URL
Related tools
- HTTP Cache Mismatch
- Cache Response Analyzer
- Cache Diagnostic
- Cache-Control Inspect
- ETag Inspect
- Last-Modified Inspect
- Vary Inspect
- Age Inspect
What this tool does
- Extract likely cache-failure causes from symptoms
- Detect contradictions across Cache-Control, validators, Vary, and date headers
- Suggest prioritized fixes by resource type
Operational notes
- Cache behavior differs across browser, CDN, and reverse proxy; compare captures from the same observation point.
- Even with correct headers, URL versioning and deployment strategy can still break cache behavior.
- Mask sensitive values before pasting.
Referenced specs
- RFC 9111 (HTTP Caching)
- RFC 9110 (HTTP Semantics)
- MDN: HTTP Caching
FAQ
Does shorter max-age solve everything?
No. You often still need validators, proper Vary, and URL versioning.
Why is 304 not returned?
If-None-Match/If-Modified-Since may be absent, or validator comparison logic may not align on the server.
Why is stale content only on CDN?
Typical causes are s-maxage/surrogate rules, missing Vary, and incomplete purge. Verify CDN config and logs.
References
Page-specific case studies
This page is symptom-first troubleshooting. Start by separating no-store issues from stale-update issues.
- If every request returns 200, check no-store/no-cache directives first.
- If updates are delayed, inspect max-age and immutable settings.
- If only CDN stays stale, review s-maxage and purge operations.
Page-specific implementation checklist
- Test browser cache and CDN cache separately during incident triage.
- Always capture both request and response headers in reproduction notes.
- Define invalidation methods such as URL versioning and purge in advance.
- After fixes, verify expected 200-to-304 transitions.
Next to view (diagnostic order)
These links are generated from site_map rules in recommended diagnostic order.
- HTTP Cache Mismatch — Identify root causes of cache mismatches
- Cache Response Analyzer — Judge cacheability from response headers
- Cache Diagnostic — Run cross-header diagnostics for HTTP caching
- Cache Control Overview — Summarize how to use Cache-Control/Pragma/Expires together
- How to Diagnose Stale Content After Deployment — Check cache policy by HTML/API/static assets to isolate stale deployment issues quickly
- How to choose cache tools — Route stale-update, missing-304, and CDN-only mismatch issues to the right tools
- Cache Key Inspect — Visualize cache-key splits from URL, Vary, and headers
- Cache-Control Inspect — Parse and interpret Cache-Control directives
Same-theme links
Cache Control
Diagnose delivery policy across Cache-Control/Expires/Age
- HTTP Cache Mismatch — Identify root causes of cache mismatches
- Cache Response Analyzer — Judge cacheability from response headers
- Cache Key Inspect — Visualize cache-key splits from URL, Vary, and headers
- Cache Diagnostic — Run cross-header diagnostics for HTTP caching
- Cache Control Overview — Summarize how to use Cache-Control/Pragma/Expires together
- Cache-Control Inspect — Parse and interpret Cache-Control directives
- Pragma Cache Inspect — Parse Pragma and inspect legacy cache control behavior
- Expires Inspect — Parse Expires and Date to inspect freshness behavior
- Age Inspect — Parse Age to estimate shared-cache residency time