Shopify Redirects: How to Set Up 301s Without Losing the Rankings You Have
Shopify redirects only fire on URLs that already 404, take one exact path per row and delete themselves when you republish. Here's the setup that works.

Shopify's built-in URL redirect tool is a list of one-to-one 301s, and three rules decide whether your rankings survive a change:
- It only fires on a 404: A redirect from a path that still loads a product, collection or page is saved and then ignored. Unpublish, draft or hide the old URL first.
- One exact path per row: No wildcards, no regex, no query-string matching you can rely on. Bulk work is a two-column CSV (Redirect from, Redirect to) imported under Content > Menus > URL redirects.
- It can delete itself: Make a hidden collection visible again and Shopify removes its redirect. Change a handle twice and the first redirect becomes a chain.
- Verify one hop, store-wide: Google follows up to 10 hops but asks for no more than 3. Trace each redirect for 301 then 200, then crawl the whole store for chains and loops.
Demand is modest but commercial: "shopify redirects" gets 390 US searches a month at a $7.32 CPC (DataForSEO, September 2026).
Shopify's redirect tool only fires on URLs that already 404, has no wildcards, and quietly deletes a redirect when you republish the page. This guide covers the setup, the CSV import, the real limits, and how to verify nothing chains. Try CrawlRaven free: 1 site, no credit card →
The short answer: Shopify redirects are one-to-one 301s that only fire on 404s
Most Shopify crawls I read have the same tell: a few hundred redirects in the admin, and a few dozen old product URLs still returning 404 because the redirect never fired. Nobody made a mistake in the form. They saved a redirect for a page that was still live, and Shopify quietly ignored it.
That is the whole trick with Shopify redirects. The built-in tool (Content > Menus > URL redirects) writes a permanent 301 redirect from one exact path to one target, and it only applies once the old path returns a 404. Get that order right and your rankings move with the page. Get it wrong and nothing happens.
Key Takeaways
- →Unpublish first, redirect second: Shopify's help page says a redirect from a URL that still loads a valid page will not work. Draft the product, hide the collection, or delete the page before you save the redirect.
- →The admin path moved: Redirects live under Content > Menus > View URL redirects. Older answers that say Online Store > Navigation describe the same list under its old menu.
- →Bulk is a two-column CSV: Redirect from and Redirect to, one row per path. There are no wildcards, so a migration with patterned URLs is one row per old URL or an app.
- →Chains appear on the second change: A handle changed twice, a page deleted after a domain move, or a re-published collection each turns a clean 301 into a chain or a 404. Trace them.
- →The hard limits: 100,000 redirects per store, 20,000,000 on Plus. Reserved prefixes such as /cart and fixed paths such as /products can never be redirected.
How Shopify URL redirects work (and what a 301 tells Google)
A Shopify URL redirect is a server-side rule: request the old path, and Shopify answers with an HTTP 301 and the new location. Google's redirects documentation ranks the server-side 301 as the type it interprets most reliably, and treats a permanent redirect as a signal that the target should become the canonical URL.
That signal is what "keeping your rankings" means in practice. The old URL drops out of results and the new one inherits its place, as long as three things hold:
- The old URL actually redirects. On Shopify that means it 404s first, then the rule fires.
- The target answers 200 on its own. A redirect into another redirect, or into a 404, is a chain or a dead end.
- The target is the closest equivalent. A deleted product should go to its replacement or its collection, not the home page.
Shopify only offers the permanent kind: there is no status-code field in the admin, and the UrlRedirect object in the Admin API has two fields, path and target. No 302.
Shopify resolves a request by looking for a live product, collection, page or blog post at that path first. Only when nothing matches does it check the redirect list. A redirect from a live URL is never consulted, which is why the help page says redirects work "only from broken URLs".
How to set up a Shopify 301 redirect, step by step
Six steps, whether you are redirecting one deleted product or importing a migration map of five thousand rows. The order matters more than the clicks.
Shopify 301 redirects in six steps
- 1Map every old URL to one final URLSpreadsheet, GSC export, old sitemapTwo columns: Redirect from, Redirect to. Point each old path at the page that replaces it, never at a URL that redirects again.
- 2Make the old URL return a 404Product: Draft or unpublish. Collection: Hidden.Shopify only fires a redirect on a path that no longer resolves. A live product, collection or page silently wins over any redirect you save.Skip this and the redirect never fires
- 3Create the redirectContent > Menus > View URL redirectsRedirect from takes a path on your store. Redirect to takes a relative path, a full URL on another domain, or / for the home page.
- 4Bulk import the rest by CSVURL redirects > ImportSame two columns as the sample file. Review the preview, then import. Export first so you can roll back.
- 5Update the links that still point at old URLsMenus, theme, blog posts, ads, emailA redirect is a safety net. Every internal link that still hits the old path is a hop your visitors and Googlebot pay for on every visit.
- 6Trace each redirect and confirm one hopRedirect checker, then a full-store crawlYou want 301 then 200. A 307 in front, a second 301 behind, or a 404 at the end means a rule is missing or a chain has formed.
Step 1: Map every old URL to one final URL
Build the list before you touch the admin. Two columns, named exactly as Shopify's sample file names them: Redirect from and Redirect to. Sources for the left column, in order of how much traffic they protect:
- Search Console's Pages and Performance reports filtered to the old paths: these URLs have clicks to lose.
- The old sitemap or a crawl of the old site: every URL that existed.
- Backlink targets from whichever link index you use.
- Old campaign and email links, which send people to retired URLs for years.
For the right column, pick the page that replaces the old one and point straight at it. Google's site move guidance says to avoid chaining redirects and, where a chain is unavoidable, to keep it to no more than 3 hops and fewer than 5. If a target is itself an old URL, resolve it now.
Step 2: Make the old URL return a 404
This is the step every other guide skips. Shopify's help page is explicit: "If the URL still loads a valid webpage, then the URL redirect won't work." So before you create the redirect, make the source path dead:
- Product: set its status to Draft, or remove it from the Online Store sales channel. Deleting it also works, but you lose the product data.
- Collection: set Online store visibility to Hidden. Shopify's own example uses this to send a seasonal /collections/fall to /collections/summer.
- Page or blog post: unpublish or delete it.
- A URL from your old platform: it already 404s on Shopify, so nothing to do.
A July 2025 reply in the Shopify Community put it plainly: "redirects only apply to pages which can not be rendered in a normal way", so you would "need to unpublish this product for the redirect to work".
Step 3: Create the redirect under Content > Menus
With the source dead, the form itself is short. From the Shopify admin:
- Go to Content > Menus. (In older admins and in most forum answers this is Online Store > Navigation; it is the same list.)
- Click View URL redirects, then Create URL redirect.
- In Redirect from, enter the old path, for example /products/blue-t-shirt.
- In Redirect to, enter the new path (/collections/t-shirts), a full URL on another domain, or / for the home page.
- Click Save redirect. Shopify says redirects start working immediately.
Redirect from is always a path on this store; the REST API notes that a full URL entered there is saved as its path alone. Redirect to can be a full URL, which is how you send traffic off-domain.
Step 4: Bulk import Shopify redirects by CSV
Anything past a dozen rows goes through the importer. Shopify's sample template is two columns and one example row:
Redirect from,Redirect to /example_product.php,/products/example-product
Then, in the admin:
- Go to Content > Menus and click URL redirects.
- Click Export first and keep the file. It is your rollback.
- Click Import, then Add File, select the CSV and click Upload file.
- Review the import summary, then click Import redirects and Close.
Three things the importer will not do: expand a pattern (a WooCommerce store with /product/handle URLs needs one row per product), fix a target that redirects again, or tell you which source paths are still live. Run step 2 across the list first.
Step 5: Update the links that still point at old URLs
A redirect is a safety net for links you do not control. For links you do control it is a tax: every one that still uses the old path adds a hop for every visitor and every Googlebot request. Clean them up:
- Navigation menus under Content > Menus.
- Theme code and sections: featured collections, announcement bars, footers.
- Blog posts and pages that link to retired products. The broken link checker finds the ones that now 404 or redirect on any page you paste in.
- Ads, email templates and social bios, which nobody remembers until the report shows them.
Step 6: Trace each redirect and confirm one hop
Open the old URL and watch the response chain. The healthy pattern is one 301 followed by a 200. A 307 in front, a second 301 behind, or a 404 at the end is a finding. The redirect checker prints each hop with its status code; the verification section below covers the whole store.
What Shopify's redirect tool cannot do
The limits below come from Shopify's help page on URL redirects and the Admin API reference, read in September 2026. None of them is a bug; they are the shape of the feature.
| Limit | What Shopify does |
|---|---|
| Redirect type | Permanent 301 only. No status-code field, so no 302. |
| Redirect from | A path on this store only. A full URL is saved as its path. |
| Redirect to | A relative path, a full URL on another domain, or / for the home page. |
| Fires when | The old path returns a 404. A live page wins over the redirect. |
| Patterns | None. One exact path per row; no wildcards or regex. |
| Reserved prefixes | /apps, /application, /cart, /carts, /orders, /services, /shop, /a/, /community/, /tools/ |
| Fixed paths | /products, /collections, /collections/all, /collections/vendors, /collections/types |
| Collection tag URLs | Cannot be redirected; Shopify treats every tag path as valid. |
| .html and query strings | .html cannot redirect to the same path without .html; query strings might not work as expected. |
| Market subfolders | One redirect applies to every subfolder (/en-ca/... follows /...); per-subfolder rows are optional. |
| Self-deletion | Making a hidden collection visible again deletes its redirect. |
| Volume | 100,000 per store; 20,000,000 on Shopify Plus. |
What Shopify's built-in URL redirect tool can and cannot do
Two of these cause most of the confusion:
- No wildcards. A migration from a platform with patterned URLs cannot be handled with one rule; Shopify's help page says to "consider using a third-party app" for a large number of redirects. A July 2024 vendor reply in the Shopify Community shows what apps add: "Redirect from: /product/$1 Redirect to: /products/$1".
- The reserved list. /cart, /orders, /apps and the other reserved prefixes, plus the fixed paths /products and /collections, can never be redirected. A January 2024 r/shopify thread asked exactly this: "I can't use Shopify's URL redirects because the page is active." The only answer was JavaScript in the theme, which one reply noted "most likely won't be picked up as a redirect in search engines".
The app market exists because of these gaps. "shopify redirect app" has a keyword difficulty of 54 against 14 for "shopify redirects" itself, which gets 390 US searches a month at a $7.32 CPC (DataForSEO, US, September 2026).
Redirects by scenario: deletions, handle changes, migrations, domain moves
The tool is the same in every case. What changes is which URLs die, how many of them there are, and what Shopify does on its own.
Which redirect to create, by what just changed
Deleted and archived products
Deleting or archiving a product creates no redirect. The product URL starts returning 404, and so does every collection-path copy of it. Redirect /products/handle to the closest product, or to its collection when nothing replaces it, and draft the product first so the redirect can fire.
If products retire every week, automate it. Shopify Flow's Create redirect URL action can fire when a product is deleted; Shopify's own example sends visitors to a discontinued-products page. Tick its Overwrite existing redirect option, because a stale row for the same path otherwise blocks the new one.
Handle changes and the automatic redirect checkbox
Editing a product or collection handle in the search engine listing section is the one place Shopify offers to create the redirect for you: a checkbox to "create a URL redirect for" the old handle appears when you change it. A July 2023 Community thread quotes the prompt. Tick it on a live store.
The trap is the second rename. Change a handle from A to B with the box ticked, then from B to C, and you now hold two redirects: A to B and B to C. That is a redirect chain Shopify will not flatten for you. Edit the A row to point at C.
Platform migrations and domain changes
A platform migration (WooCommerce, BigCommerce, Magento to Shopify) is the CSV workflow from step 4 at scale. Every old URL already 404s on Shopify, so step 2 is free. The work is the mapping, and three things break it:
- .html suffixes. Shopify cannot redirect /page.html to /page, because it treats them as the same URL. Redirect the .html path to its Shopify equivalent under /pages/ or /collections/ instead.
- Query-string URLs. Filter and pagination URLs such as /brands/dell.html?_bc_fsnf=1 "might not work as expected", per Shopify. Map the base path and accept that the parameter versions may fall through.
- Patterned categories. /category/shirts/red-shirt needs one row per product. Budget for it, or use an app that supports wildcards.
A domain change on the same store is different: you do not create URL redirects at all. Connect the old domain, set the new one as primary, and Shopify's domain settings redirect any other domain to it, path for path.
What breaks later is deletion. A November 2022 Community thread shows it: after moving from .com to .co.uk, deleting a collection produced the chain ".com/collections/games >> 301 redirects to >> .co.uk/collections/games (deleted page) >> 301 redirects to /collections/new-games".
The collection-path duplicate URL question
Shopify gives every product a second URL for each collection it sits in: /collections/shirts/products/blue-t-shirt alongside /products/blue-t-shirt. Themes emit a canonical tag back to the /products/ URL, so while the product is live Google usually indexes one copy. Our Shopify SEO audit lists this as the platform's costliest default.
When the product goes, every one of those paths 404s at once. A January 2026 Community thread describes a store retiring a product a week: "if product is in 6 collections then they need to create 7 redirects which is not ideal". Seven is the right count: one canonical URL plus six collection paths.
My rule for those seven URLs:
- Always redirect the canonical /products/ URL. That is the one with the rankings and most of the links.
- Redirect a collection path only if Search Console shows it with clicks or impressions. Most never earned either, because the canonical pointed away from them.
- Let the rest 404. A clean 404 on a URL that was never indexed costs nothing, and 100,000 rows of insurance for URLs nobody visits is how stores hit the limit.
Redirect chains and loops on Shopify: where they come from
A redirect chain is a redirect whose target also redirects. Google's crawlers follow up to 10 redirect hops, and its site move guidance asks for no more than 3, so a chain rarely breaks indexing outright. It does slow every visit and becomes a 404 when a middle link is removed. Shopify produces chains in four ways:
- The second rename. Handle A to B, then B to C, each with the checkbox ticked.
- Deleting after a domain move. Old domain to new domain, then new-domain page to its replacement, as in the .co.uk thread above.
- Importing a target that is itself a source. A migration CSV where row 40's Redirect to is row 300's Redirect from.
- The protocol and host hops. http://www to https://www to https://apex is a chain Shopify itself creates.
That last one is not fixable in the admin. An August 2026 Community thread traced it as "http://www.domain.com (307) -> https://www.domain.com (301) -> https://domain.com (200)". The HTTPS upgrade happens at Shopify's edge and the www-to-apex hop in the app; only a proxy in front of the store could merge them.
The mitigation is upstream: make every link you control use the final https apex form so the chain is never triggered. A redirect loop is rarer and always yours: a row from A to B alongside B to A. Shopify shows it as a browser error, not an admin warning, so you only find it by tracing.
How to verify Shopify redirects across the whole store
Verification has two layers. The first is per URL, right after you save: paste the old path into the free redirect checker and read the chain. It shows every hop with its status code and flags loops, chains, protocol downgrades and 302s where a 301 belongs. You want exactly one 301 and then a 200.
The second layer is the whole store, where a per-URL tool runs out. This is what I use CrawlRaven for on Shopify sites: it joins Search Console, GA4 and a 200-point crawl into one ranked plan. The crawl finds every chain, loop and 404; the traffic data sorts them by the clicks and revenue on the page.
Whichever tool you use, verify five things after any batch of redirects:
- Every source path answers 301, not 200 or 404. A 200 means the page is still live and the redirect is idle. A 404 means the row is missing or has a typo.
- Every target answers 200 on its own. Open each Redirect to value directly.
- No chain is longer than one hop, apart from the http and www hops you cannot remove.
- Search Console's Pages report shows the old URLs moving from Not found to Page with redirect over the following weeks.
- Internal links no longer hit any source path. A crawl that reports zero internal links to redirecting URLs is the finish line.
The ranking is the point: a chain on a collection with real organic sessions sorts above one on a URL nobody visits. Lifetime licences launched at $49 for 3 sites. Lifetime pricing steps up as licenses sell, so check the pricing page for the current batch. See pricing.
Why your Shopify redirect is not working
"Why are my Shopify redirects not working?" is the first People Also Ask question Google shows for this topic. The causes are short. Work down the list:
The old URL still loads. This is the most common cause by far. Draft the product, hide the collection or delete the page, then test again. Shopify saves the redirect either way; it only fires once the source 404s.
- The path is reserved or fixed. /cart, /orders, /apps, /services, /shop, /products, /collections and /collections/all cannot be redirected. Neither can a collection tag URL such as /collections/shirts/red.
- Your browser is showing a cached answer. 301s are cached. Clear the cache or use a private window; Shopify's own troubleshooting steps say the same.
- A typo in either field. Trailing slashes, uppercase letters and a missing leading slash are the usual ones. Compare against the exported CSV.
- The redirect deleted itself. You set a hidden collection back to Visible, and Shopify removed the row. Hide it again and recreate the redirect.
- An app or market redirect is firing first. Redirect apps and the automatic storefront redirection under Online Store > Preferences can intercept the request. Disable them one at a time and re-trace.
- The /404 to / redirect. Shopify notes that redirecting /404 to the home page breaks the theme editor's 404 preview. Remove it.
Shopify redirect FAQs
Setup
How do I set up a 301 redirect in Shopify? Go to Content > Menus, click View URL redirects, then Create URL redirect. Enter the old path in Redirect from and the new path or full URL in Redirect to, then save. The old path must already return a 404 or the redirect never fires.
How do I bulk import redirects? Under Content > Menus > URL redirects, click Import and upload a CSV with two columns, Redirect from and Redirect to, one redirect per row. Review the preview and click Import redirects. Export the existing list first as a rollback.
Limits
Are Shopify redirects 301 or 302? Permanent 301s only. There is no status-code field in the admin or in the urlRedirectCreate API, so the built-in tool cannot create a temporary 302.
Does Shopify support wildcard or regex redirects? No. Each redirect is one exact path and one target. Pattern rules such as /product/$1 to /products/$1 need a third-party app or a proxy such as Cloudflare in front of the store.
How many redirects can a store have? 100,000, or 20,000,000 on Shopify Plus. The Admin API's "Redirect Limit Exceeded" error is unrelated to that quota; it means an API request is bouncing through too many server redirects.
Troubleshooting
Why is my Shopify redirect not working? Almost always because the Redirect from URL still loads a page. Otherwise: a reserved prefix such as /cart, a fixed path such as /products, a collection tag URL, a typo, or a cached earlier version in your browser.
Does Shopify create a redirect when I change a handle? Only if you tick the checkbox that appears under the URL handle field when you change it. Deleting a product creates nothing automatically; a Shopify Flow workflow with the Create redirect URL action can cover that.
Where redirects fit in the rest of your Shopify SEO
Redirects are the part of Shopify SEO that only matters when something changes, which is why they get skipped until a migration goes wrong. Three places to go from here:
- The recurring checklist: our Shopify SEO checklist puts redirect hygiene next to the other defaults you review each quarter.
- The full diagnosis: the Shopify SEO audit walkthrough covers the collection-path duplicates, robots.txt and app scripts that redirects sit on top of.
- The strategy question: if you run a small catalog, the Shopify D2C section of our SaaS vs ecommerce SEO comparison explains why fixing platform defaults comes before writing content.
The order of operations is the whole method: unpublish, redirect, update the links, trace one hop. Do that every time a URL dies and the rankings go where the page went.
Sources
- Shopify Help Center: Creating and managing URL redirects (limits, reserved paths, 404 rule, CSV import, subfolders)
- Shopify Help Center: sample URL redirect CSV template
- Shopify Help Center: Shopify Flow, Create redirect URL action
- Shopify Help Center: Managing your domain settings
- Shopify Help Center: automatic storefront redirection (markets)
- Shopify.dev: UrlRedirect object, Admin GraphQL API
- Shopify.dev: Redirect resource, Admin REST API
- Google Search Central: Redirects and Google Search
- Google Search Central: Site moves with URL changes
- Google Search Central: HTTP status codes and network errors
- Shopify Community threads cited inline (July 2025, July 2024, July 2023, November 2022, January 2026, August 2026) and r/shopify, January 2024.
- Keyword volumes, CPCs and difficulty: DataForSEO Labs, United States, September 2026. SERP and People Also Ask: DataForSEO SERP API, United States desktop, September 25, 2026.
Frequently asked questions
How do I set up a 301 redirect in Shopify?
In the Shopify admin go to Content > Menus, click View URL redirects, then Create URL redirect. Enter the old path in Redirect from and the new path or full URL in Redirect to, and save. The old path must already return a 404, or the redirect is saved but never fires.
Are Shopify redirects 301 or 302?
Shopify URL redirects are permanent 301 redirects. There is no status-code field in the admin or in the urlRedirectCreate API, so you cannot create a temporary 302 with the built-in tool. Shopify's own help page warns that 301s are cached by browsers, so a redirect you later delete can keep working for returning visitors.
Why is my Shopify redirect not working?
Usually because the Redirect from URL still loads a page. Shopify only redirects paths that return a 404, so a live product, collection or page wins over the redirect. Other causes: a reserved prefix such as /cart or /apps, a fixed path such as /products, a collection tag URL, a typo, or your browser caching an earlier version.
Can Shopify redirect a URL that still exists?
No. Shopify's help page states that if the URL still loads a valid webpage, the URL redirect will not work. Set the product to Draft or remove it from the Online Store sales channel, set a collection's visibility to Hidden, or delete the page, and then the redirect starts firing.
Does Shopify support wildcard or regex redirects?
No. The built-in tool and the UrlRedirect API take one exact path and one target per redirect, and Shopify's help page points merchants with a large number of redirects to third-party apps. Pattern rules such as /product/$1 to /products/$1 need an app or a proxy such as Cloudflare in front of the store.
How do I bulk import redirects into Shopify?
Go to Content > Menus > URL redirects and click Import. Upload a CSV with two columns, Redirect from and Redirect to, one redirect per row, matching Shopify's sample file. Review the preview and click Import redirects. Export your existing redirects first so you can restore them if the import goes wrong.
How many redirects can a Shopify store have?
Shopify's help page sets the limit at 100,000 URL redirects per store, or 20,000,000 on Shopify Plus. A separate "Redirect Limit Exceeded" error from the Admin API is unrelated: it means an API request is bouncing through too many server redirects, not that your store has hit its quota.
Does Shopify automatically create a redirect when I change a product handle?
Only if you tick the box. When you edit a product or collection handle in the search engine listing section, Shopify offers a checkbox to create a URL redirect from the old handle. Deleting a product creates nothing automatically; a Shopify Flow workflow with the Create redirect URL action can fill that gap.
Can I redirect a Shopify URL to an external domain?
Yes. Redirect to accepts a full URL such as example.com/collections/shirts as well as a relative path. Redirect from, however, is always a path on the store you are editing, so you cannot use the tool to redirect another domain in; that is handled by connecting the domain under Settings > Domains.
How long should I keep Shopify redirects in place?
Google's site move guidance says to keep redirects for as long as possible, generally at least 1 year, and suggests keeping them indefinitely for users. Shopify's 100,000-redirect limit is rarely a reason to prune, so leave migration redirects alone and only remove rows that now point at dead targets.
15+ years of growing SaaS websites through SEO | Author, 200-Point Audit Checklist
Aditi has spent 15+ years helping SaaS companies scale organic traffic through technical SEO and content strategy. She is the author of the CrawlRaven 200-Point Audit checklist used by agencies and in-house teams to systematically improve search performance.