v135 · network / connectivity

Analytics param filter

Campaign tracking parameters like utm_source, fbclid, gclid, and ref create thousands of distinct cache keys for the same resource. A single No-Vary-Search response header collapses them — the HTTP disk cache serves every campaign link from one entry.

No-Vary-Search: checking…
Presets
Response headers edit and see cache table update
No-Vary-Search:
Base URL:
URLs tested
Cache hits
Cache misses
Entries saved
URL cache analysis
URL Cache result Effective cache key
# Response header — tells HTTP disk cache to ignore UTM params
No-Vary-Search: params=("utm_source" "utm_medium" "utm_campaign")

# These URLs all share ONE cache entry:
GET /landing?utm_source=google&utm_medium=cpc&utm_campaign=spring
GET /landing?utm_source=facebook&utm_medium=social
GET /landing?utm_campaign=retargeting&utm_source=email
GET /landing
# → cache key: /landing (params stripped)

# Without No-Vary-Search:
# Each distinct query string = a separate cache entry
# 1000 ad variants = 1000 cache misses on first load

# To ignore ALL query params entirely:
No-Vary-Search: params

# To ignore all but keep specific ones:
No-Vary-Search: params, except=("lang" "currency")

see also

references