---
title: "Fix redirect chains and loops"
description: "A redirect chain adds latency and leaks crawl signals. Point each legacy URL directly at the final destination, use 301 or 308 for permanent moves, and keep the map in source control. Audit with curl -IL and update internal links so chains stop growing."
url: "https://seo-mcp.io/t/fix-redirect-chains-and-loops"
---

# Fix redirect chains and loops

A redirect chain adds latency and leaks crawl signals. Point each legacy URL directly at the final destination, use 301 or 308 for permanent moves, and keep the map in source control. Audit with curl -IL and update internal links so chains stop growing.

## Prerequisites

- Access to redirect configuration or middleware

## Steps

1. **Map the current chains** *(general best practice)* — Run curl -IL on a sample of legacy URLs and record each Location header. A chain is present when more than one 3xx appears before the 200.
   Check: The audit output contains the full hop list for every sampled legacy URL.
2. **Rewrite rules to point at the final target** — Replace intermediate hops with a direct rule to the final URL. Use 301 or 308 for permanent moves. Exclude destination paths from broad pattern rules to prevent loops.
   Check: curl -IL your production domain/legacy-url shows exactly one 301 or 308 followed by 200.
3. **Update internal links to the destination** *(general best practice)* — Find internal links that still point at redirected URLs and update the href to the final target. This prevents the chain from reappearing after the next edit.
   Check: A site crawl reports zero internal links whose target returns a 3xx.

## Source

@seo-mcp on 2026-10-19: https://developers.google.com/search/docs/crawling-indexing/301-redirects

Canonical: https://seo-mcp.io/t/fix-redirect-chains-and-loops
