Diagnostic tool

Redirect chain checker

Enter a URL and see the whole journey: every redirect it passes through, the status code each server returned, the Location header it sent, and the page it finally lands on.

The trace runs through our server, which requests each URL in the chain and reads only the response headers, never the page itself. Nothing is stored.

What each redirect status code means

A redirect is a response carrying a 3xx status code and a Location header that points at the next URL. The browser or crawler then makes a second request to that address, and keeps going until it gets a response that is not a redirect. Every step is a full round trip, so a chain of four redirects means five requests before anything appears on screen.

301 Moved Permanently and 308 Permanent Redirect both say the resource has a new home for good. 302 Found and 307 Temporary Redirect say the move is temporary and the original address is expected back. The difference matters to a search engine, because a permanent redirect asks it to replace the old URL with the new one while a temporary redirect tells it to keep the original. It matters to a browser too: a 301 response can be cached and reused without asking the server again, while a 302 cannot unless the response explicitly says so.

The newer pair exists because of what clients used to do with form submissions. A 301 or a 302 was often turned into a GET on the next hop, dropping the request body. 307 and 308 forbid that: the method and the body must be repeated unchanged. 303 See Other gives the opposite instruction and always sends the next request as a GET, which is what you want after a POST so that reloading the result page does not submit the form twice.

The redirect codes at a glance

Every 3xx response carries a Location header. The code tells the client how permanent the move is, and whether the request method survives it.

301 Moved PermanentlyPermanent. The new URL replaces the old one. Cacheable by default, so a browser may stop asking. Clients may turn the next request into a GET.
302 FoundTemporary. The original URL stays the one that counts. Not cached unless the response says so. Clients may turn the next request into a GET.
303 See OtherFetch the next URL with GET, whatever method was used. The usual answer to a form POST, so a reload does not resubmit it.
307 Temporary RedirectTemporary, like 302, except the method and the body must be repeated unchanged.
308 Permanent RedirectPermanent, like 301, except the method and the body must be repeated unchanged.

What the checker reports

  • Every hop in order, with the status code, its name and the exact URL requested
  • The Location header each redirect returned, resolved to an absolute URL
  • How long each hop took, and how long the whole chain took
  • The final URL and its status code, which is the address a search engine records
  • Warnings for chains longer than one hop, loops, temporary codes on a move that looks permanent, plain http hops, changes of host, and chains that end on an error

robots.txt Tester

See exactly which crawlers your robots.txt lets in. Test any URL against Googlebot, Bingbot, GPTBot and more, and get the rule that decided it.

Test your robots.txt →

From the blog

All guides →

Frequently asked questions

How many redirects are too many?
One is normal. Two is worth a look. Beyond that it is usually accidental, and every hop adds a round trip before the page starts loading. Browsers give up after about twenty. The fix is almost always to update the original link so it points straight at the final URL.
Should I use 301 or 302?
Use 301 when the old URL is gone for good: a renamed page, a merged section, a domain move. Use 302 for something genuinely temporary, such as a maintenance page or a seasonal offer. A permanent redirect asks search engines to swap the old URL for the new one in their index.
Do redirects hurt SEO?
Not by existing. What they cost is time. Every hop is another request before the page renders, and another fetch for a crawler working through your site. The URL that gets indexed is the one at the end of the chain, so the real risk is a chain ending somewhere you did not intend.
What causes a redirect loop?
Two or more URLs pointing at each other, so the chain never reaches a real page and the browser gives up with an error. It usually comes from two rules fighting: a www rule and an https rule written in different places, or a CMS rewrite arguing with the server config.
Why does my URL redirect when I never set that up?
Most sites carry rules nobody wrote by hand: forcing https, adding or removing www, adding a trailing slash, or sending a logged-out visitor to a sign-in page. Trace the URL here and read the Location header on each hop to see which rule fired and where.