Most guides on this topic are the same checklist with a different logo: export your data, set up 301 redirects, monitor after launch. All true, all useless when you're staring at a 9,000-URL Magento store wondering which of those URLs are about to start returning 404s.
This is the version written from actually doing it. We've migrated Magento → Shopify with rankings intact, and we've also been called in to clean up migrations where traffic fell off a cliff. The difference between those two outcomes is almost never the data — it's the URLs and the redirects. So that's where most of this guide lives.
First, the honest part: should you even migrate?
Migration is right for most Magento merchants — the maintenance burden, hosting cost, and developer dependency of Magento are real, and Shopify removes most of them. But it's worth being clear-eyed about where Magento → Shopify gets genuinely hard, because those are the projects that go wrong:
- Complex B2B pricing and catalog logic. Magento handles tiered pricing, customer-group pricing, and quote workflows natively. On Shopify these need Plus, apps, or custom work. If your business runs on this, budget for rebuilding it — don't assume it ports.
- Heavy custom extensions and ERP integrations. Magento's extension ecosystem means many stores have bespoke functionality. Each piece needs a Shopify equivalent or a rebuild. This is the biggest hidden cost.
- Very large, attribute-heavy catalogs. Magento's configurable/bundle product model is richer than Shopify's variant model. Mapping it is lossy (more on this below) and large catalogs amplify the pain.
If none of those describe you, migration is straightforward and this guide gets you through it cleanly. If several do, the migration is still doable — it's just a build project, not a data transfer, and pricing it as the latter is how projects blow up. (We'll tell you honestly which one yours is; that's what the free audit is for.)
Why migrations lose SEO (it's almost always the URLs)
When organic traffic drops after a replatform, the cause is rarely "Google doesn't like Shopify." It's that hundreds or thousands of URLs that Google had indexed and ranked now return 404 or land on the wrong page, and the link equity pointing at them evaporates. Everything else — content, metadata, speed — matters at the margins. URLs and redirects are the main event.
So the entire game is: every URL that had traffic, rankings, or backlinks must 301-redirect to its closest equivalent on the new store. Get that right and you keep your rankings. Get it wrong and no amount of post-launch effort fully recovers them.
Step 1 — Baseline everything before you touch the new store
You can't redirect URLs you don't know about, and you can't prove you preserved rankings you never recorded. Before any build work:
-
Export Magento's URL rewrite table. This is the single most valuable asset. Magento stores its SEO URLs in the
url_rewritetable — export it. It's the authoritative list of every product, category, and CMS URL Magento is serving. - Crawl the live site with Screaming Frog (or similar) to catch URLs the rewrite table misses — paginated pages, filtered URLs, anything dynamically generated.
- Pull your top pages from Google Search Console (Performance report, last 12 months) and Analytics — these are the URLs that actually earn traffic and rankings. They are non-negotiable for the redirect map.
- Export your current rankings for your priority keywords so you have a before/after benchmark. Without this you're guessing whether the migration worked.
- Record current Core Web Vitals from Search Console so you can prove the new store is faster.
Step 2 — Know the Magento URL patterns that will break
This is the part the generic guides skip, and it's where migrations actually fail. Magento's URL conventions don't exist on Shopify, so every one of these needs a deliberate redirect rule:
-
The
.htmlsuffix. By default Magento appends.htmlto product and category URLs (blue-widget.html,category/subcategory.html). Shopify never uses.html. Every single product and category URL therefore changes. This alone is usually the largest block of redirects. -
Forced
/products/and/collections/prefixes. Shopify requires these prefixes — a product lives at/products/blue-widget, a category becomes a collection at/collections/widgets. You cannot replicate Magento's flat/blue-widget.htmlpath. So even a "same handle" still needs a redirect because the path structure differs. -
Category path nesting. Magento often uses nested category paths (
/tools/power-tools/drills.html). Shopify collections are flat (/collections/drills). Decide your mapping deliberately. -
Layered navigation / faceted URLs. Magento generates parameter URLs for filters (
?color=red&price=10-20). These can number in the thousands. Don't blindly redirect them all — most should have beennoindex/canonicalized already. Identify which faceted URLs actually rank or have links, redirect those to the nearest collection, and let the rest 404 cleanly (they shouldn't have been indexed). -
Store-view prefixes. Multi-store/multi-language Magento setups prefix URLs (
/en/,/de/). Map each store view to its Shopify equivalent (or market). -
Trailing slashes and case. Magento and your server config may serve
/Page/,/page,/page/. Normalize and redirect variants to one canonical form. - CMS pages and the blog. Magento CMS pages and any blog-extension URLs change too — don't forget them; they often hold links.
Step 3 — Build the redirect map
With your URL inventory (rewrite table + crawl + GSC top pages) in one sheet, map each old URL to its new Shopify URL. Use the companion redirect-map template (linked below) — it's set up in Shopify's bulk-import format so you can upload it directly.
Practical notes from doing this at scale:
- Shopify imports redirects via Online Store → Navigation → URL Redirects → Import, as a CSV with two columns:
Redirect from(the old path, e.g./blue-widget.html) andRedirect to(the new path, e.g./products/blue-widget). Paths are relative to your domain. - Prioritize by value. Map your GSC top pages and any URL with backlinks first and perfectly. Then the bulk of products and categories. Then the long tail.
- Avoid redirect chains. Old URL → new URL in one hop. A → B → C bleeds equity and slows crawling. If you're consolidating categories, point straight to the final destination.
- Don't redirect everything to the homepage. A mass "redirect all 404s to home" is the classic lazy move and Google treats those as soft-404s — they pass almost no equity. Redirect to the most relevant page, or let truly dead URLs 404.
- Keep the redirect map forever. These 301s are permanent. Don't delete them in a future cleanup.
Step 4 — Migrate data without dropping SEO signals
The data transfer itself rarely tanks SEO, but a few things quietly hurt rankings if you're not deliberate:
- Product model mismatch. Magento configurable products (a parent with linked simple products) map to Shopify products-with-variants — usually fine. But bundle and grouped products don't have a clean Shopify equivalent and need rethinking (often a product with line-item properties, an app, or a custom build). Don't let a migration tool silently flatten them.
- Carry over metadata, don't regenerate it. Bring your existing meta titles, meta descriptions, and H1s across. Auto-generated replacements lose the wording you ranked for.
- Preserve content depth. Category descriptions, product copy, and on-page text are ranking signals. Thin them out during migration and rankings follow. Migrate the full content.
- Image alt text carries over as image-SEO signal and accessibility — don't lose it in the export/import.
- Customers can't bring passwords. Shopify can't import Magento password hashes; customers will reset on first login. Not an SEO issue, but plan the comms so it's not a support fire.
- Historical orders import for reference but don't affect SEO — prioritize accordingly.
Step 5 — The launch-day runbook
Sequence matters. The goal is zero gap between the old URLs dying and the redirects going live:
- Final content/data sync so the new store matches the latest catalog.
- Redirect map uploaded and spot-checked on staging.
- Point DNS to Shopify.
- Immediately confirm the redirects fire — test a sample of product, category, CMS, and top-traffic URLs in an incognito window. Each should 301 to the right place, in one hop.
- Generate and submit the new
/sitemap.xmlto Google Search Console right away. Remove/replace the old sitemap. - Confirm the site is indexable — check that you didn't ship with
noindexor a leftoverrobots.txtblock from staging. (This is a shockingly common launch-day disaster: the staging "block everything" rule going live.)
Step 6 — Monitor (the first 90 days decide it)
- First 24 hours: watch Search Console Coverage for a 404 spike. Every unexpected 404 is a missing redirect — add it immediately.
- First 2 weeks: expect some ranking turbulence; that's normal as Google recrawls. Keep clearing 404s as they surface. Watch that the new URLs are getting indexed.
- First 90 days: compare rankings and organic traffic to your baseline. A correctly executed migration returns to (and often exceeds, thanks to Shopify's speed) prior levels within this window. If a specific set of URLs lost rankings, it's almost always a redirect gap — find it in the Coverage report. We've done this end-to-end on real client migrations — see the Stay High case study for the metrics.
What this actually costs (honest version)
Anyone quoting a flat migration price without seeing your store is guessing. The real cost drivers:
- Catalog size and complexity — number of SKUs, and especially configurable/bundle product use.
- B2B / custom pricing logic — the single biggest swing factor.
- Extensions and integrations to rebuild — ERP, PIM, custom checkout, subscriptions.
- Theme complexity — a like-for-like design port vs. a redesign.
- Redirect volume — a 500-URL store is an afternoon; a 50,000-URL store with faceted nav is real work.
A simple catalog migration is a fixed, predictable project. A B2B Magento store with custom pricing and an ERP integration is a build. Knowing which one you have before you start is the difference between a clean project and a budget overrun.
Get the redirect-map template + pre-migration SEO checklist
We've packaged the exact redirect-map template (in Shopify's bulk-import format) and the full pre-migration SEO checklist we use on client migrations.
Thinking about migrating from Magento?
We're a Shopify-only studio and we've shipped 200+ stores since 2011.
A senior dev reviews your Magento store, flags the redirect and data risks specific to your setup, and tells you honestly whether it's a clean migration or a rebuild. No pitch, no obligation.