Technical SEORedirectsPageRank

What Is a Redirect Chain?
How It Kills SEO (And How to Fix It)

·14 min read·By SEOCheckPilot

Here's a scenario that happens constantly: a site launches over HTTP. They move to HTTPS. They add www. They rename some URLs for a CMS migration. They do another redesign a year later. Each time, someone adds a redirect. Nobody ever goes back and collapses the chain. Five years later, their most important pages are sitting at the end of a five-hop redirect chain, and they have no idea why they keep losing PageRank they shouldn't be losing.

A redirect chain is exactly what it sounds like: a series of redirects where each URL in the sequence points to the next, rather than directly to the final destination. They accumulate naturally over time on any active website, and they're one of the most common technical SEO issues that goes unnoticed until something visible breaks.

In this guide
  1. How redirects work
  2. What makes a chain
  3. How chains affect SEO and performance
  4. How chains form on real sites
  5. Finding redirect chains on your site
  6. Fixing redirect chains
  7. Redirect loops — a different problem
  8. HTTP status codes you should know
  9. FAQ

1. How redirects work

When a browser or crawler requests a URL, the server responds with an HTTP status code. A 200 means success — here's the content. A 301 or 302 means “this URL has moved, try this other URL instead.” The browser then automatically makes a second request to the new URL.

A single redirect is completely normal and fine for SEO. Moving a page from its old URL to a new one with a 301 is the right thing to do — it tells search engines to transfer all the ranking signals (links, authority, relevance) from the old URL to the new one.

The problem starts when that new URL also redirects somewhere else.

2. What makes a chain

A chain is any sequence of two or more redirects before reaching the final destination. The most common three-hop chain on the internet today looks like this:

301http://example.com/old…-page≈85% equity passes301https://example.com/ol…d-page≈72% equity passes301https://www.example.co…m/old-page≈61% equity passes200https://www.example.co…m/new-pageFinal destination
A 3-hop redirect chain: HTTP → HTTPS → www → final URL. Each hop loses link equity and adds latency.

This particular chain forms almost automatically on sites that:

  1. Started on HTTP (hop 1: HTTP → HTTPS)
  2. Enforce www. canonicalization (hop 2: non-www → www)
  3. Later moved the page to a new URL (hop 3: old slug → new slug)

The right fix at each step would have been to update all existing redirects to point directly to the current final destination. Instead, because each change was made independently, the chain grew one hop at a time.

✓ Direct redirect (ideal)http://example.com/a301 → ~99% equityhttps://www.example.com/b✗ Redirect chain (problem)http://…/a301https://…/a301https://www.…/a301https://www.…/b3 hops · ~61% equity reaches destination · +600ms latency
The direct redirect passes nearly all equity. The chain loses equity at each hop and significantly increases latency.

3. How chains affect SEO and performance

PageRank dilution

Google hasn't published exact numbers on how much link equity passes through a 301 redirect, but the technical reality is that each hop introduces some loss. Google's own guidance says 301 redirects may not pass full PageRank — and longer chains compound this loss at each step.

The practical implication: if 10,000 external sites link to http://example.com/old and that URL goes through a three-hop chain before reaching the current canonical URL, the current URL is receiving less ranking signal from those 10,000 links than it would with a direct 301. This isn't theoretical — sites that flatten long redirect chains often see ranking improvements within weeks.

The crawl budget angle
For large sites (thousands of pages), redirect chains also waste crawl budget. Googlebot has a limited number of URLs it will crawl per day on your domain. Every hop in a chain consumes one of those crawl slots. A 5-hop chain to reach a single page uses 5x the crawl budget that a direct URL would. This means other pages get crawled less frequently.

Performance impact

Every redirect hop is an additional HTTP round-trip. The browser sends a request, the server responds with a redirect, the browser sends another request to the new URL. On a typical server, this adds 100–300ms per hop. On mobile connections or slow networks, it can be significantly more.

Three hops = potentially 900ms of additional latency before the page even starts loading. For a page with a Largest Contentful Paint target of under 2.5 seconds, that's already a third of your budget burned before any content is delivered. Redirect chains are a straightforward contributor to poor Core Web Vitals scores.

