WooCommerce to Shopify Migration Checklist
A complete WooCommerce to Shopify migration checklist with 60+ checks across pre-check, migration, pre-transfer, transfer, and post-transfer. Written by the team behind the Built for Shopify migration app.
Published May 12, 2026
Migrating a real WooCommerce store to Shopify is a three- to four-week project, not a weekend job. The migration itself takes a few hours. Everything around it — auditing what you have, deciding what to move, setting up the new store, getting DNS right, and surviving the first two weeks after launch — takes the rest of the time.
Most checklists you’ll find online are surface-level. This one isn’t. Each item explains why it matters and, where relevant, what breaks when merchants skip it. We see the same failure modes every week.
Work through the phases in order. If you skip ahead and discover later that something in an earlier phase wasn’t done, you’ll usually have to roll back, and rollback gets expensive once DNS has flipped.
Pre-check: what you already have
Before you touch Shopify, get a clear picture of what your WooCommerce store actually contains and what depends on it. Most painful migrations fail because someone discovered a critical integration three days after going live, not because the product import broke.
Hosting and billing
Find out when your hosting renews and whether you pay monthly or annually. This affects your migration timeline and your wallet.
- Monthly billing: you have flexibility — schedule the migration so your hosting ends a few weeks after Shopify goes live, giving you a buffer to verify nothing was missed.
- Annual billing: check the renewal date now. If it’s coming up in the next 60 days, you’ll want to either time the migration before renewal or accept that you’re paying for both platforms in parallel for a while. Don’t let auto-renewal catch you a week after going live on Shopify.
- Don’t cancel hosting immediately after migration. Keep WooCommerce running for at least 30–60 days post-migration. You’ll want to reference old data, troubleshoot a missing redirect, or pull an old order. Cancelling early always hurts.
Email hosting
Shopify does not host email. If your custom domain email is bundled with your current hosting (common with cPanel, Bluehost, SiteGround, GoDaddy, and similar), you need to migrate email before you change DNS.
If your email runs independently — Google Workspace, Microsoft 365, Fastmail, or another dedicated email host — there’s nothing to do. It will keep working through the move.
If email is bundled with hosting, migrate it to a dedicated host before the DNS switch. The day your domain points to Shopify, your bundled email stops receiving mail. This is the single most common “oh no” moment we see. Plan a week for email migration on its own — it involves exporting mailboxes, importing them into the new host, updating MX records, and verifying delivery.
Do you have a Shopify store yet?
If you already have a Shopify store, you can skip ahead to the next section.
If not, when you need one depends on your timeline. Shopify’s introductory offer is a 3-day free trial followed by three months at $1/month — so the cost of starting early is negligible, and the benefit of having a real Shopify environment to test migrations against is substantial.
- Migrating within the next 90 days: start your Shopify trial here. Three days free, then three months at $1/month. You won’t be on a real plan until after that, which is plenty of time to run test migrations and configure the store. (Disclosure: this is an affiliate link; we earn a small commission at no cost to you.)
- Migrating later than 90 days from now: don’t open a Shopify account yet — the $1/month period will run out before you’re ready, and you’ll be paying a full plan while still on WooCommerce. Get in touch and we’ll set you up with a free Shopify client transfer store: a real Shopify environment where you can configure everything and run test migrations at your own pace, without paying for a plan until you’re ready to go live. Not sure which Shopify plan to pick when the trial ends? Start with Basic. You can always upgrade later. If your store has unusual requirements — B2B pricing, wholesale, very high order volume — mention this when you get in touch and we’ll help you choose.
Back up everything
Before you change anything, take complete backups of your WooCommerce store. This is your safety net for the entire migration:
- WooCommerce CSV exports for products, orders, and customers. Use the built-in WooCommerce → Tools → Export, or a plugin like WP All Export for more fields.
- Full database backup via phpMyAdmin or your host’s backup tool — this captures everything CSV exports miss, like custom fields, metadata, and plugin data.
- Full files backup of your
wp-content/uploadsfolder, plus your theme and plugin folders. This is your image library and any customizations. - Plugin configuration screenshots or documentation for any business-critical plugin (payment gateways, shipping, tax). These don’t export cleanly and you’ll want a reference when configuring Shopify equivalents.
Even with a perfect migration, having raw exports means you can always go back and verify a number. Thirty minutes of insurance that costs you nothing.
Inventory your plugins
List every active plugin that handles business logic. For each one, decide what its Shopify equivalent will be. The common categories that need attention:
Payment gateways like Stripe, PayPal, Mollie, Klarna, Afterpay, and Affirm. Most have Shopify equivalents, but you’ll re-authenticate from scratch.
Shipping calculators including live rates from carriers and table-rate plugins. Shopify has its own carrier integrations and a large ecosystem of shipping apps to replace these.
Subscriptions (WooCommerce Subscriptions and similar) — this is the hardest category. Subscription billing tokens don’t transfer between platforms. You’ll need a Shopify subscription app like Recharge, Loop, or Bold, and you’ll likely have customers re-authorize payment methods.
Reviews from plugins like WooCommerce reviews, Yotpo, Judge.me, Loox, or Trustpilot — plugin-specific data that doesn’t transfer through standard product migrations. WooCommerce Importer generates ready-to-import CSVs for several of the common Shopify review apps (Judge.me, Loox), so reviews land in your new store with the products they belong to. Pick your Shopify reviews app first, then check which migration formats are supported.
Email marketing with Mailchimp, Klaviyo, or ActiveCampaign — subscriber lists migrate via standard exports; flows and automations need rebuilding. Klaviyo’s Shopify connector is materially better than its WooCommerce one, worth knowing if you’re already a Klaviyo user.
Accounting integrations with Xero, QuickBooks, or MYOB — the integration changes; transactions in the new platform need a fresh connection.
Tax compliance services like Avalara or TaxJar — re-connect, and double-check tax zones in Shopify match your existing setup.
SEO plugins including Yoast, Rank Math, and All in One SEO — Shopify handles much of the basics natively (title tag and meta description fields at the product and page level), but doesn’t include Yoast-style snippet previews or content analysis out of the box. If you used Yoast on WooCommerce and want a similar experience on Shopify, Yoast SEO for Shopify is the official Yoast app and most direct equivalent.
Every missing equivalent is a launch-day problem if you discover it late. Better to find out now that no Shopify app replicates your custom subscription logic than to discover it the morning of go-live.
Note your current analytics setup
Document your current tracking before anything changes:
- Google Search Console — note your verified property and verification method. You’ll re-verify the same domain on Shopify after migration, and having historical data continuity matters.
- Google Analytics — note your GA4 Measurement ID. You’ll add this to Shopify directly via the analytics integration.
- Meta Pixel, TikTok Pixel, Google Ads tag — note the IDs for each.
- Google Merchant Center and any shopping feeds — these will need to be reconnected with Shopify as the new source.
Migration: what you’ll move and when
Now decide what’s moving and in what order. You don’t have to move everything at once — and for larger stores, you shouldn’t.
Generate WooCommerce API credentials
Before WooCommerce Importer (or any migration tool) can read your data, you need to create API credentials in WooCommerce. This takes about a minute.
In your WordPress dashboard, go to WooCommerce → Settings → Advanced → REST API → Create an API key. Fill in:
- Description: something memorable like “Shopify migration” (this is just a label for you).
- User: an admin account.
- Permissions: Read is enough. WooCommerce Importer doesn’t write to your WooCommerce store — the data flow is one-way, from WooCommerce to Shopify.
After clicking Generate, WooCommerce shows you a Consumer key and a Consumer secret. Copy both immediately and store them somewhere safe. The secret is only shown once; if you lose it, you’ll need to delete the key and create a new one. Don’t paste them into chat or email — treat them like passwords.
You’ll paste both into WooCommerce Importer along with your WooCommerce store URL when you start the migration.
For a step-by-step version with screenshots, see How to create WooCommerce API keys.
Decide what to migrate
Walk through this list and identify which entities apply to your store: products with variants, images, SKUs, inventory, descriptions, and metafields; product files for digital goods, manuals, and PDFs; collections and categories (usually as smart collections in Shopify); customers with addresses, tags, and account history; orders and refunds; draft orders for open quotes or carts in progress; coupons and discount codes; WordPress pages and blog posts; URL redirects; product reviews; and customer notes or internal comments.
Most stores need most of these. The question isn’t usually which to migrate but in what order, and which tool can handle each.
Should you do 301 redirects?
For any store with organic traffic, yes — and it’s not optional.
When your URLs change, and they will because WooCommerce permalink structures don’t match Shopify’s, Google sees the old URLs as broken and your rankings drop. Sometimes by a lot. 301 redirects tell Google “this URL moved to here,” and rankings transfer to the new URL.
The URL patterns you should redirect:
- Product URLs:
/product/widget-pro→/products/widget-pro - Category URLs:
/product-category/gadgets→/collections/gadgets - Page URLs:
/about-us→/pages/about-us - Blog post URLs:
/2024/03/12/my-post→/blogs/news/my-post
Store Importer creates these redirects automatically during migration. Most other tools do not. If you’re migrating manually with CSVs, you’ll need to build the redirect map yourself.
The practical approach for a manual redirect map: use Screaming Frog SEO Spider (free up to 500 URLs, paid for more) to crawl your live WooCommerce store and export the full list of indexed URLs. Then map each old URL to its new Shopify equivalent in a spreadsheet — old path in column A, new path in column B. Import the resulting CSV via Online Store → Navigation → URL redirects → Import. Budget several hours for a store of a few thousand URLs.
Stores with negligible traffic can skip this. Stores with material organic traffic absolutely cannot.
Should you migrate orders?
This is the question merchants get wrong most often. The instinct is “yes, of course.” The real question is whether you need historical orders accessible inside Shopify, or whether keeping your WooCommerce export as a reference is enough.
Migrate orders if you need to issue refunds against old orders inside Shopify, if you want customers to see their order history when they log into your new store, if your accounting workflow requires it, or if you want customer lifetime value calculations to include historical purchases.
Don’t migrate orders if you only need read-only access to old data (a CSV export covers this), if you’re a low-volume store, or if you want to save money on a lower order-tier migration plan.
Migrate early when you can
Especially for large stores with 5,000 or more products, migrate your products and content to Shopify weeks before go-live, not on the day. The reasons compound: you can inspect everything in Shopify with no time pressure, you can fix issues you find without affecting your live store, you can train staff on the new admin, and you can set up theme, navigation, and checkout properly.
Then on go-live day, you only run a final incremental pass to catch anything that changed in the interim — new products added in the past few weeks, inventory changes, new orders, new customers.
For this to work, you need a migration tool that supports re-running on the same tier and incremental updates. WooCommerce Importer does. Check before you commit to any alternative.
For complex stores — high product counts, unusual data structures, subscription products, custom integrations — a dedicated migration app or a managed migration service handles edge cases that manual CSV imports won’t catch. The right choice depends on your store’s complexity and your appetite for hands-on work. Most merchants with under 5,000 products can self-serve with a migration app; larger or unusual stores often benefit from a managed service.
Spot-check after migrating products
After your product migration completes, don’t just trust the success count. Open Shopify admin and verify on at least 10–20 random products that:
- All variants are present with correct prices and SKUs
- Inventory quantities match the source
- All product images are present and in correct order
- Product descriptions are formatted correctly, with HTML preserved and no escaping issues
- Metafields and custom fields transferred
- Product tags and types are preserved
- SEO title and meta description are present
For each issue you find, decide whether to fix it in Shopify directly or fix it in WooCommerce and re-run the migration. For one or two products, fix in Shopify. For systemic issues affecting many products, re-run.
Pre-transfer: get Shopify ready
Your data is in Shopify. Now the store needs to be ready to actually sell. This phase is where slapdash migrations show.
Confirm email migration
Already covered in pre-check, but verify one more time before proceeding: send a test email to and from your business address through the new email host. If anything’s off, fix it now — not after DNS changes.
Required pages and policies
Shopify requires, and customers expect, several pages. Make sure these are present and accurate before going live: a privacy policy, a refund or return policy, terms of service, a shipping policy, a contact page with a working form or email link, and an about page if you had one in WooCommerce.
Shopify can generate templates for the legal pages from Settings → Policies, but read and customize them. Don’t just copy WooCommerce’s auto-generated versions over — Shopify’s templates are better starting points and they reference Shopify checkout, not WooCommerce.
Theme and storefront setup
Migration moves your data, not your storefront design. You’ll need to set up the Shopify side of how your store actually looks.
Pick a Shopify theme that matches your brand. The default Horizon theme is free and a strong starting point; the Theme Store has both free and paid alternatives. If your WooCommerce store had heavy theme customization, expect to spend time rebuilding equivalent design in Shopify — themes are not portable between platforms.
Rebuild your main navigation in Shopify (Online Store → Navigation). Menus don’t transfer through standard migrations because WooCommerce stores them as WordPress menu items, not as catalog data. WooCommerce Importer can optionally generate a basic menu from your WooCommerce categories — useful as a starting point for stores with straightforward category structures. You’ll still want to fine-tune the result in Shopify (rename, reorder, add manual entries like About or Contact).
Configure the homepage sections — hero, featured collections, content blocks. Set up your favicon, brand colors, and any custom typography in theme settings.
Test the mobile rendering of key pages: homepage, a product page, the cart, and checkout. Most Shopify themes are mobile-first, but custom modifications can break responsiveness in ways that aren’t obvious on desktop.
If you’re not comfortable with theme customization, this is the most common task to hire a Shopify Partner for. Budget anywhere from a few hours to several days depending on complexity.
Payments are set up
In Shopify admin → Settings → Payments, configure Shopify Payments if you’re eligible in your country (it has the lowest transaction fees), PayPal Express (most customers expect this option), any other gateway you used in WooCommerce, and any manual payment methods you accept like bank transfer or cash on delivery.
Test the checkout with a real card and a real amount. Buy a 1¢ test product, or a regular product, and refund it after. Shopify’s preview mode does not exercise the real payment gateway — only an actual purchase does. The number of stores that go live with broken payment because they trusted the preview is depressing.
Shipping profiles set up
In Settings → Shipping and delivery, for each region you ship to: set up shipping zones for the countries or regions you serve, define rates (flat, weight-based, price-based, or live carrier rates), set free shipping thresholds if applicable, and configure custom shipping profiles for fragile or oversized products if needed.
Test a checkout to each major destination — domestic, EU, US, whatever applies. Rates should match what your customers expect.
Taxes configured
In Settings → Taxes and duties. This is where WooCommerce-to-Shopify migrations often hit a wall, because the tax models differ between platforms.
Set tax-inclusive versus tax-exclusive pricing to match your WooCommerce setup. Display prices to customers in the same way they’re used to seeing them. For EU stores, configure VAT zones — Shopify handles OSS reporting. Configure your VAT registration country and apply the right rates per destination. For US stores, set nexus by state for each state where you collect. For digital goods, check that Shopify’s handling matches what you need.
Remove the password protection
While you’ve been building out Shopify, it’s been password-protected by default (Online Store → Preferences → Restrict access to visitors with the password). Remove this password protection before changing DNS — otherwise the moment your domain points to Shopify, customers see a password prompt instead of your store.
Also remove any “Coming soon” banners, theme blocks, or placeholder content that might still be sitting on your homepage.
Set up Shopify analytics
Before DNS changes, get analytics connected so you don’t lose a week of data after going live. Add your GA4 Measurement ID in Settings → Customer events. Verify the new property in Google Search Console using the DNS verification method, which survives the DNS change. Install Meta Pixel via Shopify’s Facebook & Instagram channel, and add your Google Ads tag via the Google channel or additional scripts. Add any other tracking — TikTok, Pinterest, Snap — through the appropriate channel or sales app.
Transactional emails customized
In Settings → Notifications. Shopify’s default transactional emails are functional but bland. At minimum, customize the order confirmation, shipping confirmation, order refund notification, and abandoned checkout email — which is off by default. Turn it on; it recovers measurable revenue. Add your logo, brand colors, and a personable signature to each.
Set DNS TTL to the shortest value
Log in to your domain registrar or DNS host. Find the DNS records for your domain and change the TTL (Time To Live) on the records you’ll be changing — typically the A record and CNAME for www — to 300 seconds (5 minutes).
Do this at least 24–48 hours before your planned DNS switch. TTL controls how long DNS resolvers around the world cache the old record. With the default TTL, often 24 hours or longer, some users could see your old WooCommerce store for a full day after the switch. With a 5-minute TTL, everyone sees the new store within minutes.
Spot-check products one more time
Take 20 random product URLs from your live WooCommerce store and open the equivalent in Shopify. Side by side, confirm the same images in the same order, the same description with the same formatting, the same price in the same currency, the same variants and stock, and the same product title and metafields.
This is your last cheap chance to catch a systematic error before going live.
Transfer day: going live
Block out half a day. Don’t schedule meetings. Don’t migrate on a Friday afternoon — if something breaks at 4pm Friday, you’ll be debugging on Saturday. Tuesday or Wednesday morning works well.
Put WooCommerce into maintenance mode
Switch WooCommerce to a holding page that says “We’re moving — back shortly!” so customers don’t place new orders during the switch. Options include the free WP Maintenance Mode plugin for a simple holding page, disabling checkout in WooCommerce → Settings while keeping the catalog visible, or manually adding a notice to your theme and removing the “Add to cart” buttons.
Maintenance mode prevents new orders coming in during the cutover, which would otherwise live in WooCommerce while customers expect them in Shopify.
Run the final incremental migration
Run one last pass on WooCommerce Importer (or your migration tool of choice) to bring across any products added since your previous migration, any inventory adjustments, any orders placed in the past few weeks if you’re migrating orders, and any new customers.
WooCommerce Importer’s “Repeat last import” feature is designed for this — it picks up where the previous import left off without duplicating data.
Take a final WooCommerce backup
You backed up WooCommerce before starting the migration — but that backup is now weeks old, and the final incremental might have caught new orders, products, or customer data that exists on the WooCommerce side and nowhere else. Take one last full backup before DNS changes:
- Database export via phpMyAdmin or your host’s backup tool
- Files backup of
wp-content/uploads, your theme, and any custom plugin code - A final CSV export of products, orders, and customers from WooCommerce admin
Store this somewhere outside your WooCommerce host — local drive, cloud storage, your own server. This is your “everything as it was the day we switched” snapshot. You’ll keep WooCommerce running for 30–60 days after migration anyway, but having a permanent archive means you can confidently cancel hosting later without losing reference data.
Connect your domain to Shopify
In Shopify admin → Settings → Domains, add your custom domain. You’ll get instructions on which DNS records to point where. There are two paths.
The first is to transfer the domain into Shopify, making Shopify your registrar. Simplest long-term; no DNS to manage. The trade-off is less flexibility if you want to host other services like email or subdomains on the same domain. Often what we recommend for merchants who only need a website.
The second is to keep the domain at your current registrar and point it at Shopify. You change the A record and CNAME at your registrar. More flexible — keeps email and subdomains on whichever host you prefer. What we recommend for merchants with Google Workspace or other services on the same domain.
Change the DNS
If you chose the second option, change these records at your registrar: the A record for the root domain should point to Shopify’s IP 23.227.38.65, and the CNAME record for www should point to shops.myshopify.com.
Leave MX records alone — those handle email. Leave any other subdomains alone unless you’re explicitly moving them.
Wait 5 to 30 minutes (with TTL set to 300 seconds in advance). Test on a different network — your phone on mobile data is a good check because it uses a different DNS resolver than your home WiFi.
Verify the live store
Once DNS has propagated, walk through this: load the homepage and confirm it’s Shopify, not the WooCommerce holding page; load a product page directly; add to cart and complete a small real order through checkout; check that the order arrives in Shopify admin; check that the order confirmation email arrives; refund the test order; and test 5 to 10 redirects by taking old WooCommerce URLs and confirming they land on the correct Shopify URLs.
You’re live.
Post-transfer: the critical first two weeks
The migration isn’t over the day DNS flips. The next two weeks are when problems surface — and when you have the best chance to fix them.
Daily for the first week
Check Google Search Console daily for crawl errors, coverage issues, and indexing problems. A spike in 404s means your redirect map missed something — investigate.
Watch organic traffic in GA4. A small dip of 10 to 20% for the first two weeks is normal — Google needs time to recrawl and update its index. A sustained 30%+ dip is a problem, and the place to start investigating is redirects and crawlability.
Monitor orders. Are they coming in at the expected rate? If not, walk through checkout yourself again — payment gateway issues sometimes only show up under real load.
Watch your support inbox. Customers will report issues you can’t catch from analytics — broken images on a specific product, missing translations, login issues. Triage fast.
Within the first week
Install a backup app on Shopify and set up daily automated backups. Backup & Restore by AppsByB is free and includes image backup. You just survived one platform change — protect yourself on the new one.
Take one final backup of your WordPress content and database before you eventually wind down hosting. Even if you keep the hosting running for 60 days, having a permanent local archive is worth doing while WooCommerce is still accessible.
Re-verify Google Search Console if you haven’t already, and submit a fresh sitemap.
Update Google Business Profile if your store has one — verify the website URL still resolves correctly and update any structured data.
Reconnect Google Merchant Center if you run Shopping ads — switch the feed source to Shopify.
Update social media profile links — Instagram bio, Facebook page, TikTok, LinkedIn, Twitter/X, anywhere you’ve linked to your store.
Update marketplace listings — Amazon, eBay, Etsy — if you sell there and link back to your own store.
Turn on abandoned cart emails if you haven’t yet. They’re worth real money.
Within the first month
Cancel WooCommerce plugins you no longer need. Stripe, PayPal, shipping, subscriptions, reviews — most have recurring fees. Easy money saved.
Cancel WooCommerce-specific SaaS subscriptions — anything that was integrated with WordPress and is now superseded by a Shopify equivalent.
Review Google Search Console for any new redirect needs. Old URLs that didn’t make it into your initial redirect map will show up as 404s. Add them as one-off redirects in Shopify (Online Store → Navigation → URL redirects).
Compare conversion rates and revenue month over month. A well-executed migration usually sees stable or slightly improved conversion — Shopify’s checkout is excellent. If you’re seeing the opposite, dig into what changed.
Decide on hosting cancellation. Once you’re confident nothing was missed, typically after 30 to 60 days, cancel WooCommerce hosting. Make sure your local archive backup from week one is intact.
Update offline references
If you have printed business cards, packaging inserts, vehicle signage, or other physical materials that reference your old WooCommerce-specific URLs (something like /shop rather than /collections/all), update them when stock allows. URL structures changed and old links won’t all resolve cleanly — though your 301 redirects should handle most of this.
You’re done
That’s the complete checklist. If you’ve made it through every item, your migration will be in the top 10% of WooCommerce-to-Shopify moves we see.
Two ways forward from here. If you want to handle the migration yourself, install WooCommerce Importer free on Shopify and run a test migration with your real data on the free Tiny tier. Upgrade only if you need more capacity. If you’d rather have it handled end-to-end, our managed migration service covers the whole project from pre-check to post-transfer monitoring, starting at $699.