Store Platforms

Migrate to Shopify Without Losing SEO: A Redirect-First Plan

Migrate to Shopify without losing SEO: map and 301-redirect every URL, work within Shopify's fixed paths, fix canonicals, then monitor after launch.

Photo de profil de Long Nguyen

Long Nguyen

Développeur fullstack · Ingénieur IA · Chercheur

• • 4 min de lecture •

Why rankings drop after a Shopify migration (and what you control)

You can migrate to Shopify without losing SEO when three things hold: every old URL that earns traffic or links 301-redirects to its closest equivalent in a single hop, your on-page signals (titles, copy, structured data) arrive intact, and Shopify's canonical and indexing settings are correct on launch day. Some short-term movement is normal even when you do everything right. Google's guidance on site moves with URL changes notes that visibility can fluctuate temporarily and that the move is processed URL by URL as Googlebot recrawls.

The redirects themselves are not what costs you. Google states that 301 and other permanent redirects do not cause a loss in PageRank. The losses come from what the redirects fail to cover. Four failure modes account for almost every bad migration:

Failure mode What happens How you catch it
Dead URLs An old URL returns 404 after cutover, so its rankings and backlinks stop counting Test crawl of every old URL
Wrong destinations Redirects point to the homepage or an unrelated page, which Google can treat as a soft 404 Manual review of top pages
Silent signal loss Titles, meta descriptions, H1s, structured data, internal links or canonicals change or vanish Before and after crawl comparison
Self-inflicted blocks A storefront password or a leftover noindex stays on at launch Launch-day checks

Benchmark the old site before you touch anything

You cannot prove you preserved SEO without a baseline. Export the following while the old site is still live, and store the files outside the platform you are leaving.

Export Source Used for
Every indexable URL with status code, title, meta description, H1 and canonical Full crawl of the old site The redirect map and the before and after comparison
Clicks, impressions and position by page and query (up to 16 months) Search Console performance report Deciding which URLs get a hand-checked destination
Pages that have external backlinks Any backlink tool Making sure linked pages never 404
Landing page sessions and revenue Analytics Prioritizing by money, not just traffic
URLs listed in the old XML sitemap Old sitemap Cross-checking against the crawl to find orphan pages

Then sort the URLs into three tiers. Tier 1 is every page with clicks or backlinks: you review each destination by hand. Tier 2 is everything else that is indexed: you map it by rule. Tier 3 is junk such as tag pages, internal search results and parameter URLs: you decide deliberately whether to redirect or let them drop, rather than letting the platform decide for you.

Build the 301 redirect map

The redirect map is a spreadsheet with one row per old URL: the old path and the new Shopify path. Make the work predictable by keeping each old slug as the Shopify handle when you import products. Because Shopify fixes its folder prefixes (next section), almost every product and collection URL changes at least by prefix, so a consistent handle turns the map into a rule you can script instead of thousands of judgment calls.

Old platform pattern Old URL Shopify target
WooCommerce product (default permalink) /product/blue-shoe/ /products/blue-shoe
WooCommerce category (default) /product-category/shoes/ /collections/shoes
Magento 2 product (default .html suffix) /blue-shoe.html /products/blue-shoe
Custom or PHP store /item.php?id=482 /products/blue-shoe (one exact row per ID)

These are defaults. Stores often customize permalinks, so always build the map from your real crawl, not from a pattern you assume. Apply these rules to every row:

  • One hop only. Old URL to final URL. A chain such as old, then intermediate, then new wastes crawl budget and adds failure points.
  • Closest equivalent, not the homepage. A discontinued product goes to its nearest replacement or its parent collection.
  • Cover every content type. Products, collections, pages and blog posts all need rows, plus any old URL that still has backlinks.

Shopify's import expects a CSV with a from column and a to column, using relative paths. Download the sample file from Shopify's admin and match its headers exactly:

Redirect from,Redirect to
/product/blue-shoe/,/products/blue-shoe
/product-category/shoes/,/collections/shoes
/blog/size-guide/,/blogs/news/size-guide

