Canonical for Multilingual Sites
Proper use of canonical on multilingual sites: each language version should point to itself, not to another language.
On multilingual sites, each language version of a page should have a self‑referencing canonical (pointing to itself). This preserves indexing of all language variants, while the relationship between them is handled by hreflang. Pointing the canonical to another language version is a mistake that can lead to de‑indexing.
Self-referencing Canonical for Language Versions
When using hreflang to indicate language and regional alternatives, it is crucial that each page version has a canonical pointing to itself. This means that on https://example.com/en/page you must have <link rel="canonical" href="https://example.com/en/page" />, and on the Russian version the same principle. This approach tells Google that each language version is the canonical (main) version for its language.
Correct Implementation Example
<!-- On https://example.com/en/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />
<!-- On https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/ru/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />Notice: the canonical points to the same page it resides on. hreflang links the two versions together.
What NOT to Do
<!-- ERROR: Russian version points to English -->
<!-- On https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />This configuration will make Google treat the Russian page as just a duplicate of the English one. As a result, the Russian version will be de‑indexed, and you will lose all traffic from the Russian-speaking segment.
Exceptions
There are only a few situations where pointing the canonical to another language version is acceptable:
- Content is completely identical (not translated) — for example, your site has two language versions, but some pages have no translation and they show the same English article. As a temporary measure, you can set the canonical to the main language.
- Temporary version before translation — you created a Russian page but it is not yet populated. While translation is in progress, you may point the canonical to English. But as soon as the translation is ready, the canonical must become self‑referencing.
How to Verify
You can verify the canonical using curl or browser tools. For a Russian page:
curl -I https://example.com/ru/page | grep -i canonicalExpected output: Link: <https://example.com/ru/page>; rel="canonical". If you see a different URL (especially in another language) — that’s an error that needs to be fixed.
Common questions
Discuss your project?
Share your goals and website context — I will suggest a practical next step.