# warmup.rocks > Global CDN cache warming for Cloudflare, Fastly, Akamai, CloudFront and more. > Every page below is also available as Markdown by appending .md to its URL. ## Docs - [Adaptive warming — warmup.rocks Docs](https://warmup.rocks/docs/adaptive-warming.md): warmup.rocks learns each page's real edge TTL from HIT/MISS history and re-warms it right before it expires, instead of on a fixed interval. - [Analytics & WAF filtering — warmup.rocks Docs](https://warmup.rocks/docs/analytics-waf.md): Keep warming traffic out of your analytics and let it through your WAF: user-agent filters, the x-warm-secret header and Cloudflare rule examples. - [Billing & plans — warmup.rocks Docs](https://warmup.rocks/docs/billing.md): Plans, the 7-day free trial, upgrades, downgrades, cancellation and payment details for warmup.rocks subscriptions. - [Supported CDNs — warmup.rocks Docs](https://warmup.rocks/docs/cdns.md): warmup.rocks auto-detects Cloudflare, Fastly, Akamai, CloudFront, bunny.net and CDN77 from response headers — including Cloudflare Workers Cache. - [Deploy hooks & CI — warmup.rocks Docs](https://warmup.rocks/docs/deploy-hooks.md): Trigger a warm run right after every deploy: per-project deploy-hook URL, the official GitHub Action, and examples for GitLab CI, Netlify, Vercel and plain curl. - [Domain verification — warmup.rocks Docs](https://warmup.rocks/docs/domain-verification.md): Prove domain ownership with a DNS TXT record or a response header before warmup.rocks warms your site on a schedule. - [Getting started — warmup.rocks Docs](https://warmup.rocks/docs/index.md): Set up CDN cache warming in five minutes: add your sitemap, verify your domain, start the first warming run and watch your hit ratio climb. - [Schedules & intervals — warmup.rocks Docs](https://warmup.rocks/docs/schedules.md): How to pick the right warming interval: match your cache TTLs, warm after deploys and purges, and understand per-plan minimum intervals. - [Sitemaps & URL discovery — warmup.rocks Docs](https://warmup.rocks/docs/sitemaps.md): How warmup.rocks discovers the URLs to warm: sitemap indexes, automatic re-discovery, extra URLs and per-plan URL limits. - [Bot & user agent — warmup.rocks Docs](https://warmup.rocks/docs/user-agent.md): The WarmupRocks user agent string, what the bot does and doesn't do, and how to identify it in logs, analytics and WAF rules. ## Blog - [Astro cache warming: prerendered, on-demand, and the Cloudflare Workers edge — warmup.rocks](https://warmup.rocks/blog/astro-cache-warming.md): Astro sites cache in three layers: prerendered pages, on-demand SSR routes with route caching, and the per-colo edge. Which layer goes cold when, what Astro 7 route caching changes, and how to keep it all warm — from a team running Astro on Workers in production. - [bunny.net cache warming: Perma-Cache, per-PoP caches and keeping both hot — warmup.rocks](https://warmup.rocks/blog/bunny-cache-warming.md): bunny.net caches per PoP, and Perma-Cache adds a persistent storage layer. What each layer does for cold starts, how Smart Cache and purges behave, and how to warm bunny.net properly. - [Cache hit ratio: how to measure it and how to raise it — warmup.rocks](https://warmup.rocks/blog/cache-hit-ratio.md): What cache hit ratio means, request vs. byte hit ratio, how to measure it per CDN — and seven concrete levers to raise yours above 90%. - [Cache Warmer alternative: warmup.rocks vs. single-location cache warmers — warmup.rocks](https://warmup.rocks/blog/cache-warmer-alternative.md): Looking for a Cache Warmer alternative? The honest comparison: single-location crawlers warm one edge location out of hundreds. How warmup.rocks differs — 90+ locations, per-colo reporting, any CDN. - [CDN cache misses, measured: 408,000 requests across 47 Cloudflare colos — warmup.rocks](https://warmup.rocks/blog/cdn-cache-miss-data.md): Original data from 48 hours of cache warming: a cache miss is 3.5× slower than a hit at the median (878 ms vs 253 ms), and steady-state miss rates vary from 0.0% to 9.4% between Cloudflare colos. Full methodology included. - [Warm CDN caches and SEO: Googlebot crawls from where your users aren't — warmup.rocks](https://warmup.rocks/blog/cdn-cache-seo.md): Googlebot and AI crawlers fetch mostly from US IPs — far from many sites' core markets. Why Search Console's average response time is really a cold-cache metric, how crawl response time drives Google's crawl capacity limit, and how warming crawler-facing edge locations fixes it. - [cf-cache-status explained: every Cloudflare cache status and how to fix it — warmup.rocks](https://warmup.rocks/blog/cf-cache-status.md): What cf-cache-status HIT, MISS, DYNAMIC, BYPASS, EXPIRED, STALE, REVALIDATED and UPDATING mean, why your HTML shows DYNAMIC, and how to turn every status into a HIT. - [Cloudflare cache warming: why one server can't preload 300+ colos — warmup.rocks](https://warmup.rocks/blog/cloudflare-cache-warming.md): Cloudflare caches per data center. How to actually preload the Cloudflare cache — classic CDN cache, Workers Cache and Tiered Cache — from every region. - [Cloudflare full-page caching for WordPress & WooCommerce: the complete setup — warmup.rocks](https://warmup.rocks/blog/cloudflare-html-caching-wordpress.md): Cloudflare doesn't cache WordPress HTML by default. The complete Cache Rules setup: exact bypass expressions for WordPress and WooCommerce, why rule order works backwards from what most guides say, Edge TTL vs. Browser TTL, the Set-Cookie trap, and APO vs. Cache Rules. - [The Cloudflare Workers Cache API is per-colo — the lesson that became warmup.rocks — warmup.rocks](https://warmup.rocks/blog/cloudflare-workers-cache-api.md): Running a real Astro + EmDash site on Cloudflare Workers taught us three hard cache lessons: the Cache API is colo-local, it ignores stale-while-revalidate, and every deploy starts cold. Here's what we measured — and what we built because of it. - [CloudFront cache warming: 600+ POPs, regional edge caches, and how to fill them — warmup.rocks](https://warmup.rocks/blog/cloudfront-cache-warming.md): CloudFront caches per edge location, with regional edge caches as a second layer. What invalidations really cost, what Origin Shield does and doesn't do, and how to warm CloudFront properly. - [DIY cache warming script vs. managed service: an honest build-or-buy guide — warmup.rocks](https://warmup.rocks/blog/diy-cache-warming-script.md): A cache warming script is twenty lines of bash — here it is. When cron + curl is genuinely enough, where single-location warming quietly stops working, and how to decide build vs. buy with three questions. - [Fastly cache warming: instant purge deserves instant re-warm — warmup.rocks](https://warmup.rocks/blog/fastly-cache-warming.md): Fastly purges globally in ~150 ms — and leaves every POP cold. How Fastly's per-POP caching, shielding and soft purge interact with cache warming, and how to keep hit ratios high after purges. - [Blog — warmup.rocks](https://warmup.rocks/blog/index.md): Deep dives on CDN caching, cache warming, hit ratios, TTFB and web performance — from the team behind warmup.rocks. - [Magento 2 cache warming: Varnish, Full Page Cache and the CDN edge — warmup.rocks](https://warmup.rocks/blog/magento-cache-warming.md): How to warm Magento 2's Full Page Cache and Varnish after cache flushes, deploys and reindexing — and why the CDN edge cache needs its own warming strategy. - [Shopify cache warming: what you can (and can't) warm on a hosted platform — warmup.rocks](https://warmup.rocks/blog/shopify-cache-warming.md): Shopify runs its own CDN and cache — so is cache warming even possible? What Shopify caches, where cold starts still happen, and when warming helps headless Hydrogen or Plus stores. - [Time to First Byte: the floor under all your Core Web Vitals — warmup.rocks](https://warmup.rocks/blog/time-to-first-byte.md): What TTFB is made of, what a good Time to First Byte looks like, how it caps LCP — and why edge caching is the biggest single lever to improve it. - [Varnish cache warming: keep your hit rate up after restarts, bans and deploys — warmup.rocks](https://warmup.rocks/blog/varnish-cache-warming.md): Varnish starts empty after every restart and every ban. How to warm Varnish with sitemap crawls, grace mode and hash_always_miss — and why the CDN in front of it needs its own warming. - [How to view the cached version of any website in 2026 — warmup.rocks](https://warmup.rocks/blog/view-cached-version.md): Google Cache is gone. How to see the cached or archived copy of any page today: Wayback Machine and archive.today for snapshots, and response headers or a multi-location cache checker for the live CDN copy. - [What is cache warming? A practical guide — warmup.rocks](https://warmup.rocks/blog/what-is-cache-warming.md): Cache warming explained: how proactively filling caches works, which caches can be warmed (CDN, page cache, object cache), and when it's worth automating. - [WordPress cache warming: preload your page cache and your CDN — warmup.rocks](https://warmup.rocks/blog/wordpress-cache-warming.md): WordPress has two caches to warm: the page cache on your server and the CDN edge cache. How WP Rocket, LiteSpeed and FlyingPress preload works, what it misses, and how to keep WooCommerce fast. ## Glossary - [What is the Age header? Reading cache freshness from a response — warmup.rocks Glossary](https://warmup.rocks/glossary/age-header.md): The Age header tells you how long a response has been in cache, in seconds. Age: 0 means a fresh fetch; a large Age means a long-lived cached copy. How to read it alongside cache status headers. - [What is Brotli? The compression upgrade over gzip, explained — warmup.rocks Glossary](https://warmup.rocks/glossary/brotli.md): Brotli compresses text content 15–25% smaller than gzip. Quality levels for static vs. dynamic content, how it interacts with Vary and CDN caching, and how to check what your site really delivers. - [What is Cache-Control? Every directive that matters, explained — warmup.rocks Glossary](https://warmup.rocks/glossary/cache-control.md): Cache-Control tells browsers and CDNs whether and how long to cache a response. max-age, s-maxage, no-cache vs. no-store, public vs. private, immutable and stale-while-revalidate — what each directive does. - [What is cache eviction? Why cached objects disappear before their TTL — warmup.rocks Glossary](https://warmup.rocks/glossary/cache-eviction.md): Cache eviction removes objects before TTL expiry to make room for hotter content. LRU in practice, why low-traffic URLs and remote PoPs are evicted first — with production data. - [What is cache hit ratio? The metric that summarizes your CDN — warmup.rocks Glossary](https://warmup.rocks/glossary/cache-hit-ratio.md): Cache hit ratio is the percentage of requests served from cache. Request vs. byte hit ratio, what "good" looks like, and why it's really a per-location distribution rather than one number. - [What is a cache key? How CDNs decide what counts as "the same" request — warmup.rocks Glossary](https://warmup.rocks/glossary/cache-key.md): A cache key is the identifier a CDN builds from URL, host, query string and selected headers to store a response. Why query-string noise and unnecessary key components destroy hit ratios. - [What is a cache purge? Purge vs. invalidation vs. expiry — warmup.rocks Glossary](https://warmup.rocks/glossary/cache-purge.md): A purge removes cached content from a CDN on demand. Purge-by-URL vs. purge-everything vs. tag-based invalidation, what each costs you in cold caches, and why purging without re-warming hurts. - [What is a CDN? Content delivery networks explained — warmup.rocks Glossary](https://warmup.rocks/glossary/cdn.md): A CDN caches content at locations close to users and shields your origin. What CDNs actually do, why adding one doesn't mean your site is cached, and how per-PoP caching changes the picture. - [What is edge computing? Running code at the CDN edge — warmup.rocks Glossary](https://warmup.rocks/glossary/edge-computing.md): Edge computing runs your code at CDN locations near users: Cloudflare Workers, Fastly Compute, Lambda@Edge. What runs well at the edge, how it turns dynamic pages cacheable, and why edge caches still start cold. - [What is an ETag? Entity tags and cache revalidation explained — warmup.rocks Glossary](https://warmup.rocks/glossary/etag.md): The ETag header identifies a version of a resource so caches can revalidate with If-None-Match and get a 304 instead of a full download. Strong vs. weak ETags, common pitfalls, and how CDNs use them. - [CDN & Caching Glossary — every term that matters, defined — warmup.rocks](https://warmup.rocks/glossary/index.md): Plain-English definitions of the terms behind CDN caching: ETag, Cache-Control, s-maxage, stale-while-revalidate, cache keys, PoPs, origin shield, tiered caching, eviction, purging and more. - [What is an origin shield? The cache layer that protects your origin — warmup.rocks Glossary](https://warmup.rocks/glossary/origin-shield.md): An origin shield is a mid-tier CDN cache that absorbs edge misses before they reach your origin. How it raises hit ratios, cuts origin load, and how it differs from tiered caching. - [What is a point of presence (PoP)? CDN edge locations explained — warmup.rocks Glossary](https://warmup.rocks/glossary/point-of-presence.md): A PoP is a CDN data center close to users. Why the number of PoPs matters less than you think, why each PoP caches independently — and what that means for your real-world hit ratio. - [What is s-maxage? Separate TTLs for CDNs and browsers — warmup.rocks Glossary](https://warmup.rocks/glossary/s-maxage.md): s-maxage sets the cache lifetime for shared caches like CDNs, separately from the browser's max-age. Why you usually want a long s-maxage and a short max-age, and how CDN-specific headers fit in. - [What is stale-while-revalidate? Serve stale, refresh in the background — warmup.rocks Glossary](https://warmup.rocks/glossary/stale-while-revalidate.md): stale-while-revalidate lets caches serve an expired response immediately and refresh it in the background — visitors get cache speed even after expiry. Syntax, CDN support differences, and its limits. - [What is tiered caching? Cache hierarchies in CDNs explained — warmup.rocks Glossary](https://warmup.rocks/glossary/tiered-cache.md): Tiered caching routes edge-PoP misses through upper-tier data centers before the origin. How Cloudflare Tiered Cache and similar hierarchies work, and what they change about warming and purging. - [What is TTFB? Time to first byte, explained — warmup.rocks Glossary](https://warmup.rocks/glossary/ttfb.md): TTFB measures the time until the first response byte: DNS, TCP/TLS, network travel and server processing. What's inside the number, what counts as good, and why cache state dominates it. - [What is TTL in caching? Time to live, explained — warmup.rocks Glossary](https://warmup.rocks/glossary/ttl.md): TTL is how long a cached object stays fresh. Where it comes from (Cache-Control, CDN edge rules), what happens at expiry, and why a long TTL doesn't guarantee your object survives that long. - [What is the Vary header? One URL, many cache entries — warmup.rocks Glossary](https://warmup.rocks/glossary/vary-header.md): Vary tells caches which request headers produce different responses for the same URL. Vary: Accept-Encoding is essential; Vary: User-Agent or Cookie can shatter your hit ratio. How CDNs handle it. ## Tools - [Cache Checker](https://warmup.rocks/cache-checker): Free tool — checks the CDN cache status (HIT/MISS/DYNAMIC) of any URL from six locations worldwide. - [Website Speed Test](https://warmup.rocks/website-speed-test): Free tool — loads any URL from eight locations twice (first vs. repeat visit) and measures TTFB plus full HTML download, showing whether the CDN cache works per region. - [TTFB Test](https://warmup.rocks/ttfb-test): Free tool — measures Time to First Byte of any URL from six locations on four continents, calibrated for relay overhead. - [Compression Test](https://warmup.rocks/compression-test): Free tool — checks whether a URL is delivered with Gzip, Brotli or Zstandard, including transferred bytes and savings per method. - [Cloudflare Data Centers](https://warmup.rocks/cloudflare-data-centers): Searchable list of all Cloudflare edge locations (IATA colo codes). ## Other - [Bot & user agent info](https://warmup.rocks/bot) - [Contact](https://warmup.rocks/contact) - [API catalog](https://warmup.rocks/.well-known/api-catalog)