Baron Munchausen’s Crawl Test Lab

Redirect Chain Example: How Crawlers Follow It

I rode a cannonball toward the Turks, changed in mid-flight to another coming the opposite way, and reached my tent without ever touching the ground twice.

The short answer

What it is
A redirect chain happens when one URL redirects to a second URL that also redirects, so a client needs two or more hops to reach the final page. A single redirect is not a chain.
Why it matters
Each hop adds a network round trip, which makes the page slower for people. Long chains can also stop a crawler before it reaches the final URL.
How a crawler should report it
Flag the URL as a redirect chain when it has more than one hop, and list every hop with its status code and target. Also report it as a redirected URL, flag links to it as redirect links, and mark it as non-indexable.
Live examples
The Baron riding through the air astride a cannonball, high above a battlefield.
Fig. 14. Passengers must change cannonballs here for the final destination.

Why one URL should not pass through several redirects

A redirect chain forms when redirects pile up over time. One rule sends http to https. Another adds www. A third adds a trailing slash. Then a site redesign adds one more. Each rule made sense when someone wrote it, but together they make a URL take four steps where one would do. Old migrations are the most common source, since new redirects get stacked on top of old ones.

Browsers follow a chain without complaint, up to a limit of about 20 hops, and then they show an error. Each hop costs a new request, and on a slow mobile link you can feel the delay. Google's documentation says Googlebot follows up to 10 hops. If it does not reach content within that limit, it reports a redirect error. Short chains still work, but they waste crawl requests and slow the first view.

To detect a chain, run curl -IL on the URL and count the status lines. A site crawl can do this for every URL and show each hop in order. Look at more than your internal links. Check the URLs in your sitemap, your canonical tags, and the old URLs in your server logs that still get traffic.

To fix a chain, point every old URL straight at the final URL with a single 301. Rewrite your redirect rules so that the host, protocol, and slash changes all happen in one step. Then update internal links, so they go right to the final URL and need no redirect at all. After the change, test a sample of old URLs again and confirm that each one takes a single hop.