Home / Knowledge Base / Tools and integrations / Checking hreflang: common markup errors

Checking hreflang: common markup errors

Tools and integrations 2 min read Updated 12.09.2026
Six errors that disable language version markup, the order of checking one page of each version, and why hreflang does not improve rankings.

Checking hreflang finds common markup errors of language versions: one-way links, lack of self-reference, incorrect language codes. An error in one place disables the markup entirely, so it should be checked after each change. The tool is hreflang validator.

Common errors

ErrorConsequence
Version refers to another, but that one does not refer backPair is ignored: markup must be mutual
No self-reference linkSet is considered incomplete
Typo in language codeLine does not work; codes are set by standard
Region without languageDoes not work: region is specified only with language
Link to an address with a redirect or errorConnection breaks
Non-canonical addresses specifiedConflict with canonical address, search chooses itself

Language code and country code

Language is recorded with a two-letter code, country — a separate two-letter code after a hyphen. A common confusion: the country code and language code for one territory differ, and one cannot be substituted for the other. If the version is intended for all speakers of the language, the country code is not specified at all — this rule works broader.

Order of checking

  1. Check one page of each language version — errors are usually systemic, from the template.
  2. Ensure that all listed addresses respond with code 200.
  3. Compare addresses with canonical ones — they must match.
  4. Check the fallback option for other countries, if used.
Markup does not improve rankings
It helps to show the right version to the right audience and does not allow versions to compete with each other. The breakdown of the mechanism itself is in the article about hreflang.

Does your site need hreflang

SituationNeeded?
Site in one languageNo
Multiple languages on one domainYes
One language, but different countries with different pricesYes, with region specification
Translations on subdomains or separate domainsYes, markup works between domains
Auto-translation without separate addressesNo: nothing to mark up

How we do it

Each knowledge base article exists in four language versions with its own address, and they are linked by this markup — therefore, the English version does not compete with the Russian one. How to switch between them is described in the article about language versions.

FAQ

Why doesn't the markup work?
Most often due to one-way links: if version A refers to B, but B does not refer back to A, the pair is ignored entirely.
Is a link from the page to itself needed?
Yes, without it the set of language versions is considered incomplete.
Will hreflang improve rankings?
No. The markup helps to show the right version to the right audience and does not allow versions to compete with each other.
Was this article helpful?
Try it on your project Everything described in the article is available in the dashboard — the registration bonus is already in your balance.
Open dashboard