Multilingual WooCommerce on a Next.js storefront
Serve multiple languages with correct hreflang, translated URLs and metadata, and a clean locale routing model — using your existing WPML or Polylang content.

Multilingual done badly is one of the fastest ways to create duplicate content and confuse search engines. Done well, it grows a store into new markets without cannibalising its own rankings. On a Next.js storefront the job is to route locales cleanly, generate correct hreflang, translate URLs and metadata as well as visible copy, and read the translations your team already maintains in WPML or Polylang — so multilingual is an architecture decision, not a plugin you hope behaves.
A clean locale routing model
The first decision is how languages live in the URL. A per-locale path prefix — the same structure this storefront uses — gives every language a distinct, crawlable address and keeps routing predictable. What matters is consistency: each piece of content has one canonical URL per language, the default language is handled deliberately, and switching language keeps the shopper on the equivalent page rather than dumping them on the homepage. A Next.js storefront makes this routing explicit instead of leaving it to a translation plugin's rewrite rules.
hreflang that search engines trust
hreflang is how you tell search engines that two URLs are the same content in different languages, so the right version is shown and the pages do not compete as duplicates. The annotations have to be complete and reciprocal — every language version references all the others and itself — and they must point to the canonical URL of each translation. Getting this wrong is a common cause of the wrong-language page ranking; getting it right is mostly a matter of generating the tags from a single source of truth on every page.
- Reciprocal hreflang linking every language version, including itself
- Point hreflang at the canonical URL of each translation
- Use a clear default/x-default where appropriate
- Generate the annotations from one source so they never drift
Translate URLs, metadata and schema, not just copy
Real localisation goes deeper than the visible text. Slugs, titles, meta descriptions, Open Graph data, breadcrumb labels and structured data should all be in the target language, because a translated page with an English URL and English metadata reads as half-localised to both shoppers and search. The storefront pulls translated fields from WooCommerce and WordPress and renders a fully localised page, so nothing gives away that the content was translated after the fact.
Using your existing WPML or Polylang content
Most multilingual WooCommerce stores already manage translations in WPML or Polylang, and that work should not be thrown away. The storefront reads those translated products, categories and content through the API and presents them, so your team keeps translating in the familiar WordPress workflow while the Next.js frontend renders each language fast. The translation source of truth stays in WordPress; the storefront just displays it correctly per locale.
Validating a multilingual setup before launch
Multilingual bugs are easy to ship and hard to notice, because you rarely browse your own store in every language, so validation has to be deliberate. Before launch, crawl each locale separately to confirm every translated page resolves at its own URL and returns the translated content, not a fallback to the default language. Check the hreflang annotations with a dedicated tool so they are complete and reciprocal and point to canonical URLs. Verify that language switching lands on the equivalent page, that currencies and formats render correctly per market, and that the sitemap includes every locale. Search Console's international targeting reports then confirm, after launch, that Google is treating the versions as intended rather than as duplicates.
- Crawl each locale to confirm pages resolve and are translated
- Validate hreflang with a dedicated tool for completeness and reciprocity
- Check language switching, currency and format per market
- Confirm international targeting in Search Console after launch
Currency, formatting and right-to-left
Language is only part of localisation. Prices should display in the expected currency and format for the market, dates and numbers should follow local conventions, and right-to-left languages need layout that genuinely mirrors rather than a language toggle bolted onto a left-to-right design. Handling these on the storefront — while WooCommerce remains the source of prices and product data — is what makes a multilingual store feel native in each market instead of translated.
Frequently asked questions
Will going headless break my WPML or Polylang setup?
No. Your translations stay in WordPress and your team keeps the same workflow. The Next.js storefront reads the translated products, categories and content through the API and renders each language.
How is duplicate content across languages avoided?
With complete, reciprocal hreflang annotations that point to each translation's canonical URL, so search engines treat the versions as the same content in different languages rather than duplicates.
Do the URLs get translated too?
Yes. Proper localisation translates slugs, titles, metadata, breadcrumbs and structured data — not just the visible text — so each language version is fully localised.
Does WooCommerce still own prices and products?
Yes. WooCommerce and WordPress remain the source of truth for products, prices and translations; the storefront displays the correct localised version per locale.
WooCommerce SEO migration
Move your WooCommerce frontend with URL parity, metadata checks, schema, redirects and Search Console monitoring before launch.
Next.js storefront
How a Next.js storefront replaces the WooCommerce theme layer: App Router rendering, server components, an API data layer and selective hydration for a fast frontend.
Category page SEO
Keep WooCommerce category pages crawlable and ranking: control filter indexation, fix pagination and canonicals, and add real content without theme bloat.
See how many sales your store is losing
Start with a free speed audit. You'll get your store's real numbers and an honest recommendation — even if it's "you don't need us".