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:

  1. URL structure
  2. canonical
  3. 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 version
  • de — the German version
  • fr — the French version
  • x-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.

Multilingual SEO: URLs, Canonical, and Hreflang — WebGoodPeople