What Shopify's fixed URL structure changes

Shopify fixes the folder for each content type. You control the handle, which is the last segment, but not the folder in front of it. There is no supported setting to remove /products/ or /collections/ from the path.

Content Shopify path What you control
Products /products/{handle} The handle
Collections /collections/{handle} The handle; collections do not nest as folders
Pages /pages/{handle} The handle
Blog posts /blogs/{blog-handle}/{post-handle} Both handles

Two consequences matter for the migration plan:

  • Deep category trees flatten. An old path like /men/shoes/running/ becomes one collection, for example /collections/mens-running-shoes. Redirect each old category URL, including the parent levels, to the collection that best matches its intent.
  • Handles are worth getting right the first time. Decide your collection handles before you import products and finalize the map. Renaming a handle later creates one more redirect you must keep chain-free.

Pick the blog handle deliberately too. It becomes part of every post URL, and changing it later moves every article.

Import the redirects into Shopify and know the limits

In the Shopify admin, go to Content, then Menus, then URL redirects, choose Import, add your CSV, review it and confirm. Shopify's URL redirect documentation describes the flow and the constraints below.

Constraint What it means for a migration
100,000 redirects per store (20,000,000 on Plus) Enough for most catalogs, but prioritize if you have a very large URL inventory
You can only redirect from a broken URL If the old path still loads a valid Shopify page, the redirect will not fire. Check for collisions, such as an old /pages/ path that you recreated
One exact path per row The native tool has no wildcard or regex matching, so generate the CSV from your crawl with a script or spreadsheet formulas rather than typing rows
Redirects only work once Shopify serves your domain Import them before cutover so they are live the moment DNS changes

Test old URLs that carry query strings individually. They are the least predictable rows in any import.

This is the stage where large migrations usually go wrong: not the import button, but the mapping and quality checks behind it. If your catalog runs to tens of thousands of URLs, Netalith's eCommerce data migration service covers store replatforming with SEO kept, including the redirect map.

Carry over titles, content and structured data

  • Titles, meta descriptions and H1s. Shopify's product CSV includes SEO title and SEO description columns, so map your existing values into them instead of letting Shopify default to the product name.
  • Do not redesign and rewrite at the same time. A migration already changes the platform, the templates and the URLs. If you also rewrite copy and titles, you cannot tell which change moved your rankings. Migrate like for like, then improve.
  • Structured data. Your theme and review apps generate it. Compare Product markup (price, availability, ratings) on a sample of pages before and after.
  • Internal links. Update links inside blog posts, footers and email templates to the new URLs. Redirects still work, but every internal link that passes through one is a wasted hop.
  • Images. Image URLs change because Shopify serves them from its own CDN. Keep descriptive file names and alt text so image search signals carry over.
  • International setups. If the old site used hreflang or country subfolders, verify the equivalent exists on Shopify before launch.

Shopify canonical and duplicate URL traps to check

Shopify can serve the same product at several URLs. Its default canonical points to the clean /products/ version, but your theme's internal links can undermine that. Google also advises that each new URL carry a self-referencing canonical, so verify it rather than assuming it.

URL pattern Why it exists What to check
/products/{handle} The canonical product URL Sitemap and internal links use this form
/collections/{collection}/products/{handle} A product can be reached through each collection it belongs to The canonical points to /products/. Some themes link to the collection-scoped form, and many internal links to it can lead Google to pick it as canonical anyway
?variant=12345 Variant selection The canonical is the base product URL, with no variant parameter
?page=2, sort and filter parameters Pagination and filtering Paginated pages stay crawlable, and filter URLs are not flooding the index

The fastest check is the URL Inspection tool in Search Console: compare the user-declared canonical with the Google-selected canonical on a few products and collections.

