Canonical vs hreflang: When to Use Each for Multilingual Pages
Use hreflang for true translations targeting different languages or regions. Use canonical only when pages are near-duplicates in the same language, like US vs UK English with minor spelling differences. Never canonicalize a translation...
The decision trigger: what are you actually solving?
Before you pick a tag, ask one question: Are these pages different languages, or the same language with small variations?
If the answer is different languages, you need hreflang. If the answer is the same language with minor differences, you need canonical. If you have both situations on your site, you use both tags together on the same page.
Here is the quick rule:
| Scenario | Tag to use | Why |
|---|---|---|
| French page vs English page | hreflang | Different languages need separate URLs and signals to tell Google which version to show to which audience. |
| US English vs UK English (minor spelling differences) | canonical | Same language, near-identical content. Pick one preferred URL to consolidate ranking signals. |
| French page vs English page, plus duplicate URLs within each language | Both | Use hreflang for language targeting and canonical for duplicate consolidation within each language. |
What hreflang actually does
Hreflang tells search engines: "Here are the different language or regional versions of this page. Show the right one to the right user."
It works by adding a link rel="alternate" hreflang="fr" tag to the <head> of each page. Each language version lists all the other language versions, including itself.
For example, if you have an English page at /en/ and a French page at /fr/, the English page includes:
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />The French page includes the same set of tags, pointing back to the English page. This bidirectional linking is essential. If you only put hreflang on one page, Google may ignore it.
What canonical actually does
Canonical tells search engines: "This URL is the preferred version. Ignore the other similar URLs and consolidate their signals into this one."
It uses a link rel="canonical" tag in the <head>. For example, if you have /product?color=red and /product?color=blue that show the same content, you add a canonical to both pointing to /product.
Canonical is about duplicate content, not language. It does not tell Google which language a page is in. It only tells Google which URL to treat as the master.
When to use hreflang only
Use hreflang when you have genuinely different content in different languages. This is the most common multilingual scenario.
- You have a Spanish version and a German version of your homepage.
- You have a French version of your product page and an English version.
- You have regional variants like
fr-CA(French Canadian) andfr-FR(French from France).
In these cases, each page is a separate piece of content. You want Google to index each one and show the right one to the right searcher. Hreflang handles this.
Do not add a canonical pointing from the French page to the English page. That would tell Google to ignore the French page entirely. You would lose all your French traffic.
When to use canonical only
Use canonical when you have near-identical pages in the same language. This is not a multilingual scenario at all.
Common examples:
- US English and UK English with only spelling differences (color vs colour).
- Two URLs that show the same content due to tracking parameters or session IDs.
- HTTP and HTTPS versions of the same page.
- www and non-www versions of the same page.
In these cases, you pick one preferred URL and canonicalize the others to it. This consolidates ranking signals and prevents duplicate content issues.
When to use both tags together
You often need both tags on the same page. This happens when you have multiple languages and duplicate URLs within each language.
Example: You have an English site and a French site. Within the English site, you have /en/product and /en/product?utm_source=email showing the same content.
On the English page, you add:
- A canonical pointing to
/en/product(to consolidate the duplicate). - Hreflang tags pointing to the French version and back to itself.
On the French page, you do the same: canonical to the preferred French URL, and hreflang pointing to the English version.
This is the correct setup for most real-world multilingual sites. The canonical handles duplicates within a language. The hreflang handles language targeting across languages.
Common mistakes to avoid
- Canonicalizing a translation to the source language. This is the most damaging mistake. It tells Google to ignore your translated pages entirely.
- Using hreflang on pages that are not translations. If two pages are the same language and nearly identical, hreflang does not help. Use canonical instead.
- Missing bidirectional hreflang. If page A points to page B but page B does not point back to page A, Google may ignore the signals.
- Using hreflang without a self-referencing canonical. Each page should have a canonical pointing to itself. This prevents other duplicate URLs from diluting signals.
- Using
x-defaultincorrectly. Thex-defaulttag points to a fallback page for users whose language is not listed. It should point to a real page, not a 404.
Step-by-step decision framework
Follow these steps when you encounter a set of pages:
- Identify the language of each page. Use the
langattribute and the URL structure. - If the languages differ, add hreflang tags to each page, listing all language versions.
- If you have duplicate URLs within the same language, add a canonical to the preferred URL.
- Always add a self-referencing canonical to every page, even if there are no duplicates.
- Check that hreflang tags are bidirectional. Every page must list every other version.
- Test with Google's URL Inspection tool or a hreflang validator.
Practical scenarios
Scenario 1: Ecommerce store with English and Spanish versions
You have /en/ and /es/ versions of your product pages. The content is translated, not duplicated.
Use hreflang only. Add hreflang tags to both versions. Do not add a canonical from Spanish to English.
Scenario 2: Blog with US and UK English versions
You have /us/blog/ and /uk/blog/ with the same article, only spelling differs.
Use canonical only. Pick one as the preferred version and canonicalize the other to it. Hreflang is not needed because the language is the same.
Scenario 3: Global site with multiple languages and tracking parameters
You have French, German, and English versions. Each version also has URLs with tracking parameters.
Use both. Add hreflang for language targeting. Add a self-referencing canonical on each preferred URL to consolidate the parameter duplicates.
Limitations and when this advice does not apply
This guidance applies to standard multilingual websites with separate URLs per language. It does not apply to:
- Single-page apps that use JavaScript to swap content. Hreflang works poorly with client-side rendering. You need server-side rendering or a different approach.
- Sites that use URL parameters for language selection. Google prefers separate URLs. If you use
?lang=fr, hreflang may not work reliably. - Very small sites with only one language. You do not need hreflang at all.
Also note that hreflang is a signal, not a directive. Google may ignore it if the content is not genuinely different or if the implementation is flawed.
Key facts at a glance
| Tag | Purpose | When to use | What it does not do |
|---|---|---|---|
| hreflang | Language and regional targeting | Different languages or regions | Does not consolidate duplicate content |
| canonical | Duplicate content consolidation | Same language, near-identical pages | Does not tell Google which language to show |
FAQ
Can I use hreflang and canonical on the same page?
Yes. In fact, you should. Use canonical to point to the preferred URL within the same language, and hreflang to point to other language versions.
What happens if I canonicalize a French page to an English page?
Google will treat the French page as a duplicate of the English page and may drop it from the index. You lose all French traffic.
Do I need hreflang for US and UK English?
No. If the content is nearly identical and only spelling differs, use canonical instead. Hreflang is for different languages or distinct regional variants with meaningful content differences.
What is the x-default hreflang tag?
It points to a fallback page for users whose language is not listed. It should point to a real page, not a 404.
How many hreflang tags should I add per page?
Add one for each language version, including the page itself. Plus one x-default if you have a fallback page.
Does hreflang guarantee Google shows the right version?
No. It is a strong signal, but Google may override it based on user location, search history, or other factors.
What is the most common hreflang mistake?
Missing bidirectional tags. If page A points to page B but page B does not point back, Google may ignore the entire set.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SeaText can help
SeaText's Website Translation Agent helps you translate pages into 125 languages with full control. You can manage multilingual content without a manual localization project.
This is useful when you need to create the translated pages that hreflang tags point to. The agent handles the translation work, so you can focus on implementing the correct hreflang and canonical structure.
Note that SeaText provides translation and localization, not technical SEO implementation. You still need to add the hreflang and canonical tags yourself or with your developer.