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 paragraph Edge 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
USER EDGE POP (nearest) UPPER-TIER POP ORIGIN SERVER Mumbai user Edge PoP Mumbai (BOM) Layer 1 Upper-tier Singapore (SIN) Layer 2 Origin us-east-1 Layer 3 target Argo optimizes this hop Result: cache hit at edge · ~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

  1. User in Sydney requests an image. The Sydney PoP checks its local cache. Cache miss.
  2. 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.
  3. Sydney caches the response and returns it to the user. Your origin was never contacted.
  4. 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.
Directly reduces: cloud egress bill, origin bandwidth commit
Good fit

You already have decent cache hit rate

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

Which layer(s) does this customer need?

Walk this in order. It's the pitch order and the honesty order.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.