rel=canonical vs hreflang: the conflict that silently kills clusters
Canonical tags and hreflang serve opposite purposes, and when they disagree, hreflang loses. We see this conflict in a striking share of broken clusters.
The core tension:
— rel=canonical says 'this other URL is the real one, index that instead'.
— hreflang says 'these URLs are equals, each for a different audience'.
When a localized page (example.com/fr/) carries a cross-language canonical pointing to example.com/en/, you have told Google the French page is a duplicate to be folded away — while simultaneously telling it via hreflang that French is a distinct equal. Google resolves this by trusting canonical and discarding the hreflang relationship.
What the data suggests:
— Every page in an hreflang set must self-canonicalize (canonical points to itself). This is the single most violated rule we audit.
— Cross-language canonicals are almost always a CMS misconfiguration, not intent.
— The damage is invisible in rankings dashboards; you only catch it by inspecting canonical and hreflang together, page by page.
Our tactic comparison: never use canonical to consolidate language variants. Use it only within a single language for genuine duplicates (parameters, print versions). Caveat — there are rare valid cross-locale canonicals, e.g. identical-content regions you deliberately consolidate, but treat them as exceptions requiring justification.
Hreflang Lab
@HreflangLab
rel=canonical vs hreflang: the conflict that silently kills clusters
Этот пост опубликован в Telegram-канале Hreflang Lab. Подписаться можно по ссылке: @HreflangLab.