E-commerce strategy

Replatforming without losing rankings: an SEO migration checklist

Most traffic lost in a platform move is lost to missing redirects, dropped metadata and launch-day mistakes. Here is how to carry your rankings across.

You keep your rankings through a replatforming by treating every URL that earns traffic as something to be moved on purpose: record it, map it to its new address, redirect it with a 301, and carry its title, copy and structured data across with it. Rankings belong to pages, not to platforms. When traffic falls after a migration, the cause is nearly always a page that was changed, moved or blocked without anyone deciding that it should be.

This applies whichever way you are moving: Magento to Shopify, WooCommerce to Magento, Magento 1 to Magento 2. The checklist at the end is written to be copied into your project plan.

Why traffic drops after a migration

Search engines know your store as a set of URLs, each with content, links pointing at it and a history. A new platform tends to disturb all of that at once. The usual causes are:

  • URLs changed with no redirect. The old address returns a 404, and the page that replaced it starts again with no history.
  • Metadata left behind. Page titles and meta descriptions written over several years are replaced by the new platform’s defaults.
  • Internal linking changed. A new menu, a flatter category tree or removed footer links change which pages look important.
  • Content removed. Category descriptions, buying guides and old blog posts are dropped because nobody listed them.
  • Crawling blocked. The staging site’s noindex tag or password goes live with the new store.
  • Slower pages. A heavy theme or a pile of third-party scripts makes the new store slower than the one it replaced.

Before: record the site you have

You cannot preserve what you have not recorded, and once the old platform is switched off the record is gone.

Crawl and export the old site

Run a crawler over the live store and export, for every indexable URL: the address, status code, title, meta description, h1, canonical tag, any hreflang annotations and the structured data found on the page. Export the XML sitemaps as well, since they often contain pages a crawler cannot reach through links.

Find the pages that matter most

Not every URL is worth the same. From Google Search Console, export the pages with the most clicks and impressions over the last twelve months or more, so seasonal pages are included. From your analytics, export the top organic landing pages by sessions and by revenue. From a backlink tool, or the links report in Search Console, list the URLs that other sites link to.

Combine these into one priority list. These are the pages you check by hand.

Map every old URL to a new one

The URL map is the most important document in the migration: a spreadsheet with each old URL beside its new equivalent, covering products, categories, content pages, blog posts and anything else in your crawl, sitemaps or priority list.

Three rules keep it honest:

  • One to one. Each old page redirects to the page that replaces it, with a 301. A retired product goes to its successor or its parent category, not to the home page.
  • No chains. If the old site already has redirects, point them straight at the final new URL rather than at an address that redirects again.
  • No blanket redirects. Sending everything unmatched to the home page tells search engines the content has gone. Google can treat such redirects as soft 404s, and visitors land somewhere unhelpful.

If a page has no sensible replacement, a 404 or 410 is more honest than a redirect to somewhere irrelevant.

Platform URL differences

Platforms have opinions about URL structure, and some of them cannot be changed.

Platform Product and category URLs What it means for the map
Shopify Fixed prefixes: /products/, /collections/, /pages/ and /blogs/ Almost every URL changes when you move to Shopify, so the redirect list covers the whole catalogue
Magento 2 Configurable: URL keys, an optional suffix such as .html, and optional category paths in product URLs Old structures can often be matched closely, which reduces the number of redirects needed
WooCommerce Set by the WordPress permalink settings, commonly with a product base in the path Export the real URLs from a crawl, because the structure differs from site to site

Where the new platform lets you keep a URL exactly as it was, keep it. Our Shopify migration and Magento migration and upgrade pages explain how we handle the map on each platform.

Carry the content across, not only the products

A product import moves names, prices and stock. It does not automatically move the things search engines read. Check that each of these is included in the data migration:

  • Page titles and meta descriptions for products, categories and content pages
  • Headings and body copy, including category descriptions and any text below product grids
  • Image alt text
  • Structured data: product, offer, review, breadcrumb and organisation markup
  • Hreflang annotations, if you run more than one country or language version
  • Blog posts, guides and other editorial content, with their original publication dates

