§
§ · journal

Best practices for ecommerce data migration.

The 7-phase playbook for moving an ecommerce store between platforms without losing SEO traffic, customer accounts, or revenue - and the two phases brands skip that cause 80 percent of post-migration disasters.

§ 01 · TL;DR

Seven phases. Two skipped phases. Eighty percent of disasters.

A successful ecommerce data migration follows seven phases - pre-migration audit, destination setup, data export and cleansing, theme rebuild, data import with redirect mapping, QA with parallel testing, and a 30-day post-cutover monitoring window. The two phases most brands skip are the URL parity audit (a documented map of every indexed URL on the old platform to its redirect target on the new one) and the customer-password migration plan (a three-touch communication sequence covering pre-launch warning, launch-day reset link, and a day-7 win-back). Skipping those two phases causes 80 percent of the post-migration disasters we audit. The other five phases are mechanical and the order is non-negotiable: skip the audit and the redirect map ships with gaps; skip the data cleansing and the import re-creates the bad data on the new platform; skip the parallel-run QA and the cutover ships with broken integrations. The whole sequence runs 8 to 14 weeks for a moderate-complexity store, with a 1 to 4 hour DNS-switch cutover window scheduled for the lowest-traffic period in your weekly analytics.

§ 02 · what migration actually involves

It is not just products and customers and orders.

Most migration scopes describe the work as "products, customers, orders." The actual surface area is roughly 14 distinct data layers - and the layers brands forget are the ones that quietly break in week three post-launch.

The visible data layers

  • · Products with variants, images, descriptions, metafields, SKUs, barcodes
  • · Collections and category trees
  • · Customers with addresses, tax-exempt status, and account tags
  • · Historical orders, refunds, and order notes
  • · Blog posts, pages, and content modules
  • · Reviews and ratings (often in a third-party app like Yotpo or Loox)
  • · Discount codes and active promotions

The forgotten data layers

  • · SEO URL structure and canonical tags
  • · 301 redirect map for every indexed URL
  • · Schema.org structured-data parity (Product, Offer, BreadcrumbList)
  • · Customer passwords (which usually cannot migrate)
  • · Gift card balances and store credit
  • · Active subscriptions and recharge dates
  • · App-specific data (loyalty points, wishlists, saved carts)

The right way to scope a migration is to start from the source-platform export and reverse-engineer the layers. A Magento 2 export pulls a different set of layers than a BigCommerce export, which is different again from a WooCommerce export. The destination platform - Shopify in most cases - imports natively into roughly 60 percent of those layers, and the remaining 40 percent require either a third-party app (review platforms, loyalty platforms, subscription engines) or a custom data-mapping script.

Payment-gateway re-onboarding is its own discrete workstream. Stripe and PayPal connect to the new platform via OAuth in minutes; Authorize.Net, Braintree, regional gateways, and Apple Pay or Shop Pay merchant verification each require fresh underwriting and can take 7 to 21 business days. Schedule the gateway re-verification at week one of the migration, not week eleven, or the cutover stalls waiting on payment-processor approvals that should have been started a month earlier.

§ 03 · common challenges

Five challenges. Each costs six figures when ignored.

1. SEO traffic loss in the first 90 days. The typical clean migration sees a 5 to 15 percent organic traffic dip in the first 30 to 60 days post-cutover, recovery to baseline by day 90, and net uplift by day 180 from the new platform's better Core Web Vitals. Migrations without a complete URL redirect map see 30 to 60 percent traffic loss that often never recovers - Google deindexes the old URLs faster than the new platform can earn equivalent rankings on its own URLs. Build the redirect map in week two of the migration, not week eleven, and validate every redirect with Screaming Frog before cutover.

2. Data loss and corruption from bad SKU mapping. The single most-broken field across migrations is the SKU-variant relationship. Source platform stores variants as child products (Magento, BigCommerce); destination platform stores them as variants of a parent product (Shopify). A naive mapping creates duplicates, orphaned variants, or worse - inventory that does not link to the right SKU on the new platform. A pre-migration audit that counts variants per parent product on both platforms and reconciles the totals catches the issue before customer orders fail.

3. Downtime cost during cutover. For a $10M-revenue store, an hour of downtime is roughly $1,140 of lost sales on average and considerably more during peak hours. A migration that ships with a 4 to 8 hour cutover window during US business hours can cost $5,000 to $30,000 in foregone sales alone. Schedule the cutover for the lowest-traffic hour in your weekly analytics - typically Sunday 2am to 6am local for a US store - and budget for a 1 to 4 hour DNS-switch window with a final delta-sync of orders placed during cutover.

