Magento to Shopify Migration SEO: URLs, Redirects and What Breaks
Moving from Magento to Shopify changes almost every URL on your store, so protecting your SEO rankings comes down to one job: send each old address to its closest new page with a redirect, then prove it worked. The catch is that Shopify limits which paths you can redirect from, and some Magento URL patterns fall straight into those limits.
This guide covers what is specific to Magento and Adobe Commerce. For the general process, use our Shopify migration SEO checklist alongside it. Shopify’s rules below come from its URL redirects help page, read on 31 October 2026.
How Magento URLs map to Shopify’s URL structure
Magento URLs can be set up in many ways, so check your own store. These are the patterns to look for.
| Magento pattern | Shopify target | The catch |
|---|---|---|
| /blue-walking-boots.html | /products/blue-walking-boots | The usual case. Pattern-based mapping works if the URL keys carry over |
| /mens/boots/blue-walking-boots.html | /products/blue-walking-boots | Category paths in product URLs mean duplicates. Map every version |
| /mens/boots.html | /collections/mens-boots | Nested categories flatten, so names can clash |
| /about-us | /pages/about-us | CMS pages need their own rules |
| /blog/post-name | /blogs/news/post-name | The Shopify blog handle is part of the path |
| /catalog/product/view/id/123 | /products/matching-handle | Needs a lookup by product ID, as the old URL holds no name |
| /uk/mens/boots.html | Depends on your Markets setup | Store codes multiply your rules |
| /mens/boots.html?color=49 | The parent collection, if anything | Shopify says query strings may not behave as expected |
Magento 1 or Magento 2?
Check which version you are leaving, because it changes how you get your data out. Adobe ended support for Magento 1 in June 2020, so a Magento 1 store may have an older admin, older extensions and URL rules nobody has looked at in years. The settings below are from Adobe’s current documentation for Magento 2 and Adobe Commerce. On Magento 1, ask your developer where the equivalents sit.
Find out how your Magento store builds URLs
Four settings explain most of what you will find, and you can check them before exporting anything. Adobe documents them in its catalog configuration reference and store URLs guide.
| Setting | Where | Why it matters |
|---|---|---|
| Product URL Suffix | Stores > Settings > Configuration > Catalog > Catalog > Search Engine Optimization | Whether product URLs end in .html |
| Category URL Suffix | Same section | The same for categories |
| Use Categories Path for Product URLs | Same section | Whether category paths appear in product URLs, as in the second row above |
| Add Store Code to URLs | Stores > Settings > Configuration > General > Web > URL Options | Whether each URL carries a store code |
Suffixes can be set per store view, so a store with several views may mix patterns. The Marketing > SEO & Search > URL Rewrites grid is also worth pulling, from the screen or the database through your developer, because it holds years of custom rewrites and earlier redirects that a crawl alone can miss.

Build the complete list of old URLs
A crawl only finds what is linked today. Build your list from four sources, and remove duplicates:
- A full crawl of the Magento store
- The Magento URL Rewrites data
- Search Console, Performance and Pages reports, for URLs Google knows and URLs earning clicks
- Backlink data, as URLs with links may have dropped out of your navigation
Rank the list by clicks, impressions and links. The top few hundred deserve manual checks, while the long tail can follow patterns.
Plan the data migration
Your URL work depends on what comes across, so settle this early. Shopify’s Store Migration app does not list Magento as a source, so most Magento stores will use CSV files, a third-party migration app or a developer.
| Data | How it usually moves | SEO point to check |
|---|---|---|
| Products and variants | CSV or migration app | URL keys become Shopify handles, so keep them where you can |
| Customers | CSV or migration app | No direct SEO effect |
| Historical orders | Migration app or API | No direct SEO effect |
| Categories | Rebuilt as collections | Copy descriptions and headings across |
| CMS pages and blog posts | Migration app or by hand | Keep the content that earns traffic |
| Titles and meta descriptions | Depends on the tool | Check before launch, as not every tool brings them |
| URL redirects | Built separately | Never assume an app has done this |
Several migration apps on the Shopify App Store list Magento as a source, including Cart2Cart and Matrixify. We have not tested them for this guide, so run a sample first and check what arrives. Shopify’s migration guide says to import products first, then customers, then historical orders, so that orders connect properly.
Shopify’s redirect limits
This is where Magento migrations go wrong. Shopify’s help page sets these rules.
| Rule | What it means for a Magento store |
|---|---|
| Paths starting /apps, /application, /cart, /carts, /orders, /services or /shop cannot be redirected from. /products and /collections are fixed, and /a/, /community/ and /tools/ are reserved | A catalogue under /shop/ or content under /services/ needs a plan before launch |
| You can redirect only from broken URLs | If the old address still loads a page on Shopify, the redirect will not fire |
| Collection tag URLs cannot be redirected | Do not plan to catch old filter pages with tag URLs |
| Query strings “might not work as expected” | Treat Magento layered navigation URLs as unreliable, and test them |
| An .html URL cannot redirect to the same URL without .html | Applies if a Shopify page lives at the same path. /products/ targets differ, so the usual rewrite works |
| Redirects start working immediately, and browsers and search engines cache them | Mistakes linger, so test before you import in bulk |

Handle store views and international sites
Single-language stores can skip this section. If you run several store views, decide what each becomes: a Shopify market, a separate store, or a retired view. Adobe warns that with store codes enabled, shoppers must have the code in the URL or rewrites fail, so old international URLs may be more fragile than they look.
Keep the mapping one to one where you can. Sending a German page to an English one looks tidy on a spreadsheet, but it misleads shoppers and Google.
Protect category pages
Category pages often hold a Magento store’s most valuable rankings, and they are the most likely to get lost in the rebuild. Before launch, copy category descriptions to the new collection pages, keep the headings and copy that rank, and avoid merging categories unless you are sure they do not earn traffic separately.
The same goes for layered navigation pages that rank. Filtered Magento URLs that earn clicks need a real collection on Shopify if you want to keep that traffic.
Launch-day checking order
- Import redirects in a small batch, then test them
- Import the rest and confirm the count in Shopify
- Test your top 100 old URLs, including product, category and CMS pages
- Confirm robots.txt no longer blocks crawling, and any store password has been removed
- Submit the new sitemap in Search Console
- Check titles, canonical tags and Product schema on sample pages
- Watch “Not found (404)” in Search Console daily for the first fortnight, and add redirects for anything that matters
- Keep your old URL list and a copy of the old site, in case you need to look back
If rankings drop after launch, our guide to lost rankings after a redesign sets out how to diagnose it.
For help with a move, our Shopify migration SEO service covers mapping, launch and recovery, and the free SEO audit is a good way to get a baseline before you start.