Skip to main content
Security Auditor — checks that the Referrer-Policy response header is set, uses valid values, and does not weaken the browser’s default protection of your page addresses.

Privacy

Keeps tokens, emails and search terms in your URLs away from analytics, ad networks and every site you link to.

Standards

Follows the W3C Referrer Policy specification and the browsers’ current default.
When a visitor follows a link or the page loads a script, image or font from another site, the browser tells that site where the request came from in the Referer header. The Referrer-Policy header decides how much of the page address goes with it: nothing, only the origin (https://example.com/), or the full URL with its path and query string. This auditor reads that header from the audited URL and checks the policy browsers will apply.

How it works

  1. Fetch — sends a HEAD request (or GET when HEAD is not supported) to the audited URL as 37AuditsBot. A blocked request ends the audit with 590; any other failure (timeout, DNS, TLS, non-2xx answer) ends it with 500.
  2. Read — collects every Referrer-Policy header line and splits it on commas into tokens, compared case-insensitively.
  3. Effective policy — like browsers, takes the last valid token as the policy in force, so Referrer-Policy: no-referrer, strict-origin-when-cross-origin applies strict-origin-when-cross-origin. Unknown tokens are skipped.
  4. Rules — unsafe-url (400) and no-referrer-when-downgrade (401) fail; a missing header (300) and unknown tokens (301) warn.
  5. Aggregate — FAIL wins over WARNING; when every rule passes the audit is SUCCESS (200).
  6. Specification pin — every run emits 37A-ReferrerPolicyAuditor-100 (INFORMATION), naming the W3C Referrer Policy Candidate Recommendation of 2017-01-26. It does not change the overall status.
Valid values: no-referrer, no-referrer-when-downgrade, same-origin, origin, strict-origin, origin-when-cross-origin, strict-origin-when-cross-origin, unsafe-url.

What it audits

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail, 500–599 error.

Output documentation

Risks and considerations

What leaks through the Referer header

  • Page addresses often carry private data: password-reset and magic-link tokens, session or tracking ids, email addresses, order numbers and search terms. Any third party that receives the full URL (analytics, ad networks, CDNs, embedded widgets, every site you link to) can log it.

The browser default changed

  • Since 2020–2021 Chrome, Edge, Firefox and Safari apply strict-origin-when-cross-origin when a page sends no policy: other sites receive only your origin, and nothing at all over a downgrade to HTTP. That is why a missing header is a WARNING, not a FAIL.
  • Setting unsafe-url or no-referrer-when-downgrade (the old default) overrides that protection and is worse than sending no header, so both fail.

Choosing a policy

  • strict-origin-when-cross-origin keeps full URLs on your own site and still lets analytics see which site sent the visitor.
  • same-origin or no-referrer hide even your origin from other sites; use them for admin panels, account pages and any page whose address alone is sensitive.

What this auditor does not check

  • A <meta name="referrer"> tag in the HTML and referrerpolicy attributes on links, images and scripts can override the header for the page or for single requests; they are not read.
  • Only the audited URL is fetched; other pages of the site may send a different policy.