// LEARN / REDIRECTS

Fix redirect chains and loops

**0 external backlinks is the bottleneck, not content quality.** When a URL takes 3, 4, or 5 hops to land, Google wastes crawl, link equity leaks, and chains become loops fast.

Diagram showing redirect chains losing link equity across multiple 301 hops, then a single-hop fix

Why chains matter

At enzymes.bio, the crawl problem was not abstract: 16,100 indexed pages sat beside 591,000 not indexed pages, while the site had 0 external backlinks to blunt any internal inefficiency. That means every wasted crawl request matters.

A redirect chain is simple: URL A -> URL B -> URL C. A redirect loop is worse: A -> B -> A, or a longer cycle. Each extra hop adds latency, can weaken the signal that reaches the final URL, and increases the chance that Google stops before the destination.

For a site with 7,950 organic clicks/mo and 557,000 impressions/mo, the difference between a 1-hop redirect and a 4-hop chain is not cosmetic. It changes how much of the crawl budget reaches canonical pages, and how quickly fixes propagate across the index.

How Google sees them

301

Permanent redirect. Use it when the target is final and should inherit signals. This is the default for most old-to-new URL moves.

302

Temporary redirect. Google may treat it as temporary for longer than you expect. Do not use it for permanent consolidation.

307

Temporary and method-preserving. Mostly relevant when the HTTP method must stay intact. Not a migration default.

308

Permanent and method-preserving. Good when you want permanent behavior without method changes.

Why chains lose value

Google can follow chains, but each hop adds failure points. A 3-hop chain can waste crawl and delay canonicals, especially when mixed with parameters, trailing slashes, or locale redirects.

Infographic explains redirect chains versus loops and their crawl-budget and indexing impacts

Find chains in GSC

Start in Performance › Search results and compare queries with sudden click drops against landing pages that now resolve through multiple hops. Then check Indexing › Pages for spikes in Page with redirect and URLs that never settle into the intended canonical.

Use Settings › Crawl stats to look for bursts in fetch activity without matching gains in indexed URLs. If crawl hits rise but Indexing › Pages stays flat, redirects are often part of the drain. Indexing › Sitemaps should only list final URLs, not historical paths.

If a redirect target still appears in Indexing › Pages as indexed, pair the fix with Fix pages that still show as redirected. That usually means your canonical, internal links, or sitemap entries are still pointing at the wrong place.

What to audit first

  • Export all URLs that return 3xx and sort by hop count.

  • Flag any chain longer than 1 hop, especially http -> https -> www -> slash patterns.

  • Look for mixed status codes: 301 followed by 302, or 302 followed by 301.

  • Check Links › External links for old destinations still attracting inbound links.

  • Compare sitemap URLs against final canonical URLs only.

  • Scan locale logic if you run multilingual paths through TranslatePress or similar routing.

  • Test whether Cloudflare bulk redirects are stacking on top of server rules.

  • Inspect .htaccess and nginx rewrites for duplicate logic.

Code patterns that work

<!-- Good: one hop to the final URL -->
<link rel="canonical" href="https://example.com/new-page/">

<!-- Bad: internal link still points to an old URL -->
<a href="/old-page/">Old page</a>

<!-- Better: link directly to the destination -->
<a href="/new-page/">New page</a>

<!-- Sitemap should only list the final URL -->
<url>
  <loc>https://example.com/new-page/</loc>
</url>

Consolidate redirect rules

  1. 01

    Pick one source of truth

    Decide whether redirects live at the edge, in server config, or in the app. Do not split the same rule across Cloudflare bulk redirects and origin rewrites.

  2. 02

    Collapse hop pairs

    Rewrite A -> B -> C as A -> C whenever B is no longer needed. That removes latency and reduces the chance of a loop when one rule changes later.

  3. 03

    Separate permanent from temporary

    Use 301 or 308 for permanent moves. Keep 302 or 307 only when the destination is genuinely temporary. Do not mix them in a migration chain.

  4. 04

    Update every internal signal

    Fix navigation, XML sitemaps, canonicals, hreflang, and structured data so they all point at the final URL. Redirects should be the backstop, not the normal path.

  5. 05

    Retest at scale

    Run a chain checker across the whole site, then re-crawl after deployment. One clean URL is not proof the rule set is clean.

