Home / Free tools / Hreflang checker
Free tool

Hreflang checker. Free, no signup.

Check the hreflang tags of a page: valid language and region codes, a self reference and an x-default.

01What it does

Check the language tags of any page.

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.

  • Every hreflang tag

    Each language code with the address it points to, in one table.

  • Code check

    Codes that do not follow the language or language-region pattern are flagged.

  • Duplicates

    A language code that appears twice on the page is flagged.

  • Self-reference

    The row for the page you checked is marked, and a missing self-reference is reported.

  • x-default

    A missing x-default is reported, with what it is for.

hreflang tags listed per page
60
checks on every page
5

02How to use it

How to check hreflang on a page.

  1. Paste the address of one language version

    Use the full address, for example https://northgate-plumbing.example/en-gb/. Any version of the set works as a starting point.

  2. Press Check hreflang

    Our crawler loads the page and reads every link tag with rel=alternate and an hreflang attribute.

  3. Read the problems list

    If anything is wrong, a short list above the table names each problem, such as a missing self-reference or no x-default.

  4. Check every row

    Each tag shows its language code, its address and a check: ok, this page, or the issue found.

  5. Repeat for the other versions

    Hreflang only works when every version lists all the others. Run the check on each version and compare the lists.

03How it works

How the checker reads hreflang.

  1. Stage 1

    Fetch

    The page is downloaded and its HTML parsed.

  2. Stage 2

    Collect

    All hreflang link tags and the html lang attribute are read.

  3. Stage 3

    Check each tag

    Codes are validated and duplicates are found.

  4. Stage 4

    Check the set

    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

How to read the results.

FieldWhat it means
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

When to check hreflang.

International sites

Launching a new language

After adding a new language version, check that every existing version now lists it.

Ecommerce

Country stores

Shops with separate country versions in the same language, such as en-GB and en-US, rely on correct regions.

Migrations

Moving to new URLs

When addresses change, hreflang tags often keep pointing to old URLs. Check each version after the move.

Agencies

Auditing a multilingual client

A one-page check reveals whether the client uses hreflang at all and how carefully it was set up.

06Tips

Tips for correct hreflang.

  • Every version lists every version

    Each page in the set includes the same full list of tags, its own address included.

  • Use ISO codes

    Language from ISO 639-1, region from ISO 3166-1 alpha-2. The United Kingdom is GB, not UK.

  • Add x-default

    Point it to the page for visitors whose language is not in the list, often a language selector or the main version.

  • Point to the final address

    Each hreflang address should return 200, not redirect, and should be the canonical version of that page.

  • Region alone is not valid

    A code needs a language first. de-AT is valid, AT on its own is not.

  • Keep html lang consistent

    Set the html lang attribute to the same language as the page's own hreflang code.

07Good to know

What this free check does not do.

09FAQ

Questions about the hreflang checker.

What does hreflang do?

It tells Google which page to show to which language or country.

Does a page need to list itself?

Yes. Every page in the set lists all versions, itself included.

What is x-default?

The page for visitors whose language is not in the list.

Is it en-UK or en-GB?

en-GB. The country part uses ISO 3166 codes, and UK is not one of them.

Do I need hreflang on a site in one language?

No. Hreflang is only for sites with versions in more than one language or country.

Can I use only a language without a region?

Yes. en or de on its own is valid and covers all countries for that language.

Does hreflang replace canonical tags?

No. Each version keeps a canonical pointing to itself, and hreflang links the versions together.

Why is a valid-looking code flagged?

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.

Does it check the other versions?

No, only the page you enter. Site audit in the app checks the return links across the site.

Where else can hreflang be set?

In HTTP headers or in an XML sitemap. This tool reads the HTML link tags only.

Want every result, not just the top 10? Create a free account: 1,000 credits every month, full results on every free tool, no card.

23free SEO tools