Redirect Checker
Why the number of hops matters
A redirect is not free. Each hop is a full round trip: DNS, connection, request, response. Two hops where one would do is latency you pay on every visit and every crawl, and search engines follow a limited number of them before giving up.
The common cause is two rules that each do half the job. A server sends www to the
canonical host but leaves the trailing slash alone; the application then strips the
slash in a second redirect. Both rules are correct in isolation, and together they
double the cost of every old inbound link.
What each status code means here
| Code | What it says |
|---|---|
| 301 | Moved permanently. Use this when the new address is the real one from now on. |
| 302, 307 | Temporary. The original address stays canonical, so signals are not passed on. |
| 308 | Permanent, and the method is preserved. Rare outside APIs. |
| 200 | The end of the chain. Whatever address this is, it is the one that answers. |
Using 302 for a permanent move is the mistake with the longest tail: the old URL keeps its position in the index because you told search engines to keep it.
What to look for in the result
- More than one hop. Collapse the chain so the first response points straight at the final address.
- A loop. Two rules pointing at each other; nothing is ever served.
- A chain that changes protocol twice, such as
http → https → http. Usually a proxy and an application disagreeing about which one is in charge. - A 302 where the move is permanent.
Related reading
Chains most often appear after a migration or a permalink change — see fixing WordPress 404 errors and permalinks not working. If the chain ends somewhere unexpected, the canonical tag is usually the next thing to check.
Nothing typed here is stored. The request is made from this server with a plain GET, exactly as a crawler would, and only public addresses can be followed.