demo · v141

Cache Key Tester

The No-Vary-Search response header tells Chrome's HTTP cache to ignore certain query parameters when computing the cache key. Chrome 141 extends this from the prefetch-only cache to the full HTTP disk cache. Enter two URLs and a header value below — the tester runs the spec algorithm in-browser and tells you whether they'd share a cache entry.

Chrome 141 change Before Chrome 141, No-Vary-Search only applied to the prefetch (in-memory) cache, so its benefit vanished across page loads. Chrome 141 brings NVS to the HTTP disk cache — now UTM parameters, affiliate IDs, and A/B tokens no longer create separate cache entries between sessions.

Test two URLs

Enter URLs and a header value, then click above.

Header generator

Build a No-Vary-Search header
Generated header
No-Vary-Search: (choose options above)

Example URL pairs

Rule URL A URL B Hit?

rule reference

# Ignore all query params (treat any variation as the same resource):
No-Vary-Search: params

# Ignore specific params (these never affect cache identity):
No-Vary-Search: params=("utm_source" "utm_medium" "fbclid" "gclid")

# Vary ONLY on specific params (ignore everything else):
No-Vary-Search: params, except=("q" "page")

# Ignore parameter ordering (?a=1&b=2 == ?b=2&a=1):
No-Vary-Search: key-order

# Combine: ignore order AND ignore tracking params:
No-Vary-Search: params=("fbclid"), key-order

how the disk cache uses it

# Server response for /article?id=42&utm_source=newsletter
HTTP/1.1 200 OK
Cache-Control: max-age=3600
No-Vary-Search: params=("utm_source" "utm_medium" "fbclid")

# Chrome 141: the disk cache stores this response
# keyed by: /article?id=42  (utm_* stripped)

# Next request (different session, different utm_*):
# GET /article?id=42&utm_source=twitter
# → Cache HIT from disk — no network round-trip
# Before Chrome 141: miss (the disk cache didn't check NVS)

see also