Seatext library

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:

ScenarioTag to useWhy
French page vs English pagehreflangDifferent languages need separate URLs and signals to tell Google which version to show to which audience.
US English vs UK English (minor spelling differences)canonicalSame language, near-identical content. Pick one preferred URL to consolidate ranking signals.
French page vs English page, plus duplicate URLs within each languageBothUse 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) and fr-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-default incorrectly. The x-default tag 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:

  1. Identify the language of each page. Use the lang attribute and the URL structure.
  2. If the languages differ, add hreflang tags to each page, listing all language versions.
  3. If you have duplicate URLs within the same language, add a canonical to the preferred URL.
  4. Always add a self-referencing canonical to every page, even if there are no duplicates.
  5. Check that hreflang tags are bidirectional. Every page must list every other version.
  6. 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

TagPurposeWhen to useWhat it does not do
hreflangLanguage and regional targetingDifferent languages or regionsDoes not consolidate duplicate content
canonicalDuplicate content consolidationSame language, near-identical pagesDoes 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.