Shopify gives you less control over URLs than a self-hosted platform, and that is mostly a feature: the structure is consistent and the platform adds sensible defaults. But URL changes still cause real damage when handled badly, such as lost rankings after a migration, 404s for products that were renamed, and long redirect chains that slow pages. This guide explains the fixed parts, the parts you can change, how the redirect tool works, and how to check that your redirects really behave.
What Shopify decides for you
Shopify uses fixed path prefixes for core content:
| Content | Typical path |
|---|---|
| Products | /products/<handle> |
| Collections | /collections/<handle> |
| Pages | /pages/<handle> |
| Blog posts | /blogs/<blog-handle>/<article-handle> |
| Cart and checkout | /cart, /checkout |
You cannot remove /products/ or /collections/ from the path in a standard setup. You do control the handle, the last part of the URL, which comes from the title by default and can be edited in the search listing section of each resource.
Duplicate URLs for the same product
A product in a collection can be reachable at both /products/blue-shirt and /collections/summer/products/blue-shirt. Themes commonly emit a canonical tag pointing to the shorter /products/ version so search engines treat them as one page. Check that your theme does this by viewing the page source or using the Meta Tag Checker and looking at the canonical link. If your theme links internally to the collection-scoped version everywhere, that is fine for users, but make sure the canonical is right.
Domain variants
Your store may answer on example.com, www.example.com and store.myshopify.com. Shopify redirects non-primary connected domains to the primary one. Verify it with the Redirect Checker, and read Shopify custom domain DNS setup if the redirect does not happen.
Where Shopify manages redirects: URL Redirects
The redirect tool lives under the Online Store section of the admin, in Navigation, as URL Redirects. Each entry is a pair: a path on your store (the "from" URL) and a destination (a path on the store or a full URL). It creates a permanent redirect (a 301); the difference between 301 and 302 is covered in HTTP redirects: 301 vs 302.
Things to know about how it works:
- Paths only for the source. The "from" value is a path starting with a slash, not a full URL, and it matches exactly. Query strings are generally not treated as part of the match, so check behavior on your store if you rely on them.
- No wildcard or regex rules in the standard admin tool, as far as Shopify documents it. If you are redirecting hundreds of old URLs from a previous platform, you build a mapping and import it. Check the Help Center for current features.
- It applies to paths that do not already resolve. Redirects are meant for URLs that would otherwise return a 404. If a path still points at a live product or page, Shopify serves that content rather than redirecting, so test after saving, and rename or delete the live resource if you really need the redirect.
- Destinations can be external in many cases, such as a different domain, but redirecting to another site passes shoppers out of your store, so use it deliberately.
Automatic redirects when you change a handle
When you change a product, collection, page or blog post handle in the admin, Shopify offers a checkbox to create a redirect from the old URL to the new one. Leave it ticked unless you have a reason not to. Skipping it is the most common cause of broken bookmarks and lost search traffic after a renaming exercise. The same prompt may appear when you delete a resource, depending on the resource type.
Bulk import and export
For migrations, use the Import button on the URL Redirects page with a CSV that has two columns: the old path and the new target. Typical format:
Redirect from,Redirect to
/old-category/blue-shirt,/products/blue-shirt
/old-about,/pages/about-us
/blog/2019/summer-tips,/blogs/news/summer-tips
Check the header names Shopify currently expects by exporting your existing list first and mirroring it. Before importing:
- Make sure every "to" URL returns 200. Redirecting to a 404 only moves the problem.
- Remove duplicates in the "from" column. Conflicts overwrite or are rejected.
- Redirect each old URL to the most relevant new page, not to the home page. Google treats mass redirects to the home page as soft 404s in many cases.
- Keep a copy of the mapping outside Shopify as a record.
Migration checklist: moving to Shopify from another platform
- Crawl the old site and export every indexable URL (the sitemap plus a crawl, and Google Search Console's top pages).
- Map each to its new Shopify URL. Where the product no longer exists, redirect to the closest collection or a replacement product.
- Import redirects before switching DNS, so there is no gap.
- After launch, run the old URL list through the HTTP Status Checker in batches, and confirm each answers with a single 301 then a 200.
- Submit the new sitemap (Shopify generates one at
/sitemap.xml) in Search Console, and watch the coverage and crawl error reports. - Re-run a link scan with the Broken Link Checker to catch internal links still pointing at removed URLs.
- Keep redirects in place long term. Removing them after a few months throws away the value for any link that still exists elsewhere.
Migrate a website without downtime covers the DNS part of a move.
Redirect chains and loops
A chain happens when A redirects to B, which redirects to C. Each hop adds latency and loses a little crawl efficiency. A loop happens when targets point back at each other, and browsers show "too many redirects".
How they appear on Shopify:
- You rename a product twice. The first redirect (old to second) is not updated, so old to second to third forms a chain. Edit the older redirect to point directly to the newest URL.
- A redirect points at a path that is itself redirected by a market, language or app rule.
- An app that manages redirects or localization duplicates what the native tool does.
- Mixed-case or trailing-slash differences:
/Products/Blue-Shirt/versus/products/blue-shirt. Shopify typically normalizes, but external links may carry odd variants, so test them.
Trace the route with the Redirect Checker, and use the Redirect Debugger when a loop or an unexpected hop appears. From a terminal:
curl -sIL -o /dev/null -w "%{http_code} %{url_effective}\n" https://example.com/old-path
curl -sIL https://example.com/old-path | grep -iE "^(HTTP|location)"
Aim for one hop from any legacy URL to its final destination.
Robots, sitemaps and noindex
Shopify generates robots.txt and sitemap.xml for you, and you can customize robots rules through a theme template for robots.txt (named robots.txt.liquid) if you need to. Do not block /products/ or /collections/. Search result pages, filtered collection URLs (with ?filter or ?sort_by parameters) and tag combinations can produce many near-duplicate URLs; check how your theme handles canonicals and noindex for them. Review the live file with the Robots.txt Checker and read robots.txt and sitemap guide.
Handle design tips
- Keep handles short, lowercase, descriptive and hyphenated:
blue-cotton-shirt, notblue-cotton-shirt-mens-large-sale-2026. - Do not put dates, prices or sale names in handles. They age badly and force redirects when they change.
- Change a handle only for a good reason, and always keep the redirect.
- Avoid renaming products purely for seasonal marketing. Change the title and keep the handle.
Monitor redirects and 404s
Redirects can break after theme changes, app installs, or accidental deletion in the admin. Keep a short list of your most important legacy URLs and check them periodically with an uptime monitor that follows redirects and expects the final page. Also review 404s in Search Console regularly, and fix those that have inbound links.
Next steps
- Trace any URL with the Redirect Checker and Redirect Debugger.
- Confirm status codes with the HTTP Status Checker.
- Find broken internal links with the Broken Link Checker.
- Learn the codes in HTTP redirects: 301 vs 302.
- Plan domain changes with Shopify custom domain DNS setup.
FAQ
Can I remove /products/ from Shopify URLs?
Not in a standard store. The prefixes for products, collections, pages and blogs are fixed. You control only the handle at the end of the URL.
Does changing a product handle hurt SEO?
It can if you do not redirect the old URL. Keep the redirect option ticked when you change a handle so the old address sends visitors and search engines to the new one with a 301.
How do I bulk import redirects into Shopify?
Use the Import option on the URL Redirects page with a CSV of old paths and new targets. Export your current list first so you can match the exact column headers.
Why is my Shopify redirect not working?
The "from" path may still resolve to a live product or page, the entry may have a typo or a trailing-slash difference, or an app is intercepting the request. Test with a command-line request to see the actual status code and location.
Should I redirect deleted products to the home page?
Usually not. Redirect to the closest relevant product or collection. If nothing is relevant, a 404 or 410 is more honest than a redirect to the home page.
Get notified when this guide updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.