Hreflang Tag Checker
This free hreflang checker loads a page and lists every rel=alternate hreflang link it declares, validates each language and region code, confirms an x-default and a self-referencing entry exist, flags duplicate codes and relative URLs, and samples up to five alternate pages to confirm they answer 200 and link back. Use it on multilingual or multi-country sites.

Hreflang Checker
On-page SEO
About this tool
Hreflang tags tell Google and Yandex which version of a page to show to which language or country, so a visitor in Mexico gets the Spanish page and not the English one. They are easy to get wrong: a code such as en-UK instead of en-GB is silently ignored, a missing return link invalidates the pair, and a page that lists alternates without listing itself confuses the whole cluster. Mistakes show up as the wrong language ranking in the wrong country.
The checker fetches the page and collects every hreflang link from the HTML and from the HTTP Link header. It validates each code against the standard format (a two or three letter language, an optional four letter script, an optional two letter country or three digit region, or x-default), checks that the page references itself, that an x-default fallback exists, that URLs are absolute and that no code appears twice. Then it requests up to five of the alternate pages and checks that each answers 200 and contains a hreflang link back to this page, the return-link rule Google requires.
Hreflang can also live in the XML sitemap, which this tool does not read, so a page with no tags may still be fine if the sitemap carries them. Only a sample of alternates is verified per run to keep the check light; large clusters should be verified across several runs or with a crawler. The codes are checked for format, not against a list of every language and country.
Frequently asked questions
What format must hreflang codes use?
A language code from ISO 639-1 (en, fr, hi), optionally followed by a region code from ISO 3166-1 (en-GB, en-US, es-MX) or a script (zh-Hans). Country alone is not valid: "uk" means Ukrainian, not the United Kingdom, which is en-GB. Codes are case-insensitive but the usual style is lowercase language, uppercase region.
What is x-default for?
It names the page to show when no listed language matches the visitor, usually a language selector or the global English page. It is optional but recommended, and it counts as one of the alternates, so it must appear on every page of the cluster like any other hreflang entry.
Why must every page link back to every other page?
Because Google only trusts hreflang pairs that confirm each other: if page A says B is its French version, B must say A is its English version. Without the return link the annotation is ignored. Every page in a cluster therefore carries the same full set of alternates, including itself.
Does the page need to reference itself?
Yes. Each page lists the complete set of alternates, and that set includes the page's own URL with its own language code. A missing self-reference is one of the most common hreflang errors and makes the return-link check fail from the other pages' point of view.
Can I put hreflang in the sitemap instead of the HTML?
Yes. Each URL in the XML sitemap can carry xhtml:link alternates, which keeps the HTML lighter on large sites. You can also use the HTTP Link header for PDFs. Choose one method per page and keep it consistent; this tool reads the HTML and the header, not the sitemap.
