How hreflang works
Hreflang tags tell search engines which URL to show to users of each language and region. A page
with English, German and French versions carries three
<link rel="alternate" hreflang="…" href="…"> tags, one for each
version including itself, and every version carries the same set. Search engines then swap in the
right URL in their results.
The tags are hints, and they only count when they are consistent. That is why most hreflang problems are invisible: nothing breaks on the page, the wrong version simply keeps ranking in the wrong country.
What the checker verifies
- Every hreflang value is a valid language code, optionally with a region (en, en-US, zh-Hant, pt-BR).
- No language appears twice, and en-UK style mistakes are caught (the code is GB).
- The page lists itself, and an x-default exists when there are several versions.
- Each alternate answers 200 directly, without a redirect or error.
- Each alternate links back to the page you entered — the return link.
Common mistakes
Pointing to redirecting URLs. Alternates must be the final, canonical addresses. A link to /de that redirects to /de/ is enough to break the pair.
One-way tags. Templates often add hreflang to the main language but not to translations, or translations point to a different URL format than the original uses.
Conflicts with canonical tags. If the German page has a canonical tag pointing to the English page, search engines treat it as a duplicate and drop it from the set. Each version should be canonical to itself.