Canonical beats hreflang every single time. Here's why that matters
Hreflang and canonical are two different instructions, and Google reads them in a strict order. Canonical says "this URL is the real one". Hreflang says "this URL has equivalents in other languages". When they disagree, canonical wins and hreflang is silently discarded.
The classic mistake: your /fr/ page has a canonical pointing back to the English version because someone copied the template. Google now treats the French page as a duplicate. Your hreflang cluster still lists /fr/, but Google never considers it a candidate for French users because, in its eyes, that page does not exist as a separate document.
Rule of thumb:
— Every localized page must be self-canonical
— Hreflang alternates must point to the canonical URL of each version, not to a redirecting or parameterized one
— If a page is canonicalized elsewhere, remove it from every hreflang cluster it appears in
Check this with a crawler: filter for pages where canonical URL differs from the page URL, then check whether any of them appear as hreflang targets. That list is your leak.
Hreflang Hub
@HreflangHub
Canonical beats hreflang every single time. Here's why that matters
Этот пост опубликован в Telegram-канале Hreflang Hub. Подписаться можно по ссылке: @HreflangHub.