4. Payment-gateway re-verification delays. Stripe and PayPal connect to the new platform via OAuth in minutes; Authorize.Net, Braintree, regional gateways, and Apple Pay or Shop Pay merchant verification each require fresh underwriting and can take 7 to 21 business days. The cutover-week disaster pattern is the brand assuming gateways port automatically and discovering on launch day that the new platform cannot process credit cards because Authorize.Net is still in underwriting. Start the gateway re-verification at week one, not week eleven.

5. Theme rebuild timeline overruns. The theme work is usually the longest single phase of a migration - 3 to 6 weeks for a custom theme on the new platform - and it runs in parallel with the data work, not after. Brands that scope a "lift and shift" identical theme rebuild and then expand scope mid-project to "redesign while we are at it" turn an 8-week migration into a 14-week migration. The right pattern is a frozen design scope at week one and a separate post-migration redesign engagement starting at day 90 once the new platform is stable.

§ 04 · developing your strategy

Strategy is data parity plus redirect parity.

Every migration strategy collapses to two parity tests: every record exported equals every record imported (with the same count), and every indexed URL on the source platform redirects to a semantic match on the destination platform. If both parities hold, the migration is clean. If either breaks, the post-launch dashboard tells you immediately.

Pre-migration audit. Two weeks of inventory work before any export script runs. Count every product, variant, customer, order, blog post, redirect, app, and integration on the source platform. Document the count. The post-import audit at week ten should match the pre-export count to within 0.5 percent, or the import has lost data. The audit also surfaces the SEO inventory: indexed URLs by template, search-impressions volume by URL category, and the long-tail of low-traffic URLs that still drive 15 to 30 percent of organic revenue but never appear in the redirect map of a rushed migration.

Build the redirect map BEFORE go-live, not after. The redirect map is a spreadsheet with one column for every indexed URL on the source platform and one column for the redirect target on the destination platform. Templates redirect to templates (PDP to PDP, collection to collection, blog post to blog post), with an explicit fallback rule for any URL that has no semantic match. Validate the map by crawling the source platform with Screaming Frog, exporting the URL inventory, generating the redirect column algorithmically where possible, and hand-mapping the remaining 5 to 15 percent edge cases. The map ships with the cutover, deployed at the new platform's redirect layer or via the DNS-level redirect rules.

Parallel-run option. For high-volume stores, the safest pattern is a 30-day parallel run on a staging subdomain. Build the new platform at staging.example.com, import a full data snapshot, and put the storefront in front of internal QA testers and a small beta-customer cohort. Catches the issues - broken third-party integrations, missing variants, theme bugs - that synthetic QA misses. The cutover at day 30 is then a known-good environment moved to the production domain, not an unknown environment going live for the first time.

Schedule for a low-traffic window. Pull the last 90 days of hourly traffic from Search Console or analytics and identify the lowest-revenue hour of the week. For most US stores it is Sunday 2am to 6am Eastern. Schedule the DNS switch for that window. Brands that cut over on a Tuesday at 11am because that fit the engineering team's calendar lose roughly five times more revenue during the cutover window than brands that pick the actual low-traffic period.

Maintain data parity throughout. Every export creates a row count; every import should match it. Build a reconciliation script that runs after each phase and reports any delta. The audit pattern is products = products, customer count = customer count, lifetime-order count = lifetime-order count, lifetime-revenue total = lifetime-revenue total. Mismatches at any phase mean the import has data loss that needs root-cause investigation before the next phase ships.

§ 05 · the 7-phase playbook

Seven phases. Eight to fourteen weeks. Non-negotiable order.

01

Pre-migration audit (2-4 weeks)

Inventory every data layer on the source platform: product count, variant count, customer count, lifetime-order count, blog-post count, indexed-URL count by template, app-data inventory. Pull search-impressions data from Search Console for every URL ranking on Google. Document the SKU-variant relationship pattern on the source platform. Map the third-party integrations the source store depends on (email, reviews, search, analytics, ERP, 3PL, payments). The audit output is a single spreadsheet that becomes the contract for the rest of the migration.

Output: data inventory + URL parity sheet + integration map + redirect-map skeleton

02

Destination setup (1-2 weeks)

Provision the new platform. For Shopify Plus this means setting up the organization, the staff accounts, the Markets configuration for multi-region, the tax-jurisdiction rules, the shipping-zone configuration, and the payment-gateway re-onboarding (which starts at this phase, not at cutover). Configure the metafield definitions that mirror the source-platform custom fields. Install the destination apps that replace the source-platform integrations - Shopify's help docs cover the standard apps; custom integrations get a separate scope.

