---
title: "What is cache hit ratio? The metric that summarizes your CDN — warmup.rocks Glossary"
description: "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."
canonical: https://warmup.rocks/glossary/cache-hit-ratio
---

# Cache hit ratio

**Cache hit ratio** is the share of requests a cache answers itself instead of forwarding to the origin: `hits ÷ (hits + misses)`. It's the single most telling CDN metric because it's three metrics in one — speed (a miss is 3.5× slower at the median, [per our measurement](https://warmup.rocks/blog/cdn-cache-miss-data)), cost (misses consume origin compute and egress) and resilience (a warm cache absorbs spikes your origin can't).

## Request vs. byte hit ratio

_Request_ hit ratio counts requests; _byte_ hit ratio counts transferred bytes. A site can show 95% request hit ratio while large, rarely-cached downloads push the byte hit ratio far lower. For visitor experience watch the request ratio; for egress bills, the byte ratio.

## What "good" looks like

-   **Static assets:** 95%+ is achievable and expected.
-   **HTML:** depends entirely on whether you cache it at all (many CDNs don't by default) — cached HTML above 90% is realistic with sane [TTLs](https://warmup.rocks/glossary/ttl) and re-warming.
-   **The aggregate number flatters you:** it's dominated by your hottest URLs at your busiest [PoPs](https://warmup.rocks/glossary/point-of-presence). The long tail of pages, at the far edge, is where the misses live — [we measured two orders of magnitude difference between locations](https://warmup.rocks/blog/cdn-cache-miss-data).

## The levers that raise it

In rough order of impact: make HTML cacheable at the edge ([Cache-Control](https://warmup.rocks/glossary/cache-control) / [s-maxage](https://warmup.rocks/glossary/s-maxage), CDN cache rules), clean up your [cache key](https://warmup.rocks/glossary/cache-key) (strip tracking parameters), avoid hit-ratio-shattering [Vary values](https://warmup.rocks/glossary/vary-header), purge narrowly instead of [purging everything](https://warmup.rocks/glossary/cache-purge), enable [tiered caching](https://warmup.rocks/glossary/tiered-cache), and [warm](https://warmup.rocks/blog/what-is-cache-warming) the URLs organic traffic doesn't keep resident. The full playbook with measurement instructions per CDN is in [our cache hit ratio guide](https://warmup.rocks/blog/cache-hit-ratio).
