How the redirect chain is traced
The server asks for your URL with a GET request and does not follow redirects automatically. Instead it records each response, and if the status is 3xx with a Location header, it resolves that location against the current URL and requests it as the next hop. The body is never read, only the status line and headers.
- Hop limit. The trace stops after 10 requests. If the chain is still redirecting, the result is labelled "truncated at 10", which usually means a loop or a badly configured canonical-host rule.
- SSRF guard. Every hop is validated before it is fetched. Only http and https on ports 80, 443 and 8080 are allowed, and localhost,
.localand.internalnames, private and link-local IP ranges, embedded credentials and numeric IP encodings are refused. A redirect that points at a blocked target shows "Redirect blocked" rather than being followed. - Timeout. Each hop gets 10 seconds.
Reading a typical chain
This is an illustrative result for a site that has both a protocol and a host redirect:
301 http://example.com/ -> redirects to next hop
301 https://example.com/ -> redirects to next hop
200 https://www.example.com/
Three requests, two redirects. Each hop adds a round trip before the page can start loading, so the fix is to send the first URL straight to the final one with a single 301. The redirect generator writes the Apache and Nginx rules for that.
The security header checklist
The checker looks at the final hop only and marks six headers PASS when present and MISS when absent. It tests for presence, not for a good value, so a weak policy still passes.
| Header | What it does |
|---|---|
Strict-Transport-Security | Tells browsers to use HTTPS only for a stated period (RFC 6797) |
Content-Security-Policy | Limits where scripts, styles and frames may load from |
X-Content-Type-Options | Value nosniff stops browsers guessing a file's MIME type |
X-Frame-Options | Restricts whether the page can be embedded in a frame |
Referrer-Policy | Controls how much of the URL is sent to other sites |
Permissions-Policy | Switches browser features such as camera and geolocation on or off |
Things to keep in mind
- The request comes from a data-centre server with a bot user agent. Some sites and firewalls answer that differently from a normal browser, for example with a 403 or a challenge page, so the headers you see may not be the ones a visitor gets.
- Header names are shown in lowercase because HTTP header names are case-insensitive.
- A
Cache-Controlvalue ofno-storeon a page you expected to be cached is a common cause of slow repeat visits. - If the final status is 404 or 5xx, the chain still displays. Check the last badge before reading anything into the headers.
Once the final URL is clean, confirm its canonical tag with the canonical checker.