A redirect chain happens when one URL redirects to a second URL that redirects to a third, instead of going straight to the final page. To fix it, find the final destination and point every old URL straight at it with a single redirect. Then update your internal links to use that final URL.
What is a redirect chain?
A redirect sends a visitor or crawler from one URL to another. A chain adds extra stops. For example:
http://example.com/oldredirects tohttps://example.com/old- which redirects to
https://example.com/new-name - which redirects to
https://example.com/blog/new-name
The visitor wanted one page and went through three hops to reach it. A redirect loop is the worse cousin: the URLs point back to each other, so the request never ends and the browser shows an error.
Why do redirect chains happen?
Almost never by design. They build up over time:
- A site moves to HTTPS, then later changes its domain or its www setting, and each step adds a rule.
- A page is renamed twice, and the first redirect is never updated to point at the newest address.
- A plugin or CMS adds its own redirect for trailing slashes or lowercase URLs on top of yours.
- A migration maps old URLs to a temporary location that is later moved again.
Do redirect chains hurt SEO?
Google does not say they cause a penalty. It does advise against them. Its guidance on site moves says to avoid chaining redirects and to redirect to the final destination directly. It also says Googlebot can follow up to 10 hops, and that if you cannot avoid a chain you should aim for no more than 3 redirects, and fewer than 5.
So the realistic costs are practical rather than punitive:
- Slower pages. Each hop is another request before the content loads.
- Wasted crawling. A crawler spends requests on hops instead of pages. This only matters much on large sites, as explained in what is crawl budget.
- Fragile setups. The more rules in a chain, the easier it is for someone to break one and send people to an error page.
How do you find redirect chains?
- Crawl your site. Most SEO crawlers have a redirects report that lists chains and the number of hops. Run it on your sitemap URLs and on a list of your old URLs.
- Test a URL by hand. In a terminal,
curl -sIL https://example.com/oldprints every hop with its status code. Count the lines that begin with a 301, 302, 307 or 308. - Check Search Console. The page indexing report shows pages reported as "Page with redirect." That lists URLs that redirect, not chains, so use it to find candidates and then test them. Our guide to checking whether a page is indexed explains the report.
- Look at your internal links. If your own menu or posts link to an old URL, every visit passes through the redirect. A crawl will list these.
How do you fix a redirect chain?
1. Map every old URL to its final destination
Make a sheet with two columns: the starting URL and the page where it should end up. Follow each chain to the last hop and write that address in the second column.
2. Replace the chain with one redirect
Edit the redirect rules so every starting URL points straight at the final destination. Remove the middle rules once nothing depends on them. Use a permanent redirect (301 or 308) for a page that has moved for good, and see 301 vs 302 redirect if you are unsure which type fits. Google's redirects documentation recommends server-side redirects where possible, and says to use JavaScript redirects only when you cannot use server-side or meta refresh redirects, since rendering can fail.
3. Update internal links and sitemaps
Change links in your navigation, posts and sitemap to the final URL. Google advises updating internal links to the new URLs after a move. This removes the hop for most of your traffic and makes the old redirect a safety net rather than a path used every day.
4. Keep the redirects in place
Google says to keep redirects for as long as possible, generally at least one year. Old URLs may still be linked from other sites, so removing the rule can send those visitors to a missing page.
5. Test again
Re-run the crawl and test a handful of URLs with curl. Each should show one redirect, then a 200 status code.
What about redirect loops?
A loop needs a different fix. Find the two or more rules that point at each other and decide which URL is the real one. Often the cause is a conflict between a server rule and a CMS setting, such as one forcing a trailing slash while the other removes it. Pick one convention and remove the other rule.
A redirect that points to a page which then returns an error is a related problem. If a page returns a 200 status but shows an error message, that is a soft 404, which needs its own fix.
Can you prevent chains in future?
- When you change a URL, update the older redirects that pointed at it, not only the newest one.
- Choose one canonical form of your URLs (HTTPS, www or not, trailing slash or not) and redirect everything else to it in one rule. The canonical URL guide covers choosing one.
- Keep a single list of redirects instead of scattering rules across a plugin, a server file and a CDN.
- Re-crawl after every migration or large rename.
Frequently Asked Questions
How many redirects in a row is too many?
Google says Googlebot follows up to 10 hops, but recommends no more than 3 and fewer than 5 if you cannot avoid a chain. Aim for one.
Do redirect chains lose link value?
Google does not give a figure for this. The safe approach is to avoid the question by pointing links straight at the final page.
Is a redirect chain the same as a redirect loop?
No. A chain eventually reaches a page. A loop never does, and the browser gives up with an error.
Should I fix chains on a small site?
Yes, if it is quick. Small sites do not worry about crawl budget, but each hop still slows the visitor and makes the setup harder to maintain.
How do I check a redirect without a crawler?
Run curl -sIL followed by the URL in a terminal. It lists each status code and location until it reaches the final page.