Tiered caching
Tiered caching arranges a CDN's data centers into a hierarchy: when an edge PoP misses, it fetches from a designated upper-tier PoP instead of going straight to your origin. Only an upper-tier miss reaches the origin. Cloudflare's Tiered Cache is the best-known implementation; CloudFront's regional edge caches work the same way by default.
Why CDNs build hierarchies
Hundreds of independent edge caches each fetching from one origin scales badly — for your server and for the visitor waiting on the miss. A hierarchy fixes both directions: upper tiers are fewer, bigger and hotter (they aggregate demand from many edge PoPs, so objects survive longer before eviction), and the origin only ever talks to a handful of upper-tier locations. The single-tier special case is an origin shield.
What changes in the headers
A hit at the upper tier still reaches you as a miss-ish experience: with Cloudflare,
the edge reports cf-cache-status: MISS while the response actually came
from another colo's cache — faster than origin, slower than a local
HIT. The Age header carries over from
the tier that stored the object, which is why a "fresh miss" can arrive with a large
Age. Diagnosing per-location behavior needs measurements from several regions — a
multi-location cache check makes the tiers visible.
Implications for purging and warming
- Purges must clear every tier — modern CDN purges do, but third-party layers (reverse proxies, Varnish) in front of your origin form an ad-hoc tier that purges won't reach.
- Warming benefits compound: one warming request through a cold edge PoP fills that PoP and its upper tier — so subsequent misses at other edge PoPs under the same tier get a fast tier hit instead of an origin trip. Our Cloudflare warming guide covers the interplay in detail.