CDN Tools / CDN Checker

CDN Checker & Cache Analyzer

Paste your HTTP response headers to instantly detect CDN provider, cache hit/miss status, TTL, edge caching behavior, and get specific optimization recommendations.

Detect CDN provider Cache hit/miss TTL analysis No URL needed

CDN Cache & Header Analyzer

Paste HTTP response headers from Chrome DevTools, curl, or any HTTP client. The tool identifies the CDN, reads cache status, parses TTL, and flags configuration issues.

// CDN Checker — paste response headers from DevTools or curl -I Detects: Cloudflare · Fastly · CloudFront · Akamai · Varnish · KeyCDN · BunnyCDN · Nginx · +20 more
Ctrl+Enter to run
Unknown confidence

How to Get HTTP Response Headers for CDN Analysis

Three ways to get the headers you need to paste into the analyzer above.

Chrome DevTools (recommended)

Open DevTools (F12) → Network tab → click on any request → Headers tab → Response Headers. Right-click the headers area and select "Copy response headers" or manually copy the text. This gives you the full set of CDN headers including cf-cache-status, x-cache, and age.

curl command line

Run curl -sI https://yoursite.com in your terminal. The -I flag sends a HEAD request and returns only headers. Add -H "Pragma: no-cache" to bypass caches and test fresh responses. Add -H "Cache-Control: no-cache" to force a cache miss and compare the result.

Firefox DevTools

Open DevTools (F12) → Network tab → click a request → Headers panel → Response Headers section. In Firefox you can right-click the request and choose "Copy → Copy Response Headers". Firefox also shows the X-Firefox-Spdy header which indicates HTTP/2 or HTTP/3 usage.

Postman / Insomnia / HTTPie

Make any GET request to your URL. The response headers panel shows all CDN headers. In Postman: send request → click "Headers" tab in response pane → copy all. In HTTPie: http HEAD https://yoursite.com prints all response headers to the terminal.

Understanding CDN Cache Headers & Cache Behavior

The key headers that reveal how your CDN is caching your content and what they mean for performance.

Cache-Control: the master directive

Cache-Control is the most important caching header. Key values:

  • public, max-age=86400 — cacheable by CDN for 86,400 seconds (24 hours)
  • private — CDN must NOT cache (user-specific data)
  • no-store — never cache, always fetch fresh from origin
  • s-maxage=3600 — CDN-specific TTL (overrides max-age for shared caches)
  • stale-while-revalidate — serve stale while fetching fresh in background

CDN-specific cache status headers

  • Cloudflare: cf-cache-status: HIT/MISS/EXPIRED/BYPASS/REVALIDATED
  • Fastly: X-Cache: HIT + X-Cache-Hits: 3 (hit count)
  • CloudFront: X-Cache: Hit from cloudfront or Miss from cloudfront
  • Varnish: X-Varnish: 12345 67890 + Via: 1.1 varnish
  • Akamai: X-Cache: TCP_HIT + X-Check-Cacheable: YES

Age header — how long in cache

The Age header (in seconds) tells you how long the current cached copy has been in the CDN edge node. Age 0 = just cached (possible cache miss/refresh). Age = max-age = about to expire. If Age is absent, the CDN may not be caching or may not report it.

Common CDN misconfigurations

  • No Cache-Control header — CDN may cache indefinitely or not at all (unpredictable)
  • Set-Cookie on cacheable pages — most CDNs bypass cache when Set-Cookie is present
  • Vary: Cookie — creates separate cache entries per cookie, usually kills CDN effectiveness
  • Cache-Control: private on static assets — prevents CDN from caching images/CSS/JS
  • max-age=0 — CDN serves fresh copy every time, no performance benefit

Related Performance Tools

CDN Checker – Frequently Asked Questions

What is a CDN and how does it affect performance?+
A CDN (Content Delivery Network) is a distributed network of servers that caches and delivers content from locations geographically close to users. Instead of every request going to your origin server (potentially on the other side of the world), a CDN serves the cached copy from an edge node near the user. This typically reduces Time to First Byte (TTFB) by 50-200ms and reduces origin server load by 60-90% for static content.
What does a CDN checker analyze?+
This CDN checker analyzes HTTP response headers to identify: (1) Which CDN is serving the content — detected from signature headers like cf-ray (Cloudflare), x-amz-cf-id (CloudFront), x-fastly-request-id (Fastly). (2) Cache status — HIT (served from cache), MISS (fetched from origin), EXPIRED, BYPASS, STALE. (3) Time-to-Live (TTL) — how long content is cached before expiry, from Cache-Control max-age. (4) Age — how long the current cached copy has been in the CDN edge. (5) Configuration issues — missing headers, Set-Cookie conflicts, Vary header problems.
What is a cache hit vs cache miss?+
A cache HIT means the CDN served the response from its edge cache without contacting your origin server — fast and efficient. A cache MISS means the CDN had no cached copy and fetched the content from your origin server — slower and puts load on your server. For well-optimized sites, 85-95% of static asset requests should be cache HITs. A low hit rate indicates CDN misconfiguration: too-short TTLs, Set-Cookie headers on cacheable pages, or Vary headers creating too many cache variants.
Why is my CDN showing cache MISS even though caching is configured?+
Common causes of unexpected cache misses: (1) Set-Cookie header on the response — most CDNs bypass cache when the origin sets cookies, even on cacheable pages. Solution: remove Set-Cookie from non-authenticated page responses. (2) Cache-Control: private — tells CDNs not to cache the response. (3) Authorization header in the request — CDNs typically won't cache authenticated requests. (4) Query string variations — ?v=1 and ?v=2 are cached as separate entries; normalize or ignore query strings. (5) CDN cache not yet warmed — first request after deployment or TTL expiry always results in a MISS.
How do I check which CDN a website is using?+
Paste the site's response headers here to detect the CDN automatically. You can also look for signature headers manually: cf-ray and server: cloudflare = Cloudflare; x-amz-cf-id or X-Cache containing "cloudfront" = Amazon CloudFront; x-fastly-request-id = Fastly; Via: 1.1 varnish = Varnish; x-cdn-geo or bunny-request-id = BunnyCDN. DNS CNAME records also reveal CDNs: cdnjs.cloudflare.com, cloudfront.net, fastly.net, akamaihd.net, keycdn.com.