Output: empty-but-configured destination platform ready for data import

03

Data export and cleansing (2-4 weeks)

Export every data layer from the source platform. Cleanse the data before import: deduplicate customer records, normalize address formats, resolve orphaned variants, strip HTML noise from product descriptions, validate SKU uniqueness. The cleanse phase is the moment to fix the data-quality issues that were tolerated on the source platform but should not carry forward. Tools like Matrixify handle the export-import pipeline for Shopify; Cart2Cart and LitExtension are popular automated migration services that work for moderate-complexity catalogs.

Output: clean CSV or JSON exports ready for destination-platform import

04

Theme rebuild on new platform (3-6 weeks, parallel)

The longest single phase, and it runs in parallel with phases 03 and 05. Rebuild the source theme on the destination platform - Liquid for Shopify, headless Hydrogen if going composable, custom React if going further headless. The right scope at this phase is a 1:1 lift-and-shift of the source design, not a redesign. Redesigns happen in a separate post-migration engagement starting at day 90. Frozen scope keeps the timeline honest.

Output: fully-built destination theme on staging, integrated with destination apps

05

Data import + URL redirect map (1-2 weeks)

Run the import against the staging environment. Reconcile the post-import counts against the pre-export counts - any delta over 0.5 percent triggers a root-cause investigation. Deploy the redirect map to the destination platform's redirect layer (Shopify URL redirects admin, or DNS-level redirect rules for very large maps). Validate every redirect with a Screaming Frog crawl of the source URLs and a 301 status-code check on the destination.

Output: staging environment with full data + working redirect map

06

QA and parallel testing (1-2 weeks)

Run the staging environment through a complete QA pass - sample-product spot-checks, customer-account login tests on a small beta cohort, full checkout flows through every payment method, cart-abandonment recovery emails firing on test orders, analytics events firing correctly, schema-data validating against schema.org Rich Results Test. Send a password-reset preview email to the internal team to confirm the customer-side flow works. Two-week QA on a high-volume store; one-week QA on a smaller store.

Output: signed QA report + cutover-day runbook

07

Cutover and 30-day monitoring (ongoing)

DNS switch during the lowest-traffic hour. Final delta-sync of orders placed during the cutover window. Trigger the customer password-reset email campaign. Submit the new sitemap to Search Console and request indexing of the priority URLs. Monitor the dashboard daily for 30 days post-cutover: organic traffic by URL category, redirect 404 rate, payment-gateway success rate, customer-account reset rate, Core Web Vitals on the new platform. Day 30 is the formal handover to the post-migration retainer or to the in-house team.

Output: live store + 30-day monitoring report + handover documentation

§ 06 · testing + validation

Pre-migration test. Post-migration validate. Ninety-day monitor.

Three discrete validation phases - one before cutover, one immediately after, and one across the 90-day post-launch window. Each catches different failure modes.

Pre-migration testing on a subdomain. Stand up the new platform at staging.example.com a minimum of two weeks before cutover. Run synthetic transactions through every payment gateway - test card numbers from Shopify's developer docs for Shopify, sandbox credentials for each gateway. Place test orders that exercise discount codes, gift cards, multi-currency checkout, and tax-exempt customer paths. Validate that order-confirmation emails fire. Validate that the new platform's analytics events match the source platform's event taxonomy.

Post-migration data validation. Immediately after import, reconcile the record counts: products, variants, customers, orders, blog posts, redirects. Run a sample-product spot-check on 50 random products - verify variant-image links, metafield population, collection assignments, and SEO meta-tags. Run a customer-account login test on the internal team's accounts via the password-reset flow. Run a 301 audit on the redirect map: pull a list of 200 random source URLs, hit each with a curl request, verify a 301 response with the correct destination. Screaming Frog automates the redirect audit at scale.

Search Console monitoring for 90 days. Submit the new sitemap on cutover day. Request indexing of the top-50 priority URLs (highest-revenue collection pages, top-traffic blog posts, key landing pages). Monitor the Coverage report daily - any spike in "Crawled, currently not indexed" or "Discovered, not indexed" status flags an SEO issue worth investigating in week one. Track the impressions and clicks curve weekly: a 5 to 15 percent dip in week one is normal; a 30 percent dip means the redirect map has gaps. The recovery curve typically returns to baseline by day 60 to 90 on a clean migration.

Operational dashboards. Build a single dashboard at cutover day that tracks the five metrics that matter: organic-traffic delta versus baseline, payment-gateway success rate, redirect 404 rate, customer-account reset rate, and Core Web Vitals at the 75th percentile. Review daily for week one, weekly for weeks two through four, monthly thereafter. The dashboard is the early-warning system; without it, the brand discovers issues from customer support tickets two weeks after they should have been caught.

