Phase 1 — Before you start
Most migration problems trace back to preparation. A staging site that isn't set up correctly, a server that can't handle image sideloading, or a WordPress install missing required plugins — these cause hours of cleanup. Finishing this phase before touching any import settings saves time.
- Leave Shopify active — do not cancel until WooCommerce is live and orders are coming inAPI access is revoked on cancellation
- Get your Shopify access token — create a private app or custom app in your Shopify admin with read permissions on products, orders, customers, price rules, and redirectsStoreShift needs this token to pull your data
- Note your product count — check Shopify admin → Products for a ballpark number so you can verify completeness after import
- Note your order count — Shopify admin → Orders (all time)
- Export a sample CSV from Shopify — one page of products as a reference to spot-check after migration
- Document your Shopify URL structure — product URLs follow
/products/{handle}; note any custom collection handles you care about for SEO
- Set up a staging site — use Local by Flywheel, a cPanel staging subdomain, or a separate serverNever run a first migration directly on your live site
- Install WordPress on staging with the latest stable version
- Install WooCommerce and complete the setup wizard
- Install StoreShift — download from WordPress.org or your purchase email, activate, enter license key
- Configure PHP limits — set
max_execution_time = 300andmemory_limit = 256Min php.ini or wp-config.phpInsufficient PHP limits cause image sideloading failures mid-import - Verify outbound HTTP requests — confirm your server can reach
cdn.shopify.com(needed for product image sideloading) - Install your WooCommerce theme — import needs a live theme to attach product images to
- Install WooCommerce payment gateway plugins — Stripe, PayPal, or whichever you're using (don't configure live credentials yet)
- List your top Shopify URLs by traffic — open Google Search Console, filter by page, export the top 50These are the redirects that matter most for rankings
- Decide your WooCommerce permalink structure — go to Settings → Permalinks → choose a consistent slug pattern before import, not afterChanging permalinks after import breaks all internal links
- Configure WooCommerce product slug — decide whether products live at
/product/(WooCommerce default) or a custom base - Add storeshift.io/sitemap.xml to Google Search Console — you'll resubmit after migration, but verify GSC access now
Ready to start the migration?StoreShift pulls products, orders, customers, coupons, and redirects directly from Shopify's API. One WordPress plugin, no per-migration fees.
View pricingPhase 2 — Running the migration
Run importers in this order: Products first (categories must exist before orders can reference them), then Categories, then Coupons, then Redirects, then Orders, then Customers. Running Orders before Products will fail — the importer needs matching product SKUs to link order line items.
- Open StoreShift in WP admin → Import tab
- Click Connect Shopify — authorize the OAuth popupStoreShift uses OAuth — no manual token entry required
- Verify connection shows your shop domain in the connection card
- 1. Run Products importer — imports simple + variable products with all variants, images sideloaded to media libraryFree tier: first 50 products only. Starter+: all products.
- 2. Run Categories importer — maps Shopify custom + smart collections to WooCommerce product categories (Starter+)
- 3. Run Coupons importer — maps Shopify price rules to WooCommerce coupon codes (Starter+)
- 4. Run Redirects importer — creates
/products/{handle}→/product/{handle}redirect rules in WordPress (Starter+) - 5. Run Orders importer — imports orders with line items, customer data, shipping addresses, and status mapping (Pro+)
- 6. Run Customers importer — creates WP user accounts with WooCommerce billing/shipping meta (Pro+)Passwords don't transfer — customers will set new passwords on first login
- Keep the browser tab open — importers run via AJAX in your browser; closing the tab stops the processLarge stores with 5,000+ products can take 30–60 minutes
- Monitor the progress bar — each importer shows a running count; a stalled bar at 0% usually means a PHP timeout or server connection issue
- Note any skipped items — StoreShift logs skipped records; review after completion
Phase 3 — After import, before go-live
Don't skip verification. The time to find a missing product image or a broken variable product is on staging, not on your live store. Work through this checklist before you touch DNS.
- Compare product count — WooCommerce Products page total should match Shopify's count
- Spot-check 10 products against your Shopify export CSV — title, description, price, SKU
- Check variable products — open 3 variable products; confirm attributes (Color, Size) exist and each variant has correct price and stock
- Check product images — verify featured images and gallery images loaded correctly for a sample of products
- Verify product categories — check that products appear in the right categories and that category pages exist
- Compare order count — WooCommerce orders should match Shopify order count
- Open 5 orders — verify line items, shipping address, and status (paid → processing, fulfilled → completed)
- Check customer accounts — confirm customers exist in WP Users with billing and shipping meta
- Verify coupon codes — apply a migrated coupon code in the WooCommerce cart to confirm the discount applies correctly
- Test 5 Shopify product URLs — visit
yoursite.com/products/{handle}and confirm you get a 301 redirect to/product/{handle} - Test collection URLs — visit
/collections/{handle}and confirm redirect to/product-category/{handle} - Check redirects via browser developer tools — Network tab → look for status 301 before the final 200
- Test your top-traffic URLs from the GSC list you pulled in Phase 1
- Configure payment gateway in test mode — Stripe test keys, PayPal sandbox, or equivalent
- Complete a test order end-to-end — add to cart, checkout, confirm order confirmation email arrives
- Test free shipping and coupon discounts at checkout
- Verify tax settings — WooCommerce needs tax rates configured; Shopify tax settings don't transfer
- Check shipping zones — configure shipping methods and rates in WooCommerce settings
Phase 4 — Go-live sequence
Once staging passes verification, move the migration to production and switch DNS. Do this during a low-traffic window — Sunday night or early morning. The DNS propagation itself can take up to 48 hours, though most resolvers update within a few hours.
- Set up production WordPress on your live host — install WooCommerce and StoreShift
- Re-run all importers on production — staging was the test run; production is the real migrationIf your Shopify store hasn't changed much, this runs faster the second time
- Re-run verification checklist (Phase 3) on production
- Set payment gateway to live mode — swap test keys for production Stripe/PayPal credentials
- Configure live email settings — WooCommerce order emails need a working SMTP setup (WP Mail SMTP plugin recommended)
- Point DNS to your new WooCommerce host — update A record or CNAME at your domain registrar
- Verify SSL certificate is active on your WooCommerce host before switching
- Confirm site loads over HTTPS after DNS propagates
- Place a real test order immediately after go-live to confirm end-to-end works on production
- Monitor WooCommerce orders for the first 24 hours — watch for failed payment notifications or cart errors
- Submit updated sitemap in Google Search Console — GSC → Sitemaps → add your WooCommerce sitemap URL (usually
/sitemap_index.xmlwith Yoast or Rank Math) - Request indexing on your top 20 pages in GSC — URL Inspection → Request Indexing
- Monitor GSC for crawl errors over the next 7 days — 404s mean a redirect wasn't set up
- Check Google Search Console for "Page with redirect" reports — confirms redirects are being followed
- Cancel Shopify — only after WooCommerce is confirmed live and taking orders
What doesn't migrate automatically
StoreShift handles the core store data. A few things need manual attention regardless of which migration tool you use:
- Theme and design — your WooCommerce store needs a new theme; Shopify themes don't convert to WooCommerce
- Product reviews — stored in third-party Shopify apps (Judge.me, Yotpo); export from those apps and import via WooCommerce import tools
- Gift card balances — Shopify doesn't expose gift card data via its API
- Loyalty points — stored in Shopify loyalty apps; check if those apps have a WooCommerce equivalent
- Metafields — custom metafield data on products needs manual mapping to WooCommerce custom fields
- Complex Shopify discount conditions — "apply only to products in collection X" has no direct WooCommerce coupon equivalent
- Customer passwords — Shopify's API doesn't return password hashes; customers set new passwords on first login
- Payment gateway configuration — payment settings don't transfer; configure Stripe/PayPal fresh on WooCommerce
- Tax rules and shipping zones — WooCommerce tax rates and shipping zones need manual configuration
- Blog content — Shopify blog posts don't migrate via the Shopify Products API; export manually and import via WordPress
For a store with 500 products, 2,000 orders, and 1,000 customers: plan 30–45 minutes for the import run, 2–3 hours for verification, and 1–2 hours for payment and shipping configuration. Total: a solid day of focused work, not a week-long project.
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. Setup work — staging environment, theme selection, payment gateway configuration — takes most people 1 to 3 days. Budget a full week for a mid-size store if you're doing it for the first time.
Do I need to export data from Shopify before migrating?
No. StoreShift pulls data directly from Shopify's API using your OAuth access token. Your Shopify store stays live during the migration and StoreShift reads from it in real time. No manual CSV export is needed.
What should I check before going live on WooCommerce?
Before switching DNS: products display with correct images and prices, variable products have working attributes, checkout completes in test mode, 301 redirects send old Shopify URLs to matching WooCommerce URLs, payment gateway is configured with live credentials, and Google Search Console has the updated sitemap.
Should I cancel Shopify before migrating?
No. Keep Shopify active until WooCommerce is live and taking orders. StoreShift reads from Shopify's API — cancelling early revokes API access and you lose access to your data. Cancel Shopify only after confirming your WooCommerce store is running correctly.
What Shopify data doesn't migrate automatically?
Product reviews, gift card balances, loyalty points, Shopify metafields, theme design, and payment/shipping settings all need manual handling. StoreShift migrates products, categories, orders, customers, coupons, and URL redirects.