Two years ago, a WooCommerce store owner came to us three days after a botched migration. Their developer had moved the products, sort of. Half the images were broken. Order history was gone. And their organic traffic, which had taken four years to build, dropped 70% in a week because nobody set up redirects. They were on Shopify, technically. But they'd traded platforms for a pile of problems.
A WooCommerce to Shopify migration done right is unremarkable. Traffic holds. Customers barely notice. The store keeps selling through the whole process. Done wrong, it's one of the most expensive mistakes an ecommerce business can make, and we've been called in to clean up enough of the wrong version to know exactly where the bodies are buried.
Here's the process we run on every migration, in the order we'd run it if it were our own store on the line.

Before You Migrate: The Honest Question

Shopify is not automatically better than WooCommerce. It depends on what you're optimizing for.
Shopify wins on hosting reliability, checkout conversion, app ecosystem, and not having to think about servers, security patches, or plugin conflicts at 2 a.m. WooCommerce wins on raw customization, ownership of your stack, and avoiding monthly platform fees.
Here's what pushes merchants toward Shopify in our experience: their WooCommerce store has grown past what shared hosting handles and the hosting plus maintenance bills now exceed a Shopify plan. Or a plugin conflict broke checkout during a sale and they lost a weekend to it. Or they want to hire marketers, and every marketing hire knows Shopify while WooCommerce requires a developer on call.
If none of that sounds like you, a migration might not pay off. Migrating to chase a minor annoyance is how stores lose rankings for a problem they could have fixed with better hosting. But if the fit is right, here's how to do it without losing anything that matters.
Step 1: Audit and Inventory What You Actually Have
Before anything moves, you need a complete inventory. Not a guess. An export.
Pull a full product export from WooCommerce (Products → Export), including SKUs, variants, meta fields, and categories. Export your customer list, order history, discount codes, and pages. Then crawl your live store with Screaming Frog and save the full URL list, with every product, collection-equivalent (your category pages), blog post, and media file.
Two things always surprise merchants at this stage. First, how much junk exists: draft products from 2019, orphaned pages, media files nobody links to. Second, how much is load-bearing: a blog post from three years ago that's quietly driving 30% of organic traffic, or a landing page a partner still links to. The crawl export is your safety net for both. Do not skip it, and do not let anyone talk you into migrating "just the products" without it.
This is also the moment to clean house. Delete dead products, consolidate duplicate categories, standardize variant structures. It's dramatically easier to clean data on the WooCommerce side than after it's in Shopify.
Step 2: Set Up Shopify as a Private Sandbox
Create your Shopify store and keep it password-protected through the entire build. Nothing on it is crawlable or visible until you flip the switch, and that isolation is what makes a no-downtime migration possible.
Configure the foundation first: payments, shipping zones, taxes, markets, and your email platform. If you're on Klaviyo for WooCommerce, install Klaviyo's Shopify integration early. The signup forms, flows, and list structures need testing, and email is the channel customers notice most when it breaks.
Pick your theme early too, because theme decisions shape how you structure everything else. If your WooCommerce store leans heavily on custom product page layouts, budget time here or consider a migration partner rather than trying to replicate everything with apps.
Step 3: Migrate Products, Customers, and Orders
This is the technical core of the migration, and where most DIY attempts go sideways.
Option A: A migration app. Tools like Matrixify (formerly Excelify) or Cart2Cart handle structured data well. Matrixify is our default for stores with complex catalogs, because it gives you spreadsheet-level control over every field and lets you dry-run the import against test data. Cart2Cart is simpler and fine for straightforward catalogs.
Option B: Custom scripted migration. For large or messy catalogs (thousands of products, years of order history, non-standard meta fields) we write custom import scripts. More control, more cost, more testing burden. Only worth it past a certain complexity threshold.
Regardless of method, three rules prevent data loss:
- Never migrate directly against your live WooCommerce database. Work from exports or a staging copy. One bad write shouldn't be able to touch live data.
- Dry run everything. Import into a test Shopify store or a duplicate theme first. Compare counts: products, variants, customers, orders. They must match your exports exactly before you touch production.
- Map variants by SKU, not by name. Product names get edited over the years. SKUs don't. Name-based matching is how variants end up attached to the wrong product.
Expect friction in a few predictable places. WooCommerce product meta fields don't map neatly to Shopify's metafields, so attributes like "material" or "care instructions" need deliberate mapping. Customer passwords cannot be transferred between platforms. Shopify will need to email customers a password reset, so plan that communication. And digital downloads with license keys are genuinely painful; there's no clean path, and if downloads are a big part of your business, flag it early.
Step 4: Rebuild SEO Structure Before Launch
This is the step that separates migrations that hold rankings from migrations that don't.
Your WooCommerce URLs will not match Shopify's URLs. WooCommerce product categories live at /product-category/shoes/ while Shopify collections live at /collections/shoes/. Product URLs often differ too. Every single one of those differences needs a 301 redirect, one to one, from old URL to new URL. Not a catch-all redirect to the homepage. That tells Google every page is gone and transfers almost no ranking value. Page-level redirects, built from the Screaming Frog crawl you ran in Step 1.
Beyond redirects, handle these before launch:
- Recreate your title tags and meta descriptions in Shopify's SEO fields. Shopify generates these from templates, and the defaults are usually worse than what you had.
- Migrate your blog posts, which WooCommerce stores as WordPress posts. These carry real SEO equity and internal links.
- Set up Google Search Console for the Shopify domain and submit your sitemap. Keep the old property verified too, so you can watch the transition.
- Check your image alt text survives the import. Apps sometimes drop it silently.
If organic traffic matters to your business, this section is not optional, and it's where an experienced team earns its fee. We've seen stores lose years of ranking equity in one week because redirects were "a nice-to-have." Our broader thinking on platform moves is covered in our Shopify migration guide, which is worth reading alongside this one.
Step 5: Test Everything Like a Customer
Before launch, test the store the way a customer would use it, on a real phone, not just clicking around the admin.
Run through this list:
- Place a real order with a real card on every payment method, then refund it.
- Test every discount code from your old store.
- Test shipping rates to several addresses, including international if you sell globally.
- Trigger every Klaviyo flow: welcome, abandoned cart, order confirmation, shipping confirmation.
- Click every link on the homepage, a collection, a product, and the footer. Then crawl the new store with Screaming Frog and check for 404s and redirect chains.
- Run the store through PageSpeed Insights. WooCommerce stores that lived on cheap hosting often double their mobile scores just by existing on Shopify's infrastructure, which is a nice bonus.
- Test the top 50 URLs from your old site manually and confirm each one 301s correctly to its new equivalent.
Step 6: Cut Over With Minimal Downtime
The actual launch is anticlimactic when the prep is done right. We launch by pointing the domain to Shopify (via your DNS provider, updating the A record and CNAME as Shopify instructs in Settings → Domains), keeping the WooCommerce store alive at its hosting URL for a few weeks as a reference.
Two timing rules matter. First, do the final order sync right before DNS changes, so no orders get stranded on the old platform. Second, launch mid-week, mid-day for your primary market. Never Friday evening, never before a big sale. DNS propagation usually takes minutes to a couple of hours with modern setups, but if anything needs fixing, you want your whole team awake and available.
Keep the old WooCommerce site untouched for at least 90 days. Read-only. It's your rollback plan and your reference for anything that got missed.
After Launch: The 30-Day Watch
The first month after a migration is when small problems get caught before they become expensive ones.
Monitor Google Search Console daily for the first two weeks. You're looking for crawl errors, coverage drops, and redirect issues. Expect a temporary wobble in rankings for two to four weeks. That's normal as Google processes the redirects and reindexes. A sustained drop past week four means something's wrong, and it's usually the redirects.
Watch your analytics alongside Search Console. Confirm transactions, revenue, and email signups are tracking correctly. Post-migration analytics gaps are common: the pixel or data layer gets left behind in the move. Compare week-over-week against the same period on WooCommerce, not against the previous week, to account for seasonality.
Frequently Asked Questions
Will I lose my SEO rankings when migrating from WooCommerce to Shopify?
Not if the redirects are done properly. Every old URL needs a permanent 301 redirect to its new equivalent, and your titles, metas, and blog content need to carry over. Expect a temporary two-to-four-week dip while Google reindexes, then a return to baseline. Stores that lose rankings long-term almost always skipped page-level redirects.
Can I migrate my WooCommerce order history to Shopify?
Yes. Order history transfers through migration apps like Matrixify or Cart2Cart, or custom scripts for complex data. Customer accounts transfer too, with one caveat: passwords can't move between platforms because they're stored with different encryption. Customers will set new passwords via a reset email, so plan that communication before launch.
How long does a WooCommerce to Shopify migration take?
A small, clean store can migrate in one to two weeks. A mid-size store with a few thousand products, real order history, and careful SEO work typically takes four to eight weeks including testing. Enterprise catalogs with custom functionality run longer. Anyone quoting two days for a serious migration is quoting the part where products get imported, not the part where the business survives intact.
What happens to my WordPress blog during the migration?
Shopify has native blogging, and posts can be migrated, though formatting sometimes needs cleanup. If your blog is a major traffic driver with complex layouts, some stores keep WordPress on a subdomain for the blog. Our default recommendation is to move posts into Shopify so the whole domain consolidates its SEO equity. Split setups leak link value and complicate analytics.
Is it cheaper to migrate myself or hire an agency?
If your catalog is small and you have someone comfortable with CSV exports, DNS, and Search Console, DIY is genuinely viable. The moment you have meaningful organic traffic, real order history, or a deadline tied to a sales season, the cost of a mistake exceeds the agency fee by an order of magnitude. A botched migration is the most expensive "savings" in ecommerce.
Planning a WooCommerce to Shopify migration? Work with our Shopify Plus Partner team. We've moved 200+ stores without losing a product, an order, or a ranking, and we'll get you there with zero downtime.

