Most migration problems trace back to something that wasn't gathered or decided before the project started. This checklist is meant to be worked through directly, ideally a couple of weeks before you plan to start, so nothing gets discovered mid-project that should have been known up front.
Data and access
- Full WooCommerce database backup, stored somewhere outside your hosting environment
- WooCommerce REST API credentials (Consumer Key and Secret) generated and saved securely
- Admin access to your domain registrar and DNS settings confirmed and documented
- A current export of your product catalog (CSV) as a secondary reference alongside the live data
- List of any custom fields or attributes used on products, and what they mean
- Access to your payment processor account(s) to reconfigure for Shopify
- Access to your email/marketing platform to reconnect post-migration
Catalog audit
- Remove or archive discontinued products rather than migrating dead SKUs
- Check for and resolve duplicate products or categories
- Confirm variant structures (size, color, etc.) are consistent across similar products
- Identify any products with complex custom logic (bundles, configurators, made-to-order options) that will need special handling
- Review and clean up product descriptions you know are outdated — cheaper to fix once during migration than twice
Customers and orders
- Decide your policy on customer passwords (they won't transfer — customers reset on first login; plan the communication for this)
- Confirm how far back in order history you actually need to migrate (some stores choose a cutoff, e.g. 2 years, rather than migrating everything)
- Export a customer list backup independent of the migration tool, as a safety net
SEO
- Full list of current top-performing URLs (from Google Analytics/Search Console) prioritized by traffic
- Complete URL structure audit — every product, category, and content page URL that needs a redirect target
- Current XML sitemap saved as a reference
- List of your highest-value backlinks, so you can verify their target URLs specifically after redirects are live
- Google Search Console and Analytics access confirmed, ready to monitor post-launch
Content
- Blog post inventory — decide which posts are migrating as-is, which need updating, and which are being retired
- Static pages (About, FAQ, Shipping Policy, etc.) inventoried and copy finalized
- Any embedded media (videos, downloadable PDFs) accounted for, since embed code often needs adjusting for the new platform
Apps and integrations
- List every WooCommerce plugin currently active, and its equivalent Shopify app (or a decision that the functionality won't be replicated)
- Subscription platform migration plan, if applicable, agreed with your subscription app provider
- Review app data-export requirements if applicable (reviews, loyalty points balances, etc.)
- Third-party integrations (ERP, shipping software, accounting) inventoried, with a plan for reconnecting each one to Shopify
Design and branding
- Brand assets (logo files, brand colors, fonts) collected in one place, ready to hand off
- Reference screenshots of current site sections you specifically want preserved in the new design
- Decision made on theme approach: customize a stock theme, or invest in a custom build
Launch logistics
- DNS TTL lowered in advance of cutover (reduces propagation time on launch day)
- Payment gateway tested with a real transaction on the new store before cutover
- Transactional email templates (order confirmation, shipping, etc.) reviewed and tested on the new store
- Post-launch monitoring plan agreed — who's watching Search Console and site errors for the first two weeks, and how often
After launch
- Sitemap resubmitted in Google Search Console immediately post-cutover
- Spot-check the highest-traffic URLs from your priority list to confirm redirects are working correctly
- Old WooCommerce site kept accessible (even if unlinked) for a period as a data reference, not deleted immediately
Working through this list before a migration starts won't eliminate every possible issue, but it removes almost all of the avoidable ones — the surprises that come from information nobody gathered rather than genuine unknowns.