How to Migrate from WooCommerce to Shopify Without Losing Important Store Data
A WooCommerce to Shopify migration checklist: data mapping for products, customers, orders and reviews, plugin replacements, redirects and a cutover plan.
Can you move from WooCommerce to Shopify without losing data?
Yes, but not with a single button. Products and customers move with Shopify's tools or a CSV, while order history, reviews, subscriptions and redirects each need their own plan. The data most at risk is the data nobody listed: product attributes beyond Shopify's three options, reviews, active subscriptions, and the URLs that earn search traffic. Map every type of data to its Shopify home before you import anything, replace plugins deliberately, and treat redirects and the cutover as a project of their own.
This checklist is for WooCommerce store owners who have already chosen Shopify. For the general process from any platform, see the step-by-step Shopify migration guide. If you have not yet decided on a platform, start with the platform migration checklist.
Key takeaways
- Shopify allows up to 2,048 variants and three options per product. Some themes and apps still stop at 100 variants.
- WooCommerce products with more than three attributes lose their options on import unless you restructure them.
- Historical orders and reviews need third-party apps. Shopify's own tools do not move them.
- Customers can't bring passwords. Current Shopify customer accounts use an email code instead, so test sign-in on a development store.
- Every /product/ and /product-category/ URL with traffic or links needs a 301 redirect.
- Replace each plugin with a native feature first, then an app, then custom work.
What Shopify's migration tools actually cover
Shopify's own documentation and its App Store listing describe the first-party Store Migration app differently. The Shopify Help Center guide to migrating from WooCommerce says the app imports products from a WooCommerce product CSV, is in early access, and is only available for certain stores on desktop. The Store Migration app listing says it moves product and customer data from WooCommerce and other platforms. Plan as if only products are covered, and treat anything more as a bonus you confirm on your own store.
Shopify's guide exports products with WooCommerce's built-in CSV export, and customers and orders with a WooCommerce export plugin. The customer CSV needs editing to match Shopify's format. For history, reviews and larger catalogs, most stores use a third-party migration app or a bulk CSV tool, and very large or unusual catalogs may need a script against Shopify's Admin API. This is the part of a Shopify migration project where most of the planning time goes.
Worth noting
Shopify's migration guidance is to import products first, then customers, then historical orders. Staff who receive new-order notifications get an email for every imported order unless you turn those notifications off first.
WooCommerce to Shopify data mapping
Use this table as the migration inventory. Add a column for your record counts and an owner for each row, and do not start importing until every row has a decision.
| WooCommerce data | Shopify destination | How it usually moves | Watch for |
|---|---|---|---|
| Simple products | Products | Store Migration app, product CSV or migration app | Descriptions with shortcodes or page-builder markup that won't render |
| Variable products and variations | Options and variants (up to 3 options, 2,048 variants) | Product CSV or migration app | More than 3 attributes: options are not imported. Themes and apps that still stop at 100 variants |
| Global and custom attributes not used for variations | Metafields, or product tags for filtering | Migration app or CSV with metafield columns | Decide which ones filters and the theme actually need |
| Product categories and tags | Collections (manual or automated by tag or type) | Rebuild, or import with a migration app | Nested categories become separate collections plus navigation menus |
| Product images and alt text | Product media | CSV image URLs or migration app | Alt text dropped; very large originals |
| Customers and addresses | Customers | Customer CSV (edited) or migration app | Passwords can't move. Marketing consent must be carried over accurately |
| Orders and order history | Orders (imported as historical) | Migration app, such as those Shopify names | Turn off new-order notifications; decide how many years you need |
| Product reviews | Reviews app | Review app import | Shopify says WooCommerce reviews can't be exported or migrated with its tools |
| WooCommerce Subscriptions | A subscription app | App-specific import of contracts | Whether saved payment details can transfer depends on your payment provider and app |
| Coupons | Discounts | Recreate, or a migration app if it supports them | Usage counts and per-customer limits |
| Blog posts and pages | Blog articles and pages | Migration app or manual | Embedded media, internal links and author data |
| Gift cards and store credit | Gift cards, store credit | App or manual, with balances reconciled | Balances on the day of cutover |
| URLs | Fixed Shopify paths (/products/, /collections/, /pages/, /blogs/) | URL redirect CSV import | Every URL with traffic, links or revenue needs a 301 |
Variations: the 3-option and 100-variant traps
Shopify raised its limit from 100 to 2,048 variants per product in October 2025 (Shopify changelog), and Shopify's variants documentation keeps the limit of three options per product. The same page warns that some third-party themes, theme app extensions, public apps and sales channels might not support more than 100 variants. So a product that imports cleanly can still break a product page, a feed or a reviews widget.
Before import, list every variable product with more than three attributes or more than 100 variations. For each one, choose to drop an attribute that does not change stock or price, move it to a metafield or line-item property, or split the product. Then check your theme, feeds and key apps against the largest products you have.
Customer accounts after the February 2026 change
Older migration advice says to import customers and email them an invitation to set a new password. That advice describes Shopify's legacy customer accounts. On 26 February 2026 Shopify deprecated legacy customer accounts, which are no longer available to new stores (Shopify changelog). With the current customer accounts, customers enter their email address and receive a one-time code, and Shopify says a password isn't required. Customers who already have a profile in your admin can sign in with the email on that profile (Shopify Help Center).
In practice, imported customers should be able to sign in with their email and see their imported history, without a reset campaign. Do not rely on that until you have tested it: import a handful of real customer records into a development store, sign in as them, and check that addresses and any imported orders appear. Then write a short notice for the launch email and the account page explaining the new sign-in.
Plugin to Shopify app checklist
WooCommerce stores usually run on plugins. List every active plugin, what it does for the business, and whether anyone still uses it. Then choose a replacement in this order: a native Shopify feature, an app, custom work, or nothing at all.
| WooCommerce plugin type | Check native Shopify first | If native is not enough |
|---|---|---|
| SEO plugin (titles, meta, sitemaps) | Built-in title and meta fields, automatic sitemap, URL redirects | An SEO app for bulk edits or structured data |
| Product reviews | None for imported reviews | A review app with import, such as one Shopify names |
| WooCommerce Subscriptions | Shopify's Subscriptions app | A third-party subscription app with contract import |
| Product add-ons and custom fields | Metafields, metaobjects and theme blocks | A product options app |
| Multi-currency switcher | Shopify Markets (local-currency checkout needs Shopify Payments or Adyen) | Display-only converter apps where checkout currency can't change |
| Wholesale or B2B pricing | Native B2B features on every plan, with limits | A wholesale app, or a separate store |
| Shipping rates and labels | Shopify shipping settings and carrier rates | A shipping or label app |
| Forms and quote requests | The theme's built-in contact form | A form or quote app |
| Bookings, wishlists, loyalty | Usually none | A specialist app |
| ERP, inventory or accounting connector | Check the connector's Shopify version | A connector app or custom integration |
Pro tip
Migration is a good moment to drop plugins nobody uses. Each app you add has a monthly cost, a script on the storefront and a support relationship, so only replace what earns its place.
SEO and redirect plan
WooCommerce and Shopify use different URL structures, so most product and category URLs will change. Shopify recommends setting up redirects before you transfer the domain. Shopify can redirect only from URLs that are broken on the new store, URLs with query strings might not redirect as expected, and standard plans allow up to 100,000 redirects (20,000,000 on Plus), per the URL redirect documentation. Use Shopify's sample redirect CSV as the template, so the column names match.
- Crawl the WooCommerce site and export every URL, including images if they get image-search traffic.
- Add Search Console and analytics data so you know which URLs earn traffic, links or revenue.
- Carry over titles, meta descriptions, product copy and alt text for important pages.
- Build the redirect CSV, import it before the domain moves, and spot-check it on the Shopify preview.
- Update internal links in content and menus to the new URLs rather than relying on redirects.
- Record a baseline of organic traffic, top landing pages and conversion by device before launch.
| Typical WooCommerce URL | Shopify URL | Note |
|---|---|---|
| /product/linen-shirt/ | /products/linen-shirt | Keep the same handle where you can |
| /product-category/shirts/ | /collections/shirts | Nested categories map to the closest collection |
| /product-tag/summer/ | The closest collection | Only redirect tags with traffic or links |
| /about-us/ | /pages/about-us | All static pages sit under /pages/ |
| /how-to-wash-linen/ (blog post) | /blogs/news/how-to-wash-linen | Use your blog's handle if it isn't news |
| /my-account/ | /account | Point to the account entry page |
| Discontinued product | Closest product or collection | Not the homepage |
Cutover runbook
The cutover is the window when orders could land on the wrong system. Plan it as a sequence with named owners. The timing below assumes a store of moderate size with a delta sync of new orders and customers; adjust it to your volumes.
| When | Step | Owner |
|---|---|---|
| Two to three weeks before | Full trial import into Shopify; check record counts against WooCommerce; fix mapping errors | Migration lead |
| One to two weeks before | Test orders with each payment method, shipping zone, discount and gift card; test customer sign-in | Store manager |
| One week before | Freeze catalog changes and plugin updates on WooCommerce; final redirect map signed off | Owner and SEO lead |
| Cutover day, start | Put WooCommerce checkout on hold or maintenance; export new orders and customers since the trial import | Migration lead |
| Cutover day, middle | Delta import; reconcile gift card and store credit balances; import redirects | Migration lead |
| Cutover day, end | Point the domain to Shopify; remove the storefront password; place a live order and refund it | Developer |
| After launch | Keep WooCommerce and its database read-only for reference until history and accounts are verified | Owner |
Post-launch checks
- Live test orders through each payment method and shipping method, then refund them.
- Order, shipping and account emails send correctly and reach customers.
- Top 100 old URLs return a single 301 to the right page, with no chains.
- Search Console shows the new sitemap processed; 404s are checked daily for the first weeks and redirect gaps fixed.
- Analytics and ad pixels record purchases once, with the right value and currency.
- Imported customers can sign in with an email code and see their history.
- Reviews display on the right products, and feeds and marketplaces sync.
- Organic traffic, conversion by device and support contacts compared with the baseline weekly.
Hypothetical example: a homeware store with 900 products
This example is hypothetical. A homeware brand on WooCommerce has 900 products, some rugs with four attributes (size, colour, material and pile), a reviews plugin, a subscription plugin for refills and a blog that drives a share of organic traffic. Its mapping table shows the rugs would lose an option, so pile becomes a metafield shown on the product page. Reviews are imported through a review app, and refill subscriptions move to a subscription app after the payment provider confirms how saved cards can be transferred. The team builds a redirect file covering product, category, tag and blog URLs, runs a trial import two weeks before launch, and tests customer sign-in on a development store. On cutover day it imports only the orders and customers created since the trial, imports redirects, and moves the domain.
When to delay the move, or not make it
Shopify suits most product catalogs, but the migration is harder than it looks when the store depends on things Shopify handles differently. Pause and scope carefully if your products need more than three options that each change price or stock, if your checkout relies on custom WooCommerce code that you can't recreate with Shopify's checkout extensibility, if subscriptions make up much of revenue and your payment provider can't move saved payment details, or if a peak trading period is weeks away. If you sell to trade buyers, check Shopify's B2B plan limits before committing. In those cases, a later launch date, a phased move or a different platform can be the better call.
Common mistakes
- Trusting a one-click import without checking record counts and a sample of products by hand.
- Discovering the three-option limit after import.
- Assuming reviews and order history come across with the products.
- Sending password reset emails that do not match how the new store signs customers in.
- Redirecting every old URL to the homepage.
- Leaving imports running with staff new-order notifications switched on.
- Replacing every plugin with an app without asking if the feature is still needed.
- Launching just before a sale or peak season.
Sources
Shopify Help Center: Migrating from WooCommerce; Importing WooCommerce data; Adding variants; Customer accounts; URL redirects.
Shopify changelog: Product variant limit increased to 2,048 (15 October 2025); Legacy customer accounts are now deprecated (26 February 2026).
Shopify App Store: Store Migration (vendor listing).
Accessed 14 October 2026. Shopify's tools, limits and account features change; check the current documentation before you migrate.
Conclusion
A WooCommerce to Shopify migration keeps its data when every type of data has a decision before import: what moves, how, and what changes shape on the way. Start with the mapping table, fix products that exceed three options, line up apps for reviews, history and subscriptions, test customer sign-in, and build the redirect map before the domain moves. For the data-cleaning side in more depth, see ecommerce data migration.
Next steps: fill in the mapping table with your record counts, list your plugins against the checklist, and run a trial import into a development store.
Want a second pair of eyes on your migration plan?
ZSpace Labs is a remote-first technology studio that works with clients globally on Shopify builds and migrations and content and integration work. If useful, we can review your data mapping, plugin list and redirect plan before you import.
Common questions.
Not with Shopify's own tools. Shopify's WooCommerce guide says you can't export or migrate reviews from WooCommerce to Shopify, and points to review apps such as Judge.me, Loox and Yotpo for importing them. Check that the app you choose keeps the review date, rating, author and product link, and that it can display reviews in your theme.