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.