Googlebot chain limits

Google's documentation says Googlebot will follow redirect chains “up to a certain limit” — estimated at around 5 hops in practice, though this isn't officially published. Chains longer than 5 hops may result in Googlebot stopping before reaching the destination, which means the final URL never gets crawled or indexed from that particular entry point.

4. How chains form on real sites

Understanding the common causes helps you prevent future chains after you fix the current ones.

HTTPS migrations

When a site moves from HTTP to HTTPS, server rules are added to redirect all HTTP requests to HTTPS. If the site later adds www. canonicalization or moves pages, those get layered on top. The HTTP rule never gets updated to point directly to the final HTTPS+www+new-path destination.

CMS URL restructuring

WordPress, Shopify, and other CMS platforms often add redirect rules automatically when you change a post slug or category structure. These platform-managed redirects don't know about your previous manual redirects, so they create new hops without collapsing the chain.

Domain migrations

Moving from an old domain to a new one adds a hop for every URL. If the old domain already had internal chains, you now have those old chains plus the domain migration hop on top. Auditing and collapsing chains should always happen before a domain migration, not after.

Tag management and analytics rewrites

Some tag managers and analytics tools rewrite URLs as part of tracking. UTM parameter stripping, canonical enforcement, or A/B testing tools can insert unexpected hops that show up in production but not in staging testing.

Trailing slash inconsistency

/page and /page/ are two different URLs. Sites that enforce trailing slash rules (or remove them) add redirects for every URL that doesn't match the rule. Combined with other chain sources, this adds one more hop to everything.

5. Finding redirect chains on your site

You can't fix what you can't see. There are several ways to discover redirect chains:

For single URLs — SEOCheckPilot Redirect Tracer: The Redirect Tracer tool traces any URL up to 15 hops, showing the full chain with HTTP status codes and per-hop timing. Enter any URL you're concerned about and see the complete path immediately.

For entire sites — use curl or a crawler: To audit your whole site, you need to crawl it. Screaming Frog SEO Spider (free for up to 500 URLs) shows redirect chains in its “Response Codes” tab. SEOCheckPilot's site crawler runs the redirect module across every page and flags chains.

For individual URL testing — curl from the terminal:

bash
# Follow all redirects and show each hop:
curl -Ls -o /dev/null -w "%{url_effective}\n" --max-redirs 15 http://example.com/old-page

# Show detailed headers for each hop:
curl -Lsv -o /dev/null http://example.com/old-page 2>&1 | grep -E "^[<>] (Location|HTTP)"

# Expected output:
> HTTP/1.1 301 Moved Permanently
> Location: https://example.com/old-page
> HTTP/2 301
> location: https://www.example.com/old-page
> HTTP/2 301
> location: https://www.example.com/new-page
> HTTP/2 200

6. Fixing redirect chains

The fix is conceptually simple: update every redirect that points to an intermediate URL so that it points directly to the final destination. The complication is doing this systematically and making sure you don't miss anything.

Step 1: Map the full chain for each problem URL

Before touching anything, document the complete chain: URL A → URL B → URL C → final URL D. You need to know all intermediate hops to know what you're changing.

Step 2: Update redirects from all intermediate points to the final destination

The goal: URL A → URL D (direct 301). URL B → URL D (direct 301). URL C → URL D (direct 301). Even URL B and C should be updated — they might still receive direct traffic from bookmarks or other links, and you want those to resolve directly too.

In Apache .htaccess

apache .htaccess
# Before (chain):
Redirect 301 /old-page /page-v2
Redirect 301 /page-v2 /page-final

# After (direct from both old URLs to final):
Redirect 301 /old-page /page-final
Redirect 301 /page-v2 /page-final

In Nginx

nginx
# Before (chain):
location = /old-page {
  return 301 /page-v2;
}
location = /page-v2 {
  return 301 /page-final;
}

# After (both redirect directly to final):
location = /old-page {
  return 301 /page-final;
}
location = /page-v2 {
  return 301 /page-final;
}

