Hit ratio is the one number that moves your latency, your origin load and your bill at once — and most estates leave ten to thirty points of it unclaimed. This guide is the improvement program: verify the measurement first, then ten levers, ranked by typical impact, each with how to pull it and what to expect.
First, trust the number
Before optimizing, confirm you're reading the right ratio: request hit ratio and byte hit ratio tell different stories (one drives latency, the other bandwidth), edge-level and origin-level ratios differ wherever shields exist, and a blended number across asset classes hides exactly the problems you need to see — the full discipline is the measurement guide, which is this program's prerequisite. Segment the ratio by content class (hashed assets, images, HTML, API) and the improvement targets fall out naturally: hashed assets belong in the high nineties, and every class below its ceiling names the lever to pull. What follows assumes you can see per-class ratios; without that, you're tuning blind.
Levers 1–4: stop the self-inflicted misses
1. Normalize the cache key. Tracking parameters, parameter order, raw headers in the key — the fragmentation audit from the cache-key guide routinely recovers five to twenty points on HTML and image classes, making it the highest-expected-value first move on most estates. 2. Fix uncacheable-by-accident responses. Grep origin responses for freshness-blocking headers nobody chose: framework-default no-store, gratuitous Set-Cookie on static paths (one cookie header makes most platforms skip storage), Vary values with unbounded cardinality. Each fix converts a whole path from zero to normal ratios. 3. Lengthen timid TTLs. Assets sitting at minutes that could run days — apply the decision tree; where purge hooks exist, TTL fear is unfounded and the points are free. 4. Version what isn't versioned. Every asset still doing short-TTL freshness that could be doing hash-forever is donating misses daily.
Levers 5–7: extend what caching covers
5. Serve stale. The SWR pair from the serve-stale guide converts revalidation misses into background refreshes — modest ratio gain, outsized latency gain, near-zero risk; on busy expiring content it is the best effort-to-effect trade on the list. 6. Cache HTML for anonymous traffic. The largest single unclaimed territory on most estates: full-page caching with cookie-driven bypass and publish-time purging (the pattern the HTML guide builds) moves the blended ratio more than everything above combined wherever anonymous share is high. 7. Micro-cache shared API reads. Seconds-scale TTLs with collapsing on the endpoints that qualify — the API guide's classification decides which — often absorbs a majority of API request volume that currently reads as pure miss.
Levers 8–10: the architecture tier
8. Origin shield. A shield doesn't change your edge ratio but transforms the origin-facing one — the misses that remain collapse across the whole network into one fetch, per the economics in the shield comparison; pull this lever when origin load or egress cost, not user latency, is the pain. 9. Consolidate hostnames. Assets sharded across many hostnames split cache entries and connections; collapsing onto fewer hostnames warms caches faster and raises effective ratios, with HTTP/2+ having removed the old reason for sharding. 10. Rethink cache-hostile features. The end of the list is product conversation, not configuration: per-user rendering on pages that could be common-plus-personalized-fragment, A/B frameworks that vary whole pages instead of decisions, geo-content that could key on a normalized country dimension instead of bypassing. These pay the most and cost the most; they're last because the nine cheaper levers usually get you to target first.
Running it as a program
Treat the ten as a quarter's program, not an afternoon's checklist: baseline per-class ratios in week one, pull levers in the order above (each is measurable alone — change, wait a cache-lifetime, read the class ratio), and stop when the marginal lever costs more than its points are worth, which for most estates is somewhere in the architecture tier. Then defend the gains: the fragmentation audit quarterly, the uncacheable-header grep in CI, ratio-drop alerts per class — because hit ratio decays under feature development the way all unattended quality does. The finish line worth writing down: each class within a few points of its structural ceiling, and a one-line explanation on file for every class that sits lower by choice.
