Canonical vs. Hreflang

Google clarifies webmaster questions around potential conflicting nature of rel canonical and hreflang annotation.


Briefly about rel=”alternate” hreflang=”x”

Websites which serve the same content in multiple languages can utilise the rel=”alternate” hreflang=”x” annotations to help Google decide which version to serve to which language group. This applies in cases of translated page template in blogs and comment features, substantially similar content with minor variations such as currency or in case of fully translated content.

Here are a few examples:

Website A: (English Language, GB users)


<link rel=”alternate” hreflang=”en-GB” href=”” />

Website B: (German Language, Australian Users)


<link rel=”alternate” hreflang=”de-AU” href=”” />

Website C: (Spanish Language, Region Independent)


<link rel=”alternate” hreflang=”es” href=”” />

Richard Hearne, spotted a comment by Adam Audette on an article which talks about the usage and implementation of the language annotations:

…when rel canonical and hreflang are both present, URLs w/ rel canonical ARE pulled from the index. hreflang simply allows the display URL to fire at search time. The title and snippet text are taken from the rel canonical target. You need to be very careful here and understand the functions of these annotations, both separately and in tandem. I’ve spoken in detail about this w/ Google’s team. This is how it works and why it’s so important to watch rel canonical carefully, because it can and will yank an international site from the correct regional index. No one wants their US title and snippet text showing for their UK site. The URL is only 1 element of a successful search presentation, and in the case of hreflang, the URL is simply a display element fired at search time.

In his Google+ post he asked for clarification on this issue, and John Mueller from Google replied:

We’ve dropped the mention of the rel=canonical in the help center since we’ve found that it tends to confuse people and with that, they may end up implementing it incorrectly. If the URLs are really fully equivalent, then using a rel=canonical like that is fine (eg if you have an informational page on a site, which doesn’t mention local currencies or local addresses). On the other hand, if the pages are not fully equivalent (eg different titles, currencies, addresses, etc), then I would not use a rel=canonical. The difference is very subtle and because of that, hard to implement at scale.

In Conclusion

It’s best to utilise rel=”canonical” if the two pages are truly the same thing. If there are differences, even subtle, which may be relevant to region/language then it’s best not to canonisalise it in order to help Google serve the best content to the right type of audience.

0 Points

5 thoughts on “Canonical vs. Hreflang”

  1. Good info Dan, 
    This is helpful. 

  2. Tiggerito says:

    I think they also recommend rel=”canonical” if your using automatic translations of pages, switching to hreflang if you do a proper translation.

  3. Gavski says:

    The question is, as Bing does not recognise alternative language markup and hence it’s relationship in context with the canonical tag, a whole world of pain might be about to open up.

  4. Something I have a hard time figuring out is why Google itself is combining hreflang & canonical on the Play store in some way that seems to be the opposite of what you report here. Any idea?

  5. Chris Schwarz says:

    Hey Dan – would you recommend canonicalising each page (in each different langauge) to itself?