Skip to main content
Reading Time: 10 min.

A WooCommerce to Shopify move keeps its rankings when every URL with search value gets a permanent (301) redirect to the closest Shopify page, and the page content comes across unchanged. At #10, we build on both WordPress and Shopify, so we plan the move from the WordPress side as much as the Shopify side. Most lost rankings after a move trace back to a URL nobody listed, not to Shopify.

The URLs are where the work concentrates when you migrate from WooCommerce to Shopify. WooCommerce lets you shape your URLs almost any way you like. Shopify does not. So every product and category page changes address, and so does every blog post, on the day you launch, and search engines only follow if you tell them where things went.

This guide covers the WooCommerce-specific parts: the URL structure, the plugins, the redirect map and the first weeks after launch. For the full inventory of what can go missing in any move (customer passwords and subscriptions among them), see Shopify migration: what gets lost, and how to prevent it. If you are coming from Magento instead, read Magento to Shopify migration: the complete process.

Why your WooCommerce URLs can’t stay the same on Shopify

WooCommerce runs inside WordPress, and WordPress permalinks are configurable. A default WooCommerce store puts products under /product/ and categories under /product-category/, but many stores changed those bases years ago. Some use /shop/ for products. Some nest the category in the product URL. Blog posts follow whatever permalink setting the site picked, from /post-name/ to /2021/04/post-name/.

Shopify uses fixed prefixes that you can’t rename:

  • Products live at /products/handle.
  • Collections (Shopify’s categories) live at /collections/handle.
  • Pages live at /pages/handle.
  • Blog posts live at /blogs/blog-name/handle.

You do control the handle, which is the last part of the address. That is the most useful lever you have. If your WooCommerce product slug is extra-virgin-500ml, keep the Shopify handle as extra-virgin-500ml. The redirect then only has to change the prefix, and the new URL still reads the same to people and to search engines.

Here is how the common WooCommerce patterns map:

WooCommerce URL Shopify URL What to watch
/product/extra-virgin-500ml/ /products/extra-virgin-500ml Keep the slug as the handle.
/product-category/oils/ /collections/oils Nested categories flatten, so /oils/infused/ needs its own unique handle.
/product-tag/gifts/ /collections/gifts, or nothing Redirect only tag pages that earn traffic or links.
/shop/ /collections/all Or a curated collection if that serves visitors better.
/about/ /pages/about Every WordPress page needs a decision.
/2021/04/post-name/ /blogs/news/post-name The blog name in the path is yours to choose before launch.
/?p=123, ?add-to-cart= No redirect Query-string and cart URLs carry no ranking value.

Two details trip people up. Shopify URLs have no trailing slash, while most WordPress URLs do, so test both forms after you import redirects. And WooCommerce variable products often have one URL with several variations under it. On Shopify, those variations become variants of one product, which keeps the URL count the same. Shopify now allows up to 2,048 variants per product, though a product still has at most three options (such as size or color). A WooCommerce product with four or more attributes needs a plan before the import, not after.

Decide what happens to WordPress first

This is the question that is unique to WooCommerce. Your online store and your content live on the same WordPress site. Moving the store to Shopify forces a choice about the content.

There are two reasonable answers:

  1. Move everything to Shopify. The products move, and so do pages and blog posts. You run one platform, one login and one set of templates. Shopify’s blog is simpler than WordPress. It suits stores whose content is a few articles and recipes, not a publishing operation.
  2. Move the store, keep WordPress for content. This suits brands with a large, active blog, custom content types or an editorial team that lives in WordPress. Content usually moves to a subdomain or stays on the main domain while the shop moves, and both choices change URLs that need redirects of their own.

We build on both platforms, so we don’t have a stake in the answer. What matters is that it is decided before the redirect map is drawn, because it decides where half the URLs go. When we moved a premium California olive oil and wine brand onto Shopify Plus, its WordPress blog came into Shopify with the rest of the site. That was the right call for that brand’s content. A brand publishing weekly with several editors may land the other way.

Our WordPress work and our Shopify work sit in the same team, so the content and the store get planned together.

Move the store data in the right order

The data is the predictable part of a WooCommerce to Shopify migration. Products, customer data and order history all come across, along with the rest of your store data that has a place to land. What changes is the shape, and the order you move it in.

Shopify’s own migration guide recommends importing products first, then customers, then historical orders, so each order can link to the right products and the right customer. We follow the same order:

  • Products from WooCommerce come across with titles, descriptions, prices, SKUs, images, inventory and their category assignments, which become collections. Variable products become one Shopify product with variants.
  • Customer data moves with names, addresses, tags and marketing consent. Passwords don’t, on any platform.
  • Order history moves last, once there are products and customers to attach it to.
  • Pages and blog posts move if WordPress isn’t staying, with their old URLs recorded for the redirect map.

Shopify has its own Store Migration app, and paid bulk tools in the Shopify App Store, such as Matrixify, move products from WooCommerce to Shopify at larger volumes. A migration app is good at moving records. It doesn’t know which custom fields your WooCommerce store depends on, or where your old URLs should land. We use migration tools for the transfer and do the mapping and checking by hand.