Structured data deserves a specific test, because a new theme may output different markup from the old one. Compare a few key templates against the old site using Google’s Rich Results Test.

Faceted navigation and canonical tags

Filters for size, colour, brand and price can generate a very large number of URLs that all show much the same products. Decide which, if any, should be indexable, and make sure the rest carry a canonical tag pointing to the main category page or are otherwise kept out of the index.

Check the new platform’s defaults. On Shopify a product can also be reached at an address nested under a collection, and the canonical tag points back to the plain /products/ URL. Magento 2 has settings that control canonical tags for products and categories and whether category paths appear in product URLs. Filtered pages that earned traffic on the old site belong in the URL map like any other page.

Keep staging out of the index, then let the live site in

The staging site must not be indexed, or search engines will find two copies of your store. Password protection is the most reliable method, because it keeps out crawlers and curious visitors alike. A noindex tag also works. A robots.txt disallow on its own is weaker, since a blocked URL can still be indexed if other sites link to it.

The other half of this rule causes more damage: the block has to come off at launch. A live store that still carries a noindex tag or a disallow rule will drop out of search results while everything appears to be working. Give that task a named owner.

Launch day checks

Launch at a quiet time, with the people who can fix things available. Test redirects from the list, not from memory: feed the old URLs from your map into a crawler and confirm that each returns a single 301 to the intended page, and that the destination returns a 200.

Confirm that analytics and conversion tracking fire on a real test order. If tracking breaks at launch, you cannot tell a genuine traffic drop from a measurement gap.

After: watch, fix and keep the redirects

Expect some movement in the first few weeks while search engines recrawl the site. What you are watching for is anything that does not settle.

In Search Console, check the page indexing report for rising counts of not found, redirect error and excluded pages. Review the 404s your server or platform records, and add redirects for any old URLs that were missed. If the domain itself changed, use Search Console’s Change of Address tool as well.

Keep the redirects in place for at least a year. Realistically they should be permanent: links from other sites, old emails and bookmarks keep sending visitors to the old addresses for far longer than that.

The checklist

Before

  1. Crawl the live site and export URLs, titles, descriptions, headings, canonical tags, hreflang and structured data.
  2. Export the XML sitemaps.
  3. Export top pages from Search Console and top organic landing pages from analytics.
  4. List the URLs that have backlinks.
  5. Build the URL map: every old URL matched to one new URL.
  6. Agree the new URL structure, keeping existing URLs wherever the platform allows.
  7. Include metadata, copy, alt text and editorial content in the data migration.
  8. Decide how filtered pages are handled and check canonical tags on each template.
  9. Password protect or noindex the staging site.

Launch day

  1. Remove the staging password, noindex tags and any disallow rules.
  2. Check robots.txt on the live domain.
  3. Submit the new XML sitemap in Search Console.
  4. Crawl the full list of old URLs and confirm single 301 redirects to live pages.
  5. Check canonical tags point to the live domain, not to staging.
  6. Place a test order and confirm analytics and conversion tracking record it.
  7. Start monitoring 404s.

After

  1. Review Search Console page indexing and 404 reports weekly for the first couple of months.
  2. Add redirects for any missed URLs as they appear.
  3. Compare organic traffic for priority pages with the pre-migration baseline.
  4. Keep every redirect in place for at least a year, and preferably for good.

What to do next

If a migration is on your roadmap, start with the part that costs nothing: export your Search Console and analytics data now, and run a crawl of the current site. Neither can be recreated later.

Then put the URL map and the launch-day checks into the project plan as tasks with owners, and ask whoever is building the new store how their quote covers redirects, metadata and structured data. If you have not yet settled on a platform, our Magento vs Shopify comparison may help.

Keep reading

More from Insights