How to migrate from WooCommerce: a practical step-by-step guide

To migrate from WooCommerce, export your catalog with WooCommerce's built-in product CSV exporter, your pages, posts and comments with the WordPress export tool, and your customers, orders, coupons and reviews through the WooCommerce REST API. Then copy your media, map every old URL to its new address with permanent redirects, test the new store in a private preview, and switch your domain only when the checks pass. The sections below walk through each step with the tools WooCommerce and WordPress document themselves.

This guide is platform-neutral: the exports work the same whichever hosted platform you are moving to. For the search side of the move in more depth, see our e-commerce replatforming SEO checklist.

Before you export: take stock

Start with an inventory, not an export. List what the store actually contains and what each part depends on:

  • Catalog: product types in use (simple, variable, grouped, external, downloadable), attributes, categories, tags and any custom fields added by plugins.
  • People and history: customer accounts, guest orders, subscriptions or memberships if you sell them.
  • Marketing: active coupons, gift cards, reviews, newsletter lists.
  • Content: pages, blog posts, menus, forms and media.
  • Plugins: every active plugin, what data it stores and whether the destination platform has an equivalent feature.
  • URLs: the addresses that earn traffic and links today (more on this below).

Take a full backup of the WordPress database and files before you begin, and freeze non-essential changes (new plugins, theme edits, catalog restructures) until the move is done.

What to export, and how

Products and variations: the product CSV exporter

WooCommerce includes a CSV exporter under Products > All Products > Export. According to WooCommerce's documentation, it can export all product types, including variations, and lets you choose which columns, product types and categories to include. Images are exported as URLs, with the first image being the featured image. If plugins store product data as custom meta, select the option to export all custom meta so those fields come along too.

Two things to check in the file: each variant row should keep its parent reference, SKU, price and stock, and WooCommerce notes that attribute values may be left out of variation names in the exported CSV. Map attributes from their own columns, not from the variation name.

Pages, posts, comments: WordPress export

WordPress's Tools > Export screen creates an XML file (WordPress eXtended RSS, or WXR) containing posts, pages, custom post types, comments, custom fields, categories, tags, custom taxonomies and users. You can export all content or filter by type, category, author, date range and status. Blog posts and landing pages usually come from this file.

Customers, orders, coupons and reviews: the REST API

For structured store data, the WooCommerce REST API is the most complete source. It exposes products, variations, attributes, categories, tags and product reviews, plus orders, order notes and refunds, customers, and coupons. You create read-only keys under WooCommerce > Settings > Advanced > REST API; the setup guide notes that permalinks must be set to anything other than Plain, and that the consumer secret is shown only once. Results are paginated (10 items per page by default, adjustable with per_page), so an export script should loop through every page using the total-pages header.

Why the API rather than the WordPress XML file for orders? Since WooCommerce 8.2 (October 2023), High-Performance Order Storage is enabled by default for new installations and keeps orders in dedicated WooCommerce tables rather than the WordPress posts tables. The API reads orders the same way whichever storage the store uses.

If you only need a quick look, WooCommerce Analytics reports can also be downloaded as CSV; larger reports are processed in the background and emailed to the admin who requested them. For a migration, the API gives you fuller records.

Media

The CSV and XML exports reference images by URL; they do not bundle the files. Copy the uploads folder from your host, or have the import fetch each image from its URL while the old site is still online. Keep a list of PDFs and other downloads, because those addresses may have links too.

What usually does not transfer

  • Customer passwords. WordPress stores only a hash of each password; since WordPress 6.8 the default is bcrypt (older sites used phpass). A new platform generally cannot verify those hashes, so plan a password-reset email or a first-login reset flow, and tell customers in advance.
  • Plugin data. Wishlists, loyalty points, subscriptions, bookings, custom checkout fields and page-builder layouts live in each plugin's own format. Export what the plugin allows, and rebuild the rest with the new platform's features.
  • Payment tokens. Saved cards belong to your payment provider. Whether they can move depends on that provider and the destination, so ask both early.
  • Theme and shortcodes. Design is rebuilt, not exported. Search your content for shortcodes so they do not appear as raw text after the move.

Map URLs and redirects

WooCommerce URLs typically follow patterns such as /product/blue-lamp/ and /product-category/lighting/, while your new platform will have its own. Build a spreadsheet with one row per old URL (products, categories, pages, posts, tags, media) and its exact new equivalent. Pull the old list from your sitemaps, Search Console and analytics, not just from the export.

Google's site-move guidance recommends server-side permanent redirects (301 or 308) and keeping them for as long as possible, generally at least one year. It also says a small to medium-sized site can take a few weeks for most pages to move in results, and larger sites take longer. Redirect each old page to its closest match, not to the home page, and carry titles, meta descriptions and structured data over unchanged.

Test, then cut over

Run the new store in a private preview and check it against the old one:

  1. Counts match: products, variations, categories, customers, orders and coupons.
  2. Spot-check 20 or more products end to end: price, stock, variants, images, description, SEO title.
  3. Place test orders with each payment and shipping method, including a coupon and a refund.
  4. Confirm transactional emails go only to test inboxes before launch.
  5. Crawl the redirect list and confirm each old URL returns one permanent redirect to a live page.
  6. Check tax, shipping zones and legal pages.

On cut-over day, pause order-taking briefly or run a final delta export of orders and customers created since the main export. Lower your DNS TTL a few days before, switch the domain, submit the new sitemap, and watch 404s, orders and payment logs closely for the first days.

A sample timeline

Every store differs, but a store with a few thousand products and a handful of plugins might plan along these lines:

  • Weeks 1-2: inventory, platform setup, export scripts, first test import.
  • Weeks 3-4: design rebuild, content and media transfer, redirect map.
  • Week 5: full preview testing and fixes; customer communication drafted.
  • Week 6: final delta import, cut-over, post-launch monitoring.

Large catalogs, many languages or heavy plugin use stretch this; a small catalog with few plugins can go faster.

Moving to CIQRA

If CIQRA is on your shortlist, its migration team runs the move in five steps: inventory, transfer, design, preview and go live. Products, categories, content and media move over in every language. Your new store is built behind a password while the current one keeps selling until launch, and the preview environment never sends notifications to real inboxes. Product and category URLs are kept or 301-redirected, and titles and descriptions carry over unchanged. For a side-by-side view, see CIQRA vs WooCommerce, and our guide to choosing an e-commerce platform.

FAQ

Can I export WooCommerce orders to CSV?

Analytics reports can be downloaded as CSV, but for a complete migration the REST API's orders endpoint returns full order records, including line items, addresses and notes.

Will my customers keep their passwords?

Usually not. WordPress stores password hashes that other platforms generally cannot verify, so customers set a new password on first login.

How long should I keep redirects?

Google recommends keeping them as long as possible, generally at least one year.

Sources

Share LinkedIn X Facebook Email

Related articles