Cache Response Analyzer
Analyze cache-related headers across layers. No input is sent to a server. Use it for first-pass revalidation and CDN mismatch troubleshooting.
Status
Runs in your browser. No input is sent to a server. Use this as a first-pass diagnostic step.
How to use
Paste response headers and click “Analyze”. It shows cacheability/shared-cache eligibility/revalidation.
Notes (this tool)
- This analysis is header-centric. Verify app logic and CDN overrides separately.
- Effective cache keys change with Vary, so the same URL can produce different cache behavior.
About this page
What does this tool do?
Judges cacheability from Cache-Control / Expires / Age / ETag / Last-Modified, etc.
Debugging workflow (recommended)
- Paste response headers and get a verdict
- Use Cache Diagnostic for deeper analysis
- Use individual Inspect tools to pinpoint causes
Recommendations by use case
- API (JSON): no-store or no-cache + validators
- HTML: short max-age + validators / no-cache
- Static assets: long max-age + immutable + versioned URL
Related tools
- Cache Diagnostic
- Cache-Control Inspect
- Expires Inspect
- ETag Inspect
- Last-Modified Inspect
What this tool does
- Judge cacheability/shared-cache eligibility/revalidation
- Show freshness and its basis
Operational notes
- Cache behavior changes across browser, CDN, and proxy layers, so compare captures from the same observation point.
- Header-only diagnosis may be insufficient. Also review application cache invalidation strategy and key design.
Referenced specs
- RFC 9111 (HTTP Caching)
- RFC 9110 (HTTP Semantics)
FAQ
Can this tool alone identify the root cause?
It is effective for first-pass judgment, but path-specific issues require follow-up tools.
When should immutable be used?
Use it mainly for versioned static assets. It is usually not suitable for HTML.
References
Page-specific case studies
This tool evaluates cacheability from a single response and is useful for first-pass validation.
- Determine private/public and no-store/no-cache semantics first.
- Check the combination of max-age, s-maxage, and immutable.
- If Expires is present, verify it is consistent with Cache-Control.
Page-specific implementation checklist
- Fetch the same URL with both curl and browser devtools.
- Express shared-cache policy explicitly with s-maxage.
- Introduce immutable only with a clear update strategy.
- Include analyzer checks in pre-release validation.
Next to view (diagnostic order)
These links are generated from site_map rules in recommended diagnostic order.
- Cache Not Working Troubleshooting — Troubleshoot cache-not-working symptoms step by step from headers
- HTTP Cache Mismatch — Identify root causes of cache mismatches
- Cache Diagnostic — Run cross-header diagnostics for HTTP caching
- How to Diagnose Missing 304 Responses — Trace ETag/Last-Modified and If-* round trips to isolate missing 304 behavior
- 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 Overview — Summarize how to use Cache-Control/Pragma/Expires together
Same-theme links
Cache Control
Diagnose delivery policy across Cache-Control/Expires/Age
- Cache Not Working Troubleshooting — Troubleshoot cache-not-working symptoms step by step from headers
- HTTP Cache Mismatch — Identify root causes of cache mismatches
- 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