One hreflang value points to two different addresses

In the reportConflicting hreflang entries on one page

hreflang_conflicting_entries · Issue

Short answer

A conflict exists when one language value maps to several URLs within the HTML channel, the HTTP Link channel or one sitemap file. Repeating the same value and URL is not a conflict. Keep the intended single target for each value.

Severity: High. The list gives no single version for that language; fix it soon.

Why it matters

Google's guide to localized versions asks each language version to list itself and all the other language versions, one link for each page variant. Two addresses under one value break that one-to-one list.

What to do

  1. Look at the finding: it shows the value, the addresses it points to and which list it was in: the HTML, the Link header or a sitemap file.
  2. Decide which address is the version for that language, and remove the others.
  3. Mind the small differences: /fr and /fr/, or http:// and https://, are different addresses.

What we read

The check reuses original non-inert HTML alternate links, the final response’s hreflang Link headers and sitemap annotations for the page. Each channel and each sitemap file is considered separately. It makes no additional target request and does not execute JavaScript.

Language values are stripped and compared without letter case; en and en-GB remain different values, while x-default is treated like any other value. Only distinct normalized target URLs count, so identical repeated entries do not fire. A path’s case and trailing slash remain significant.

A decision requires complete HTML and HTTP Link channels and the complete required sitemap collection. Missing or partial channels, an unreadable required sitemap, malformed or relative target addresses, or a blank language value leave the page unknown. A complete parseable extension relation in a Link header is not itself a coverage gap.

Example & evidence

Illustrative example — one page's list, not a live audit.

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

<link rel="alternate" hreflang="fr" href="https://bakery.example/fr/">
<link rel="alternate" hreflang="fr" href="https://bakery.example/fr/accueil/">

fr points to two addresses, so the page is reported with both.

<link rel="alternate" hreflang="fr" href="https://bakery.example/fr/">

A possible correction: keep the one French version.

Confirm & check again

Check for yourself: Inspect the captured HTML, Link header and each sitemap separately. For the reported value, compare all distinct target URLs rather than counting repeated identical entries.

Check again: Full audit — Run a new audit that reads the same page and all required channels completely. A clean check with no conflicting value can resolve the existing finding. Removing all declarations produces not applicable and does not by itself prove a fix; an unread, missing or incomplete page keeps the previous finding unresolved.

Limits & sources

The finding compares declarations within a source. It does not compare channel lists, verify target responses or return links, or merge different addresses because they might represent the same content. Hreflang added only by JavaScript is outside the captured evidence.

Confidence: High High when the required declaration channels are complete: the conflict is directly present in one captured source.

Sources

Editorial review: 3 November 2026