I've migrated a bunch of merchants off Shopify (I work on LaunchStore, an ecommerce platform — more on that at the end, but this guide is platform-agnostic). The part everyone fears isn't the products or the customers. It's the SEO. Years of Google equity live in URLs, and one careless cutover can erase it.

Here's the sequence we run every time. It works no matter where you're moving.

Step 0: Inventory your URLs before you touch anything

Export every indexed URL. Three sources, unioned:

  1. Google Search Console → Performance → export queries and pages (last 16 months).
  2. yourstore.com/sitemap.xml (Shopify exposes product, collection, and page sitemaps).
  3. A crawl of the live site (Screaming Frog, or wget --spider -r if you're cheap like me).

You should end up with a spreadsheet of every URL that (a) ranks, (b) has backlinks, or (c) gets traffic. Those are the URLs that must survive the move with a 301. Everything else is optional.

Step 1: Map the URL structure

Shopify's patterns are predictable:

/products/{handle} → /products/{handle} (keep identical if you can)
/collections/{handle} → /collections/{handle} (or /category/{handle})
/pages/{handle} → /p/{handle} (whatever your target uses)
/blog/{handle} → /blog/{handle}

The single biggest SEO win available to you: keep the same paths on the new platform. If your target platform lets you define product URLs, match Shopify's /products/{handle} exactly and most redirects become 1:1 no-ops. Every URL you don't have to rewrite is a redirect you can't get wrong.

Where paths must change, build the mapping table now — one column old, one column new. This table is the migration.

Step 2: Set up 301 redirects BEFORE DNS cutover

The trap: people switch DNS first, then add redirects over the following week. Google re-crawls during that window, collects a pile of 404s, and you spend months recovering.

Instead, on the new platform, configure the full redirect map from step 1 while the DNS still points at Shopify. Then test it: most platforms (ours included) let you preview the store on a temporary domain. Hit the temp domain with the OLD paths:

while read url; do code=$(curl -s -o /dev/null -w "%{http_code} %{redirect_url}" \ "https://temp-preview-domain.com${url#https://yourstore.com}") echo "$url → $code" done < url-list.txt 

Every line should read 301 followed by the mapped URL you expect. Fix the ones that don't. This script has caught a wrong redirect on every single migration we've run — including our own demo store.

Step 3: Move the content with its metadata

Products: title, description, images (with filenames preserved — image search traffic is real), variants, and stock. Collections: keep the same handles. Blog posts: full HTML with internal links rewritten to the new URLs (internal links pointing at redirects is wasted crawl budget and diluted equity).

One thing people forget: meta titles and descriptions. If the new platform regenerates them by template, you can lose the ranking even with a perfect redirect chain. Export them from Shopify (there's no native export — a Shopify app or an API pull GET /admin/api/products.json?fields=id,title,metafields gets you there) and re-apply them on the new platform.

Step 4: DNS cutover, then watch three things

Switch DNS. Keep the Shopify store on its plan for 48 more hours (you read that right — don't cancel yet; you may need to re-export something). After cutover, monitor:

  1. GSC Coverage report — new URLs should get discovered; old URLs should show "Page with redirect." That's the healthy pattern. Spikes in "Not found" mean your redirect map has holes.
  2. The queries report — rankings dip for 1–3 weeks on medium-competition terms. That's normal flux from a move. They recover if the redirects and content parity are right.
  3. Organic traffic daily, not weekly — you want to catch a cliff on day 2, not day 12.

Step 5: Update the highest-value backlinks

Redirects pass most equity, but not all. Sort your backlink profile (Search Console links report is free) by traffic/authority and email the top 10–20 sites: "we moved, here's the new URL." Half won't answer. The half that do give you clean links instead of redirect chains forever.

The checklist, compressed

✔ URL inventory (GSC + sitemaps + crawl)
✔ Path mapping table (match paths where possible)
✔ 301 map configured and TESTED on preview domain
✔ Meta titles/descriptions carried over
✔ Internal links rewritten
✔ DNS cutover
✔ 48h Shopify grace period
✔ GSC coverage + queries monitored for 3 weeks
✔ Top backlinks updated by email

*Context, as promised: I work on [LaunchStore.io] — an all-in-one ecommerce platform — and we built a free migration tool that automates steps 1–3 for Shopify stores, because we do this often enough that the manual version stopped making sense. The sequence above is the same one it runs, and it's what I'd do by hand on any platform

You can read more about it here: [https://launchstore.io/features/shopify-migration]