§ 07 · tools for migration

Six tools. Each one fills a different gap.

No single tool covers the full migration surface. The right stack is roughly six tools - each handling a discrete phase - plus custom scripting for the long-tail edge cases.

tool 01

Matrixify (Shopify import-export)

The standard Shopify import-export tool for moderate-to-large catalogs. Handles products, variants, customers, orders, blog posts, redirects, metafields, and discount codes. Free up to 100 records, paid tiers from $20 to $200/month for higher volumes. The right tool for the import side of any Shopify migration.

tool 02

Cart2Cart (automated migration)

Automated platform-to-platform migration service supporting 80-plus source and destination platforms. Best for moderate-complexity catalogs without heavy custom-data layers. Pricing scales with record count - typically $200 to $2,000 for a single migration. Handles the mechanical export-import but does not solve the URL redirect map or theme rebuild.

tool 03

LitExtension (full-service migration)

Service-layer migration provider that wraps Cart2Cart-style automation with managed support, custom data-mapping, and URL-redirect handling. Pricing $500 to $5,000 for a full-service migration. The right pick when the in-house team does not have migration experience and the catalog is small enough that a fully-managed service is cheaper than a dedicated agency.

tool 04

Screaming Frog (SEO + redirect audit)

The standard SEO crawler for URL inventories, redirect-map validation, and broken-link audits. Free up to 500 URLs, paid licenses from $239/year for unlimited crawls. The right tool for the URL parity audit at the start of every migration and the redirect 301 validation at the end.

tool 05

ShopifyQL (data validation)

Shopify's analytics query language for post-import data reconciliation. Run ShopifyQL queries against the destination store to confirm order counts, customer-segment sizes, and lifetime-revenue totals match the pre-export numbers from the source platform. Documentation in Shopify dev docs.

tool 06

Search Console (90-day monitor)

Google Search Console for the post-cutover monitoring window. Submit the new sitemap on cutover day, request indexing of priority URLs, monitor Coverage report daily for week one, track impressions and clicks curve weekly. The single most-important tool of the post-launch phase.

§ 08 · case study

25K SKUs. 180K customers. 250K orders. Twelve weeks.

An anonymized US-based mid-market home-goods brand we migrated from Magento 2 to Shopify Plus in late 2025. Catalog: 25,000 SKUs across 4,200 parent products. Customer base: 180,000 active accounts. Order history: 250,000 orders across the prior four years. Annual revenue at migration: $12M. Three-region storefront (US, UK, EU) with multi-currency checkout. Six third-party integrations (Klaviyo, Yotpo, Algolia, Avalara, ShipStation, NetSuite).

The 12-week timeline split: weeks 1-2 pre-migration audit, week 3 destination setup including the Shopify Plus organization and Markets configuration, weeks 4-7 data export and cleansing in parallel with theme rebuild, weeks 8-9 data import to staging and redirect map deployment, weeks 10-11 QA with a 50-customer beta cohort, week 12 cutover on a Sunday at 3am Eastern. Cutover-window downtime: 38 minutes for DNS propagation, then a 90-minute delta sync of orders placed during the staging-to-production handoff.

Traffic recovery curve: 11 percent organic dip in days 1-14 post-cutover, recovery to baseline by day 47, net uplift of 18 percent on day 90 versus the prior-90-day average. The uplift came from Core Web Vitals improvements on the new platform - LCP dropped from 3.4s to 1.9s at the 75th percentile, INP dropped from 280ms to 140ms - which Google rewarded with stronger rankings on the priority collection pages. Customer-account password-reset rate hit 78 percent at day 14 and 91 percent at day 30, well above the 60 percent baseline rate brands without a structured reset campaign typically see. Total-revenue impact during the migration window (weeks 8-12 plus 30-day post-cutover): a net contribution-margin gain of $340K versus the same period in the prior year, primarily from the Core Web Vitals uplift and the new platform's higher checkout conversion rate.

§ 09 · questions buyers ask

Six honest answers.

How long does an ecommerce data migration typically take?

A standard ecommerce migration runs 8 to 14 weeks end to end on a moderate-complexity catalog (1,000 to 25,000 SKUs, 10,000 to 200,000 customers, 25,000 to 500,000 historical orders). The phase split is roughly two weeks of pre-migration audit, one to two weeks of destination setup, two to four weeks of data export and cleansing, three to six weeks of theme rebuild on the new platform that runs in parallel with the data work, one to two weeks of import plus URL redirect mapping, one to two weeks of QA and parallel testing, and a 30-day post-cutover monitoring window. Complex enterprise migrations with B2B catalogs, multi-region storefronts, ERP integration, and 100,000-plus SKU catalogs extend to 18 to 26 weeks. Migrations under six weeks are usually scope cuts that defer redirect mapping or theme work to a phase-two engagement, and the deferred work shows up as SEO traffic loss in month two.

