A page lists its languages but names another page as the main one

In the reportPage declares hreflang while canonicalizing elsewhere

hreflang_source_canonicalized_away · Issue

Short answer

This appears when a page declares hreflang in HTML or an HTTP Link header while its head canonical names another address on the same site, and the selected cross-language owner does not take the edge. A language version normally names itself as canonical. Review the two addresses and the language evidence before changing the canonical or removing declarations from a copy.

Severity: Medium. The two signals disagree about which address to show; fix it when you next edit the page.

Why it matters

Google's guide to canonical URLs asks you, when using hreflang, to specify a canonical page in the same language, and describes rel="canonical" as a strong signal about which address should become canonical.

What to do

  1. Review the page’s hreflang labels, declared canonical and recorded ownership or language state.
  2. If this page is an independent language version, make its head canonical point to its own final address.
  3. If it is only a copy, removing its hreflang may be appropriate. That removal alone will not confirm the earlier finding fixed.

What we read

We read complete page hreflang from HTML and HTTP Link and the usable head canonical retained in the shared graph. Hreflang that exists only in a sitemap does not qualify the source page. An absent canonical or no page hreflang makes this check not applicable; incomplete or malformed page declarations and ambiguous or unusable head canonicals remain unknown.

For an internal canonical, the existing language classifier uses retained graph and governed reference facts. A proved crossed-language edge is routed to the selected cross-language canonical check. A same-language result or an unresolved classifier result remains a finding here. A missing required reference or graph input remains unknown instead. An incomplete sitemap may leave the classifier unresolved without cancelling this rule’s otherwise proved finding.

An external canonical is routed to the selected cross-domain canonical owner only when the retained distinct canonical set names exactly that target; otherwise it remains unknown. HTTP-header canonicals are used in that external ownership proof, while the main predicate follows the head canonical. A self canonical is clean. Ownership is derived from current facts and selected rules, never another finding’s decision.

Example & evidence

Illustrative example — one page head, not a live audit.

https://bakery.example/en/ has:

<link rel="canonical" href="https://bakery.example/en-us/">
<link rel="alternate" hreflang="en" href="https://bakery.example/en/">
<link rel="alternate" hreflang="en-US" href="https://bakery.example/en-us/">

With complete language evidence identifying both ends as English, the cross-language check does not take this edge. This rule reports the page’s canonical to another same-language address.

<link rel="canonical" href="https://bakery.example/en/">

A possible correction: let the English page name itself.

Confirm & check again

Check for yourself: view the page source and compare the canonical's href with the page's own address.

Check again: Full audit — Run a new audit of the same final page. Complete qualifying declarations and a canonical pointing to that page itself confirm the finding fixed. Removing the canonical or hreflang gives a not-applicable result and carries the old finding. Routing the edge to another selected check also carries it; neither ownership nor absence confirms a fix. Missing evidence keeps it carried, and dismissal stays independent.

Limits & sources

This check reuses existing source, language and graph observations; it adds no fetch of its own. It does not claim that an unresolved language classifier makes the canonical correct. A sitemap-only hreflang declaration is outside this rule’s source-page predicate.

Confidence: High because the canonical and the hreflang are read directly.

Sources

Editorial review: 4 November 2026