Home/Free SEO tools/Hreflang Checker
Free tool · step 03 of 04 · Connected

Hreflang CheckerThe right language for the right reader.

Validate reciprocal hreflang, self-references, language and region codes and x-default across every version of an international page.

Last reviewed · 1 Oct 20263 primary sources →Kalenux engineering
https://

Return linksSelf-referenceCodesx-defaultTarget statushtml lang
hreflang checker · example.com
75/ 100
1 to fix · 1 to review
4 passed · 1 warning · 1 failed
Self-referencepresentPASS
en ↔ dereciprocalPASS
fr → demissing return linkFAIL
Language codesall valid ISO 639-1PASS
x-defaultnot setWARN
Targetsall return 200PASS
illustrative result
fetched as crawler · 0.4s
6checks run together
3common faults explained
03step in the fix order
0signups needed
every alternate must link back

Hreflang is a two-way handshake.

Each language version has to list every other version, and itself. If one return link is missing, search engines may ignore the whole set. Below is an illustrative set with one missing.

PAGE ↓ LISTS →endefrx-default
/en/self ✓✓✓✓
/de/✓self ✓✓✓
/fr/✓✕self ✓✓
/✓✓✓self ✓
FAIL · MISSING RETURN LINK/fr/ doesn't list /de/German users may be shown the French page. Add the missing alternate to /fr/ so every row is complete.
ISO 639-1 language, optional ISO 3166-1 region

Codes that work, and lookalikes that don't.

An invalid code is skipped without any warning. These are the mistakes the checker catches most often.

✓ VALID
enLanguage only
en-GBLanguage + region
pt-BRPortuguese for Brazil
de-ATGerman for Austria
x-defaultFallback for everyone else
✕ SKIPPED
en-UKUK isn't an ISO country code. Use GB.
en_GBUnderscore. Use a hyphen.
engThree-letter code. Use ISO 639-1: en.
englishA name, not a code.
GBRegion with no language.
pick one method and stick to it

Three places to say it.

Each method is equally valid. Mixing them is how sets end up disagreeing with each other.

HTML head01
<link rel="alternate" hreflang="de" href="https://site.com/de/">
Best for: Most pages
HTTP header02
Link: <https://site.com/de/doc.pdf>; rel="alternate"; hreflang="de"
Best for: PDFs and other non-HTML files
XML sitemap03
<xhtml:link rel="alternate" hreflang="de" href="https://site.com/de/"/>
Best for: Large sites, keeps the HTML light
the version for everyone else

x-default catches the visitors you didn't plan for.

A Japanese visitor arrives at a site that only has en, de and fr pages. x-default tells search engines which page to show them, usually a language picker or your main version.

Browser: ja-JPno ja page→ x-default
Browser: de-ATde page exists→ /de/
Browser: en-USen page exists→ /en/
One page shows one row of the matrix.Return links can only be confirmed across the whole set. The full audit crawls every language version and checks the complete matrix.
in depth · 3 primary sources

What Google documents about hreflang.

What the search engines document about each check this tool runs, with every claim linked to its source.

01Three ways to declare it

Google accepts hreflang in HTML <link rel="alternate"> tags, in HTTP headers, or in the XML sitemap. Any one method is enough; they are equivalent [1].

KEY FACTEvery version must list itself and all other versions. Missing return links can cause the annotations to be ignored [1].

02Codes must be valid

Language codes use ISO 639-1, with an optional region in ISO 3166-1 alpha-2, for example en-GB. A region on its own is not valid [1].

The special value x-default marks the page to show when no other language matches, typically a selector or the global version [1].

03Hreflang is a hint about audience

Google uses hreflang to serve the right version to the right user. It doesn’t move ranking signals between versions or fix duplicate content on its own [2].

Locale-adaptive pages that change content by IP can hide versions from Googlebot, which mostly crawls from the US. Separate URLs per locale are the recommended pattern [2].

04Keep canonicals consistent

Each version should self-canonicalise. A canonical pointing to another language tells Google the pages are duplicates, which conflicts with the hreflang cluster [3][1].

References

  1. [1]Tell Google about localized versions of your page · Google Search Centraldevelopers.google.com/search/docs/specialty/international/localized-versions
  2. [2]Managing multi-regional and multilingual sites · Google Search Centraldevelopers.google.com/search/docs/specialty/international/managing-multi-regional-sites
  3. [3]How to specify a canonical URL with rel="canonical" and other methods · Google Search Centraldevelopers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
CITE THIS PAGEKalenux. (2026). Hreflang checker: validate language and region annotations. Kalenux SEO Guide. Last reviewed 1 Oct 2026. kalenux.com.tr/seo-hreflang-checker
other free tools

Keep checking.

All tools →