A WooCommerce to Shopify migration rarely fails at the import. It fails on three things people discover too late: Shopify's own migration app moves products and customers but not your order history; any product with more than three variation attributes will not fit Shopify's three-option limit; and every product and category URL changes, so rankings disappear unless each one gets a 301 redirect before cutover. Get those three right and the rest is a checklist.
Shopify's free Store Migration app imports WooCommerce products and customers - not historical orders. If order history matters to you, choose a third-party tool from the start rather than switching halfway through.
Why brands leave WooCommerce
WooCommerce is free to install and expensive to run. The cost doesn't appear on an invoice from WooCommerce; it appears as hosting that has to scale with traffic, security patches that are your responsibility, and a plugin for every feature - shipping rules, subscriptions, reviews, SEO, product bundles - each from a different vendor, each updated on its own schedule, each able to break the others.
Shopify takes hosting, security, PCI compliance and checkout off your plate. The trade is less raw flexibility in exchange for a platform someone else keeps running. For most brands past the first few hundred orders a month, that trade pays for itself in developer time alone.
What Shopify's own migration tool does - and doesn't - move
Shopify's Store Migration app is the obvious starting point: it's free, it's Shopify's own, and it supports WooCommerce. You can upload CSV exports or, on supported platforms, connect the source store for a guided import. But its scope is narrow. The app moves product and customer data. It does not import historical orders.
For some stores that's fine. If you're happy for Shopify's order history to start on launch day, and you keep WooCommerce read-only for reference, the free app may be all you need. For most established stores, though, order history matters: it powers customer accounts ("where's my past order?"), lifetime-value reporting, and the segments your email platform builds on. That's when you need a third-party tool.
- Shopify Store Migration: free, and Shopify's own. Products and customers only; no historical orders.
- LitExtension: priced by the number of entities migrated. Moves products, customers and orders, with options for preserving IDs and SEO URLs.
- Cart2Cart: priced by entities and the options you select. Broad platform support including WooCommerce, with a demo migration before you pay.
- Matrixify: spreadsheet-based bulk import and export. The most control over exactly what lands where, including orders and metafields, at the cost of more hands-on mapping.
Whichever you choose, judge it on the three places migrations lose data silently: variation structure, image-to-variant assignments, and SEO titles and descriptions. A tool that imports without errors can still drop all three.
The five things that break
1. Products with more than three variation attributes
This is the one that stops imports. Shopify allows a maximum of three options per product - size, colour and material, say - and up to 2,048 variants across them. WooCommerce has no equivalent three-attribute cap. A WooCommerce variable product built on four attributes (size, colour, material, finish) simply has no direct Shopify shape.
There are two clean fixes. Split the product into separate products along one attribute - one product per material, for example, linked as a group on the storefront. Or demote an attribute that doesn't need to be a selectable option into a metafield, so it's displayed but doesn't multiply the variant count. Decide per product before you import, because restructuring after the fact means redoing images, inventory and redirects.
2. Every URL changes
WooCommerce serves products at /product/your-product/ and categories at /product-category/your-category/, plus /product-tag/ pages and a /shop/ archive. Shopify's equivalents are /products/your-product and /collections/your-collection, and those prefixes are fixed - you cannot recreate the WooCommerce structure. So every product and category URL you have ever earned a link or a ranking for will change.
That's survivable, and normal, provided every old URL redirects to its new equivalent. It's the single biggest cause of traffic loss after a replatform, and it's entirely preventable. The redirect section below covers how.
3. Plugins don't migrate - their jobs do
No tool moves a WooCommerce plugin to Shopify. What moves is the function: a shipping-rules plugin becomes Shopify shipping profiles or an app; Yoast's SEO metadata needs to come across as page titles and descriptions; a product-bundles plugin becomes a bundles app or native bundles. The work is to list every plugin, write down the business job it does, and decide where that job lives on Shopify - or whether you still need it at all. Most stores find a handful they can drop.
4. Customer passwords
Password hashes can't be imported into Shopify, so this is unavoidable on any migration from WooCommerce. Accounts, addresses and order history carry across; the password doesn't. Each customer sets a new one on first login. The fix is communication, not engineering: send a short email at launch explaining it, so customers aren't surprised mid-checkout.
5. Subscriptions and saved payment methods
If you run WooCommerce Subscriptions, this is the part that genuinely needs planning. Subscriber records and plans can move to a Shopify subscription app. The billing relationship is harder, because it depends on the payment gateway holding the customer's card. Where subscriptions bill through Stripe, the stored Stripe customer and payment-method IDs can often be carried across so subscribers aren't asked to re-enter a card. With other gateways, expect to ask customers to re-enter payment details - and expect some churn when you do.
Confirm how saved payment methods will move with your chosen subscription app's migration team before you commit to a launch date. It's the one part of a WooCommerce migration that can't be fixed quietly after launch.
Redirects: the step that protects your rankings
Build the redirect map from what's actually indexed, not from what you think exists. Export your WooCommerce product and category URLs, then cross-check them against Search Console and a crawl of the live site - old campaign pages and long-deleted products with inbound links routinely turn up. Map each one to its closest Shopify equivalent, and import the lot as a CSV.
Capacity is rarely the constraint. Standard Shopify plans allow up to 100,000 redirects and Shopify Plus allows up to 20 million, so most WooCommerce stores fit comfortably within the standard limit. What catches people out is how redirects behave:
- They only fire on dead URLs. A Shopify redirect only takes effect when the old URL would otherwise return a 404. If a live page exists at that path, the redirect is ignored - so don't create pages that collide with your redirect sources.
- One hop, not chains. If your WooCommerce store already redirects old URLs, point them straight at the final Shopify URL rather than chaining through an intermediate one.
- Keep them live. Treat redirects as permanent: inbound links to your old URLs don't expire when the migration project ends.
A cutover checklist
Before you switch the domain
Counts reconcile
Products, variants, customers and orders in Shopify match the source, counted as separate numbers.
Variations spot-checked
A sample of variable products shows the right options, variant images and prices.
SEO fields present
Page titles and meta descriptions came across - the field imports most often lose silently.
Redirects imported and tested
Every indexed URL redirects, and a sample resolves to the right page in one hop.
Checkout and tracking verified
Test orders complete, and analytics and ad pixels fire on the confirmation page.
Customers warned about passwords
The launch email is written and scheduled.
Catalogue frozen
No edits on WooCommerce from the final import until the domain switches.
Should you migrate at all?
Not every WooCommerce store should move. If your store depends on deep WordPress customisation that has no Shopify equivalent, or your content operation is far bigger than your commerce one, WooCommerce may genuinely be the better fit. The case for Shopify is strongest when hosting, security and plugin maintenance have started costing you more developer time than new features do - and when the next stage of growth needs a checkout and an app ecosystem you don't have to maintain yourself.
If you're weighing it up, the useful first step is the plugin inventory. Once every plugin has a written job next to it, you'll know quickly whether the migration is a fortnight's work or a quarter's.
Want this applied to your store?
Work with the Byteex team
We help Shopify DTC brands turn more visitors into buyers. See how we can help you below, or browse real client results.