Docs / Supported CDNs

Supported CDNs

Any CDN that caches at the edge benefits from warming. We recognize the major providers from their response headers automatically — no configuration, nothing to install.

Auto-detection

Each CDN reveals itself through its own header scheme. Per request we record the provider, the edge location (colo/PoP) and the cache status:

CDNDetected viaCache statusEdge location
Cloudflarecf-raycf-cache-statuscolo code in cf-ray
Fastlyx-served-byx-cachePoP suffix in x-served-by
Amazon CloudFrontx-amz-cf-popx-cachex-amz-cf-pop
Akamaiserver headerx-cache (debug)
bunny.netserver headercdn-cachePoP in server
CDN77x-77-popx-77-cachex-77-pop

For Akamai, warming requests send the pragma: akamai-x-cache-on debug header so the cache status becomes visible in the response. Other CDNs ignore it.

Cloudflare specifics

Classic CDN cache and Workers Cache

Cloudflare has two per-colo caches: the classic CDN cache (controlled by Cache Rules and Cloudflare-CDN-Cache-Control) and the Workers Cache used by frameworks that render in a Worker (Astro, Next.js on Workers, EmDash and others). Both are per edge location and both are warmed by our requests — because the requests genuinely enter Cloudflare's network at different colos.

Tiered caching

With Tiered Cache enabled, a miss at a small colo is fetched through a larger upper-tier data center that caches the response too. Warming passes fill those upper tiers, so even colos we never hit directly stop reaching your origin.

What if my CDN isn't listed?

Warming still works — a GET request fills any well-behaved HTTP cache. We just can't label the provider, so those requests are reported under origin with generic x-cache detection. If your CDN exposes identifiable headers, tell us and we'll add detection.

Prerequisites on your side

Next: Schedules & intervals →