International
Hreflang: return links, self-references, language codes and the pages they point at.
Several languages, no hreflang
Add hreflang links between the language editions of each page, so search engines show each reader the edition in their language instead of whichever ranks.
- Id
- MISSING_HREFLANG
- Fix estimate
- 60 min per page
Language set and canonical disagree
The page names itself in its language set under one address and canonicalises to another: make both use the same one.
- Id
- HREFLANG_CONFLICTS_CANONICAL
- Fix estimate
- 20 min per page
Same language declared twice
Give each language one target: declared twice with different addresses, the whole set is discarded.
- Id
- HREFLANG_DUPLICATE_ENTRY
- Fix estimate
- 20 min per page
Hreflang missing return tag
- Id
- HREFLANG_MISSING_RETURN
- Fix estimate
- 10 min per page
hreflang set lacks a self-reference
Add an hreflang entry pointing at the page itself — every page in the cluster must list itself.
- Id
- HREFLANG_MISSING_SELF
- Fix estimate
- 4 min per page
Noindexed page still declares a language set
Either let the page be indexed or remove its hreflang links; a page kept out of the index never joins a language set, and the pages naming it lose their return link.
- Id
- HREFLANG_ON_NOINDEX_PAGE
- Fix estimate
- 10 min per page
Paginated page names the front of another language
Point each paginated page at the same page number in the other language, not at its first page.
- Id
- HREFLANG_PAGINATION_MISMATCH
- Fix estimate
- 15 min per page
One address declared as two languages
Give each language its own address in the set; one page cannot be both, and search engines drop the pair.
- Id
- HREFLANG_SAME_URL_TWO_LANGUAGES
- Fix estimate
- 10 min per page
Sitemap names a language alternate it does not list
Give every alternate its own <url> entry in the sitemap; an address named only inside another entry is not part of the set.
- Id
- HREFLANG_SITEMAP_TARGET_UNLISTED
- Fix estimate
- 10 min per page
Language link names the wrong language for its target
Match the hreflang value to the language the target page declares in its html lang attribute.
- Id
- HREFLANG_TARGET_LANG_MISMATCH
- Fix estimate
- 10 min per page
hreflang points to a broken or noindex page
Point hreflang at live, indexable pages — remove entries for pages that are gone or noindexed.
- Id
- HREFLANG_TO_BROKEN
- Fix estimate
- 6 min per page
A language alternate points at a page kept out of search
Point the alternate at a page that can be indexed, or drop it: the language it serves currently has nothing to be shown.
- Id
- HREFLANG_TO_NOINDEX
- Fix estimate
- 10 min per page
Language link lands on a redirect
Point the language link at the address that answers directly, not at one that forwards.
- Id
- HREFLANG_TO_REDIRECT
- Fix estimate
- 15 min per page
Language links disagree between places
The page head, the response header and the sitemap are read as one set: name the same target for a language in all of them.
- Id
- HREFLANG_TRANSPORT_CONFLICT
- Fix estimate
- 20 min per page
Invalid hreflang language code
- Id
- HREFLANG_INVALID_LANG_CODE
- Fix estimate
- 5 min per page
No x-default in the hreflang set
Add an x-default alternate naming the page to serve when no declared language matches the visitor.
- Id
- HREFLANG_MISSING_X_DEFAULT
- Fix estimate
- 10 min per page
Language link names a country, not the language
hreflang takes a language first: "uk" is Ukrainian, and the United Kingdom is "en-GB".
- Id
- HREFLANG_REGION_AS_LANGUAGE
- Fix estimate
- 10 min per page
Language links written as paths, not full URLs
Write every hreflang href as a full URL with its scheme and host; the spec requires it, and a CDN serving the page under another host will otherwise point the whole set at the wrong site.
- Id
- HREFLANG_RELATIVE_URL
- Fix estimate
- 10 min per page
hreflang points to a canonicalized URL
Point hreflang at the canonical URL of each language version.
- Id
- HREFLANG_TO_NONCANONICAL
- Fix estimate
- 5 min per page
Page language disagrees with its own language link
Make the html lang attribute and the page's own hreflang entry agree; both are claims about this page.
- Id
- LANG_ATTRIBUTE_MISMATCH
- Fix estimate
- 10 min per page
og:locale contradicts the page language
Make og:locale agree with the lang attribute, so a shared link is not previewed in the wrong language.
- Id
- OG_LOCALE_MISMATCH
- Fix estimate
- 5 min per page