NoVarySearch.com

No-Vary-Search Header Checker

Validate a No-Vary-Search header against the current IETF draft and Chrome, or paste a link to get a suggested header.

Input: No-Vary-Search header value. The "No-Vary-Search:" prefix is optional.

Clear Example

Input: Or start from a link: paste a URL from an email, ad or campaign and get a suggested header.

Example

Links from emails often contain personal tokens. Nothing is stored, but the link stays in this page's address, so don't share the result page.

Output: Result

The result appears here. Not sure what to paste? Pick one of the examples.

What is No-Vary-Search?

No-Vary-Search is an HTTP response header. It tells caches (the browser HTTP cache, prefetch and prerender) which query parameters don't change the response. For example, /page?utm_source=x can then reuse the cached /page. This site sends one too: see how it works here.

Heads-up: the draft and Chrome disagree. Chrome (and MDN) use params for "ignore all" and params, except=(…) for "ignore all except". The current draft makes both invalid and writes except=() and except=(…) instead, which Chrome ignores. key-order and params=(…) lists work in both. The checker shows both verdicts. Read more in the guide →

Examples

HeaderWhat it doesDraftChrome
key-order Parameter order doesn't matter valid works
params=("utm_source" "fbclid") Ignore these parameters valid works
key-order, params=("utm_source") Both combined valid works
except=("id") Ignore every parameter except id (draft form) valid ignored
params, except=("id") Ignore every parameter except id (Chrome form) invalid works
except=() Ignore all parameters (draft form) valid ignored
params Ignore all parameters (Chrome form) invalid works
params=("a", "b") Broken: list items are separated by spaces, not commas invalid ignored
params=(utm_source) Broken: parameter names must be quoted strings invalid ignored

Read the full guide → How caches match URLs, safe and unsafe parameters, recipes and troubleshooting.

More tools