The plugin stack that got you to $5M is the plugin stack that's going to break you at $15M. WooCommerce migrations don't start because WordPress is the wrong CMS. They start because the plugin tower has gotten too tall to reason about. Here's the full playbook for moving across without losing rankings, customer data, or the subscriptions you've spent years building.
Why brands actually leave WooCommerce
The conversation usually starts somewhere between $3M and $10M in revenue. The store is making money. The team is shipping. Then something breaks at scale.
The most common trigger is a checkout outage during a campaign. WooCommerce checkout depends on plugins, themes, and WordPress core all behaving correctly under load. When traffic spikes, a misbehaving plugin or a slow query takes the checkout down. The cost of that outage is the conversation that gets the migration started.
The second trigger is the plugin stack itself. Most growing WooCommerce stores accumulate 30 to 60 plugins. Subscriptions, memberships, B2B pricing, custom checkout fields, advanced shipping, multi-currency, reviews, abandoned cart, email automation, popup builders, and a half-dozen security and performance plugins to make the rest of it work. Each one is a dependency. Each one updates on its own schedule. Each one is a potential conflict.
The third trigger is hosting and ops. Managed WordPress hosts work well up to a point. Above that point, the brand is paying for dedicated infrastructure, dev hours for performance optimisation, and the operational overhead of running a self-hosted application. None of that exists on Shopify Plus.
Brands rarely leave WooCommerce because they don't like WordPress. They leave because the operational tax has gotten too high.
The plugin stack problem
Every WooCommerce migration starts with a plugin audit. The audit answers four questions per plugin.
What does it do? Some plugins are obvious (Subscriptions, ACF, WPML). Most stores have 5 to 10 plugins where nobody can remember what they're for or why they were installed.
What replaces it on Shopify Plus? Some replacements are native. Discount rules, gift cards, and customer accounts are built in. Some replacements are apps. Klaviyo replaces most marketing automation. Recharge or Skio replaces WooCommerce Subscriptions. Some replacements are custom development. Bespoke pricing logic, custom checkout fields, and unique fulfilment rules usually become Shopify Functions or Flow workflows.
The audit usually surfaces $20K to $80K of annual plugin licences. Some of that gets replaced with Shopify app subscriptions. Most of it disappears.
What changes at the data layer
WooCommerce's data structure is the second-hardest part of the migration. WordPress uses custom post types for products, orders, and customers, with most fields stored as postmeta key-value pairs. Plugins write into the same postmeta tables, often with overlapping keys. ACF fields, custom field plugins, and product attributes all share the same storage.
Migration to Shopify means translating that into a flat data model with structured fields and metafields. The translation is a catalog mapping document built before any data moves.
Specific things that need attention:
Variable products. WooCommerce variable products map to Shopify variants. The mapping is straightforward when products have 1 or 2 attributes (size, colour). It gets messy when products have 3+ attributes because Shopify's variant model has constraints that WooCommerce doesn't.
Product attributes. WooCommerce attributes can be global or per-product. Global attributes become Shopify variant options or product tags depending on use. Per-product attributes become metafields.
Custom fields (ACF). Almost every WooCommerce store uses Advanced Custom Fields. ACF fields become Shopify metafields. The mapping is one-to-one if the field types align, but ACF's richer field types (relationship, repeater, flexible content) need careful translation.
Orders. WooCommerce orders include line items, taxes, shipping, fees, refunds, and notes. All of it migrates. Order metadata from plugins (subscription parent IDs, custom fee codes) needs to migrate into order metafields or get retired.
Customers. Email, name, addresses, marketing consent, customer tags, order history. All migrates. Passwords don't (see customer account migration).
The SEO conversation
WooCommerce stores have inconsistent URL structures. Some use /product/handle/. Some use /shop/product-handle/. Some have category prefixes. Some have date-based archives for blog content. Custom permalink structures are common because WordPress lets you change them.
Shopify's URL structure is fixed: /products/handle, /collections/handle, /blogs/blog-name/article-handle, /pages/handle. Every WooCommerce URL needs a destination on Shopify, and the 301 redirect map is how it gets there.
For a typical mid-market WooCommerce store the redirect map covers:
The total is usually 5,000 to 30,000 URLs. We crawl the live site, pull Google Search Console data, and pull existing redirect rules into a single source-of-truth spreadsheet before mapping destinations. Every row gets validated against the new sitemap before launch.
WooCommerce stores running on Yoast or Rank Math also have schema markup, social sharing metadata, and meta titles/descriptions per URL. All of it migrates, and the SEO preservation work is what keeps rankings stable through the transition.
Subscriptions: the hardest part
If you run WooCommerce Subscriptions, the migration includes the hardest data move in ecommerce: live recurring billing. WooCommerce Subscriptions stores subscription state, billing schedules, customer payment tokens, and renewal history. None of it transfers cleanly because:
The receiving system on Shopify Plus is usually Recharge, Skio, Bold, or Shopify Subscriptions. The migration approach depends on which:
Recharge has a documented migration tool that handles subscription state and payment token re-vaulting through Shopify Payments. Most subscriptions migrate without customer action, but a percentage (usually 5 to 15%) require a payment update because the source token can't be re-vaulted.
Skio takes a similar approach with its own migration tooling. Same expected percentage of payment updates.
Shopify Subscriptions (native) requires customers to opt back in. Higher-friction migration. Best for stores with smaller subscriber bases or where the brand wants to refresh the subscription program at the same time.
Bold has migration partners and tooling that varies by Bold product version.
The subscriptions migration is its own workstream. Plan it as a 4 to 8 week project parallel to the main migration, not as a sub-task of catalogue migration.
B2B and wholesale
WooCommerce stores often run B2B through plugins like B2BKing, Wholesale Suite, or custom pricing logic in code. Shopify Plus has native B2B functionality through company profiles, locations, payment terms, and approved buyers.
The B2B migration replaces the WooCommerce B2B plugin entirely. Wholesale customers get rebuilt as Shopify B2B companies with locations and contacts. Pricing rules become catalogues attached to companies. Net terms and approval workflows use native Plus features.
For brands where B2B is more than 10% of revenue, this part of the migration deserves its own scoping conversation. The data migration is straightforward but the workflow redesign isn't.
Timeline reality
Most WooCommerce migrations to Shopify Plus run 8 to 14 weeks. Faster than Magento (12 to 20 weeks) or Salesforce Commerce Cloud (14 to 22 weeks) because the data model is simpler and the integration count is usually lower.
The breakdown:
What stretches the timeline: subscriptions volume, B2B complexity, plugin count above 50, custom checkout fields, multi-currency, multi-language (WPML), and any custom code that nobody documented.
What we won't do on a WooCommerce migration
A few principles that keep the project clean.
We don't migrate plugins you no longer use. If a plugin's data is dead, it stays dead. Migration is the moment to retire what's accumulated.
We don't replicate workarounds. If your WooCommerce store had a 5-plugin chain to do something Shopify does natively, we use the native feature. The cost of replicating workarounds is technical debt on day one.
We don't ship without 1:1 reconciliation. Product count matches. Customer count matches. Order count matches. If anything doesn't reconcile, we don't launch.
We don't push headless when classic Plus is the right call. Most WooCommerce migrations land on classic Shopify Plus. Headless makes sense for content-heavy brands, complex international setups, or stores planning to expose product data to AI agents and other surfaces. For most $5M to $30M brands, classic is faster, cheaper, and gets out of the way.
We don't sign off on a redirect map we haven't tested. Every URL gets crawled. Every redirect gets verified.
Where to start
If you're considering a WooCommerce to Shopify Plus migration, the first step is an audit. We document your plugin stack, data model, integration list, and redirect surface area, then return a build spec, a risk register, and a fixed-price Phase 1 quote.
The dedicated WooCommerce to Shopify Plus migration page has more detail on our process, what's included, and how the timeline maps to your specific setup.
For broader context on Shopify Plus migrations across all source platforms, see the complete migration guide. For the operational decisions that come post-migration, why your Shopify Plus store needs an operations strategy covers the layer that determines whether the new platform actually pays back.
Frequently asked questions
How long does a WooCommerce to Shopify Plus migration take?
Most WooCommerce migrations run 8 to 14 weeks, faster than enterprise platform migrations because the data model is simpler. The variance is driven by plugin replacement decisions, subscription complexity, and the number of custom fields stored in WooCommerce metadata or ACF. Brands with clean WooCommerce setups can land at 8 weeks. Brands with 20+ plugins and heavy ACF customisation push to 14 weeks.
When does WooCommerce hit its ceiling?
Most brands hit a WooCommerce ceiling between $5M and $15M annual revenue. Symptoms include: site slowdowns under traffic spikes, plugin compatibility breaks after WordPress core updates, hosting bills that climb faster than revenue, and security vulnerabilities that consume engineering time. The plugin stack is usually the underlying issue, not WordPress itself.
What happens to my WooCommerce plugins during migration?
WooCommerce plugins don't transfer. Each active plugin gets categorised in the audit: replaced with native Shopify capability, replaced with a Shopify app, or rebuilt as custom logic. The most common replacements: WooCommerce Subscriptions to Recharge or Skio, Yoast SEO to Shopify's native SEO plus FAQ schema apps, ACF fields to Shopify metafields, WooCommerce B2B plugins to Shopify B2B native.
Will my WooCommerce subscriptions transfer cleanly?
Subscription data transfers but payment authorisations don't. Recharge and Skio both have re-vaulting tools that handle 80 to 95% of subscriptions automatically by working with the payment processor. The remaining 5 to 20% need a customer-initiated payment update, communicated through a launch-window email campaign.
How much does a WooCommerce to Shopify Plus migration cost?
Build costs typically range from $80K to $180K for a clean scope on a $5M to $20M revenue brand. WooCommerce migrations are usually cheaper than enterprise platform migrations because the data model is simpler and integration count is typically lower. Total year-one investment including post-launch retainer and apps usually lands at $200K to $400K.
Can I keep WordPress for content and use Shopify for commerce?
Yes, this is a common pattern. Shopify Plus handles the storefront, checkout, and product catalogue while WordPress remains the content management system for editorial content. Two integration patterns work: keep both as separate sites with shared navigation, or use Shopify's Storefront API to pull product data into WordPress pages. The Storefront API approach gives you a unified experience but requires custom development.
How do I handle WooCommerce ACF fields during migration?
Advanced Custom Fields data lives in WordPress postmeta tables and translates to Shopify metafields. The migration scripts map ACF field types to Shopify metafield types: text fields to single-line text, repeaters to lists, image fields to file references. Some ACF field types (relationships, flexible content) need custom translation logic. Plan a separate metafield audit during the discovery phase.
What's the biggest risk with a WooCommerce migration?
Plugin documentation gaps. Most brands accumulate plugins over years, and the original developer or agency that installed them has long since moved on. The audit phase often surfaces 5 to 10 plugins where nobody on the team knows what they actually do or whether they're still active. Each one is a potential workflow that needs translating, and undocumented ones cause the most timeline slippage.
A Shopify Plus Agency for Strategic Design & Advanced Engineering
Building something ambitious?
- WooCommerce migrations are faster than enterprise platform migrations. Most run 8 to 14 weeks.
- The plugin stack is the migration. Every plugin is a feature decision: replace with native Shopify, replace with a Shopify app, rebuild as a custom workflow, or retire.
- WooCommerce's flexible data model (custom post types, postmeta, ACF fields) makes data migration messy. Custom scripting is required, not optional.
- WooCommerce Subscriptions doesn't migrate. Recharge, Bold, Skio, or Shopify Subscriptions is the receiving system, and customer payment tokens have to be re-collected.
- The 301 redirect map is more important on a WooCommerce migration than most others because permalink structures are inconsistent across stores. Custom slug formats are common.






