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)



Website B: (German Language, Australian Users)


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

Website C: (Spanish Language, Region Independent)



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



More Posts - Website