Multilingual SEO: URLs, Canonical, and Hreflang
Author: WebGoodPeople
Why multilingual sites often break SEO
When a site goes international, you usually add new language versions of your pages: English, German, French, and so on.
To you it looks like a content translation. To a search engine it looks like several almost-identical pages.
If the site structure is wrong, Google can:
- treat the pages as duplicates
- ignore some of the language versions
- show users the wrong language
- split SEO weight across several pages
The result is lost rankings and lost traffic.
To avoid this, you need three elements set up correctly:
- URL structure
- canonical
- hreflang
1. The right URL structure for language versions
The most important step is a logical, stable structure for your page addresses.
Our recommended option is language prefixes in the URL.
Example
example.com/en/product/shoes example.com/de/product/schuhe example.com/fr/product/chaussures
- scales easily
- is clear to users
- is read well by search engines
- makes hreflang simpler to set up
Alternative options
Two other patterns show up sometimes.
Subdomains:
en.example.com de.example.com
Separate domains:
example.com example.de example.fr
But on most projects, subfolders are the most convenient and SEO-friendly solution.
2. Canonical: protection against duplicates
The canonical tag tells a search engine which version of a page is the primary one.
One thing to be clear about: canonical is not used to pick a language.
Its job is to protect against duplicates inside a single language version.
The correct example
English page:
<link rel="canonical" href="https://example.com/en/product/shoes" />
German page:
<link rel="canonical" href="https://example.com/de/product/schuhe" />
Each language version points its canonical at itself.
The mistake people often make
Sometimes every page points its canonical at a single version.
For example:
/de/product → canonical to /en/product
In that case Google can ignore the German page entirely.
3. Hreflang: declaring language and region
The hreflang tag helps search engines understand:
- what language the page is in
- which region it is meant for
This lets Google show users the right language version.
Setup example
For a product page:
<link rel="alternate" hreflang="en" href="https://example.com/en/product/shoes" /> <link rel="alternate" hreflang="de" href="https://example.com/de/product/schuhe" /> <link rel="alternate" hreflang="fr" href="https://example.com/fr/product/chaussures" /> <link rel="alternate" hreflang="x-default" href="https://example.com/en/product/shoes" />
What this means:
en— the English versionde— the German versionfr— the French versionx-default— the default version
4. A key hreflang rule: reciprocity
All pages must reference each other.
If the English page declares hreflang to the German one, the German page must point back. Otherwise Google can ignore the markup.
5. How this looks in a real eCommerce project
Take a product page as an example.
URL
/en/product/nike-air-max /de/product/nike-air-max /fr/product/nike-air-max
Canonical
Each page points at itself.
Hreflang
All language versions are linked together.
The result:
- a user from Germany sees the German page
- a user from France sees the French page
- Google does not treat the pages as duplicates
6. Common mistakes in multilingual SEO
Here are the problems we see regularly on eCommerce sites.
No hreflang
Google tries to guess the language on its own, and often guesses wrong.
Wrong canonical
Every page points at one language version.
Identical URLs
For example, example.com/product, where the language is decided only by a switcher on the site. For SEO that is a bad option.
Automatic redirect by IP
If a user or a bot cannot reach the other versions of the site, Google cannot index them.
7. Why this matters most for online stores
eCommerce projects often have:
- thousands of products
- dozens of categories
- several languages
Without the right setup it is easy to end up with tens of thousands of duplicate pages.
That leads to:
- wasted crawl budget
- indexing problems
- lower rankings
- a drop in organic traffic
For a multilingual site to work correctly for SEO, follow three rules:
1. Use a clear URL structure with language prefixes.
2. Set the canonical inside each language version.
3. Link the pages together through hreflang.
This setup helps search engines read the site structure correctly and serve users the right language. The result is more international traffic with no risk of duplicates.