A website migration SEO plan for Shopify comes down to one document and three phases. The document is the redirect map, which tells Google where every old URL lives now. The phases are before launch, launch day and the 90 days after. When we run a migration inside the Shopify Launch Sprint, this is the SEO work running underneath it.
Our Shopify migration guide covers the whole project. This article goes deeper on the SEO part and gives you the checklist itself, to use with us, with another team, or alone.
Let’s be straight: rankings move during every migration, and nothing here promises zero movement. What you control is how complete the map is and how fast you notice gaps. That decides the recovery.
What does moving to Shopify change for SEO?
Moving to Shopify changes three things Google cares about: the URL structure, which Shopify fixes; the templates that output your titles, canonicals and markup; and the sitemap, which Shopify generates for you.
- URLs have fixed prefixes. Products live at /products/handle, collections at /collections/handle, pages at /pages/handle and blog posts at /blogs/blog-handle/article-handle. There are no root-level pages and no custom prefixes, so a page at /about-us becomes /pages/about-us.
- Products have two paths. A product loads at /products/handle and under its collection, but the canonical points to /products/handle. Link to that one.
- The sitemap is automatic. Shopify builds /sitemap.xml for you. You submit it, you do not edit it.
That is why old URLs almost never survive, even when the domain stays the same. Our real migrations are from WooCommerce (Nazzi) and from a proprietary platform tied to the ERP (Cumini). We have no cases on Magento, PrestaShop, Shopware, BigCommerce, Wix or Squarespace: their URL patterns differ, the method below does not, and we start from each platform’s official documentation.
Phase 1: what do you do before the migration starts?
Before the migration you do five things: take a baseline, build the URL inventory and the redirect map, match each page’s on-page SEO, and keep the new store out of Google until launch.
1. Take a baseline you can compare against
- Export Search Console performance by page and by query. Check the property returns real history: we have seen one that only returned data from a recent date.
- Crawl the old site and save the file: status, title, meta description, H1, canonical, word count and internal links per URL.
- Export organic revenue by landing page from analytics, not just sessions.
- Audit the tracking before you touch anything. A baseline you cannot trust is not a baseline.
2. Build the URL inventory from several sources, not one
The old sitemap lies: it lists what the platform wanted to show, not what Google and customers use. Take the union of these and remove duplicates:
- the crawl of the old site (pagination and parameter URLs included) and its sitemaps;
- every page with impressions in Search Console over the past year;
- URLs with backlinks, from a backlink tool;
- landing pages in analytics, and server logs if you can get them;
- the redirects already on the old platform: they are where chains come from.
On the Nazzi migration we checked 215 archived WooCommerce URLs against the new store and delivered the 301 redirect CSV for import into Shopify. Mark each URL keep, merge or retire. Every row needs a destination.
3. Build the redirect map
Map every old URL to the closest equivalent on Shopify, one to one. The rules we apply:
- Same product to same product; variant URLs to the parent product.
- A discontinued product goes to the collection it belonged to, not the homepage. Google asks the same: do not send unrelated old URLs to one page.
- Merged categories and old tag or filter URLs go to the nearest collection.
- Blog posts go to the same post under /blogs/; keep the handle if you can.
- Point every row at the final URL. If A already redirected to B on the old platform, A goes straight to the new B.
For a WooCommerce store the pattern rows look like this: /product/blue-shirt goes to /products/blue-shirt, /product-category/shirts goes to /collections/shirts, /2024/05/size-guide goes to /blogs/news/size-guide, and /shop goes to /collections/all. Generate those rows in a spreadsheet; do the exceptions by hand.
4. Match the on-page SEO, page by page
Keep titles, meta descriptions, H1s and body copy close to what ranks today, and keep image file names and alt text: image URLs move to Shopify’s CDN, so image search starts again. Our opinion: rewriting copy and changing URLs in the same weekend makes any drop impossible to diagnose. Improve the pages that rank in a second project.
5. Keep the new store out of Google until launch
Keep the storefront behind Shopify’s password page while you build, and remove it on launch day. Google’s site move guide also says to remove temporary noindex rules once redirects are live: check both.
How do Shopify 301 redirects work, and how do you import them in bulk?
Shopify 301 redirects live under Content > Menus > View URL Redirects, where you create them one at a time or import a CSV with one column for the old URL and one for the new one. Download the sample CSV from the import screen and keep its headers.
The rules that catch people out come from Shopify’s help page on URL redirects:
- Redirects only work on 404s. If the old path still loads a valid page on the new store, the redirect is ignored. Check collisions before you import.
- Use relative paths on your primary domain; a full URL only for destinations outside it.
- No wildcards are documented, and query strings may not behave. One row per clean URL.
- Some paths cannot be redirected: /products, /collections and /collections/all, reserved prefixes such as /cart, /apps and /orders, and collection tag-filter URLs. A .html URL also cannot redirect to the same path without .html. Decide these cases before launch.
- Language and market subfolders: the help page says one redirect applies to all of them, but its limitations section says otherwise. Test one redirect in each subfolder before you trust it.
- 301s are cached by browsers and search engines, so a wrong redirect does not vanish when you delete it. Test before launch.
When you change a handle in the admin, check whether the editor offers to redirect the previous URL; if not, add the redirect yourself. After the import, export the redirects as a CSV: that file is your record of what was live.
How do canonicals, hreflang, internal links and structured data work after a move?
After a move, canonicals, hreflang annotations, internal links and structured data must all point at the new URLs; Google’s guide on site moves with URL changes lists that step between the map and the redirects.
- Canonicals. Open a product reached through a collection and confirm its canonical is /products/handle. Search the theme and SEO apps for hand-written canonicals or old domains.
- Hreflang. If you sell in several languages, Shopify adds hreflang tags automatically when the store uses Shopify Markets: check Online store > Preferences for the setting, and make sure no theme or app adds a second set. Google needs them reciprocal, or the tags are ignored. Check a page in each language.
- Internal links. Menus, footer, descriptions, blog bodies and emails still carry old URLs. Update them: after launch, a crawl should show no internal link ending in a redirect.
- Structured data. The theme outputs Product markup; reviews and SEO apps can add a second copy. Keep one source and validate it against Google’s Product structured data requirements.
Structured data is also what AI shopping answers read: see our GEO for Shopify guide. If you come from WooCommerce, the WooCommerce to Shopify migration guide has the platform side.
Phase 2: what do you check on launch day?
On launch day you check that the redirects fire, that Google can crawl the new store and that nothing from the build is left behind. Launch early in the week and away from a campaign peak, so someone is watching for the first 48 hours.
- Before the DNS switch: the map is imported and tested on a sample; the primary domain is chosen (www or not); the storefront password is off; no noindex; robots.txt is clean; canonicals are right on a product, a collection and a post.
- At the switch: run the full old-URL list against the live store. Each row should return one 301, then a 200 on the destination in the map. Open the top landing pages by hand.
- Search Console: open the Domain property, submit the new /sitemap.xml and run a live URL Inspection on the homepage, a top collection and a top product. Warnings in the old sitemap about redirects are normal.
- 404 page, checkout and tracking: the 404 page works, a test order goes through, and the purchase event fires in analytics and your ad platforms.
- Outside the store: update ad final URLs, the Google Merchant Center feed, email templates and social profiles.
Phase 3: what do you monitor in the 90 days after launch?
In the 90 days after launch you watch crawling first, then indexing, then clicks, because each one only moves after the one before it.
- Days 1 to 7: crawl. Re-run the old-URL list every day. In Search Console, old URLs should show as redirected, not as “Not found (404)”. Any missing row gets a redirect the same day: Shopify says redirects work immediately.
- Weeks 2 to 4: indexing. Are the new URLs getting indexed? Look for “Crawled, currently not indexed” concentrated in one template. Compare impressions by page group (collections, products, posts) with the baseline. Ask your best linking sites to update their links.
- Days 30 to 60: clicks. Compare clicks and organic revenue by page group. Check “Duplicate, Google chose different canonical”. Flatten any redirect chain.
- Days 60 to 90: review. Write down what recovered and what did not. For groups still down, check content parity against the baseline crawl. Keep every redirect: Google says at least a year.
This phase lines up with the 90 days of support in the Shopify Launch Sprint, and organic traffic at 90 days is one of its 4 written guarantees.
Do you need Search Console’s Change of Address tool?
No: the Change of Address tool is only for moving to a different domain or subdomain, and a Shopify migration on the same domain does not use it. Google says it is not needed for HTTP to HTTPS, www to non-www, or paths that move inside the same domain.
It does apply when the address changes, for example from a retired brand domain to a new one. The order is: verify both properties, set up and check the 301 redirects, and only then submit the tool from the old property. Keep the old domain registered.
For a same-domain move keep your existing Domain property verified by DNS (it covers every protocol and subdomain variant, and its history stays), the new sitemap and the monitoring above. If you can, do not change domain and platform in the same project: two moves make any drop harder to explain.
When should you worry about rankings after a Shopify migration?
Worry when a whole group of pages stays down while the rest recovers, or old URLs return 404 in volume; a dip in daily clicks in the first weeks is not that.
- Old URLs with traffic still return 404 or end in a loop.
- One template (say collections) is down while products are back: a content or title parity problem, not a redirect problem.
- New URLs sit in “Discovered” or “Crawled, currently not indexed” well beyond the first few weeks.
- Google keeps choosing the old URL as canonical, or a noindex from the build survived launch.
Google says expect fluctuation, and investigate large or unexpected drops for redirect errors or blocked crawling. Our own rule of thumb: a page group that has not moved after the “few weeks” Google mentions for small to medium sites needs a named owner and a fix.
What it looked like on Nazzi and Cumini
The comparison that tells you whether the checklist worked is not against last year but against the weeks right before go-live, because that isolates the move itself. On Integratori DTC Nazzi (WooCommerce to Shopify), the 28 days to 9 October against the 28 days before go-live show clicks up 41%, impressions at 2.2x and average position improved by 21%. That is the number to put in your 90-day review: the year-on-year view and the August dip are in the migration guide and the Nazzi case study.
Cumini moved from a proprietary platform tied to its ERP. From June 2025 to May 2026 its online sales were up 67.7% on the previous 12 months, and the tracking score went from 31/100 to 92/100 between the audits before and after. That is the result of the whole project, not of SEO alone. See the Cumini case study.
The Shopify Launch Sprint moves your store to Shopify in 14 days with our Custom AI System: a fixed calendar, a public price and 4 written guarantees.

Antonio Manitta
Founder & eCommerce Manager at NoProb Agency
For over 7 years I have helped fashion, supplements, and DTC brands scale their eCommerce. I work in long-term partnership with three brands at a time, building stable systems that compound.
About NoProb →
