Will I lose SEO traffic when I migrate ecommerce platforms?

A clean ecommerce migration with a complete URL redirect map and schema-data parity typically sees a 5 to 15 percent organic traffic dip in the first 30 to 60 days post-cutover, then recovery to baseline by day 90 and net uplift by day 180 once the new platform's Core Web Vitals improvements compound. Migrations without a complete redirect map see 30 to 60 percent traffic loss that often never recovers - Google deindexes the old URLs faster than the new platform can earn equivalent rankings. The single biggest predictor of SEO continuity is whether every old URL has a 301 redirect to the closest semantic match on the new platform on cutover day, not whether the source platform was Magento or WooCommerce or BigCommerce.

What's the most common cause of ecommerce migration failure?

Two phases get skipped on most failed migrations and they cause 80 percent of the post-launch disasters we audit. The first is the URL parity audit - a documented inventory of every indexed URL on the source platform mapped to its redirect target on the new platform before cutover, not retro-fitted afterwards. The second is the customer-password migration plan - most platforms cannot import hashed passwords from a different platform's hashing algorithm, so customers are forced to reset on first login post-launch, and 15 to 40 percent of inactive customers never come back. Brands that plan a password-reset email campaign two weeks pre-launch and a return-with-discount win-back campaign at days 14 and 30 retain 85 to 95 percent of their pre-migration customer base. Brands that skip the plan retain 60 to 75 percent.

Do customer passwords transfer between ecommerce platforms?

Almost never. Each platform uses a different one-way hashing algorithm (Magento bcrypt with platform-specific salt, Shopify scrypt with a distinct format, WooCommerce phpass, BigCommerce its own format), and one-way hashes by design cannot be converted between formats. A handful of paid migration tools attempt password sync via login interception on the source platform pre-cutover, but most ecommerce migrations end up requiring customers to reset password on first login post-launch. The right plan is a triple-touch communication sequence: a 14-days-before email warning of the coming reset, a launch-day email with a one-click password-reset link and the new login URL, and a day-7 follow-up with a small win-back incentive for customers who have not yet reset. Pair this with a stable customer-ID handoff so that order history, store credit, gift card balances, and loyalty points remain intact across the reset.

Can I migrate without taking my store offline?

A near-zero-downtime ecommerce migration is achievable with a parallel-run pattern. Build the new platform on a staging subdomain, import a complete data snapshot, run QA for two to four weeks while the source platform stays live, then on cutover day do a 1 to 4 hour DNS switch with a final delta-sync of orders placed during the cutover window. The actual customer-facing downtime in this pattern is typically 15 to 60 minutes at the DNS propagation moment. Brands that try to migrate in place on the live store usually end up with 24 to 72 hours of degraded service - partial catalogs, broken checkout flows, and incomplete redirects. Schedule the cutover for a low-traffic window (typically Sunday 2am to 6am local for a US store, or whatever your analytics shows is the lowest-revenue hour of the week) to minimize the revenue impact even of the short DNS switch.

How much does an ecommerce migration agency typically cost?

Honest mid-points across the 2026 market: a small-catalog migration on a clean source platform (Squarespace or Wix to Shopify, sub-1,000 SKUs, sub-10,000 customers) runs $15,000 to $35,000. A mid-market migration (Magento 2 or BigCommerce to Shopify Plus, 5,000 to 25,000 SKUs, 50,000 to 200,000 customers, custom theme rebuild, three to six integrations) runs $45,000 to $120,000. An enterprise migration (Salesforce Commerce Cloud or legacy Magento 1 or custom platform to Shopify Plus, 25,000-plus SKUs, B2B catalogs, multi-region, ERP integration) runs $150,000 to $400,000. The cost is driven less by the source platform name and more by catalog size, B2B complexity, multi-region scope, ERP and OMS and PIM integration, and whether the existing theme rebuilds 1:1 or gets redesigned alongside the migration.

§ 10 · the next step

Bring the URL parity sheet. We'll bring the redirect map.

A 30-minute migration discovery call. Named lead engineer on the call. Written scope plus rate card returned within two business days. Our Shopify migration service covers the full 7-phase playbook with a 99 percent URL preservation SLA on every cutover.