Launching a new language
After adding a new language version, check that every existing version now lists it.
Check the hreflang tags of a page: valid language and region codes, a self reference and an x-default.
01What it does
Hreflang tags tell search engines which version of a page is meant for which language or country. A plumbing company with an English page for the UK and a German page for Austria uses them so that each visitor sees the right version in search results. When the tags are wrong, Google may ignore them and show the wrong language.
The hreflang checker reads one page and lists every hreflang link tag it declares: the language code and the address it points to. It then checks the details that most often go wrong. Is each code a valid language code? Is any code listed twice? Does the page list itself? Is there an x-default for everyone else?
You also see the language declared in the page's html lang attribute, so you can compare it with the hreflang codes at a glance.
Each language code with the address it points to, in one table.
Codes that do not follow the language or language-region pattern are flagged.
A language code that appears twice on the page is flagged.
The row for the page you checked is marked, and a missing self-reference is reported.
A missing x-default is reported, with what it is for.
02How to use it
Use the full address, for example https://northgate-plumbing.example/en-gb/. Any version of the set works as a starting point.
Our crawler loads the page and reads every link tag with rel=alternate and an hreflang attribute.
If anything is wrong, a short list above the table names each problem, such as a missing self-reference or no x-default.
Each tag shows its language code, its address and a check: ok, this page, or the issue found.
Hreflang only works when every version lists all the others. Run the check on each version and compare the lists.
03How it works
Stage 1
The page is downloaded and its HTML parsed.
Stage 2
All hreflang link tags and the html lang attribute are read.
Stage 3
Codes are validated and duplicates are found.
Stage 4
Self-reference and x-default are checked across all tags.
We fetch the page with our own crawler and parse its HTML. Every link element with rel=alternate and an hreflang attribute is collected, and its address is resolved to a full URL. We also read the lang attribute of the html element.
Each code is compared with the format hreflang uses: a two- or three-letter language code in lowercase, optionally followed by a region (en-GB) or a script (zh-Hant), or the special value x-default. A code that does not fit is flagged. A code that appears a second time is flagged as listed twice.
Then we look at the set as a whole. If none of the addresses is the page you checked, the self-reference is missing. If no tag uses x-default, we say so. Trailing slashes are ignored when we compare addresses.
04Reading the results
hreflang tagsHow many hreflang link tags the page declares. Zero is fine for a site in one language.Page languageThe value of the html lang attribute. It should match the language of the page and its own hreflang code.Problems listEach issue in plain words. Fix the ones about the self-reference and invalid codes first.LanguageThe hreflang code as written in the tag, for example en, en-GB, de-AT or x-default.AddressThe page that the tag says is the version for that language.Check: this pageThis tag points to the page you checked, which is the required self-reference.Check: okThe code is valid and not repeated.Not a valid language codeThe code does not follow the pattern. Use a lowercase language code, optionally a region: en, en-GB, x-default.Listed twiceThe same code appears in two tags. Search engines cannot tell which address to use.05Who it is for
After adding a new language version, check that every existing version now lists it.
Shops with separate country versions in the same language, such as en-GB and en-US, rely on correct regions.
When addresses change, hreflang tags often keep pointing to old URLs. Check each version after the move.
A one-page check reveals whether the client uses hreflang at all and how carefully it was set up.
06Tips
Each page in the set includes the same full list of tags, its own address included.
Language from ISO 639-1, region from ISO 3166-1 alpha-2. The United Kingdom is GB, not UK.
Point it to the page for visitors whose language is not in the list, often a language selector or the main version.
Each hreflang address should return 200, not redirect, and should be the canonical version of that page.
A code needs a language first. de-AT is valid, AT on its own is not.
Set the html lang attribute to the same language as the page's own hreflang code.
07Good to know
08Free and with an account
Free
Free · no card
Paid plans
Create a free account to check hreflang across your whole site in one crawl.
09FAQ
It tells Google which page to show to which language or country.
Yes. Every page in the set lists all versions, itself included.
The page for visitors whose language is not in the list.
en-GB. The country part uses ISO 3166 codes, and UK is not one of them.
No. Hreflang is only for sites with versions in more than one language or country.
Yes. en or de on its own is valid and covers all countries for that language.
No. Each version keeps a canonical pointing to itself, and hreflang links the versions together.
The checker expects the language part in lowercase, as it is usually written: en-GB, not EN-GB. Search engines read the codes without regard to case, so this is a tidy-up rather than a breaking error.
No, only the page you enter. Site audit in the app checks the return links across the site.
In HTTP headers or in an XML sitemap. This tool reads the HTML link tags only.
The all-in-one SEO platform for the AI era.
Keywords, rank tracking, geo-grid maps, site audits, backlinks, link building outreach, AI content and AI visibility, run by an agent that turns data into done work.
Newsletter
SEO & AI-search tips you can use the same day.
Free plan