In Caddy

caddyfile
# Before:
redir /old-page /page-v2 301
redir /page-v2 /page-final 301

# After:
redir /old-page /page-final 301
redir /page-v2 /page-final 301
Watch out
After updating redirects, always verify with curl or the Redirect Tracer that the chain has actually collapsed. It's easy to miss an intermediate hop that's defined in a different location (e.g., your CDN has redirect rules separate from your server config, or your CMS has its own redirect table in the database).

Step 3: Update internal links to point directly to the final URL

Redirect chains are often caused by links within your own site pointing to old URLs that then redirect. Even with the chain collapsed, you still have the overhead of the single redirect. Best practice: update all internal links to point directly to the current canonical URL with no redirect at all. Search engines crawl internal links frequently — the more you can make internal links resolve directly, the cleaner your crawl profile.

7. Redirect loops — a different but related problem

A redirect loop is when the chain circles back to a URL it already visited: A → B → C → A → B → C → .... Browsers detect this and show a “too many redirects” error (ERR_TOO_MANY_REDIRECTS in Chrome). The page is completely unreachable.

Common causes:

  • Incomplete HTTPS migration: A rule redirects HTTP → HTTPS, but the HTTPS page also triggers a redirect back to HTTP (often a misconfigured load balancer that sees HTTP headers from the backend even though the frontend is HTTPS).
  • Conflicting CMS and server rules: A WordPress redirect plugin and an .htaccess rule both trying to canonicalize the same URL, pointing at each other.
  • Trailing slash rules: A rule adding trailing slashes and a rule removing them both applied to the same URL.

Diagnosing loops: the Redirect Tracer detects loops automatically and shows which URLs form the cycle. Once you know the loop, trace each URL's redirect rule back to its source (server config, CDN rules, CMS settings) and identify which rule is the rogue one.

8. HTTP status codes you should know

StatusNameUse forPasses equity?
301Moved PermanentlyPermanent page moves, URL canonicalizationYes (close to full)
302Found (Temporary)Temporary redirects, A/B testsPartial / uncertain
307Temporary RedirectTemp redirect preserving HTTP methodPartial / uncertain
308Permanent RedirectLike 301, preserves HTTP methodYes (like 301)
200OKSuccessful response — your goalN/A (no redirect)
404Not FoundBroken destination URLNo (chain is broken)

Frequently asked questions

If I fix a redirect chain, how quickly will Google update its index?

Google re-crawls popular pages frequently — often within days. For less frequently crawled pages, it can take a few weeks. You can speed things up by submitting the URLs for re-indexing in Google Search Console. The ranking improvement from collapsing chains may take a few weeks after Google has re-crawled and reprocessed the pages.

Is one redirect ever acceptable?

Yes, absolutely. A single redirect from an old URL to the current canonical URL is the correct and expected approach when moving content. The problem is chains — two or more hops. One hop is fine and necessary in many situations.

Should I keep old redirects indefinitely?

Generally yes, especially if the old URLs have external links pointing to them. Removing a redirect means those linked URLs return 404, which breaks the link equity flow entirely. The only time it makes sense to remove old redirects is if you're confident no external links point to them and they appear in no indexed pages.

What about canonical tags instead of redirects?

Canonical tags are a softer signal — they tell Google which URL is the preferred version but don't force users or crawlers to the correct URL. If your content genuinely exists at multiple URLs (e.g., due to URL parameters), canonical tags are appropriate. For permanently moved content, a 301 redirect is always stronger than a canonical tag.

The takeaway

Redirect chains are a background drain on your site's SEO performance — slow enough that you rarely notice the effect on any single page, but significant enough at scale to matter. The fix is straightforward once you've found them, and the audit process isn't complicated.

Audit your most important pages first — your homepage, your top-traffic product or category pages, any pages with significant external links. Fix the chains, update your internal links, and build a habit of updating existing redirects whenever you move a URL rather than just adding a new hop. Future you will thank present you.

Related tools

Find and trace redirect chains

Redirect Tracer →Site Crawler →Full Site Audit →
← Back to all guides