Languages & regions23 rules onwhether your language versions point to each other.
hreflang, the language each page declares, and how visitors reach their version.
hreflang tags
- A page lists its languages but names another page as the main oneA page declares hreflang alternates while its HTML canonical points to a different address on the same site.In the report: Page declares hreflang while canonicalizing elsewhere
- A page's language list leaves the page itself outThe page's own address is missing from the hreflang set it declares.In the report: Hreflang set missing self-reference
- An hreflang declaration uses a non-absolute addressAn HTML, HTTP Link or sitemap hreflang declaration uses a relative or protocol-relative address.In the report: Hreflang URL not fully qualified
- An hreflang tag also carries a media attributeOne alternate link element has both an hreflang and a media attribute.In the report: Hreflang combined with media attribute
- Complete hreflang declarations disagree across methodsWith HTML, HTTP Link and sitemap read in full, at least two methods that declare hreflang give different sets for one address.In the report: Hreflang differs across HTML, headers, and sitemap
- hreflang tags sit outside the headhreflang link elements appear in the body, or after markup that ends the head early.In the report: Hreflang link outside <head>
- Hreflang uses an invalid language or script codeA language annotation uses a code or format outside the supported hreflang profile.In the report: Hreflang language code invalid
- Hreflang uses an unsupported region codeAn annotation names a region outside the assigned two-letter country-code set.In the report: Hreflang region code invalid or unsupported
- One hreflang value points to two different addressesWithin one captured declaration source, the same hreflang value or x-default points to more than one distinct URL.In the report: Conflicting hreflang entries on one page
- Sitemap hreflang declarations lack required structureA sitemap omits the xhtml namespace, an entry omits its own address, or an observed counterpart entry omits an explicitly declared variant.In the report: Sitemap hreflang markup structurally invalid
- hreflang entries repeat or share an address across languagesAn hreflang entry is repeated, or one address is declared under two different languages.In the report: Redundant or ambiguous hreflang entries
Language versions
- Hreflang alternate declares a different canonical URLA directly answered successful alternate declares one distinct canonical URL different from the alternate as declared.In the report: Hreflang alternate canonicalizes to a different URL
- Hreflang alternate explicitly requests no indexingA directly answered successful alternate contains an explicit noindex directive.In the report: Hreflang alternate is noindex
- Hreflang alternate returns a client error or persistent server errorThe alternate chain ends in 4xx, or every retained attempt ends in 5xx, with at least two attempts recorded.In the report: Hreflang alternate broken (4xx/5xx)
- Hreflang return link is missing or has the wrong language valueAn internal alternate has a determined return set that omits the declaring page or returns only a different concrete language value.In the report: Hreflang return link missing
- A language version names a page in another language as canonicalA page's canonical points to another address on the same site, and the two addresses are attributed to different languages.In the report: Canonical points to a different language version
Declared language
- An optional Content-Language declaration needs reviewA captured meta declaration or HTTP Content-Language value is invalid or differs from the page’s unambiguous self hreflang language.In the report: content-language signal invalid or contradicts declarations
- Declared language differs from the main contentA supported language detected in the original main content differs from the primary language declared by html lang.In the report: Declared language differs from supported main-content language
- hreflang and html lang disagree about the page's languageThe page's own hreflang entry and its html lang name different base languages.In the report: Hreflang self-reference contradicts html lang
- Main content has substantial text in two languagesAt least two supported languages each account for at least 30% of the counted Unicode letters in the original main region.In the report: Two languages each account for at least 30% of main-content letters
- The page has no valid HTML language declarationThe opening html element is missing, or its lang attribute is absent, empty or invalid.In the report: html lang attribute missing or invalid
Regional setup
- The homepage redirects by browser language and offers no link to choose a versionThe homepage redirects by Accept-Language to a different address, with no ordinary link to that destination on the page served without the header.In the report: Locale auto-redirect blocks the no-language crawler
- A locale group uses URL parametersA complete reciprocal group of declared locale versions uses query parameters such as ?lang=fr.In the report: Locale versions served via URL parameters