We run the import twice. First a test batch of data from WooCommerce goes into the new store while it isn’t public yet, and your team reviews it. Then the full migration runs close to launch, with a final pass for orders placed since. Before launch we compare counts against the old WooCommerce store. Then we spot-check a product with many variations and a customer with a long order history.

Build the redirect map from data, not memory

A redirect map is a spreadsheet with two columns: the old path and the new path. The hard part is the first column. It needs every URL that has search value, and no single source lists them all.

We pull from several places and merge them:

  • The XML sitemaps your SEO plugin generates. They list every published product and page, but nothing that has been unpublished.
  • Google Search Console, the pages report and the performance report. These show URLs that earn impressions, including old ones no longer in the sitemap.
  • Backlink data. Pages other sites link to keep their value only if the link still lands somewhere.
  • Analytics landing pages over the last year or more, to catch seasonal pages that are quiet today.
  • Existing redirects. Many WooCommerce stores already run a redirect plugin or rules in the server config. Those old redirects need to be flattened, so an old URL goes straight to its Shopify home rather than through two or three hops.

Then each old URL gets a destination. Products and categories mostly map one to one. Discontinued products go to the closest live product or their collection, not to the homepage. A redirect to the homepage tells search engines the page is gone, and it tells the visitor nothing.

Shopify imports redirects from a CSV file in the admin, under URL redirects. A standard store can hold up to 100,000 redirects and Shopify Plus far more, according to Shopify’s help center. One rule matters a lot: a Shopify redirect only fires when the old path doesn’t load a live page. If something exists at that address on Shopify, the redirect is ignored. That rarely bites on a WooCommerce move, because the prefixes differ, but it does catch pages like /pages/contact that someone created twice.

<figure class=“ar-fig”><svg viewBox=“0 0 640 300” role=“img” aria-labelledby=“wcs-flow-t wcs-flow-d”><title id=“wcs-flow-t”>How a WooCommerce redirect map gets built and checked</title><desc id=“wcs-flow-d”>Four steps from left to right: list every old URL, map each to a Shopify path, import the 301 redirects, then crawl the old list and confirm one hop to a live page. A loop returns failures to the mapping step.</desc><rect x=“10” y=“70” width=“140” height=“96” rx=“10” fill=“none” stroke=“var(–ar-c1)” stroke-width=“2”/><text x=“80” y=“104” text-anchor=“middle” style=“font-size:15px;font-weight:600”>1. List</text><text x=“80” y=“128” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>every old URL</text><text x=“80” y=“148” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>with value</text><rect x=“170” y=“70” width=“140” height=“96” rx=“10” fill=“none” stroke=“var(–ar-c1)” stroke-width=“2”/><text x=“240” y=“104” text-anchor=“middle” style=“font-size:15px;font-weight:600”>2. Map</text><text x=“240” y=“128” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>to the closest</text><text x=“240” y=“148” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>Shopify page</text><rect x=“330” y=“70” width=“140” height=“96” rx=“10” fill=“none” stroke=“var(–ar-c2)” stroke-width=“2”/><text x=“400” y=“104” text-anchor=“middle” style=“font-size:15px;font-weight:600”>3. Import</text><text x=“400” y=“128” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>301 redirects</text><text x=“400” y=“148” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>from a CSV</text><rect x=“490” y=“70” width=“140” height=“96” rx=“10” fill=“none” stroke=“var(–ar-c2)” stroke-width=“2”/><text x=“560” y=“104” text-anchor=“middle” style=“font-size:15px;font-weight:600”>4. Crawl</text><text x=“560” y=“128” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>one hop, lands</text><text x=“560” y=“148” text-anchor=“middle” style=“font-size:13px;fill:var(–muted)”>on a live page</text><path d=“M150 118 H166 M310 118 H326 M470 118 H486” stroke=“var(–ink)” stroke-width=“2”/><path d=“M160 112 L166 118 L160 124 M320 112 L326 118 L320 124 M480 112 L486 118 L480 124” fill=“none” stroke=“var(–ink)” stroke-width=“2”/><path d=“M560 166 V230 H240 V172” fill=“none” stroke=“var(–ar-c3)” stroke-width=“2” stroke-dasharray=“6 5”/><path d=“M234 180 L240 172 L246 180” fill=“none” stroke=“var(–ar-c3)” stroke-width=“2”/><text x=“400” y=“256” text-anchor=“middle” style=“font-size:14px;fill:var(–ink)”>Failures go back to step 2</text></svg><figcaption>The map is finished when every URL on the old list answers with a single 301 to a page that loads, not when the CSV imports without errors.</figcaption></figure>

Replace the plugins with something that does the same job

A WooCommerce store is WooCommerce plus a stack of plugins. Each one does a job that has to land somewhere on the new Shopify store: a native feature, a Shopify app, a bit of the Shopify theme, or nowhere because Shopify handles it already. List them all before you pick apps.

