Seo May 16, 2026 5 min read

Redirect Chains Are Killing Your SEO — Here's How to Fix Them

Learn how to fix redirect chains for SEO with real examples, server config snippets, and a clear workflow to flatten 301/302 hops before they hurt rankings.

A redirect chain is what happens when a URL doesn't go directly to its final destination — it bounces through two, three, or sometimes a dozen intermediate URLs first. Each hop adds latency, bleeds link equity, eats into your crawl budget, and increases the chance that Googlebot simply gives up before reaching the real page.

If you've ever run a site audit and seen warnings like "Redirect chain detected: 4 hops", this is the playbook for tracking them down and flattening them.

Why redirect chains hurt SEO more than people think

A single 301 redirect is fine. Google handles them gracefully and passes nearly all link equity through. The problem starts when those redirects stack up.

  • Crawl budget waste: Each hop is a separate request. On large sites, that's thousands of wasted crawls per day.
  • Slower page loads: Every hop adds 100–500ms of latency. Mobile users on 4G feel this immediately.
  • Link equity decay: While Google says minimal PageRank is lost per hop, John Mueller has confirmed Googlebot stops following after roughly 5 hops in a single chain.
  • Mixed signals: A chain that includes a 302 in the middle can cause Google to treat the redirect as temporary, preventing the final URL from consolidating signals.

What a chain actually looks like

http://example.com/old-post
  → 301 → https://example.com/old-post
  → 301 → https://www.example.com/old-post
  → 301 → https://www.example.com/new-post/
  → 200 OK

Four hops to reach the final URL. Each one is fixable independently, but the user — and the crawler — has to follow all of them.

Step 1: Find every redirect chain on your site

You can't fix what you can't see. Start by pulling a list of every URL that returns a 3xx status code.

  1. Crawl your site with a tool that reports full redirect paths (not just the final status).
  2. Check inbound links from Search Console's "Links" report — these are the URLs other sites point to. If they redirect, you want a single hop.
  3. Audit specific URLs using the AXOX Hub Redirect Checker, which traces every hop with status codes and final destination so you can see exactly where a chain breaks down.
  4. Export the data into a spreadsheet with columns for: source URL, hop count, final URL, and status codes at each step.

Prioritise by traffic and link value

Not every chain matters equally. Focus first on:

  • URLs with external backlinks (highest equity loss)
  • URLs appearing in your XML sitemap
  • URLs in internal navigation, footers, or templated content
  • High-traffic landing pages from organic search

Step 2: Flatten the chain at the source

The fix is conceptually simple: every intermediate URL should redirect directly to the final destination, skipping all the middle steps.

Apache (.htaccess)

Replace stacked rules like this:

Redirect 301 /old-post /old-post-v2
Redirect 301 /old-post-v2 /new-post

With a direct mapping:

Redirect 301 /old-post /new-post
Redirect 301 /old-post-v2 /new-post

Nginx

location = /old-post { return 301 /new-post; }
location = /old-post-v2 { return 301 /new-post; }

WordPress (Redirection plugin or Rank Math)

Open each redirect rule and update its target field so it points to the final live URL — not to another redirect entry. Most plugins have a "Check for chains" or "Optimize" feature; run it after edits.

Cloudflare / CDN-level redirects

If you use Bulk Redirects or Page Rules, export the list, deduplicate, and rewrite targets to the final URL. Edge redirects are fast, but they still count as hops.

Step 3: Fix the four classic chain patterns

1. HTTP → HTTPS → www → trailing slash

This is the most common chain on legacy sites. The fix is a single rule that handles all three at once:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\\. [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Combine the protocol, subdomain, and trailing-slash logic into one redirect block instead of three sequential rules.

2. Mixed 301 and 302 in the same chain

If any hop is a 302, Google may not pass full equity. Audit each step's status code and convert temporary redirects to permanent ones — unless there's a real reason (A/B test, geo redirect) for the 302.

3. Plugin-stacked redirects

WordPress sites often have redirects in .htaccess, a redirect plugin, and a security plugin — all firing in sequence. Consolidate to one layer. The server level (.htaccess or Nginx config) is usually fastest.

4. Internal links pointing to redirected URLs

Even if your redirect is a single hop, you shouldn't rely on it for internal navigation. Run a crawl, find every internal link pointing to a 3xx URL, and update the link to point directly to the 200 destination.

Step 4: Verify the fixes

After deploying changes, don't trust that everything works — confirm it.

  1. Re-check each fixed URL with a redirect tracer. You want to see 301 → 200, not 301 → 301 → 200.
  2. Clear any CDN, server, or browser cache. Cached 301s are sticky.
  3. Re-crawl your site and compare hop counts before/after.
  4. Submit updated URLs in Search Console's URL Inspection tool to push Google toward re-evaluation.
  5. Monitor server logs for Googlebot hits on the old chain — if they stop, your fix has propagated.

Set a recurring audit

Redirect chains creep back in. Every site migration, URL slug change, or HTTPS upgrade is an opportunity for new hops to appear. Add a monthly check to your technical SEO routine — pick 20–30 high-value URLs and run them through a redirect tracer to confirm they still resolve in a single hop.

Run any URL through the AXOX Hub Redirect Checker to see the full hop-by-hop path, status codes, and final destination in seconds — free, no signup required.

Try the free tool

Open Tool