Short answer: keep WooCommerce exactly where it is, build the new storefront next to it, and treat the URL list as a contract. Every address that has traffic or links either stays the same or gets a permanent redirect to its new home, written down before launch. Launch by switching the domain to the storefront, then watch Search Console daily for the first weeks. Rankings dip when pages, titles or links go missing, not because the site became headless.
This is the migration plan we follow, in order. It assumes an existing WooCommerce shop that already ranks and sells, moving to a Next.js storefront over the same WooCommerce.
Why shops lose rankings in a replatform
Search engines rank pages, not platforms. When a relaunch loses traffic, the cause is almost always one of these:
| What went missing | How it shows up |
|---|---|
| URLs changed without redirects | Old pages return 404; links from other sites stop counting |
| Content left behind | Category descriptions, FAQs or blog posts not rebuilt on the new site |
| Titles and descriptions reset | The storefront renders its own defaults instead of the SEO plugin’s fields |
| Structured data dropped | Product, breadcrumb and review markup missing, so rich results disappear |
| Pages rendered only in the browser | Crawlers see an empty shell or wait for JavaScript |
| Internal links thinned out | New navigation or filters no longer link to deep categories |
| The CMS address gets indexed | The WordPress domain shows up in search next to the real one |
Headless does not cause any of these. A rushed migration does, on any platform.
Step 1: inventory every URL that matters
Pull URLs from four places and merge them: your sitemap, Search Console pages with impressions over the last 16 months, analytics landing pages, and the pages other sites link to. Add product, category, tag, blog, author and filter URLs. Filtered and paginated URLs are where surprises live, so list the ones that actually get traffic.
Step 2: decide keep or redirect, one row per URL
Keeping the address is always the safest choice. Product and category URLs can usually stay identical because the storefront can mirror WooCommerce’s permalinks. Where a URL has to change, it gets one permanent (301) redirect straight to its final destination, not a chain.
We keep every redirect in one file in the storefront’s code, reviewed like any other change. When we moved our own site from a Romanian WordPress theme to an English Next.js front end, the old Romanian addresses and the old /en/ prefix were all mapped in that single file before launch. The rest of that rebuild is in our own case study.
Step 3: carry content and metadata across, not just design
The storefront should read titles, meta descriptions, canonical URLs and schema from the SEO plugin in WordPress, so editors keep one place to change them and nothing resets at launch. Check the pages that rank best by hand: same heading, same body copy, same FAQs, same images with alt text. If the design changes, the content that earned the ranking should not.
Step 4: build and test on a staging address
- Staging is blocked from indexing, with a noindex header rather than only robots.txt.
- Every page is rendered on the server, so a crawler gets full HTML without running JavaScript.
- Crawl staging with a desktop crawler and compare it with a crawl of the live site: status codes, titles, canonicals, word counts, internal links.
- Test every redirect in the list against staging and fix any that land on a 404 or chain.
- Render every customer email with a real order and check that no link points at the WordPress address.
Step 5: launch by switching the domain
Because the storefront was built next to the live shop and reads the same WooCommerce, launch is a DNS or proxy change, not a data migration weekend. Orders placed during the switch land in the same WooCommerce either way. Straight after the switch: remove the noindex from the storefront, keep it on the WordPress address, submit the new sitemap, and purge the CDN.
Step 6: the first eight weeks
| When | What to check |
|---|---|
| Launch day | Sitemap submitted, robots.txt correct, a sample of redirects returns 301 to the right page |
| Daily, first two weeks | Search Console coverage and 404 report; fix new 404s with redirects the same day |
| Weekly | Impressions and positions for your top 50 pages against the pre-launch baseline |
| Weekly | Core Web Vitals for the main templates in the field data |
| Week eight | Compare traffic and revenue from organic search with the same weeks last year |
A small wobble in the first two weeks is normal while search engines recrawl. A drop that lasts is a signal that something from the first table went missing, and the reports above tell you which.
What to decide before you start
Migration is one of the twelve decisions we settle before estimating a headless WooCommerce build, together with checkout, accounts, search and emails. The bigger picture is in our guide to headless WooCommerce.
Frequently asked questions
Not if every URL is kept or redirected, content and metadata are carried across, and pages are rendered on the server. Traffic drops after a migration come from missing pages, titles or redirects, not from the headless architecture.
Usually yes. The storefront can reproduce WooCommerce permalinks for products and categories, which is the safest option. Only URLs that must change get a permanent redirect.
No. In a headless build WooCommerce stays the database, so products, customers and order history stay where they are. Only the front end is replaced.
A short fluctuation over the first one to two weeks is normal while search engines recrawl. Anything lasting longer points to a specific problem, such as a missing redirect or reset titles, that the Search Console reports will show.
WordPress stays online as the back end, but its address should send a noindex header and never appear in the storefront’s pages, images or emails.



