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.