Debug: per-hop fetches (click to expand)
How it works
The Redirect Checker traces every hop of a URL's redirect chain. It sends requests with automatic redirects turned off, then follows each Location header by hand. It also detects meta-refresh and JavaScript redirects in the page body. It stops at the final 2xx, 4xx, or 5xx response.
Modes. Single mode traces one URL while you wait and shows a card per selected user-agent side by side. Bulk mode accepts up to 10 URLs per submission on the Free plan and runs in the background. Each row in the results table expands into the same multi-user-agent detail card.
Several user-agents at once. Pick up to 1 user-agent from Googlebot Desktop, Googlebot Mobile, Bingbot, Chrome Desktop, Chrome Mobile, and a generic Bot. We trace the same URL with each one in parallel. When the final URLs differ between user-agents, we raise a cloaking detected finding.
Bare-domain auto-expansion. Off by default. When it is on, an input like example.com expands into the four variants: http:// and https://, each with and without www.. That lets you audit the whole canonical setup in one click.
Proxy egress. Every fetch of your submitted URL goes through a residential proxy that stays the same for the whole job. We retry on transport errors and CDN-block responses. Browser user-agents send Chrome-style Sec-Fetch-* headers. Bot user-agents send a minimal user-agent and Accept-Language, to mirror how the real bots behave.
SEO findings. Each chain gets a grade from A to E based on the severity of the issues found. The 14 rules include:
- A redirect loop, or a chain that is too long.
- A final 4xx or 5xx, or noindex on the final URL.
- A mixed-protocol downgrade, or missing HSTS on HTTPS.
- A block by robots.txt.
- A temporary 302 used for a permanent move.
- Meta-refresh or JavaScript redirects.
- Slow hops, mixed server software, and cloaking.
Plan caps. The Free plan allows 10 URLs per submission and 1 user-agent per check. It also allows 50 page audits per day across all our page-fetching tools combined.
What the columns mean
- Hop
- The step number in the redirect chain, starting at 1 for the original request. Each hop is one HTTP round trip.
- Status
- The HTTP response code at that hop. A 3xx code is a redirect with a
Locationheader. A 2xx is the final success page. A 4xx or 5xx is a final error. Meta-refresh and JavaScript hops report 200 with a labelled redirect type. - Redirect type
- How the redirect was triggered. http means a 3xx with a
Locationheader. meta_refresh means a<meta http-equiv="refresh">tag in the body. js means a JavaScript pattern such aswindow.location = ...in the first 16 KB of the body. - Target URL
- Where this hop sends the client next. On the final hop, this is the URL the chain resolved to.
- Response time
- How long the server took to return this hop's response. Slow hops above a threshold are flagged in the findings panel.
- Security headers
- The
Strict-Transport-Securityheader (HSTS max-age, includeSubDomains, preload),Content-Security-Policy,X-Frame-Options, and a few other relevant headers per hop. Missing HSTS on an HTTPS hop is flagged. - Set-Cookie
- Cookies the server set at this hop. Cookies in a redirect chain are unusual and sometimes a sign of tracking or session-stitching.
- Findings (grade A-E)
- The issues found across the whole chain, counted by severity: loops, downgrades, length, robots blocks, noindex, cloaking, and so on. The grade rolls up the count and severity. A is clean. E means at least one high-severity issue.
Frequently asked questions
How do I check the redirect chain for a URL?
Paste a URL into the box above and click Check Redirects. We follow the chain one hop at a time, with automatic redirects turned off. At each hop we record the URL, status code, response time, and security headers. We stop at the final 2xx, 4xx, or 5xx response. Bulk mode accepts up to 10 URLs per submission on your current plan.
What is the difference between a 301 and 302 redirect?
A 301 is a permanent redirect. It tells search engines the page has moved for good, and ranking signals such as PageRank and link value flow from the old URL to the new one. A 302 is temporary. Search engines keep indexing the original URL and do not pass ranking value. For SEO-critical migrations, always use 301. Use 302 only when the move really is short-lived: A/B tests, geo-redirects, or maintenance pages.
What are the HTTP redirect status codes (and when does each apply)?
- 301 Moved Permanently: a permanent move that passes ranking value.
- 302 Found: a temporary move that does not pass ranking value.
- 303 See Other: a redirect after a POST to a results page.
- 307 Temporary Redirect: like 302, but keeps the HTTP method.
- 308 Permanent Redirect: like 301, but keeps the HTTP method.
Meta-refresh and JavaScript redirects sit outside the 3xx family. Our tracer detects both, a status 200 with a refresh tag or location-changing JavaScript in the body, and labels the hop as such.
Why test the same URL across multiple user-agents?
Some sites send different clients to different places. A mobile bot might go to an m-dot subdomain. An EU visitor might get a 302 to a regional version. A bot might be shown a thin SEO-only page while real browsers get the full one. When two or more user-agents end at different final URLs for the same input, we flag it as cloaking detected. Your current plan allows up to 1 user-agent per check.
What is cloaking and why does it matter for SEO?
Cloaking is serving different content or destinations to search-engine bots than to human visitors. Google bans the practice in its spam policies, and detection can lead to manual actions or removal from the index. Our multi-user-agent trace shows the cases where a bot lands on one URL and a browser on another. You can then judge whether the difference is innocent, such as mobile detection or geo-targeting, or risky, such as hiding content from one audience on purpose.
Are too many redirects bad for SEO?
Yes. Each extra hop adds delay the user pays for, and Googlebot gives up following a chain after about five hops. We flag chain too long when the trace passes the configured limit, and redirect loop when the chain revisits a URL it has already seen. Every redirect should be a single hop straight to the canonical target.
What is a mixed-protocol downgrade and why is it flagged?
A chain that starts on HTTPS and drops to HTTP somewhere along the way breaks the trust the original URL promised. Browsers may warn or block the request, and search engines may not pass ranking value through the insecure hop. Our tracer flags any drop from https:// to http:// in the chain as a high-severity finding.
Why test bare domains with the auto-expand option?
A bare domain like example.com has four variants: http://example.com, https://example.com, http://www.example.com, and https://www.example.com. The right setup for SEO is that three of them 301 to the chosen canonical one. Turn on Auto-expand bare domains to check all four at once and see whether the canonical setup is correct. The option is off by default because each input multiplies the work.