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, with no configuration and 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.

Desktop and mobile cache variants

Most sites are responsive: one cache entry per URL serves every device, and a single warm request covers all visitors. Some sites, however, split their cache by device type: for example Cloudflare's Cache by Device Type (Business/Enterprise), custom cache keys on CF-Device-Type, or dynamic serving with device detection on Akamai or Fastly. In that setup, desktop and mobile visitors hit different cache entries.

For these sites, enable Warm mobile variant in your project settings (Boulder and Summit plans). Every URL is then warmed twice per proxy location: once with the regular desktop user agent and once with a mobile user agent (an iPhone UA that still carries the WarmupRocks token for your WAF and analytics filters). Note this doubles the requests per run. If your site is responsive with a single cache entry per URL, leave it off; the second pass would just duplicate work.

Prerequisites on your side

Next: Schedules & intervals →