WooCommerce plugin type Where the job goes on Shopify What to carry across
SEO plugin (Yoast, Rank Math) Shopify’s SEO fields plus the theme’s structured data Every custom title and meta description
Redirect plugin Shopify URL redirects All live rules, flattened
Product add-ons, extra fields Variants, metafields or an options app The data, not just the display
Subscriptions A Shopify subscription app Active subscribers and their billing dates
Reviews A reviews app with an import Reviews matched to the right product
Caching, security, backups Gone; Shopify hosts and secures the store Nothing

The SEO plugin is the one most often lost. Yoast and Rank Math store your custom titles and meta descriptions in the WordPress database, not in the product fields a standard export grabs. If the import skips them, Shopify falls back to the product name and the first lines of the description. Rankings built on a carefully written title can slip for that reason alone.

Subscriptions deserve their own plan. The customer’s saved card is held by the payment processor, not by WooCommerce, so moving subscribers means moving payment details between processors, timed with the new subscription app. We cover that in detail in what gets lost in a Shopify migration.

Carry the on-page signals across unchanged

Redirects tell search engines where a page went. The page itself still has to look like the page that ranked. Change the URL and the content and the template at the same time, and it gets hard to tell which change cost you.

On a WooCommerce to Shopify move, we carry these across as they are:

  • Titles and meta descriptions, from the SEO plugin, field by field.
  • Product and category copy, including the long category descriptions that often do the ranking work on WooCommerce.
  • Headings. The product name should still be the page’s main heading.
  • Image alt text, which WordPress stores in the media library.
  • Structured data. Product and breadcrumb markup comes from the Shopify theme now, so check it renders with prices and availability.
  • Internal links in blog posts and descriptions. Links hard-coded to /product/... still work through redirects, but updating them avoids an extra hop on every click.

If the copy needs rewriting, do it after launch, once rankings have settled. One change at a time is easier to read in Search Console.

Launch, then watch Search Console for weeks

The cutover itself is short. The new Shopify store is built and tested while the old WooCommerce store keeps selling, so there’s no downtime. On launch day the domain points to Shopify, the redirects are already live, and checkout gets one last real test.

Then the checking starts. In the first days we:

  • Crawl the full old URL list and confirm each one answers with a single 301 to a page that loads.
  • Submit the Shopify sitemap in Search Console.
  • Watch the 404 report. Every new 404 is either a URL we missed or a link from somewhere we didn’t know about.
  • Compare traffic to key product and collection pages against the same weeks before launch.

Some movement is normal after any platform change, even a clean one, while search engines recrawl and reprocess the site. What we look for is movement that doesn’t recover, or a drop concentrated on one group of pages. That pattern usually points back to a mapping error, a missing title or a template that dropped content. Our technical SEO audit is the same check, run on purpose.

Questions WooCommerce store owners ask

Will I lose my SEO moving from WooCommerce to Shopify?

Not if the redirect map is complete and the on-page content comes across intact. Expect some movement in the first weeks while search engines recrawl. Losses that last almost always trace to missed URLs, dropped titles or thinner pages, and all of those are preventable. No one can promise rankings, but a map with no missing pages is something we can promise.

Can I keep my WordPress site and move only the store?

Yes. Shopify can run the store while WordPress keeps the content, usually on a subdomain. It works well for content-heavy brands. It also changes the blog’s URLs if it moves off the main domain, so those posts need redirects too. If your blog is small, moving it into Shopify is simpler to run.

How long does a WooCommerce to Shopify migration take?

Our replatforming projects typically run 8 to 14 weeks. A large catalog pushes it longer. So do plugins doing custom work, subscriptions or wholesale pricing. The replatforming check gives a ballpark for a store your size, and our replatforming service covers how the project runs.

Do my customers need to create new accounts?

Customer records move: names, addresses, order history and marketing consent. Passwords don’t move between any two platforms, because they are stored one way. Shopify’s newer customer accounts sign in with a one-time code sent by email rather than a password, which removes most of that friction.

Should we hire a WooCommerce to Shopify migration service or use a migration app?

A migration app moves records. It doesn’t decide where 2,000 old URLs should go, which plugin data matters, or what happens to the blog. If your WooCommerce site is small, with a standard catalog and few plugins, an app plus a careful redirect import may be enough to migrate to Shopify. If it has years of content, custom fields or subscriptions, the migration plan is the expensive part, and that’s the part we do.

Is Shopify better than WooCommerce for SEO?

Neither platform ranks a store by itself. WooCommerce gives you more control over URLs. Shopify gives you less to maintain and a fast, hosted checkout. The ranking outcome of a move depends on how the move is done. That is why this guide is mostly about redirects.

Start with the URL list

The migration process starts before you choose apps or a theme: pull the list of URLs that matter on your WooCommerce store today. It is the one document that decides whether rankings survive the move. Run your store through the replatforming check to see what we’d move and what needs care, or talk to #10 about the move. We’ll start with the map.

Close Menu