Redirect chain checker
every hop, in order.
Paste a URL and see each address it passes through before a page loads, with the status code of every step. Then find out where the extra hops came from and how to remove them.
Quick answer
A redirect chain is a URL that redirects to a second URL, which redirects again before a page loads: A to B to C. The checker below requests the URL from our server, follows each HTTP redirect for up to 15 hops, and lists every address with its status code and the final destination. It needs no account. A healthy chain has one redirect and ends on a 200; a longer one can usually be cut to a single hop.
Traced server-side, so there are no CORS errors. Follows every 301, 302, 307, and 308 hop — up to 15 redirects.
Before: 3 redirects
http → https → www → trailing slash
- 301 Permanenthttp://example.com/blog
- 301 Permanenthttps://example.com/blog
- 301 Permanenthttps://www.example.com/blog
- 200 OKhttps://www.example.com/blog/
After: 1 redirect
Every old form points at the final URL
- 301 Permanenthttp://example.com/blog
- 200 OKhttps://www.example.com/blog/
What a redirect chain looks like
Each hop is a full request and response. The browser asks for one address, the server answers with a 3xx status and a Location header, and the browser starts again at the new address. A chain is that cycle happening more than once before a page arrives.
Here is a common one, from a site that added HTTPS, then a www rule, then trailing slashes, each as its own redirect. Three redirects to reach one page, where a single rule could send every variant straight to the final address.
| Hop | URL | Response |
|---|---|---|
| 1 | http://example.com/blog | 301 to the https version |
| 2 | https://example.com/blog | 301 to the www version |
| 3 | https://www.example.com/blog | 301 to add the trailing slash |
| 4 | https://www.example.com/blog/ | 200, the page loads |
How chains build up
Nobody sets out to build a chain. They grow one sensible rule at a time, often years apart.
- Protocol, host and slash rules written separately, as in the example above.
- Migrations on top of migrations. A page moved in one redesign and again in the next keeps both redirects, so the oldest URL takes two hops.
- Marketing links that stack services: a short link, an email platform's click tracking, an affiliate network, then the site's own redirects. The link tracer explains each of those stops.
- CMS renames. A changed slug or category adds a redirect from the old path, and the next rename adds another.
Why shorten a chain
Every hop is another round trip before anything can render, which a visitor on a weak phone signal sees as a blank screen.
Search engines follow redirects too, but not without end. Google follows only a limited number of hops and advises against long chains because they slow crawling. Every rule in a chain is also one more thing that can break in the next site update.
Mixed codes add confusion: 301, then 302, then 301 says the move is permanent, then temporary, then permanent again. The 301 redirect checker explains each code. A loop is worse, a chain that never ends: A sends you to B and B sends you back, until the browser gives up with an error such as ERR_TOO_MANY_REDIRECTS.
Reading the checker's result
The checker sends one request per hop from our server and reads the status code and Location header of each response. It doesn't run the page's JavaScript. If you type a URL without http:// or https://, it adds https://.
| What you see | What it means |
|---|---|
| Redirects | How many times the URL redirected. One is normal; two or more is a chain you can probably shorten. |
| Total hops | Every address requested, including the last, so always one more than Redirects. |
| Final status | The code of the last response. 200 means a page loaded; 4xx or 5xx means the chain ends on an error, or the site refused an automated request; 3xx means the trace stopped on a redirect. |
| Final destination | The last address the checker reached. When the final status is 200, it's where a visitor lands. |
| 301 Permanent, 308 Permanent | A permanent redirect on that hop. |
| 302 Temporary, 303 See Other, 307 Temporary | A temporary redirect on that hop. |
| The same addresses repeating | A loop. The checker doesn't label it, but the list repeats until the trace stops at 15 hops on a 3xx. |
How to fix a chain or a loop
Point every old URL straight at the final one. If /old-page redirects to /new-page, which now redirects to /newer-page/, send the first straight to /newer-page/ and keep the second for anyone holding the middle URL. For protocol and host chains, write one rule that sets https, the host and the path in a single step.
Then update internal links, your sitemap and canonical tags to the final URL, so your own pages never send visitors or crawlers through a redirect.
For a loop, find the two rules that disagree, often in two layers such as the CMS and the CDN, one forcing www and the other removing it. Trace again after each change.
How to find and fix a redirect chain
- 1Paste the oldest version of the URL into the checker above. Type
http://yourself to test that variant, because the checker addshttps://when no scheme is given. - 2Read the chain from top to bottom and note every hop that isn't the final page.
- 3Change the first redirect to point straight at the final URL, in your server config, CMS redirect settings or CDN rules.
- 4Update internal links, the sitemap and canonical tags to the final URL.
- 5Check again: one redirect at most, ending on a 200.
What the checker doesn't see
- Meta refresh and JavaScript redirects. It follows HTTP 3xx redirects only, so a page that answers 200 and then moves you with a meta tag or script shows as the final destination.
- Anything past 15 hops. The trace stops there, which is how loops and very long chains show up.
- Your exact view of the site. The check runs from our server, without cookies, and identifies itself as a bot, so sites that redirect by country, device or login, or that block automated requests, may answer differently.
- Bulk checks. It traces one URL at a time, about 20 a minute, and gives up on any request slower than 10 seconds. It won't trace private network addresses or gettrack.link URLs.
Questions people ask
What is a redirect chain?
Two or more redirects in a row between the URL you open and the page that loads, such as http to https to www to the final page. One redirect is normal; a chain means extra requests that could be removed.
How do I find the redirects on a URL?
Paste it into the checker on this page. It lists every HTTP redirect with its status code, without opening the link on your device.
How can I see where a link goes without opening it?
Run it through the checker; the final destination is where it lands. For bit.ly and similar short links the URL expander gives a simpler view, and the link tracer explains each stop in a marketing link.
How many redirects is too many?
One is fine. Every hop after that adds a round trip, and Google follows only a limited number, so aim for a single redirect from any old URL to its final page.
How do I detect a redirect loop?
Check the URL here. A loop shows the same addresses repeating until the trace stops at 15 hops, with a 3xx final status. In a browser it appears as an error such as ERR_TOO_MANY_REDIRECTS.
Why does the checker show a different result than my browser?
The check runs from our server without your cookies, and some sites redirect by country, device or login. Your browser may also remember a 301 it saw before, or switch http to https itself on sites that use HSTS, skipping hops the server still sends.
Does checking a link count as a click?
The checker identifies itself as a bot, so trackers that filter bots usually ignore it. Not all do, so the link's owner may see one visit from a server.
Is the redirect chain checker free?
Yes, and it needs no account. You only need a free Track Link account to create tracked links of your own.
More link and redirect guides
What is a tracking link?
How tracking links work, what they record, and real examples.
UTM tracking
Clicks per source, medium and campaign on every link.
Outbound link tracking
GA4 outbound clicks, Adobe exit links, or tracked links.
Link tracer
See every redirect a link takes, without opening it.
301 redirect checker
Check a redirect is a permanent 301, not a 302 or a chain.
TinyURL stats
Where TinyURL clicks live and how to get free stats.
How to track clicks on a link
A free click counter for any URL.
Want to count the clicks, not just trace them?
Start free with 10 tracked links and click analytics, no credit card.
Create a tracked link