
A Shopify to WooCommerce migration usually starts with a renewal invoice. A Shopify Basic plan, plus Shopify Payments fees, plus a few paid apps, and the annual total quietly creeps past $4,800. That is the moment most store owners ask the same question: can we move to WooCommerce without breaking everything?
Yes. The work breaks down into a repeatable workflow: products, customers, 18 months of order history, the reviews your team spent years earning, and SEO redirects so Google doesn’t drop you off a cliff.
Migrations always feel riskier than they are. Inventory is live, customers are shopping, orders are flowing, and the idea of touching any of it makes people anxious. That deserves a reasonable response: a plan, a parallel-run window, and a clean cutover.
In this guide, we’ll walk through the full process: the pre-migration audit, Shopify exports, WooCommerce setup, field mapping via Product Importer Deluxe, customer and order imports, review migration, the SEO redirect map, and the DNS cutover. Most stores under 5,000 products finish in a half day to a full day of hands-on work.
Most “Shopify to WooCommerce migration” articles are written by paid migration services or hosting companies. This one is written from the plugin side, covering the export and import workflow that moves your data cleanly without outsourcing the job. For the wider toolset, see our WooCommerce migration resources.
Table of Contents
Why Migrate From Shopify To WooCommerce
Store owners move off Shopify for one of four reasons: cost, ownership, customization limits, or a client-driven agency decision. None of them are a knock on Shopify itself, which is a capable platform for many stores. The question is fit, not quality.
Cost and recurring fee structure
Shopify stacks monthly plan fees, transaction fees on non-Shopify-Payments gateways, and app subscriptions. WooCommerce is free and self-hosted, so you pay for the hosting and the plugins you actually use. The Product Importer Deluxe bundle runs $79/year, bought once for the migration and ongoing data work.
Take a typical Shopify setup: $74/month on Shopify Basic, plus around $89/month across four apps for reviews, upsells, wholesale, and a shipping rules tool. That is roughly $1,956/year before transaction fees. The WooCommerce equivalent lands in the region of $300/year for plugin licenses after the first-year migration cost. The monthly fee stops being the story once you run the five-year total.
Ownership and data portability
On WooCommerce you own the database, the theme code, every checkout field, and every line of product metadata. No platform layer decides what you can and cannot customize. For agencies and founders who want to own the stack, this is often the real reason to move.
The customization ceiling
Shopify’s Liquid templating and checkout restrictions limit deep bundling, wholesale tiering, conditional checkout fields, and advanced subscriptions unless you are on Shopify Plus. WooCommerce has plugins or free code for all of it.
Payment gateway flexibility
Shopify charges extra on non-Shopify-Payments gateways. On WooCommerce you pick whichever gateway your business uses (Stripe, PayPal, Square, or a regional gateway) and pay only that gateway’s standard fees.
When Shopify is actually the right choice
Be honest with yourself. Fast-moving direct-to-consumer brands with no tech resource, multi-region Shopify Markets dependency, or a heavy Shopify-only app stack often have a better time staying on Shopify than rebuilding. The goal is the right platform, not a sale.
Before You Start: Pre-Migration Checklist
A Shopify to WooCommerce migration without a pre-flight audit is how data goes missing. The first hour spent auditing your current setup saves a painful afternoon later.
Audit your Shopify store
List everything. Product count, variant count, active subscriptions, customer count, historical order count, active apps, custom page content, reviews, and any redirect rules you already have inside Shopify. Note anything that does not export cleanly: metafield behavior, app-managed data like loyalty points or bundle logic, and any custom Liquid snippets on product pages.
Screenshot your Shopify storefront (homepage, category page, product page, cart, checkout) for visual reference during the WooCommerce rebuild.
Decide your WooCommerce stack
Pick your WordPress host (SiteGround, Kinsta, Cloudways, or similar), your theme (Astra, Kadence, Blocksy, or a purpose-built WooCommerce theme), and your payment gateway. Match the same gateway your Shopify store uses so customer payment methods carry across without surprises.
Install the essentials: Product Importer Deluxe for the migration, AIOSEO or Rank Math for redirects and SEO, a caching plugin, and a backup plugin.
Plan your migration window and freeze point
Pick a low-traffic window. Overnight or weekend works for most stores. Announce a brief maintenance window to staff and keep Shopify live until the DNS cutover. Decide your inventory freeze point, which is the moment you stop accepting new orders on Shopify so the final data export is complete. Most migrations freeze for two to six hours. Larger stores may need a full weekend.
Back up everything, twice
Export every Shopify CSV you can (products, customers, orders) and archive them. Snapshot your Shopify theme code. Before you touch WooCommerce, back up the fresh WordPress install as well.
Keep three sets of backups: the Shopify CSV exports, a Shopify theme zip, and a WordPress snapshot taken before any data import. The one time you skip a backup is the time a field mapping goes sideways mid-import and you need to roll back cleanly to a known-good state.
Step-By-Step Shopify To WooCommerce Migration
Run the steps in this order every time. Each step builds on the previous one. Skipping steps is how migrations end up with silent failures two weeks in.
Step 1: Export Shopify data
Start in your Shopify admin and pull every CSV you need before touching WooCommerce.
Products: Shopify admin, Products, Export. Choose “All products” and CSV format. Shopify’s export splits variants into separate rows with a parent handle, which you map across in the next step.
Customers: Shopify admin, Customers, Export. The CSV includes names, emails, addresses, and opt-in status. Passwords do not export (Shopify hashes them and never exposes them), so every customer will need to reset their password on first WooCommerce login. Plan a “we have moved” email now.
Orders: Shopify admin, Orders, Export. For stores under roughly 20,000 orders, export everything in one file. For larger stores, batch by month to keep the CSVs manageable.
Reviews: the export depends on your Shopify review app. Shopify Product Reviews, Judge.me, Loox, and Yotpo all have their own CSV export path. Grab it now while the app is still live.
Images: Shopify image URLs work temporarily during import but will break when you cancel Shopify. Product Importer Deluxe can download images from the URLs during import, which re-hosts them on your WooCommerce media library.
Step 2: Set up WooCommerce on WordPress
Spin up a fresh WordPress install on your chosen host. Install WooCommerce and run the setup wizard (country, currency, products to sell, payment methods). Pick and install the theme, matching your Shopify visual identity roughly; fine-tuning comes later. Install Product Importer Deluxe, AIOSEO, a backup plugin, and a caching plugin. Configure your payment gateway with your existing credentials.
Step 3: Import products using Product Importer Deluxe

