Run a check to see the cache status.
CDN Cache Checker
Find out whether a page or image is being served from a CDN edge cache or fetched from your origin every time — and if it isn't cached, exactly which header is stopping it.
π Request Journey
Where this URL was actually served from, and whether your origin was contacted at all.
Browser
A returning visitor checks here first. This check runs from our server, which has no cached copy of your site — so this layer took no part in what was measured below.
CDN Edge
If an edge holds a fresh copy it answers here and your origin is never touched.
Origin Server
Your own server. Every request that reaches here costs you compute and the visitor a full round trip.
π The Two Requests
Same URL, moments apart. The pair is what distinguishes a cold cache from a broken one.
π Findings
βοΈ Cache Directives
π Request Details
π» Browser Cache Policy
What this response permits a visitor's own browser to do. Read from the directives — a server cannot observe another person's browser cache, so nothing here is a claim about one.
π§ The Four Cache Layers
Keeping them separate is what makes a cache result trustworthy.
Browser memory
Reused within a single tab session. Never observable from outside that browser.
Browser disk
Survives a restart. Governed entirely by the headers shown on this page.
CDN edge
Shared between all visitors near that POP. This is what HIT and MISS describe.
Origin / app
Redis, output caching, a reverse proxy. Invisible from outside unless a header says so.
π Cache at the Edge, Worldwide
A cache hit is per edge location — being cached in one region says nothing about another. These are real probes in each country.
π Where These Requests Actually Went
What answered each request during this scan — measured, not predicted. Band thickness is the number of files. Nothing here comes from a browser cache: this runs from our server, which has no cached copy of your site, so every request crossed the network. What a returning visitor's browser would reuse is a separate question, answered in the table below.
π Files This Page Loads
Every stylesheet, script, image and font the page pulls in, each checked on its own.
Want the measured version instead of the prediction? The Browser Privacy & Storage Analyzer runs inside your own tab, so it can read the Performance API and show which files your browser genuinely served from cache with no network request at all — the one thing this page can never see.
π§Ύ Cache Headers, Explained
Only the headers that affect caching, with what each one is doing on this response.
π¦ All Response Headers
Two Requests, Because One Proves Nothing
Any object that is not currently at the edge returns a MISS on its first request — that is what a cache miss means. A checker that fetches once and shows you that MISS is reporting the state it just created, which is why so many people conclude their CDN is broken when it is working perfectly. This tool requests the same URL twice, a fraction of a second apart, and reads the pair: MISS then HIT is a healthy cache that had simply gone cold, HIT then HIT is already warm, and MISS then MISS is the genuine failure worth investigating. A rising Age header between the two corroborates it, since only a shared cache sets that header and only a stored object's age grows. The provider is identified from its own fingerprints — cf-cache-status and cf-ray for Cloudflare, x-amz-cf-pop for CloudFront, x-served-by for Fastly, and the RFC 9211 Cache-Status header for anything modern — and when nothing is cached, the findings name the specific header responsible rather than leaving you to guess.
What else can you check?
These tools all work on the same connection and address data — pick whichever question you actually have.
CDN Cache Checker FAQ
Why does it say MISS the first time and HIT the second?
That is a healthy cache. The object was not stored at that edge yet, so the first request had to fetch it from your origin — and in doing so, put it in the cache. The second request found it there. Nothing is wrong; the first visitor to any cold object always pays this cost.
Both requests say MISS. What now?
Check the findings panel — it names the specific cause. The usual culprits are a Set-Cookie header on a static asset (most CDNs refuse to cache those), Cache-Control: private or no-store, a Vary header that fragments the cache, or simply no max-age/s-maxage at all, which leaves the CDN nothing to act on.
Why check from other countries too?
Because a CDN cache is per edge location, not global. An object can be hot in London and cold in SΓ£o Paulo at the same moment, and each POP fills independently on its own first request. A single-location check tells you about one edge out of hundreds.
Does this work for images and other assets?
Yes — any public URL. Images, CSS, JavaScript and fonts are usually the most interesting things to check, because they are the ones that should be cached aggressively and the ones where a stray cookie or missing max-age quietly costs you every time.
What is a good cacheability score?
It depends entirely on what the URL is. A fingerprinted asset should be near 100 with a long s-maxage and immutable. A personalised HTML page scoring very low is correct behaviour, not a fault. Treat the score as a description, not a target.
Does checking warm my cache?
Slightly, yes — and unavoidably, since the only way to observe cache behaviour is to make real requests. The two requests here are ordinary GETs with no cache-busting and no no-cache header, so they behave exactly like a visitor's would.