Skip to content
Hynek Kraus
Shopify migration

Migrating from WooCommerce to Shopify, without the plugin stack.

Getting data out of WooCommerce is the easy part – Shopify even has its own migration tool for it. The real work is elsewhere: in what your plugins hold, and in URLs you cannot work out from a desk.

A written answer within 24 hours · no commitment

What is different about WooCommerce

Three things that work differently on WooCommerce.

Unlike most hosted platforms, getting the data is not the problem. Finding out what you actually have is.

URLs

The URL structure cannot be guessed, it has to be measured.

I went through fifteen live WooCommerce stores and found six different patterns for product URLs and six for categories: /product/, /products/, localised bases and fully custom ones – several of them still running on the English defaults even though the store itself was in another language. The structure cannot be worked out from a desk. So on every store I measure it first and build the redirect map afterwards, never the other way round.

Frozen settings

The URLs were baked in at installation.

WooCommerce writes its URL bases into the database the first time it is installed and treats them as settled from then on – it does not change them even if you later switch the whole site to another language. That is how it is written in its own code. A store installed in English keeps /product/ for good, even if everything on it is now in German or French. In practice, the language of a store tells you nothing about its URLs.

Plugins

Half of the store’s features do not belong to the store.

Wholesale pricing, subscriptions, loyalty points, B2B customer groups – none of it is in WooCommerce itself, all of it comes from plugins. Each one stores its logic its own way, and rarely do two agree. The numbers come out easily; the rules that drive them do not – more on why below.

Data out

What you get out of WooCommerce, and how.

Compared with hosted platforms this is the pleasant part of the migration – but it has two places where data quietly goes missing. And one more thing: "you can export it yourself" only means getting the data out, not a finished migration. Converting it into Shopify’s format and matching it up is my job.

You can export yourself from the admin

  • Products with variants, prices and stock – through the built-in CSV export
  • Categories, tags and attributes
  • Blog posts and pages – through the standard WordPress export
  • Images at full resolution
  • Custom fields, if you tick the option to export metadata

Only through the API or the command line

  • The complete product list, including hidden and sold-out products
  • Customers – the built-in export does not include them; that is a paid extension
  • Orders and their history
  • Plugin data stored outside the product

Does not transfer

  • Customer passwords – true of every platform
  • The logic of pricing rules and wholesale tiers
  • Comments under blog posts
  • The plugins themselves and their settings

The first quiet loss is variants. The built-in CSV export handles them (a parent row plus one row per variation), but WooCommerce structures them differently from Shopify, which caps a product at three options. So some get lost not in the export but in the mapping to Shopify. And watch for the trap: filter the export to the "Variable" type and leave out "Variations", and you get products with no variants at all. Which is why I check them item by item after the import.

The second: the product list is often taken from the sitemap, but a sitemap answers what the store wants indexed, not which addresses exist. Hidden and sold-out products return a perfectly normal page today – after a move to Shopify they would become error pages (404). So I read the catalogue through the API, not from the sitemap.

URL map

How WooCommerce URLs map onto Shopify.

The table shows the default English installation. On your store it may look different – which is exactly why I build it only after the audit.

How WooCommerce URLs [em]map onto Shopify[/em].
WooCommerceShopify
/product/name//products/name
/product-category/name//collections/name
/shop//collections/all
/brand/name//collections/name
/post-name//blogs/news/post-name
/about//pages/about
/shop/page/2//collections/all?page=2

Scroll for the full table

Look at the last row: WordPress does not translate its own URL bases, so a store in German or Polish still paginates with /page/2/. The same goes for blog categories, which default to /category/ in any language – while WooCommerce’s own bases, like the product category, do get translated when the store is installed in another language. One store can therefore mix a translated base with an English one, and the map has to account for both.

What plugins hold

Features that do not move, they get rebuilt.

This is the core of a WooCommerce migration budget – and the place where quotes most often part company with reality.

Wholesale and B2B pricing

Out of the box, WooCommerce knows only a regular and a sale price per product. Price tiers by customer type come from a plugin – and every plugin does it completely differently: the rules live in its settings and appear in no product or customer export. The numbers come out, the rules do not. So I rebuild the pricing structure on Shopify.

Subscriptions and recurring payments

Running subscriptions do not move as a file. On Shopify they are handled by an app, and saved payment cards can only be transferred on higher plans and only from selected gateways. On a store with active subscriptions, this is the first thing I look at in the audit – not the last.

Loyalty programme and points

Points balances live in the plugin’s database, not in the store. That is true on both sides: Shopify has no loyalty programme of its own either, and it is handled by an app. The transfer is agreed with that app’s provider and is a separate line item, not part of the data migration.

And what goes away

