Redirect Checker

Trace the full redirect chain on any URL and catch loops, broken links, and cloaking issues.

0 / 10 URLs
User-agents to test 1 selectable on the Free plan
How it works

The Redirect Checker traces every hop of a URL's redirect chain by issuing requests with auto-follow disabled, then manually walking each Location header (or meta-refresh / JS-redirect detected in the body) until a terminal 2xx, 4xx, or 5xx response.

Modes. Single mode traces one URL synchronously and renders a card per selected user-agent side by side. Bulk mode accepts up to 10 URLs per submission on the Free plan and queues the work asynchronously; each row in the results table can be expanded into the same multi-user-agent detail card.

Multi-user-agent simultaneous trace. Pick up to 1 user-agent (Googlebot Desktop, Googlebot Mobile, Bingbot, Chrome Desktop, Chrome Mobile, generic Bot) and we trace the same URL with each in parallel. When terminal URLs diverge across user-agents, a cloaking detected finding is raised.

Bare-domain auto-expansion. Off by default. When enabled, an input like example.com expands into the four canonicalization variants (http://, https://, with and without www.) so you can audit the whole canonical configuration in one click.

Proxy egress. Every fetch that touches your submitted URL goes through a sticky-per-job residential proxy with automatic retry on transport errors or CDN-block responses. Browser user-agents send Chrome-style Sec-Fetch-* headers; bot user-agents send minimal UA + Accept-Language to mirror their real behavior.

SEO findings catalog. Each chain is graded A-E based on the severity of detected issues. The 14 rules include: redirect loop, final 4xx/5xx, mixed-protocol downgrade, chain too long, blocked by robots.txt, temporary 302 used for a permanent move, meta-refresh / JS redirects, missing HSTS on HTTPS, noindex on final URL, slow hops, mixed server software, and cloaking detected.

Plan caps. The Free plan allows 10 URLs per submission, 1 user-agent per check, and 50 total page audits per day across all our crawl-using tools combined.

What the columns mean
Hop
The sequence number of the redirect step, starting at 1 for the original request. Each hop captures one HTTP round trip.
Status
The HTTP response code at that hop. 3xx codes are redirects with a Location header; 2xx is the terminal success page; 4xx and 5xx are terminal errors. Meta-refresh and JS-redirect hops report 200 with a labelled redirect type.
Redirect type
How the redirect was triggered: http (3xx + Location header), meta_refresh (a <meta http-equiv="refresh"> tag in the body), or js (a JavaScript pattern like window.location = ... found in the first 16 KB of the body).
Target URL
Where this hop is sending the client next. On the terminal hop, this is the final URL the chain resolved to.
Response time
The wall-clock time the upstream server took to return this hop's response. Slow hops (above a threshold) are flagged in the findings panel.
Security headers
Captures Strict-Transport-Security (HSTS max-age, includeSubDomains, preload), Content-Security-Policy, X-Frame-Options, and a few other relevant headers per hop. Missing HSTS on HTTPS hops 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 machinery.
Findings (grade A-E)
Severity-counted issues detected across the whole chain (loops, downgrades, length, robots blocks, noindex, cloaking, etc.). The grade rolls up the count and severity of each. 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 trace the chain hop-by-hop with redirects disabled, capturing every intermediate URL, status code, response time, and security header until we reach a terminal 2xx, 4xx, or 5xx. 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 (PageRank, link equity) flow from the old URL to the new one. A 302 is temporary. Search engines keep indexing the original URL and do not transfer ranking value. For SEO-critical migrations always use 301. Use 302 only when the move is genuinely short-lived (A/B tests, geo-redirects, maintenance pages).

What are the HTTP redirect status codes (and when does each apply)?

  • 301 Moved Permanently: permanent move, passes ranking value.
  • 302 Found: temporary move, does not pass ranking value.
  • 303 See Other: redirect after a POST to a results page.
  • 307 Temporary Redirect: like 302 but preserves the HTTP method.
  • 308 Permanent Redirect: like 301 but preserves the HTTP method.

Meta-refresh and JavaScript redirects sit outside the 3xx family, but our tracer detects both (status 200 with a refresh tag or location-changing JS in the body) and labels the hop accordingly.

Why test the same URL across multiple user-agents?

Some sites serve different content (or different redirect targets) to different clients. A mobile bot might be sent to an m-dot subdomain, an EU visitor might be 302d to a regional version, or a bot might be cloaked into a thin SEO-only variant while real browsers get the rich page. When two or more user-agents end at different terminal 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 vs human visitors. Google explicitly bans the practice in its spam policies, and detection can lead to manual actions or de-indexing. Our multi-user-agent trace surfaces the cases where a bot user-agent lands on one URL and a browser user-agent lands on another, so you can investigate whether the difference is innocent (mobile detection, geo-targeting) or risky (intentionally hiding content from one audience).

Are too many redirects bad for SEO?

Yes. Each extra hop adds latency the user pays for, and Googlebot will give up following a chain after roughly five hops. We flag chain too long as a finding when the trace exceeds the configured limit, and redirect loop when the chain revisits a URL it has already seen. Ideally every redirect should be a single hop directly to the canonical target.

What is a mixed-protocol downgrade and why is it flagged?

A chain that starts on HTTPS and downgrades to HTTP somewhere along the way breaks the trust signal 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 downgrade 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 can canonicalize to four variants: http://example.com, https://example.com, http://www.example.com, and https://www.example.com. The "right" answer for SEO is that three of them 301 to the chosen canonical. Enable Auto-expand bare domains to fan out the check across all four and instantly see whether the canonicalization is set up correctly. The option is off by default because each input multiplies the work.