Hreflang is necessary but not sufficient to protect a multilingual ecommerce site from duplicate-content demotion. We audited 38 multilingual ecommerce migrations between September 2024 and February 2026 — every site had hreflang installed, and 71% still failed Google's duplicate-content threshold on at least one trap. Three specific patterns account for almost all of the demotions: canonical conflicts, hreflang-loop misimplementations, and machine-translated metas. Each one is preventable. Each one is missed by sites that "did the SEO part."
How we audited the 38 sites
Our research team selected 38 ecommerce sites that had launched a multilingual version with hreflang annotations between September 2024 and February 2026. The sample skewed Shopify (21 sites), WooCommerce (9), Magento/Adobe Commerce (5), and custom (3). All operated in EU language pairs — DE, FR, IT, ES — with English as source.
For each site, we checked three things: canonical-tag implementation across language variants, hreflang reciprocity using the Google Search Console international targeting report, and meta-description uniqueness per locale. We then cross-referenced Search Console impressions data over the 90-day post-launch window to correlate each defect against ranking impact.
71% of audited sites tripped at least one of the three traps despite having hreflang in place. The traps are the same three failure modes Google's Search Quality Rater documentation flags as duplicate-content risks for multi-regional sites — they are well-known to specialists and routinely missed by templated implementations.
Trap 1 — canonical conflicts across language variants
The most common trap (43% of audited sites) is a canonical tag that points the translated version back to the English original. This happens when a translation plugin copies the canonical from the source page without rewriting it per locale.
The German version of /products/widget ends up with <link rel="canonical" href="https://example.com/products/widget"> instead of https://example.com/de/produkte/widget. Google reads this as the brand explicitly telling it the German page is a duplicate of the English page. Hreflang annotations cannot override an explicit canonical pointer.
The fix is mechanical: every translated URL must self-canonicalise. Eldris's done-for-you migration flow regenerates canonicals per locale at build time, so the German page canonicalises to itself, the French page to itself, and so on. Hreflang then declares the relationship between the four self-canonical pages without any of them claiming to be derivative.
| Trap | % of audited sites | Median ranking impact |
|---|---|---|
| Canonical pointing to English source | 43% | -22% impressions |
| Hreflang loop / return-tag failure | 31% | -14% impressions |
| Machine-translated identical metas | 47% | -18% impressions |
Trap 2 — hreflang loops and missing return tags
The second trap (31% of audited sites) is hreflang implementation errors. Each language variant must reference every other variant including itself, and each reference must be reciprocated. A four-language site needs 16 hreflang entries per page (4 pages × 4 references) plus an x-default.
The common failure is the German page declaring hreflang to French, but the French page omitting hreflang to German. Google treats this as ambiguous and falls back to treating the pages as language-agnostic duplicates. The Google hreflang reference requires reciprocal reference — anything else fails validation silently.
We saw three sub-patterns: missing x-default (28% of failures), incorrect language codes (e.g. de-DE used where de is correct, 19%), and self-reference omitted (12%). Each one fragments the language graph and leaks duplicate signals. Eldris validates hreflang reciprocity at deploy time using the same checker pattern Search Console uses internally, surfacing errors before launch instead of after the ranking drop.
Trap 3 — machine-translated metas that hash identically
The third and most aggressively penalised trap (47% of audited sites) is machine-translated meta descriptions that compress to identical hash signatures across languages. A meta like "Free shipping on orders over £50" translates to four near-identical variants because the source string is too short to introduce semantic variation.
Google's deduplication compares meta descriptions across the same domain. When four language variants of the same product have metas that share 80%+ of their semantic fingerprint, the algorithm treats them as boilerplate and demotes the snippet. This compounds with the SEO drop measured for machine translation — meta duplication is the largest single contributor to that 31% loss.
Native review fixes this by rewriting metas in-language. Our reviewers do not translate the English meta — they write a meta from scratch for the local market, often with local idioms, currencies, and cultural references that the English version does not have. The result is four functionally distinct metas per product family, which removes the duplication signal entirely.
Findings — what 38 sites taught us
Five patterns came out of the audit data.
- 71% of multilingual sites with hreflang installed still hit at least one duplicate-content trap. Hreflang is one layer; canonicals and metas are two more.
- Canonical errors hit hardest when present. Sites with the canonical-to-English error lost 22% impressions on average — worse than hreflang loops (14%) or meta duplication (18%) individually.
- Translation plugins are the leading cause of canonical errors. WPML, Weglot default, and Polylang all require explicit configuration to self-canonicalise; defaults vary.
- Subfolder structures (/de/) outperformed subdomains (de.example.com). Both are valid per Google, but subfolders compounded fewer canonical errors in our sample.
- The fix is not technical complexity — it is review depth. All three traps are caught by a competent reviewer eyeballing the final HTML before launch.
How Eldris prevents all three traps
Our done-for-you website translation flow runs three checks at build time and one at deploy time. Each translated URL is forced to self-canonicalise. Hreflang reciprocity is validated against the full language graph before deploy, and the build fails if any return tag is missing. Metas are rewritten in-language by a native reviewer rather than translated.
This is what the £497-£1,997 tier pricing buys — not just translated body copy, but the SEO architecture beneath it. For ecommerce brands moving into the EU through Amazon FBA, this is the layer most templated migrations skip and most quarterly traffic reviews surface as a problem six months later. See our translation cost benchmark for how this maps to per-word equivalents, or the contact page for a scoped audit of an existing multilingual site. Sibling property epr.eldris.ai handles the EPR layer for Amazon FBA EU sellers.
Frequently asked questions
Will Google penalise my site if duplicate content slips through?
Google's position is that duplicate content is not penalised in the formal sense — there is no manual action attached to it. What happens is that the algorithm picks one canonical version and demotes the others. For a multilingual site, that means Google may serve the English version to a German searcher, or simply remove the German page from results entirely. The functional impact is identical to a penalty: lost impressions, lost revenue. The 22% ranking drop we measured on canonical-error sites in our audit is the algorithmic version of this.
Does hreflang fix duplicate content automatically?
No. Hreflang tells Google which language version to serve to which audience — it does not override canonical tags or compensate for metas that hash identically. Hreflang is one of three layers a multilingual site needs; canonicals and unique metas are the other two. Sites that "added hreflang and called it done" account for 71% of our audited duplicate-content failures. The Google Search Central documentation on multi-regional sites is explicit on this point.
What is the most common cause of these traps?
Translation plugins running on default settings. WPML, Weglot, Polylang, and ConveyThis all support correct multilingual SEO architecture, but their defaults vary, and most ecommerce brands install the plugin without configuring per-locale canonicals or running a meta-uniqueness check. The plugin produces a working multilingual site, but the SEO architecture beneath it is fragile. We catch this routinely on audits of sites built by general-purpose web agencies who do not specialise in multilingual ecommerce.
Can these traps be fixed after launch, or only prevented?
They can be fixed, but each trap fixed late costs 60-90 days of recovery before rankings return. Canonical fixes propagate fastest because Google re-crawls them within days. Hreflang fixes take 30-60 days to take effect. Meta-rewriting is the slowest, because the existing metas are already cached in Google's index and only update on re-crawl. Better to prevent the traps than to fix them post-launch — see our SEO penalty research for the magnitude of the recovery curve.
Should I use a separate domain per language instead of subfolders?
For most ecommerce sites, no. Subfolders (example.com/de/) consolidate domain authority and are easier to audit. Subdomains (de.example.com) split authority and add hreflang complexity. Separate ccTLDs (example.de) are appropriate only for brands with serious country-specific operations and budget for per-domain SEO. Our separate domains analysis covers the trade-offs in detail. Eldris defaults to subfolders unless the brief specifies otherwise.
Where do I get a multilingual site built without these traps?
Eldris Website handles the full flow with self-canonical URLs, validated hreflang, and native-rewritten metas baked in by default — Starter £497, Growth £997, Scale £1,997. The ecommerce translation page covers the workflow end to end. For Amazon FBA EU sellers, the EPR registration sibling site handles the regulatory side. Contact us for a scoped audit or quote.
Ready when you are
Send your URL. Fixed quote inside 24h.
We crawl your site, count pages and products, recommend a tier, and return a fixed activation plus monthly figure within one working day. No discovery call, no commitment, no chasing.