Updates to the core, plugins and theme, backups, certificates, PCI compliance and watching for vulnerabilities. On WooCommerce that is your job, or the job of someone you pay for it. On Shopify it is nobody’s job – and added up, that is typically the part that pays for the migration.

Every quote therefore includes a plugin inventory: what Shopify does natively, what an app covers, and what has to be built. Out of five plugins there are usually two that nobody actually uses – those simply get dropped.

Decision made? Get a migration estimate

Still weighing up whether to move? See the comparison

Fairly

When it makes sense to stay on WooCommerce.

WooCommerce is an open platform – your own code, your own server, WordPress underneath. These are the situations where I will talk you out of migrating.

And plainly: if staying works out better for you, I will say so in my reply to your enquiry – pushing you into a move that does not pay for itself does me no good in the long run.

  • You want to own the code and the data and host the store wherever you choose. On Shopify you rent the platform – that is a conscious trade.
  • You need a URL structure you define yourself. Shopify has fixed /products/ and /collections/ prefixes and you cannot change them.
  • You run a payment gateway or an integration with no equivalent on Shopify, and rebuilding it would cost more than years of running what you have.
  • Your blog and content carry a large part of your traffic and you want to stay on WordPress – as a publishing platform it is stronger than the blog on Shopify.
1:1 redirects

What happens to your old URLs

No URL disappears into nothing. Every old address gets a permanent (301) redirect to the matching new one, so external links and the SEO signals you have collected point at Shopify rather than at a 404.

Old address

/old-url

301 (permanent)

redirect

New on Shopify

/products/…

Both the visitor and Googlebot land on the right new page – not on a 404.

My work

Stores I have built and rebuilt

Real stores from my desk – some built from zero, some heavily rebuilt. Proof that Shopify holds up under demanding traffic.

Common questions

What WooCommerce stores ask.

If I can export the data easily, why would I need someone to do the migration?

The export is only the first step, not the migration. A file from the admin will not tell you which addresses actually exist, will not build a new design or product pages, will not create the redirect map, will not carry over the logic from your plugins or connect your carriers, feeds and invoicing – and it will not check whether prices, stock and variants still add up after the import. For a small catalogue with no history and no rankings, I will talk you into doing it yourself. For a store whose revenue rests on organic search, the cost of a mistake usually runs higher than the cost of the migration.

Why can’t you tell me upfront what the redirects will look like?

Because on WooCommerce the URL structure cannot be predicted. I measured fifteen stores and found six different product URL patterns – including stores in other languages running on the English defaults, and one with no prefix at all. WooCommerce also baked its URLs in at installation and never recalculates them, so not even the store’s language gives anything away. So I build the map after the audit, once I know what I am working with.

How I handle SEO in a migration
We have twenty plugins. What happens to them?

I go through them and sort them into three groups: what Shopify does natively, what an app covers, and what needs to be built again. The third group is the expensive one, so I deal with it at the very start rather than halfway through the project. Experience says that of twenty plugins, five are used by nobody, ten are replaced by native features or a single app, and only the rest is real work.

We have wholesale prices for different customer groups. Do they transfer?

The prices do, the rules do not. The numbers themselves are stored on the products and come out. But the logic – which group gets which tier, from what quantity, with what global discount – lives in the plugin’s settings, and that is in no product or customer export. On Shopify I rebuild it with the native B2B features, which have been available on every plan since April 2026. It is a separate line in the quote, not something that rides along with the data.

What happens to product reviews?

They do not transfer automatically, and that is not reluctance on my part – Shopify says so explicitly in its own documentation and points to review apps. In practice I pull the reviews out of WooCommerce and import them into the review app you choose on Shopify. Store ratings on Trustpilot or Trusted Shops are not affected by the migration; they stay where they are.

Will we save on hosting?

On hosting, yes – but that is not the main saving. On WooCommerce you pay for hosting, certificates, a backup solution and the time of whoever watches core updates, plugin updates and security patches. On Shopify you pay for the plan and all of that is inside it. Work out how many hours a month currently go on upkeep – for most stores that is a larger item than the plan itself.

Will the store be faster on Shopify?

I will not promise a number, because I would be promising something that depends on your store. What changes is structural: on Shopify the server stops being a variable, and server response time is where self-hosted WooCommerce most often struggles – it is set by the hosting you pay for and by how the cart and checkout get cached. But speed is also the theme, the images and the number of apps. So I watch it during the build and measure it on real traffic after launch.

No commitment

Tell me about your WooCommerce store.

A link to the store, the number of products and the plugins you care about is enough. Within 24 hours you get it in writing: what the migration involves, roughly what it costs and how long it takes (typically 2–8 weeks).

Would rather not fill anything in? Write straight to ahoj@hynekkraus.cz

  1. 01You fill in a short form. It takes two minutes.
  2. 02Within 24 hours I reply with a first written read on it. Free.
  3. 03What happens next is your call. I will not chase you.