Skip to content
Insights · Commerce and growth

How to migrate a WooCommerce store to headless without losing URLs

To migrate a WooCommerce store to headless without losing SEO, inventory every URL before touching anything, keep the same paths wherever possible, 301-redirect the rest, and measure page weight before and after. KINTO kept about 98% of one store's URLs on the same path.

By KINTO Published 2 min read

To migrate a WooCommerce store to headless without losing SEO, inventory every URL before touching anything, keep the same paths wherever possible, 301-redirect the rest, and measure page weight before and after. The migration is a data project first and a design project second.

Step 1: inventory before you change a single thing

In a food manufacturer’s project, KINTO inventoried every URL of its standard online store before migrating, and reviewed analytics and Search Console through their APIs. The new headless store, synced with the catalog, kept the original URL structure: about 98% of URLs stayed on the same path (measured), nearly all without a redirect. The cutover was still pending when the case closed.

Step 2: reconcile the catalog against a source you trust

  • In a specialty retailer’s case, the source catalog was analyzed and reconciled against the client’s Excel inventory: thousands of products matched, hundreds did not. Over a thousand products were migrated programmatically (from a public catalog of several thousand), with image repair and brand and type enrichment, and with dry run by default.
  • In a networking distributor’s case, the inventory was cross-checked by code and barcode against the store, and a reference catalog was crawled and matched with human review of ambiguous cases. The unified catalog has over a thousand products, with brand collections and 301 redirects from the old URLs.

Step 3: decide what is excluded from the channel, and enforce it everywhere

For the specialty retailer, KINTO built a reproducible exclusion policy driven by the client’s Excel, with tests and continuous integration: an excluded product appears in no page, search, sitemap or AI file.

Step 4: measure the weight

Headless stores are lighter when built well. The networking distributor’s store listing dropped about 80% (from about 0.5 MB to under 0.1 MB). The specialty retailer’s listing went from several MB to about 0.1 MB using static pagination, and the response time on filter URLs went from about 3 s to about 0.5 s (measured).

Step 5: stabilize first if the old site is failing

The specialty retailer’s WooCommerce store was going down under a swarm of bots crawling the combinatorial explosion of filter URLs. KINTO stabilized the old site in days (an early response to filter URLs without touching the database, filtering of bot traffic at the CDN, disk cleanup) and only then migrated.

If prices are not public

For quote-based B2B sales, a cart makes little sense. KINTO’s headless stores use an automatic catalog mode: when the price is zero, price and cart are hidden and a WhatsApp button appears with the product prefilled and tracked in analytics.

What we do not know yet

None of these cases has evidence of later sales, traffic or conversion.

Read more in Headless e-commerce and Migrations and rescue.

Case studies

Related case studies

Frequently asked questions
Will I lose rankings if I migrate to a headless store?

Not if URLs are preserved. In one KINTO store migration about 98% of the old URLs stayed on the same path; in another, 301 redirects covered the old URLs. Whether rankings and sales then hold is a separate measurement; none of these migration cases has later-sales evidence yet.

What is catalog mode in a headless store?

It is an automatic behavior: when a product's price is zero, the site hides the price and the cart and shows a WhatsApp button with the product pre-filled. It suits B2B businesses that quote instead of publishing prices, so every product page leads into a conversation.

Have a problem like this?

Tell KINTO what is going on. The first conversation is to understand it, not to sell.