Why Brands Migrate from WooCommerce to Shopify
After 200+ migrations, three triggers come up over and over:
Hosting fragility
WooCommerce stores crash on Black Friday because hosting isn't auto-scaling. Even "managed WooCommerce" hosts (Kinsta, WP Engine, Cloudways) have ceilings. Shopify handles 80,000+ checkouts per minute without intervention, and that's the public number, the real ceiling is higher.
Plugin hell
The average WooCommerce store we audit runs 22 plugins, each one a security and update liability. One plugin update can break checkout silently. Shopify's app ecosystem is sandboxed, apps cannot break the core platform, and they're held to security and performance standards Shopify enforces.
Conversion rate ceiling
WooCommerce checkout converts at 1.4–2.1% average vs. Shopify's 2.8–3.6% with Checkout Extensibility (Baymard Institute, 2025). The math: a $500K/mo store converting at 1.7% that moves to 3.0% effectively doubles revenue from the same traffic, without spending a dollar more on ads.
| Factor | WooCommerce | Shopify Plus |
|---|---|---|
| Avg. site speed (LCP) | 3.8s | 1.9s |
| PCI compliance | Your responsibility | Handled |
| Black Friday uptime | 94.2% | 99.99% |
| Avg. checkout CR | 1.4–2.1% | 2.8–3.6% |
| Monthly cost (mid-market) | $400–$1,200 (hosting + plugins + dev) | $399–$2,300 (Plus) |
| Dev cost per change | $80–$150/hr | $80–$150/hr but ~60% faster |
The Real Cost of WooCommerce to Shopify Migration (4 Tiers)
Tier 1, DIY (under 500 SKUs, under $50K/mo): $300–$3,000
- Cart2Cart or LitExtension app: $300–$1,200
- Premium theme: $200–$400
- Your own time: 60–120 hours
Tier 2, Mid-market migration ($50K–$500K/mo): $8,000–$25,000
- Agency-managed migration with custom theme adjustments
- Custom 301 redirect mapping
- App parity audit + replacement
- Klaviyo flow rebuild
Tier 3, Shopify Plus replatform ($500K–$5M/mo): $30,000–$80,000
- Custom theme development
- Checkout Extensibility customization
- Subscription migration (Stripe → Recharge or Skio)
- Custom Shopify Functions for B2B/wholesale logic
Tier 4, Enterprise / headless ($5M+/mo): $80,000–$250,000+
- Hydrogen storefront or custom Next.js
- ERP/PIM/3PL integrations
- Multi-currency, multi-language
Pre-Migration Checklist (47 Items)
Inventory & Catalog (8 items)
- Export full product CSV with variants, images, descriptions
- Document all custom product attributes (size charts, ingredients, etc.)
- List all product categories + tag structures
- Audit for duplicate SKUs (WooCommerce allows them; Shopify doesn't)
- Catalog any custom product types (subscriptions, bundles, configurables)
- Export GTIN/UPC codes for Google Shopping continuity
- Document inventory levels and locations
- Note any products with virtual/downloadable types
Customer Data (6 items)
- Export customer list with order history
- Document loyalty program point balances
- Export wishlist data if applicable
- Note subscription customers separately (Stripe token migration)
- Export saved addresses
- Document any GDPR consent records
Order History (5 items)
- Export last 24 months minimum
- Preserve order numbers (use Shopify Order Number prefix)
- Map order statuses (WooCommerce has more statuses than Shopify)
- Document refund history
- Note any disputed/chargeback orders
SEO & Content (10 items)
- Crawl entire site with Screaming Frog
- Export all URLs, meta titles, meta descriptions
- Document 301 redirect map (old URL → new URL)
- Export all blog posts with publish dates preserved
- Note all backlinks from Ahrefs (target high-DR pages first)
- Export robots.txt + sitemap.xml
- Document hreflang tags if multi-language
- Save schema markup for migration to Shopify
- Preserve canonical URL patterns
- Export image alt text
Apps & Integrations (10 items)
- List every active WooCommerce plugin
- Map each to Shopify app equivalent (see app map below)
- Document Klaviyo / email service lists + flows
- Export reviews (Yotpo, Judge.me, etc.)
- Note custom code in functions.php
- Document Google Analytics / GA4 setup
- Document Meta Pixel + Conversions API setup
- List all 3PL / ERP integrations
- Document tax setup (Avalara, TaxJar, etc.)
- Note any custom REST API consumers
Payments & Compliance (8 items)
- Document all payment gateways
- Note Stripe customer + subscription IDs (must transfer)
- Export PayPal Billing Agreements
- Document Klarna/Afterpay/Affirm setups
- Note any manual payment methods (PO, wire, etc.)
- Document tax exemption certificates for B2B
- Export gift card balances
- Note store credits / refund balances
Step-by-Step Migration Process (8 Phases)
Phase 1: Discovery & Audit (Week 1–2)
Stakeholder interviews. Full WooCommerce site audit. Define migration scope, what's transferring, what's getting redesigned, what's getting cut.
Phase 2: Shopify Setup (Week 2)
Create Shopify Plus org / dev store. Install required apps (final list). Configure shipping zones, tax regions, payment providers. Set up staff permissions.
Phase 3: Data Migration (Week 2–4)
Run Cart2Cart, LitExtension, or custom Matrixify migration. Map products + variants + images. Migrate customers (with consent flag preservation). Migrate historical orders. Migrate blog posts + pages.
Phase 4: Theme & Design (Week 3–6, parallel)
Build custom theme on Shopify 2.0 (Dawn, Impact, or fully custom). Match brand visual identity. Build all required template types (PDP, PLP, cart, account). Implement Checkout Extensibility customizations.
Phase 5: SEO Preservation (Week 5–6)
Build full 301 redirect map. Implement redirects via Shopify URL Redirects (bulk import). Verify canonical tags. Submit new sitemap to Search Console. Recreate hreflang structure.
Phase 6: App + Integration Setup (Week 5–7)
Configure Klaviyo (or rebuild flows). Set up reviews app + import existing reviews. Configure Meta Pixel + Conversions API. Reconnect 3PL / ERP / PIM. Set up subscription app + migrate Stripe tokens.
Phase 7: QA & Testing (Week 7–8)
Run 47-point post-migration QA. Test checkout end-to-end with real cards in test mode. Test all major customer flows (login, account, returns, subscription edits). Load test if expecting high traffic at launch. Mobile QA on real devices (not just simulator).
Phase 8: Launch & Monitor (Week 8+)
DNS cutover (Tuesday morning, never Friday). Monitor Search Console for crawl errors hourly for 48h. Monitor checkout conversion rate vs. baseline. Monitor support tickets. Run post-launch CRO audit at day 14.
Data Migration: What Transfers and What Doesn't
| Data Type | Transfer Status |
|---|---|
| Products + variants | Transfers cleanly |
| Product images | Transfers cleanly |
| Customers + addresses | Transfers cleanly |
| Order history | Needs manual work (status mapping) |
| Blog posts | Transfers cleanly |
| Pages | Transfers cleanly |
| Reviews | Needs manual work (Yotpo/Judge.me re-import) |
| Subscriptions | Needs manual work (Stripe token migration) |
| Loyalty points | Needs manual work (Smile.io/LoyaltyLion re-import) |
| Gift card balances | Needs manual work |
| URL structures | Needs manual work (301 redirect map) |
| Custom plugins | Doesn't transfer (rebuild as apps) |
| Custom database tables | Doesn't transfer (rebuild via metafields) |
| Cart abandonment data | Doesn't transfer |
| WooCommerce-specific cookies | Doesn't transfer |
SEO Preservation Strategy (The Most Critical Part)
The #1 reason migrations fail: organic traffic dies because nobody mapped the redirects properly.
The 301 Redirect Hierarchy (do all 4)
- Product URLs: /product/blue-shirt/ → /products/blue-shirt
- Category URLs: /product-category/shirts/ → /collections/shirts
- Blog URLs: /2024/03/post-name/ → /blogs/news/post-name
- Custom pages: /about-us/ → /pages/about-us
Preserve this metadata on every URL
- Title tag (exact match unless rewriting for CTR)
- Meta description
- H1
- Image alt text
- Schema markup (Product, Article, BreadcrumbList, Organization)
The 6 SEO migration commandments
- Never change URL slugs unnecessarily
- Always use 301 (permanent) redirects, never 302
- Submit new sitemap within 24 hours of cutover
- Don't block crawlers during migration (common mistake)
- Recreate all internal links to point to new URLs (not redirected URLs)
- Monitor Search Console daily for 30 days post-launch
Theme & Design Migration
Path A, Premium Shopify theme ($200–$400)
Dawn (free), Impact ($400), Symmetry ($350), Broadcast ($350). Best for stores under $200K/mo with standard product types.
Path B, Customize a premium theme ($5K–$15K agency cost)
Start with Impact or Symmetry, customize sections. Best for stores $200K–$1M/mo.
Path C, Fully custom theme ($25K–$80K+ agency cost)
Bespoke design system, custom Liquid components, custom Shopify 2.0 sections + blocks. Best for Shopify Plus, $1M+/mo brands. We've documented our approach on our Shopify Plus design and development service page.
Apps & Plugin Replacement Map
| WooCommerce Plugin | Shopify Replacement | Cost |
|---|---|---|
| WooCommerce Subscriptions | Recharge or Skio | $99–$499/mo |
| WPML (multi-language) | Shopify Markets + Translate & Adapt | Free–$30/mo |
| Yoast SEO | SearchPie or Smart SEO | $30–$50/mo |
| Mailchimp for WooCommerce | Klaviyo | $0–$1,500+/mo |
| Yotpo Reviews (WP) | Yotpo Reviews (Shopify) | $15–$799/mo |
| WooCommerce Bookings | Tipo or BookThatApp | $14.99–$49/mo |
| WooCommerce Memberships | Bold Memberships or Appstle | $9.99–$49/mo |
| Advanced Custom Fields | Shopify Metafields (native) | Free |
| WooCommerce Wholesale | Wholesale Hub or B2B on Shopify Plus | Free–$199/mo |
| AffiliateWP | Refersion or UpPromote | $89–$299/mo |
| WP Rocket (caching) | Built into Shopify | Free |
| Wordfence (security) | Built into Shopify | Free |
Payment Gateway Migration
The single most painful part of WooCommerce → Shopify migration.
Stripe customers + subscriptions
Stripe does allow you to transfer customer tokens to a new account/integration. Shopify Payments uses Stripe under the hood, so subscriptions can continue uninterrupted if you use Recharge or Skio with token migration. Timeline: 5–10 business days for Stripe to approve token portability.
PayPal Billing Agreements
Cannot transfer between platforms. You will need to email subscribers asking them to re-authorize. Expect 60–80% retention on this re-authorization.
Klarna / Afterpay / Affirm
Re-onboard with new Shopify integration. Existing installment plans continue from the old system (don't transfer to Shopify).
Post-Migration QA Checklist (Critical Tests)
Group your QA into 6 sections: Checkout (12 tests), Account (8), Search & Navigation (6), PDP (8), Mobile (7), Tracking (6).
The non-negotiable tests
- Apple Pay button renders on mobile Safari
- Shop Pay loads under 1.5s
- Tax calculates correctly for top 5 states
- International shipping rates correct
- Meta Pixel fires on all 8 standard events
- GA4 enhanced ecommerce events fire (view_item, add_to_cart, begin_checkout, purchase)
- 301 redirect spot check of top 50 URLs
- Email receipt branding matches
- Subscription edit portal works (if applicable)
- Discount codes apply correctly at checkout
The 23 Migration Mistakes That Kill Revenue
- Skipping the 301 redirect map → 30–60% organic traffic loss within 90 days
- Letting URL slugs change without redirects → same as above
- Not migrating reviews → PDP conversion drops 8–22%
- Forgetting subscription token migration → 100% subscription churn
- Botching Klaviyo flow rebuild → 15–35% email revenue loss for 2–3 months
- Not preserving GTIN/UPC → Google Merchant Center suspension
- Not re-implementing Meta Pixel + CAPI properly → Facebook ads CPA spikes 40–80%
- Changing product handles unnecessarily → loses backlink equity
- Skipping the post-launch QA day → checkout bugs go live undetected
- Not load-testing before launch → first-day spike crashes new theme
- Forgetting hreflang for international stores → losing top international rankings
- Not preserving customer password hashes → forces every customer to reset, 18–34% never come back
- Migrating without a staging URL strategy → leaks dev URLs to Google
- Not blocking the dev store from indexing → duplicate content penalty
- Forgetting to migrate gift card balances → angry customer support disaster
- Migrating during your peak season → never do this
- Going live on a Friday → never do this
- Skipping the email warm-up after migration → deliverability tanks
- Not setting Shopify Order Number prefix → order numbers reset to 1001, accounting nightmare
- Forgetting to migrate B2B price lists → wholesale customers see retail prices
- Not configuring Shopify Markets correctly → wrong currency at checkout for international customers
- Leaving WooCommerce hosting active too long → bots scrape old URLs, dilute SEO
- Skipping the 30-day post-launch CRO audit → leaving 12–28% conversion uplift on the table
Timeline: How Long Migration Actually Takes
| Store Size | Realistic | Aggressive | Risky |
|---|---|---|---|
| <500 SKUs, <$50K/mo | 3–4 weeks | 2 weeks | <1 week |
| 500–5,000 SKUs, $50K–$500K/mo | 6–8 weeks | 4 weeks | <3 weeks |
| 5,000–50,000 SKUs, $500K–$5M/mo (Plus) | 10–14 weeks | 8 weeks | <6 weeks |
| Enterprise / headless | 16–28 weeks | 12 weeks | <10 weeks |
The timeline killers we see most
- Custom WooCommerce code in functions.php that nobody documented
- Subscription migration approval delays from Stripe
- Client-side review delays on theme design
- Late-stage scope creep (B2B, wholesale, multi-currency added in week 6)