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.
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.
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 -> slashpatterns. - ✓
Look for mixed status codes:
301followed by302, or302followed by301. - ✓
Check
Links › External linksfor old destinations still attracting inbound links. - ✓
Compare sitemap URLs against final canonical URLs only.
- ✓
Scan locale logic if you run multilingual paths through
TranslatePressor similar routing. - ✓
Test whether Cloudflare bulk redirects are stacking on top of server rules.
- ✓
Inspect
.htaccessandnginxrewrites 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
- 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.
- 02
Collapse hop pairs
Rewrite
A -> B -> CasA -> CwheneverBis no longer needed. That removes latency and reduces the chance of a loop when one rule changes later. - 03
Separate permanent from temporary
Use
301or308for permanent moves. Keep302or307only when the destination is genuinely temporary. Do not mix them in a migration chain. - 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.
- 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 | .htaccess | nginx |
|---|---|---|
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
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.
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.