Why store owners switch from Shopify to WooCommerce
Shopify's monthly subscription starts at $39 and climbs to $399 or more for stores that need advanced features. That's before transaction fees, app subscriptions, and theme costs. A fully equipped Shopify store running five apps typically costs $200–$400/month.
WooCommerce is free software. You pay for hosting ($10–$50/month on a decent managed WordPress host), a theme (one-time), and specific plugins — but you own everything. Most stores cut their platform costs by 50–80% after switching.
Beyond cost, WooCommerce gives you:
- Full ownership of your store data — no vendor lock-in
- Direct database access for custom reporting
- Unlimited checkout customization
- No transaction fees on payment processors
- A larger ecosystem of free and affordable plugins
The trade-off is that WooCommerce requires more active management. You handle hosting, backups, and plugin updates. For stores with technical capacity — or a developer on retainer — this is a fair trade for the extra control and savings.
Before you start: what to prepare
A migration on top of a live store with no staging environment is the most common way to break things. Do this in the right order and you avoid a visible outage.
1. Set up WordPress + WooCommerce on staging
Get a staging domain running — either a subdomain (staging.yourstore.com) or a local install via LocalWP. Install WordPress, WooCommerce, and your chosen theme. Do not point your main domain here yet.
2. Choose a WooCommerce-compatible theme
Shopify themes don't transfer. Pick a WooCommerce theme before migration so you can verify how products display after import. Storefront (free), Kadence, or Blocksy work well as starting points.
3. Configure payment processing
WooCommerce supports Stripe, PayPal, and most major gateways via free plugins. Set up your payment gateway on the staging site before migration — you want to test checkout before going live.
4. Note your Shopify URL structure
Shopify uses /products/product-handle for product URLs and /collections/collection-handle for categories. WooCommerce defaults to /product/product-name and /product-category/category-name. You'll need redirects to preserve SEO.
Do not cancel your Shopify subscription before the migration is complete. The migration tool reads from Shopify's API — no active subscription means no API access.
What migrates — and what doesn't
Not everything in your Shopify store has a direct WooCommerce equivalent. Understanding what transfers helps you plan for what needs manual work.
What migrates automatically
- Products — simple and variable products, prices, SKUs, descriptions, variants, stock levels
- Product images — sideloaded into your WP media library
- Categories — custom collections and smart collections map to WooCommerce product categories
- Orders — line items, shipping addresses, billing information, order status
- Customers — WP user accounts with WooCommerce billing and shipping meta
- Coupons — discount codes map to WooCommerce coupon rules
- URL redirects — Shopify product/collection URLs → WooCommerce equivalents
What requires manual handling
- Shopify theme/design — themes are platform-specific; rebuild in WooCommerce
- Gift cards — Shopify gift cards have no direct WooCommerce import path
- App data — reviews from Yotpo or Stamped, loyalty points, wishlists all live in third-party databases
- Metafields — custom fields require mapping to WooCommerce custom fields or ACF
- Blog posts — Shopify blog content needs a manual or scripted transfer
- Page content — about pages, policy pages need to be recreated in WordPress
Product reviews stored natively in Shopify (not via a review app) can sometimes be exported via CSV and imported using WooCommerce Product Reviews Pro or similar plugins.
Step-by-step migration process
This walkthrough uses StoreShift, which runs the migration inside your WP admin as a plugin. The same general sequence applies to other methods — the plugin just handles the API calls for you.
Install StoreShift on your staging site
Download StoreShift from WordPress.org (Lite — free) or from storeshift.io (paid plans). Install and activate the plugin from your WP admin under Plugins → Add New → Upload Plugin.
Connect your Shopify store
In your WordPress admin, go to StoreShift → Import. Click "Connect Shopify" to open the OAuth flow. Approve the connection in Shopify. The plugin stores an access token scoped to read-only data — it cannot modify your Shopify store.
Run a test migration on staging
Start with Products and Categories. Verify that product titles, descriptions, prices, variants, and images import correctly. Check that variable products have the right attribute structure and that category pages display properly in WooCommerce.
Import orders and customers (Pro/Agency plans)
Once products look correct, run the Orders and Customers importers. Verify that a sample of orders shows the right line items, totals, and customer associations. Check that customer accounts exist in WordPress with correct billing/shipping addresses.
Import coupons and set up redirects
Run the Coupons importer to bring over active discount codes. Run the Redirects importer to create 301 redirect rules from Shopify-format URLs to WooCommerce URLs. These redirect rules are served by WordPress on the new domain.
Test checkout on staging
Place a test order using your payment gateway in test mode. Verify the full checkout flow: add to cart → checkout → payment → confirmation email. Fix any issues before switching DNS.
Final migration + DNS switch
Put your Shopify store into maintenance mode or password-protect it. Run the final StoreShift migration on your live WooCommerce environment to pick up any orders placed since the staging run. Update DNS to point your domain to the new WordPress host. Remove the maintenance mode.
Cancel Shopify
Wait 24–48 hours after DNS switch to confirm everything is working on WooCommerce. Keep Shopify active until you're confident. Then cancel — Shopify exports and account data remain accessible for 60 days after cancellation.
StoreShift handles products, orders, customers, coupons, and redirects — all from your WP admin.
Handling SEO and URL redirects
The biggest SEO risk in a platform migration is broken URLs. Shopify and WooCommerce use different URL structures. Google has indexed your Shopify URLs — if those URLs return 404s on your new site, you lose the ranking equity built up on those pages.
Shopify's default product URL format is /products/product-handle. WooCommerce defaults to /product/product-name. You need 301 redirects from every Shopify URL to its WooCommerce equivalent. A 301 tells Google and browsers that the page moved permanently — search rankings transfer along with the link equity.
Option A: Use StoreShift's redirects importer
StoreShift includes a Redirects importer that reads your Shopify URL handles and creates redirect rules stored in WordPress. When a visitor hits an old /products/ URL, WordPress serves a 301 to the matching /product/ URL. No additional plugin required.
Option B: Use a redirects plugin
Redirection (free WordPress plugin) lets you manually add redirect rules or import them from a CSV. If you need to redirect more than just product URLs — blog posts, about pages, policy pages — Redirection gives you full control over every redirect rule.
After migration, submit your updated sitemap in Google Search Console. Request re-indexing on high-traffic pages. Google will crawl the redirects and update its index within days to weeks depending on crawl frequency.
After migration: what to check
Before you switch DNS or announce the new store, work through this checklist on staging:
- Products display correctly — titles, descriptions, prices, images, variants
- Variable products have working swatches or dropdown attributes
- Category pages show the right products
- Cart and checkout work end-to-end in test mode
- Order confirmation email sends with correct content
- Customer accounts exist and have correct address data
- Discount codes from Shopify work at checkout
- Old Shopify product URLs 301 redirect to WooCommerce URLs
- Site speed is acceptable — run a PageSpeed Insights check
- Mobile layout renders correctly on product and checkout pages
Common issues and fixes
Product images not importing
Image sideloading from Shopify's CDN can fail if your server has outbound HTTP restrictions or if PHP's max execution time is too short. Check your server logs — the importer retries failed images but will skip after repeated failures. You can re-run the Products importer to pick up missed images without creating duplicate products.
Variable products missing variants
Shopify stores variants as options (Color, Size) with values. WooCommerce stores them as attributes. If a product shows up as simple instead of variable, check that the product had more than one active variant in Shopify and that the attribute labels match what WooCommerce expects.
Orders showing wrong status
Shopify and WooCommerce use different order status labels. StoreShift maps Shopify's "paid" to WooCommerce's "processing", "fulfilled" to "completed", and "refunded" to "refunded". You may want to adjust the mapping for your specific workflow in the WooCommerce order list after import.
Customer passwords don't transfer
Shopify does not expose password hashes via its API. Customer accounts import with email and address data, but customers must set a new password on first login. WooCommerce's "Reset Password" email flow handles this. You can trigger a bulk password reset email from your WP admin after import.
Coupons not applying correctly
Shopify discount codes map to WooCommerce coupon rules based on the discount type — percentage, fixed cart, or free shipping. Complex Shopify discount conditions (e.g., "apply only to products in collection X") don't have a direct WooCommerce equivalent and need manual recreation.
Frequently asked questions
How long does a Shopify to WooCommerce migration take?
The import itself runs in 10 minutes to a few hours depending on data volume. A store with 500 products and 2,000 orders typically finishes in under 30 minutes on most servers. The surrounding work — staging setup, theme configuration, payment gateway testing — takes most people 1–3 days.
Will I lose my SEO rankings when I migrate?
Not if you set up 301 redirects. Shopify URLs like /products/product-name need to redirect to WooCommerce URLs like /product/product-name. Google follows 301s and transfers ranking credit to the new URL. StoreShift's redirects importer handles this automatically for product and collection URLs.
Do I need to cancel Shopify before migrating?
No. Keep Shopify active until your WooCommerce store is tested and live. The migration tool reads from Shopify's API — cancelling before you finish means losing API access and your data. Cancel only after confirming WooCommerce is running correctly.
What Shopify data can I migrate to WooCommerce?
Products, categories, orders, customers, discount codes, and URL redirects all migrate. Shopify theme files, gift cards, third-party app data (reviews, loyalty points), and metafields need manual handling.