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 Permanently | Permanent. 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 Found | Temporary. 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 Other | Fetch 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 Redirect | Temporary, like 302, except the method and the body must be repeated unchanged. |
| 308 Permanent Redirect | Permanent, 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
Schema Types That Actually Earn Rich Results in 2026
Nine types still earn a visual treatment. Two famous ones were retired. Here is the current list, from Google's own documentation.
Core Web VitalsCore Web Vitals in 2026: Thresholds and What Moved
The metrics did not change this year. Plenty of the tooling around them did. Here is what is actually true right now.
Meta descriptionsMeta Descriptions in the AI Answer Era: What Works
The description tag still has one job, and it is smaller than it used to be. Here is what to write, and what matters more.