Caching Layers · How the free tier, Tiered Cache, and Argo actually stack
A durable reference for the "which caching product do I need" conversation. Reads top to bottom in about six minutes.
Cloudflare has three layers of caching and acceleration between your users and your origin server. Every plan gets the first one for free. The second is included on Pro and above. The third is a paid add-on. Customers regularly buy the wrong one or the wrong combination because the marketing lumps them all together. This page walks the mechanics of each, then gives concrete customer shapes for when each layer earns its keep.
TL;DR in one paragraphEdge Cache stores your content at 330+ PoPs so users get a local copy instead of hitting your origin. Tiered Cache puts a second layer of caching between the edge PoPs and your origin, so if one PoP has a cache miss it can ask a nearby upper-tier PoP before bothering your origin. Argo Smart Routing is not caching at all — it optimizes the network path when a request does have to reach your origin. Buy them in that order: caching first, then tiered caching, then Argo. Skipping ahead is how customers overpay.
The three layers, at a glance
Each layer solves a different problem. They compound; they don't replace each other.
Layer 1
Edge Cache
Free · Default on
Cacheable responses are stored at the Cloudflare PoP the user hits. Next request from the same region gets the cached copy in a few milliseconds, no origin contact.
Covers: static assets, images, HTML with a Cache-Control header, anything cacheable. Runs at 330+ PoPs.
Layer 2
Tiered Cache
Free / included
Adds a second tier of PoPs between the edge and your origin. A PoP with a cache miss checks a nearby "upper-tier" PoP first. Only actual cache misses reach the origin.
Covers: origin offload, request coalescing during traffic spikes, protecting a small origin from thundering herd.
Layer 3
Argo Smart Routing
Paid · $5/mo + $0.10/GB
Not caching. Optimizes the network path when a request has to reach your origin. Puts traffic on Cloudflare's backbone earlier and avoids congested public-internet peering.
Covers: dynamic content, APIs, checkout, personalized pages, anything that can't be cached and has to hit the origin every time.
How a request flows through each layer
Click a scenario to see where the request stops, and where it has to go if the closer layer doesn't have it.
Scenario: user in Mumbai requests a cached image~15ms
Layer 1 · Edge Cache (the free default)
Every plan. Nothing to turn on. Where most of the "Cloudflare made my site faster" story actually comes from.
How it works
When a user hits your domain, they land at the Cloudflare PoP closest to them (anycast routing to 330+ cities). If the requested URL is cacheable and has been requested recently at that PoP, Cloudflare returns the cached copy directly. Your origin is never contacted.
What "cacheable" means: the response has a Cache-Control header allowing caching, or a Cloudflare Cache Rule set to force-cache it, and the request method is GET or HEAD. Cookies, query strings, and Vary headers can all affect cache keys.
Cache duration: controlled by the Edge-Cache-TTL from your origin, or overridden by Cache Rules. Default is a few hours for common file types.
Where it lives: each PoP has its own local cache. Popular content in Mumbai is not automatically populated in Frankfurt — that PoP has to see its own first request before it caches. This is the exact gap that Tiered Cache addresses.
Layer 2 · Tiered Cache
The most under-explained Cloudflare feature. Free / included on most plans. This is where "origin offload" actually happens.
The problem it solves
Without Tiered Cache, every one of Cloudflare's 330+ PoPs is a first-time visitor to your origin. If your image is popular globally, your origin gets asked for that image 330 times over the course of a day — once by each PoP the first time it's requested there. That's a lot of origin traffic for content that never actually changes.
How Tiered Cache changes the flow
User in Sydney requests an image. The Sydney PoP checks its local cache. Cache miss.
Sydney asks a designated upper-tier PoP (say, Singapore or Los Angeles) instead of going to your origin. If Singapore has the image cached from an earlier request, it returns it.
Sydney caches the response and returns it to the user. Your origin was never contacted.
The first request globally still hits your origin once. Everything after that gets served from the upper-tier PoP. Your origin sees dramatically fewer requests.
Smart Tiered Cache Topology (the default worth using)
Cloudflare picks the upper-tier PoP automatically based on latency to your origin. You don't configure a list of hierarchies; you flip one toggle. The system figures out which upper-tier PoP is closest to your origin and routes cache-miss traffic through it.
Regional Tiered Cache
For customers with content that's regionally sensitive (data residency, region-specific pricing, GDPR concerns), Cloudflare can enforce that upper-tier PoPs stay within a geographic region. Available on Enterprise.
Bonus feature · request coalescing
When 10,000 users hit the Sydney PoP for the same URL at the same instant (a link goes viral, a product drops, a marketing email lands), the PoP does not send 10,000 requests upstream. It sends one and holds the other 9,999 in line waiting for the response. This is called request coalescing and it's why a small origin server can survive a Cloudflare-fronted traffic spike that would have crushed it directly. Tiered Cache amplifies this by coalescing at the upper-tier layer too.
Layer 3 · Argo Smart Routing
Not caching. Path optimization for requests that have to reach your origin. Paid add-on.
How it works
When a request must reach your origin (cache miss, dynamic content, API call, checkout), the default path is: edge PoP → public internet → your origin. That path uses whatever peering, transit, and BGP decisions the internet happens to make that second. Congestion, packet loss, and suboptimal routes are common on long-haul internet paths.
With Argo, Cloudflare keeps the traffic on its own backbone from the entry PoP to the PoP nearest your origin, then hands it off to the public internet for the last short hop. Cloudflare measures real-time latency and packet loss across paths and picks the fastest route, updated continuously.
What it doesn't do: Argo doesn't cache anything. It doesn't reduce origin load. It doesn't help static content that's already served from cache. Its job is making the origin round-trip faster when a round-trip is unavoidable.
Full detail and use-case cards are on the dedicated Argo demo page.
Side-by-side comparison
The three layers on the same axes so you can answer "which one do I need" quickly.
Dimension
Edge Cache
Tiered Cache
Argo Smart Routing
What it optimizes
Response time for cacheable content
Origin load and cache-miss latency
Network path for uncacheable requests
Where it lives
All 330+ PoPs
Selected upper-tier PoPs
Cloudflare backbone routing plane
Cost
Free
Free / included on Pro and above
$5/mo + $0.10/GB
Turned on by
Default (any Cache-Control header)
One toggle in the dashboard (Caching → Tiered Cache)
One toggle + billing acknowledgement
Helps static content
Yes — the primary use case
Yes — reduces origin fetches for popular content
Little — static already served from cache
Helps dynamic APIs
No — APIs typically aren't cacheable
No — same reason
Yes — the primary use case
Helps a small origin survive traffic spikes
Yes for cached URLs
Yes — request coalescing at two layers
No
Compatible with the others
Foundation for both
Requires Edge Cache; complements Argo
Works with or without cache layers
When to use Tiered Cache specifically
Edge Cache is free and default. Argo has its own page. This is the "which customer should turn on Tiered Cache" section.
Good fit
Small origin, global audience
You run on one modest server or a small cluster. Your traffic pattern is bursty. A marketing campaign, a product drop, or a viral tweet could crush the origin.
Tiered Cache concentrates cache-miss traffic through a small number of upper-tier PoPs before it reaches your origin. Combined with request coalescing, 10,000 simultaneous cache-miss requests can collapse into a single origin fetch. Your origin sees one request instead of a thousand.
Origin request reduction: often 60-95% depending on cache hit rate
Good fit
High global cache-miss rate
You have a lot of long-tail content that only some regions request. Blog posts, product images, videos, PDFs. Not everything is popular everywhere.
Without Tiered Cache, each PoP builds its own cache from scratch. A blog post popular in Berlin isn't in the Mumbai cache until a Mumbai reader asks for it. Tiered Cache lets Mumbai borrow from Frankfurt's upper-tier cache instead of round-tripping to your origin every time.
Where it shows up: origin bandwidth bill, origin CPU during spikes
Good fit
Origin is expensive to reach
Origin is on a metered egress cloud provider (AWS charging you $0.09/GB out), on a bandwidth-constrained on-prem link, or genuinely far from your users.
Fewer origin fetches means less egress spend. If you're paying for every byte that leaves your origin, Tiered Cache is one of the highest-leverage free features on the account. It's not unusual to cut origin egress bills by 70%+ after enabling it.
Edge Cache is doing real work — hit rate is somewhere between 60% and 90%. You want to push origin load down further without rewriting caching headers everywhere.
Tiered Cache adds a compounding layer to the caching you already have. If Edge Cache turns 80% of traffic into hits, Tiered Cache turns a large fraction of the remaining 20% into hits too at the upper-tier layer. You feel it in origin metrics, not in user-facing latency.
Combined hit rate ceiling: typically 95%+ after Tiered Cache
Skip it
Everything is personalized or dynamic
Your app is a logged-in dashboard, a SaaS tool, a checkout flow, an API backend. Almost nothing is cacheable.
Tiered Cache only helps with cacheable content. If your cache hit rate is 5%, Tiered Cache is optimizing 5% of traffic. Argo Smart Routing is the right lever for uncacheable traffic, not Tiered Cache.
Try instead: Argo Smart Routing, or Cache Rules to expand what's cacheable
Skip it
Your origin is already massive and elastic
You run on a large auto-scaling group behind an ALB with hundreds of nodes. Origin capacity is never the constraint.
Tiered Cache's main value is origin protection. If you have infinite origin capacity, you're paying for elasticity that Tiered Cache would let you dial down. Still worth turning on for the egress cost savings, but the "protect the origin" angle isn't the pitch.
Motivation shifts to: egress bill reduction, not origin protection
Which layer(s) does this customer need?
Walk this in order. It's the pitch order and the honesty order.
Is your DNS pointed at Cloudflare? If yes, you already have Edge Cache. Confirm they've set Cache-Control headers or Cache Rules for content that should cache. If cache hit rate is under 40%, fix caching hygiene first before selling anything paid.
Is Tiered Cache turned on? One toggle. It's included. If they're on Pro or above and it's off, turn it on. There's no reason not to. This is a free win.
Is a meaningful percentage of their traffic uncacheable? APIs, checkout, dynamic pages, personalized responses. If yes, that's the Argo conversation. If no, Argo is a waste.
Are their users far from their origin? Global users, US origin (or vice versa). Argo's improvement scales with distance. Domestic-only apps see marginal gains.
Is TTFB a business KPI they can name? A/B test conversion, ad win rate, checkout abandonment, dashboard load. If they can quote a number, Argo has a business case. If they can't, it's a nice-to-have.
The honest sequence
Turn on caching properly first (free). Turn on Tiered Cache (free / included). Only then evaluate Argo (paid). Customers who skip step one and buy Argo are paying to speed up uncached content that should have been cached to begin with. Do the free work before selling the paid work. It's better for the customer and it makes the Argo conversation land honestly when it happens.