Check a site
Hreflang checker
Check a page's hreflang tags against every language and country version they name: return links, valid codes, x-default, and versions that redirect, break or point their canonical elsewhere.
Free · No signup · Reads public pages only
How it works
Paste the address of one language version of a page.
We read its hreflang tags, then read every version it lists (up to 20) and the tags on each of those.
You get the problems first, then a grid showing which page lists which language, so a gap is easy to spot.
What hreflang does, in one paragraph
Hreflang tells search engines that several pages are the same content for different languages or countries, and which one to show to whom. Without it, Google might show your US page to someone searching in Germany, or treat your UK and Australian pages as near-duplicates and pick one. With it, each searcher gets the version meant for them.
The tags can live in the page's <head>, in an HTTP header (common for PDFs), or in your XML sitemap. This checker reads the first two. If you only use sitemap tags, the page itself will show none, and that's expected.
The rule that breaks most setups: return links
Google only trusts a pairing when both pages confirm it. If your English page lists the German page, the German page has to list the English page too. When one side is missing, Google ignores that pair, quietly.
That's why this tool reads every version, not just the one you paste. The "Who lists whom" grid shows each page as a row and each language code as a column. Every row should tick every column. A cross means that page is missing a tag the others have.
The simplest way to stay correct is to put exactly the same block of tags on every version, including a tag for the page itself.
What else this checker looks at
- Codes Google ignores: languages must be ISO 639-1 ("en", "de") and countries ISO 3166-1 ("GB", not "UK"). Numeric regions like es-419 are valid in other standards but Google doesn't read them.
- The same code pointing at two different pages.
- Pages that don't list themselves.
- Versions that return an error, redirect, are set to noindex, or have a canonical tag pointing at another page.
- Whether x-default is set, and whether each page's lang attribute matches the code it's listed under.
A canonical pointing at another language is a common and costly mistake. It tells Google "this page is a copy of that one", so Google drops it, and the hreflang pairing goes with it. Each language version should be its own canonical.
What it can't see
It reads up to 20 versions per check, so on a site with more languages, check a second version to cover the rest. It doesn't read hreflang in your sitemap. And it shows what your pages declare, not which version Google actually chose: for that, use Search Console's page indexing report and search from the country you care about.
Questions people ask
Do I need hreflang if my site is only in English?
Not for one version. You need it when the same content exists in more than one language, or in one language for different countries with different prices, spelling or shipping, such as en-US and en-GB.
Is x-default required?
No. It's recommended when you have a page for people whose language you don't cover, such as a language picker or your main international version.
Why is "en-UK" wrong?
The country code for the United Kingdom in ISO 3166-1 is GB. "UK" isn't a valid country code, so Google ignores en-UK. Use en-GB.
Does Google use the lang attribute instead?
No. Google has said it doesn't use the lang attribute to work out a page's language. It's still worth getting right for screen readers and browsers, and a mismatch often points to a template mistake.
Is this hreflang checker free?
Yes. No signup. It reads public pages only, up to 20 versions per check.
Want it done for you?
Romeo keeps every language version in step
He checks your language versions alongside the rest of the site every day, catches missing return links and alternates that break, and sends you the fixes to approve.