Product Importer Deluxe imports the Shopify product CSV through its field mapping screen. The parent row plus variant rows structure, image URLs, tags, product type, vendor, and metafields all map across once you point each Shopify column at the matching WooCommerce field. WooCommerce’s own Product CSV Importer documentation lists the column headers WooCommerce recognizes, which is a useful reference when you set the mapping.
Upload the Shopify product CSV under Product Importer Deluxe, Import Products. The critical field mappings are:
- Handle to Slug.
- Title to Name.
- Body (HTML) to Description.
- Vendor to Brand attribute.
- Type to Product Category.
- Tags to Tags.
- Variant SKU to SKU.
- Variant Price to Price.
- Image Src to Featured Image.
For variable products, Product Importer Deluxe groups variant rows under the parent automatically. Check the Variable Products option so the plugin rebuilds the variation structure rather than treating each variant as a separate simple product.
Turn on the option to download external images during import. This re-hosts images on your WooCommerce media library so the store is not dependent on Shopify after cutover.
A 600-product catalog with four variant axes (size, color, material, fit) can rebuild in a single pass. The manual alternative would be 2,400+ individual variant rows to reconcile by hand, which is exactly the work the plugin’s variation grouping removes.
For a deeper walkthrough, see the full WooCommerce product import walkthrough and how to import variable products into WooCommerce.
Step 4: Import customers
WooCommerce’s built-in CSV importer handles customers once you format the CSV to match WooCommerce’s expected column names. The Shopify customer export needs column renaming: First Name to first_name, Last Name to last_name, Default Address Address1 to billing_address_1, and so on for billing and shipping fields.
Shopify customer passwords are hashed and not exportable, so every customer will need to reset their password on first WooCommerce login. Prepare a “we have moved platforms” email through your email platform (Drip, Klaviyo, Mailchimp) and send it either just before or immediately after DNS cutover. A surprise password reset prompt is the fastest way to spike your support queue on day one.
Our full customer import guide covers the column mapping and CSV transform end to end.
Step 5: Import historical orders
Historical orders matter for three reasons: customer account pages (“my previous orders”), refund records, and accounting continuity. WooCommerce does not import orders out of the box, so you will need a dedicated order importer plus the Shopify order CSV.
Map the critical fields: Shopify Order Number to Order Number, Lineitem SKU to order line item, Total to Order Total, Created at to Order Date, Fulfillment Status to Order Status. For stores with 5,000+ orders, import in monthly batches. Run a test import on 10 orders first, verify customer records link correctly (the customer email field is usually the link between orders and customer accounts), then batch the rest.
What We’ve Seen: The three most common Shopify to WooCommerce migration failures we see all trace to the same root cause: rushing past the customer and order linkage step. The pattern is consistent. First, broken variants. Shopify variant axes get mapped to WooCommerce attributes without normalizing the names, so “Small” and “S” end up as two different attribute values and create ghost variants. Second, lost customer passwords. Shopify does not export password hashes, so every customer needs a reset email. Forget to send that email and you will see a support ticket spike the day after cutover. Third, missing reviews. Shopify review-app data lives inside the app, not on the product, so skipping the review-app export means losing years of social proof. Run the fix for all three before DNS cutover, not after. Each one is a 20-minute fix at the right stage and a multi-week recovery if you discover it in production.
Step 6: Reviews, images, and metadata
Reviews import via your WooCommerce review plugin. Most WooCommerce review plugins accept CSVs from Judge.me, Loox, and Yotpo directly. Match reviews to products by SKU rather than by product name, because SKUs are stable across platforms while product names often get edited during rebuilds.
Images: by this point Product Importer Deluxe has already downloaded product images. Double-check featured images and gallery images on a random sample of 20 products. Any that failed to download will show a broken thumbnail on the product edit screen.
Metadata: SEO titles, meta descriptions, and product-level schema. If you exported Shopify metafields, map them to WooCommerce product attributes or custom fields. AIOSEO handles product-level schema automatically once products are in.
The full review import workflow has its own walkthrough covering SKU matching and the review-app-specific CSV quirks.
Step 7: URL redirects and SEO preservation
The redirect map is where migrations either preserve SEO or torch it. Generate it as a spreadsheet: column A is the old Shopify URL, column B is the new WooCommerce URL.
Shopify products sit at /products/{handle} and map to WooCommerce /product/{slug}/. Shopify collections sit at /collections/{handle} and map to WooCommerce /product-category/{slug}/. Custom pages (/pages/about) map to the WordPress page slug (/about/). Blog URLs (/blogs/news/{post-handle}) map to your chosen WordPress permalink structure.
Export the product and collection handle list from Shopify admin to build a clean source-of-truth for column A. Run a spreadsheet formula to generate column B.
Step 8: Test, DNS cutover, and post-migration checks
Before cutover, run a full test on staging. Place a test order, register a test customer, trigger a password reset email, check every payment method, check tax calculation, check shipping zone logic. This is the last chance to catch a broken checkout without losing revenue.
For the DNS cutover, lower the TTL on your DNS records 24 hours before cutover. Change the A or CNAME records to point at your WooCommerce host. Monitor propagation with a DNS checker.
Immediately post-cutover: place a live test order, verify transactional emails send, verify Google Analytics and Search Console are connected to the new domain, and verify the XML sitemap submits to Search Console and Bing Webmaster Tools.
Handling URL Redirects And SEO Preservation
A properly redirected migration typically shows a 10% to 20% temporary traffic dip that recovers within four to eight weeks. Skipping redirects causes permanent traffic loss. Google’s site move documentation describes the same shape: traffic on the old URLs falls while the new URLs climb, and most pages move across in Google’s index within a few weeks.
Install the redirects
Use AIOSEO’s redirect manager or the Redirection plugin (free) to upload the CSV of old to new URLs as 301 redirects. Google treats a 301 as a permanent signal that passes ranking to the new URL, so the redirect type matters. Both tools accept bulk CSV upload, which saves a lot of clicking. Test 10 to 20 random redirects before DNS cutover by hitting the old URL on the new host via a hosts file override or a staging domain.
If your Shopify URLs used a different handle convention than WooCommerce generates by default, decide now whether to override the WooCommerce slug to match Shopify exactly, or to accept the WooCommerce slug and redirect from the Shopify version. Match Shopify exactly for top-traffic pages, and redirect the long tail.
SEO carryover checklist
Submit the XML sitemap to Google Search Console and Bing Webmaster Tools immediately after cutover. Audit your internal links for any hardcoded Shopify URLs in blog content or navigation menus, because they will break silently if you miss them.
Verify schema markup (Product, Review, FAQ) on at least 10 product pages using Google’s Rich Results Test. Check canonical tags: WooCommerce sets them by default, but confirm no duplicate content is cached across old Shopify URLs.
Post-Migration Validation
Week one is when silent data gaps surface. Watch four things: support tickets (expect a password-reset spike), Search Console (crawl errors on the new domain), Analytics (traffic drops), and WooCommerce order flow plus email deliverability.
Reconciliation export
Run a full export of the WooCommerce data one week after cutover using Store Exporter Deluxe and diff it against the original Shopify CSVs you archived. Product count, customer count, and order count should all match (minus test data).
This check almost always turns up at least one small gap: a handful of orphaned variants, a missing tag, a product category that did not map cleanly. Caught in week one it is a 15-minute fix. Caught in month three it is a recovery project.
Migration Time Estimates
Most Shopify to WooCommerce migration projects fit into one of four windows based on store complexity. Treat these as planning guidance, not benchmarked data:
- Simple store (under 200 products, under 1,000 historical orders, simple variants): four to six hours of hands-on work, single-day migration window.
- Standard store (200 to 1,000 products, 1,000 to 10,000 orders, standard variants plus reviews): one to two days, weekend migration window.
- Complex store (1,000 to 5,000 products, 10,000 to 50,000 orders, bundles plus subscriptions plus heavy app dependencies): three to five days, multi-weekend or staged migration.
- Enterprise store (5,000+ products, 50,000+ orders, Shopify Plus, Shopify Markets): consider a paid migration service. If you do go DIY, plan one to two weeks with a dedicated freeze window.
Alongside the time estimate, here is how each data type maps to its migration tool. Use this as a cheat sheet when sequencing the work:
- Products go through Product Importer Deluxe (CSV or XML import from the Shopify product export).
- Customers go through WooCommerce’s built-in CSV Importer (the Shopify customer export needs column renaming).
- Orders go through an order importer plugin (Shopify order CSV, batched by month for large stores).
- Reviews go through your WooCommerce review plugin’s CSV import (Judge.me, Loox, and Yotpo all have WooCommerce-compatible exports).
- Images ride along with Product Importer Deluxe, which downloads them from the Shopify URLs during product import.
- Redirects go through AIOSEO’s redirect manager or the Redirection plugin (CSV upload of old to new URL pairs).
- Post-migration validation runs through Store Exporter Deluxe (export WooCommerce data, diff against the archived Shopify CSVs).
Frequently Asked Questions
How long does a Shopify to WooCommerce migration take?
For a store with under 500 products and under 5,000 historical orders, plan a half day to a full day of hands-on work. Larger or more complex stores (subscriptions, bundles, heavy app dependencies) can take a full weekend or longer. The migration time estimate list above covers the full range.
Will my SEO traffic drop?
A properly redirected migration typically shows a 10% to 20% temporary traffic dip that recovers within four to eight weeks. Skipping the redirect map causes permanent loss. The SEO carryover checklist in this guide covers the full redirect workflow.
Do customer passwords transfer?
No. Shopify hashes customer passwords and does not export them. Every customer will need to reset their password on first WooCommerce login. Send a “we have moved” email before or during cutover explaining this so you are not ambushing customers at the login screen.
Can I keep my Shopify theme design?
Not directly. Shopify themes are built in Liquid and do not convert to WooCommerce. You will rebuild the visual design on a WooCommerce theme (Astra, Kadence, Blocksy, or a purpose-built one). Most store owners treat this as an opportunity to refresh the design rather than replicate pixel-for-pixel.
Is it better to use a paid migration service instead?
For stores with 10,000+ SKUs, multi-region Shopify Markets setups, or deep subscription and loyalty app dependencies, a paid service may be the right call. Services like LitExtension and Cart2Cart exist for genuinely complex stores where the cost of your time exceeds the service fee. For standard Shopify stores, the self-serve workflow in this guide is faster and significantly cheaper.
What if my Shopify variants do not map cleanly to WooCommerce attributes?
Variant name normalization is the most common gotcha. “Small” and “S” end up as two different attribute values if you do not clean the CSV first. Normalize your variant value names in a spreadsheet before import: pick one canonical version (either “Small” or “S” across the board) and use find-and-replace on the Shopify CSV before running it through Product Importer Deluxe.
Ready To Migrate From Shopify To WooCommerce?
Here is the short version: export Shopify data, set up WooCommerce on WordPress, import products via Product Importer Deluxe, import customers via WooCommerce’s built-in CSV importer, import historical orders via an order importer, bring across reviews and images and metadata, build the redirect map, test on staging, run DNS cutover, validate with Store Exporter Deluxe in week one.
The cost framing matters. A typical DIY migration spend is around $79/year for the Product Importer Deluxe bundle plus plugin licenses you would buy anyway. For standard Shopify stores, the self-serve workflow is both cheaper and faster. For genuinely complex stores (10,000+ SKUs, multi-region, heavy subscription or loyalty app dependencies), a paid service is a reasonable choice.
If you’re ready to start your Shopify to WooCommerce migration, start with the product side. Get Product Importer Deluxe for $79/year. The bundle includes Store Exporter Deluxe for post-migration validation, the other plugin you will reach for in week one.









