A redirect chain is when a URL redirects to another URL that redirects again before reaching the final page, for example A to B to C. Chains rarely break a site, but they add latency, waste crawl requests and can stop Googlebot entirely past 10 hops, so the fix is to point every old URL straight at its final destination and update internal links to skip redirects altogether.
This guide is for Shopify and e-commerce teams who have changed product handles, restructured collections or migrated platforms and suspect redirects have piled up. You'll get what Google actually says about chains (including a myth the old version of this post repeated), how chains form on Shopify, how to find them, a step-by-step way to flatten them and a checklist to stop them coming back.
What is a redirect chain?
A single redirect is one hop: the browser or crawler requests URL A, gets a 301 pointing to B, and loads B. A chain is two or more hops in a row: A to B, then B to C. A redirect loop is a chain that never ends because a later hop points back to an earlier URL, such as A to B to A. Loops are worse than chains, because nothing ever loads.
Chains usually form by accident. Someone redirects an old URL to a new one, and months later the new URL changes too. The second redirect gets added, but nobody updates the first one, so the original URL now takes two hops. Repeat that through a few redesigns and a platform migration, and some URLs on an older store pass through three or four hops before reaching a page.
You can see a chain from the command line by following the redirects and printing each status code and location:
curl -sIL http://example.com/old-page | grep -iE "^HTTP|^location"
HTTP/1.1 301 Moved Permanently
Location: https://example.com/old-page
HTTP/2 301
location: https://www.example.com/old-page
HTTP/2 301
location: https://www.example.com/products/new-page
HTTP/2 200
That example shows three hops: HTTP to HTTPS, the bare domain to www, and an old product URL to a new one. Or paste any URL into our Redirect Checker, which follows every hop and shows each status code without a terminal.
Do redirect chains hurt SEO?
Yes, but not in the way most SEO blogs claim. Here is what Google's own documentation says, and what it doesn't.
Source: Google Search Central, HTTP status codes and Site moves docs (2026); Chrome Lighthouse redirects audit
What Google documents
- There is a hard limit. Google's HTTP status code documentation says "By default, Google's crawlers follow up to 10 redirect hops." A URL behind a longer chain may never be processed.
- Google wants chains short. The site move guide says to avoid chaining redirects and redirect to the final destination directly, and if that isn't possible, to keep the chain "ideally no more than 3 and fewer than 5." It adds that chains add latency for users and that not all user agents and browsers support long chains.
- Chains cost crawling. Google's crawl budget guide says to "Avoid long redirect chains, which have a negative effect on crawling." That guide is written for very large sites (roughly 1 million+ pages, or 10,000+ pages that change daily), so for most Shopify stores crawl budget is a minor concern, not the main one.
- Chains slow real visitors. Chrome's Lighthouse redirects audit fails a page that has two or more redirects and notes each extra trip can delay loading by hundreds of milliseconds. That matters most for paid and email traffic that lands on old URLs.
The link equity myth
The old claim is that every hop "leaks" ranking value, so a three-hop chain passes less authority than a single redirect. Google's site move guide says the opposite about permanent redirects: "301 and other permanent redirects don't cause a loss in PageRank." The real risks are the hop limit, slower pages, wasted requests and messy signals when some hops are temporary (302) instead of permanent. Those are good enough reasons to flatten chains without inventing a penalty.
301, 308, 302 and 307: which redirect to use
Every hop in a chain has its own status code, and a chain that mixes permanent and temporary redirects sends Google mixed signals about which URL is canonical. Google's redirects documentation treats 301 and 308 as permanent and 302, 303 and 307 as temporary.
| Redirect | Meaning | How Google treats it | Use it when |
|---|---|---|---|
| 301 Moved Permanently | Permanent | Strong signal the target should be processed and treated as canonical | A page has moved for good (the default for SEO) |
| 308 Permanent Redirect | Permanent, keeps the request method | Equivalent to 301 | Same as 301, when POST must stay POST |
| 302 Found, 303 See Other | Temporary | Weak signal; the original URL may stay in results | A short-term move, like a temporary sale page |
| 307 Temporary Redirect | Temporary, keeps the method | Equivalent to 302 | Same as 302, when the method must be kept |
| Meta refresh, 0 seconds | Permanent if instant | Interpreted as permanent; delayed refreshes are temporary | Only when you can't set server redirects |
| JavaScript redirect | Client-side | Last resort; Google may miss it if rendering fails | Only when nothing server-side is possible |
The difference between 301 and 308 is about HTTP methods, not SEO. The HTTP specification (RFC 9110) notes that, for historical reasons, a client may change a POST to a GET when following a 301, and that 308 can be used if that change is unwanted. For product and collection pages, which are fetched with GET, either works.
For chains, the rule is simple: when you flatten a chain, every remaining redirect should be a permanent one (301 or 308) unless the move really is temporary. A 302 in the middle of an otherwise permanent chain is a common reason Google keeps showing an old URL.
We'll benchmark your store against your top three competitors on Google and AI answers, flag the technical fixes worth making first and show the revenue math.
How redirect chains form on Shopify
Shopify handles some redirects for you and leaves others to you, and the two layers stack up.
Domain-level hops
Shopify redirects traffic to your primary domain over HTTPS. When we checked a large Shopify store on October 27, 2026, a request to the bare domain over plain HTTP took two 301 hops: first to HTTPS on the bare domain, then to the www primary domain. That chain is built into the hosting setup and only affects visitors and links that use the wrong version of the domain. You can't remove it, but you can make sure your own links, ads, emails and canonical tags always use the final HTTPS primary domain so nobody starts on that path.
URL redirects you create
Shopify's URL redirects help page documents how store redirects work, and a few details matter for chains:
- Redirects only work for URLs that return a 404. In Shopify's words, "If the URL still loads a valid webpage, then the URL redirect won't work."
- Setting a product to draft or removing it from all sales channels makes its URL return a 404, which makes a redirect on it active.
- A store can have up to 100,000 URL redirects, and Shopify Plus stores up to 20,000,000.
- You can bulk import and export redirects as CSV from the URL redirects page.
- URLs with query strings might not work as expected with URL redirects.
The usual chain builders
- Renaming a handle twice. When you change a product's URL handle, the admin offers to create a redirect from the old URL. Rename it again later and you get A to B plus B to C, so A now takes two hops.
- Platform migrations. Redirects imported from an old platform point to the first Shopify URLs. A later restructure adds a second layer on top.
- Collection and blog restructures. Merging collections or moving blog posts between blogs creates new redirects for URLs that were already redirect targets.
- Internal links to old URLs. Menus, product descriptions and blog posts still linking to redirected URLs mean every click and crawl takes at least one avoidable hop.
How to find redirect chains on your site
- Export your redirects. In the Shopify admin, export URL redirects to CSV. This is the full list of hops you control.
- Find targets that are also sources. In a spreadsheet, check whether any "Redirect to" path also appears in the "Redirect from" column. Every match is a chain. If a path ever points back to one already in its chain, you have a loop.
- Validate the whole map. Paste the redirect list into our Redirect Checker, which can validate a full redirect map for loops and chains, or follow individual URLs hop by hop.
- Crawl the live site. Run a crawler over your store and filter for internal links that return 3xx. Those are links you can update to point straight at the final URL.
- Check URLs that earn traffic and links. Test old URLs from backlink reports, ad and email destinations, and your Search Console pages report. These are the chains that affect real visitors.
- Check the sitemap. Your sitemap should only list final, indexable URLs. Any redirected URL in it is a sign something is out of date.
View the data
| Value | |
|---|---|
| 1 hop | 10k |
| 2 hops | 15k |
| 3 hops | 20k |
| 4 hops | 25k |
Source: QCK illustrative calculation
The chart shows why flattening matters on stores with lots of legacy URLs: every extra hop is one more request for every visit and every crawl of every old URL. On a small store the numbers are tiny; on a store with years of migrations they add up.
The free $100M AI Visibility Roadmap, built from 7,960 live pages and 197 A/B tests, covers getting cited by ChatGPT, Google AI Overviews and Perplexity.
How to fix redirect chains, step by step
- Decide the final destination for each old URL. It should be the closest live, indexable equivalent page, not the homepage by default. For URLs with no good match, our 404 Redirect Mapper suggests the closest live page and exports a ready-to-import map.
- Flatten the map. Rewrite every row so its "Redirect to" value is the final URL. Keep the intermediate URLs as sources too, because they may have their own links.
- Make every remaining hop permanent. Replace any temporary redirects in the middle of a permanent move.
- Re-import and spot check. Import the corrected CSV, review how the importer handles paths that already exist, and test a sample of old URLs to confirm each one now takes a single hop.
- Update internal links. Change menus, footer links, product descriptions, blog posts and theme templates to link directly to final URLs. This removes the hop entirely for most visits.
- Update external destinations you control. Fix ad final URLs, email templates, social profile links and any partner links you can edit.
- Keep the redirects. Google's site move guide says to keep redirects "for as long as possible, generally at least 1 year." For URLs that still get links or traffic, there's no reason to remove them.
Here is what flattening looks like in the CSV for a product renamed twice:
Redirect from,Redirect to
/products/blue-mug,/products/blue-mug-12oz
/products/blue-mug-12oz,/products/ceramic-mug-blue
Redirect from,Redirect to
/products/blue-mug,/products/ceramic-mug-blue
/products/blue-mug-12oz,/products/ceramic-mug-blue
Before, the first URL takes two hops. After, both old URLs go straight to the live product in one hop.
| Symptom | Likely cause | Fix |
|---|---|---|
| Old URL takes 2+ hops | Handle or path changed more than once | Point the oldest URL straight at the final page |
| Redirect doesn't fire | The old URL still loads a live page on Shopify | Remove or unpublish the old page, then the redirect applies |
| Browser shows "too many redirects" | A loop, such as A to B and B to A | Delete one of the two rows and choose one final page |
| Google keeps showing the old URL | A 302 in the chain, or internal links still use it | Use permanent redirects and update links |
| Many internal links return 3xx | Menus and content link to old URLs | Update links to final URLs |
| Redirect lands on the homepage | Lazy mapping during a migration | Map to the closest equivalent product or collection |
How to prevent redirect chains
- Treat handles as permanent. Get product and collection handles right at launch, and change them only when there's a clear SEO reason.
- Check before you add a redirect. Before adding A to B, search your redirects for anything already pointing to A, and update those rows to point to B too.
- Plan migrations as one map. During a replatform or restructure, map every old URL (including old redirect sources) to its final new URL in one pass. Our Shopify SEO migration guide covers the full process.
- Link to final URLs. Make it a habit for anyone editing menus, emails or content to paste the live URL, not one copied from an old document.
- Audit on a schedule. Export and check your redirect list after every big catalog change, and run a crawl for internal 3xx links each quarter.
Redirects sit next to other crawl issues. If you're also seeing broken links, our guide to 404 errors and SEO covers when to redirect and when to let a page return a 404.
Redirect chain cleanup checklist
Start by exporting your Shopify redirects and finding every target that is also a source. Flatten those rows so each old URL points at its final page, make every remaining hop permanent, and update menus and content to link straight to live URLs. Then test your most-linked old URLs to confirm each one takes a single hop, and keep the redirects in place for at least a year.
If you're planning a migration or restructure and want the redirect map done right the first time, our technical SEO team can help, or you can get in touch for a custom plan.
Book a free 30-minute call. We'll compare your store with your top three competitors, show which pages are ready to move and prioritize the fixes by revenue.