.htaccess or nginx

Field.htaccessnginx

Best for

Shared hosting and quick fixes

High-volume sites and cleaner rule control

Risk

Rule duplication is common

Lower duplication if config is centralized

Performance

Parsed per request

Usually faster for heavy redirect sets

Audit clue

Messy if multiple plugins also redirect

Cleaner when Cloudflare only handles edge-only cases

A real crawl pattern

7,950 clicks/mo and 557,000 impressions/mo
enzymes.bio

The site was already getting demand, but the redirect layer still needed cleanup. With 16,100 indexed pages, 591,000 not indexed, and 0 external backlinks, even small chain reductions matter because there is no off-site link equity cushion.

943 orders to date, $240,809 lifetime revenue
enzymes.bio

When a site has real revenue, redirect cleanup is not a cosmetic task. The goal is to preserve the signal path to product and category URLs while removing extra hops that delay discovery and reprocessing.

Test with curl

curl -I https://example.com/old-url/
curl -IL https://example.com/old-url/

# What you want:
# HTTP/2 301
# location: https://example.com/new-url/
#
# Not this:
# 301 -> 302 -> 301 -> 200
# or a repeating Location header that never settles

Measure the result

After deployment, recheck Indexing › Pages for a drop in redirected URLs and a rise in valid canonical pages. Then compare Settings › Crawl stats before and after. If the crawl graph gets flatter while indexed pages climb, the cleanup is doing work.

For technical validation, use Redirect chain checker on sample URLs and your top linked pages. If the site is mid-migration, pair this with site migration SEO so redirects, canonicals, and sitemaps are aligned before search engines recrawl everything.

Also watch Experience › Core Web Vitals. Redirect removal does not directly fix CWV, but fewer hops often improve real-world page starts and reduce wasted time before the final document loads. For broader crawl cleanup, see crawl budget optimization.

FAQs

How many hops is too many?

One hop is fine. Two is tolerable in edge cases. Three or more is usually a fix-now problem, especially on large sites with weak backlink support and heavy crawl pressure.

Should I use 301 or 302 for a permanent move?

Use 301 or 308. A 302 or 307 tells Google the move may be temporary, which is the wrong signal for permanent consolidation.

Do redirect chains waste crawl budget?

Yes. Google can follow them, but each extra request adds cost and delay. On a site with 591,000 not indexed URLs, that wasted crawl matters more than on a tiny site.

Can Cloudflare cause chains?

Yes. Cloudflare bulk redirects can stack with origin rules, WordPress plugins, and server rewrites. If one layer forces HTTPS and another adds trailing slashes, you get extra hops.

How do I stop loops?

Map every rule and test both directions. Loops usually happen when one rule sends A -> B and another sends B -> A, often after a partial migration or locale rewrite.

What should internal links point to?

The final canonical URL only. Internal links, sitemaps, canonical tags, and structured data should never point at URLs that redirect.

// FAQ

Common questions

How many hops is too many?
One hop is fine. Two is tolerable in edge cases. Three or more is usually a fix-now problem, especially on large sites with weak backlink support and heavy crawl pressure.
Should I use 301 or 302 for a permanent move?
Use `301` or `308`. A `302` or `307` tells Google the move may be temporary, which is the wrong signal for permanent consolidation.
Do redirect chains waste crawl budget?
Yes. Google can follow them, but each extra request adds cost and delay. On a site with 591,000 not indexed URLs, that wasted crawl matters more than on a tiny site.
Can Cloudflare cause chains?
Yes. Cloudflare bulk redirects can stack with origin rules, WordPress plugins, and server rewrites. If one layer forces HTTPS and another adds trailing slashes, you get extra hops.
How do I stop loops?
Map every rule and test both directions. Loops usually happen when one rule sends `A -> B` and another sends `B -> A`, often after a partial migration or locale rewrite.
// FREE-AUDIT

Get a free 30-minute technical SEO audit

Send your URL and one symptom. You'll get a Loom walkthrough back within 48 hours — no sales call.

Request a free audit
In plain English: A clean redirect map gets Google to the final URL faster, stops crawl waste, and keeps link signals from dripping away across extra hops.