Domain, DNS and Search Console at cutover

  • Same domain means no Change of Address. Search Console's Change of Address tool is for moving to a different domain. If the hostname stays the same, the 301 map does the work.
  • Match the primary domain to the old hostname. Shopify allows one primary domain and redirects the others to it. If the old site lived on www and you make the bare domain primary (or the reverse), every URL changes. Choose the same form you had.
  • DNS. To connect an existing domain, point the root domain's A record to Shopify's IP address (23.227.38.65) and the www CNAME to shops.myshopify.com. Lower the DNS TTL a day or two ahead and cut over in a low-traffic window.
  • Keep Search Console verification working. Google warns that verification methods tied to the old host may need to change after a move. A DNS-based verification survives a platform switch; an uploaded HTML file does not.
  • Remove blocks. Turn off the storefront password and remove any staging noindex before launch. Google specifically says to update noindex rules you added to avoid premature indexing.
  • Submit the sitemap. Shopify generates /sitemap.xml automatically. Submit it in Search Console to speed up discovery of the new URLs.

Launch-day checks and what to monitor afterward

On launch day, run these in order:

  1. Crawl your full list of old URLs against the live domain. Each should return a 301 to a 200 in one hop. Google suggests the URL Inspection tool for single URLs and scripts for large batches.
  2. Open your Tier 1 pages by hand. Confirm the destination is relevant and that title, meta description, H1 and a self-referencing canonical are present.
  3. Confirm robots.txt allows crawling, with no noindex tags and no password page.
  4. Submit the sitemap and inspect the homepage, one collection and one product.
  5. Confirm analytics and conversion tracking fire on the new templates.

Then watch these, and judge recovery against your baseline in weeks, not days. Google notes there is no fixed crawl schedule and that the pace depends on site size and how fast Googlebot can crawl.

Where Watch for Action
Search Console Pages report New Not found (404) URLs Add the missing redirect rows
Search Console Pages report Duplicate, Google chose different canonical Fix theme links and canonicals (section above)
Performance report Clicks on Tier 1 pages versus your baseline Investigate any page that stays down while its neighbors recover
Backlink landing pages Any linked URL that now returns 404 Redirect it to the closest equivalent

Keep the redirects permanently. They are cheap, they sit well inside Shopify's limit for most stores, and old backlinks never expire.

Have the redirect map checked before you cut over

The expensive mistakes in a Shopify migration are all visible before launch: a missing row, a chain, a homepage redirect, a theme that links to the wrong canonical. If you want a second pair of eyes, send your URL export and the platform you are leaving through Netalith's free quote form and select the migration option.

FAQ

Questions fréquentes

Will I lose rankings when I migrate to Shopify?

Not necessarily. Google says permanent redirects do not cause a loss in PageRank, so a complete 1:1 redirect map protects link equity. Expect some temporary fluctuation while Google recrawls and reprocesses your URLs. Losses that last usually trace back to missing redirects, irrelevant destinations, lost on-page signals or a leftover noindex or password page.

Can I keep my old URL structure on Shopify?

Only partly. Shopify fixes the folders /products/, /collections/, /pages/ and /blogs/, and you control only the handle after them. Keep your old slugs as handles where you can, then 301-redirect each old URL to its new Shopify path.

How many redirects can a Shopify store hold?

Shopify's documentation lists a maximum of 100,000 URL redirects per store, and 20,000,000 on Shopify Plus. You can import them in bulk from a CSV file in the admin under Content, then Menus, then URL redirects.

Do I need Google's Change of Address tool when moving to Shopify?

Only if the domain name changes. The tool covers domain-level moves. If you keep the same domain and hostname, you rely on the 301 redirect map, a correct sitemap and working Search Console verification.

Why does my Shopify redirect not work?

The most common reason is that the old path still loads a valid page on your Shopify store. Shopify only redirects from URLs that are broken, so a real page at the same path wins over the redirect. Also check that the redirect was imported before cutover and that the path matches exactly.

How long until rankings recover after migrating to Shopify?

There is no fixed timeline. Google says the move is processed URL by URL and the pace depends on your site's size and how quickly Googlebot can crawl it. Compare your Tier 1 pages against your pre-migration baseline in Search Console over several weeks rather than judging in the first few days.

Restez informé avec Netalith

Recevez des ressources de développement, des mises à jour produit et des offres spéciales directement dans votre boîte mail.