Free to explore: filter winning sites by DR, traffic and niche  ·  Try the live explorer →

Redirect chains: find and fix them

A redirect chain diagram with arrows on a whiteboard

Knowing how to fix redirect chains matters most after a migration, a URL restructure or a switch to HTTPS, because each of those layers new redirects on top of old ones. URL A was redirected to B two years ago. Then B moved to C. Nobody updated A, so a visitor or crawler following an old link now takes two hops instead of one.

Chains build up quietly, and no single change creates them. That is why they are best found with a crawler rather than by memory, and fixed in bulk rather than one at a time.

What a redirect chain is

Screaming Frog’s documentation on internal redirect chains describes them as “internal URLs that redirect to another URL, which also then redirects”, adding that “each redirect is referred to as a ‘hop’.” The tool flags them as a warning with medium priority, which is about right: a problem worth scheduling, not an emergency.

A crawler report of redirect chains
PatternPathHopsFix
Single redirect/old → /new1None needed
Redirect chain/old → /interim → /new2Point /old directly at /new
Protocol and path chainhttp://…/old → https://…/old → https://…/new2One rule to the final HTTPS URL
Redirect loop/a → /b → /aNever resolvesBreak the loop; one side must return 200

The paths above are illustrative patterns, not URLs from any real site. The third row is the one most sites have without realising, because the HTTPS rule and the page redirect were set up separately.

Do redirect chains hurt SEO?

The common claim is that every hop leaks ranking value and that any chain is damaging. The evidence for that is thin, and the received wisdom overstates it. Google’s documentation on HTTP status codes states that “by default, Google’s crawlers follow up to 10 redirect hops.” A two- or three-hop chain will be followed.

A network tab showing several 301 responses

The costs are real but smaller and more practical. Each hop is an extra request, so users on slow connections wait longer before the page starts loading. Each hop is an extra fetch for crawlers too, which matters on large sites where crawl budget is genuinely limited. And long chains are fragile: one broken link in the middle and the whole path ends in an error. Go past the hop limit and Google stops following altogether.

How to find redirect chains

There are three ways to check a redirect chain, depending on how many URLs you need to cover.

  1. A site crawler. Crawl the site and open the redirect chains report. It lists every internal URL that takes more than one hop, the full path and the final destination. This is the only practical method for a whole site.
  2. A list crawl of old URLs. Your internal links only reveal chains your own pages trigger. Old URLs that external sites link to will not appear in a normal crawl. Export them from your backlink tool or past sitemaps and crawl them as a list.
  3. The browser for spot checks. Open developer tools, go to the network tab, enable “preserve log” and load the URL. Each redirect shows as its own row with its status code.
Redirect rules in a server configuration file

The second step is the one most audits skip, and it is where the valuable chains hide. Old URLs carrying external links are exactly the ones you most want resolving cleanly in a single hop.

How to fix redirect chains, step by step

The principle is one sentence: point each URL, and each internal link, directly to the final destination. In practice that has two halves.

An internal link pointing to an old URL

Update the redirect rules. For every chain, change the first rule so it targets the final URL, not the intermediate one. On Apache that might look like this, with the old rule replaced rather than left in place:

Keep the intermediate redirect too. Something out there may still link to it. The goal is that every old URL reaches the final page in one hop, not that old redirects disappear.

Update the internal links. Rewriting the rules shortens the chain; updating links removes the redirect entirely. Any navigation item, body link or canonical tag pointing at a redirected URL should be changed to the final URL. Your own site should never need to redirect itself.

Prioritise by what the URL carries. Start with old URLs that have external links pointing at them, then templates such as navigation and footers, where one fix clears a redirected link from every page at once. Body links in individual posts come last. On a large site, a find-and-replace in the database is usually faster than editing pages by hand, provided you test it on a copy first.

A migration URL map in a spreadsheet

Then recrawl. A clean result shows no chains in the report and no internal links returning 3xx. Use permanent redirects for permanent moves; our comparison of 301 vs 302 redirects covers when each applies.

Preventing chains and loops in the first place

Most chains are born during a migration. The safest habit is a single URL map, one row per old URL with its final destination, kept and updated across every move. When a new migration happens, update the destination column for existing rows instead of adding new redirects on top. Our guide to website redesign SEO covers building that map before launch.

A redirect loop error in a browser

Redirect loops are the worst case: a chain that returns to a URL it has already visited, so it never resolves. Browsers show an error, and crawlers give up. They usually come from two rules that contradict each other, such as a trailing-slash rule fighting a CMS setting, or an HTTPS rule fighting a CDN setting. The fix is to find which rule should win and remove the other. If a page has gone for good, it is better for it to return a clean 404 or 410 than to loop, as our post on 404 errors and SEO explains.

One limitation applies to every audit. A crawler only finds chains on URLs it knows about. Old URLs with no internal links, no sitemap entry and no record in your backlink tool will not appear, so a clean report means no known chains rather than none at all. Keep the URL map, and it becomes the record a crawler cannot rebuild.

Frequently asked questions

How do you fix redirect chains?

Change each redirect rule so the original URL points directly at the final destination, update internal links to the final URL, then recrawl to confirm no chains remain.

How many redirects will Google follow?

Google’s documentation says its crawlers follow up to 10 redirect hops by default. Short chains are followed, but each hop still adds a request.

How do I check a redirect chain for one URL?

Open the browser’s developer tools, enable preserve log in the network tab and load the URL. Each hop appears as its own row with its status code.

What is the difference between a redirect chain and a redirect loop?

A chain eventually reaches a final page after several hops. A loop returns to a URL it has already visited and never resolves.

The takeaway Redirect chains are rarely an emergency but always worth fixing. Crawl for them, include old linked URLs, point everything at the final page in one hop and keep a single URL map.