Hreflang checker: show each country the right language version
This hreflang checker validates your hreflang tags and fetches every alternate to confirm it links back, so invalid codes, dead alternates and missing return links show in one table.
- Free, no account
- Results in under a minute
- Up to 50 alternates per page
Example result:example-shop.hr
WordPress 6.8Sample shop · homepage · mobile Chrome · the same check you get for your own site
No hreflang tags on this page. Single-language sites do not need them.
What we found
Show 1 passed check
Fix these first
From the example above. Check your own site to get the fixes that apply to it.
Warning: Canonical tag is missing
Without a canonical URL, search engines may index duplicate versions of this page (with and without trailing slash, with UTM parameters) and split its ranking signals.
How to fix it: Add <link rel="canonical" href="http://example-shop.hr/"> in <head>.
What the hreflang checker validates
The hreflang set on your page and the return link from every alternate, checked the way Google reads them.
hreflang tags
Checks your language and country tags use valid codes, so searchers get the right version of the page.
hreflang return links
Checks every language version links back to this one, otherwise Google ignores the pair.
hreflang alternates status
Checks each language version answers 200 without a redirect, so the hreflang set is not dropped.
Page language
Checks the page declares its language for search engines, translation tools and screen readers.
Canonical tag
Tells search engines which address is the real one, so duplicates don't split rankings.
Show 1 more check
Canonical tag
Tells search engines which address is the real one, so duplicates don't split rankings.
How the hreflang checker works
Validate the tags
We read every alternate hreflang link on the page and check the language and region codes, at most one x-default, no duplicates and a self-reference.
Fetch the alternates
Up to 50 alternates are fetched and their own hreflang sets are parsed to confirm each one links back to this page.
Show the matrix
The table shows each alternate with its HTTP status, its html lang attribute and whether the return link exists.
The checker reads hreflang tags in the HTML only and fetches up to 50 alternates; sets declared in a sitemap are not checked yet.
Hreflang tag questions
How do hreflang and canonical tags work together?
Each language version should have a self-referencing canonical and list all versions in its hreflang set. Never point the canonical of the German page at the English one: Google then treats the German page as a duplicate and ignores its hreflang. Canonicals choose between copies of the same content; hreflang links translations. This checker also confirms that the page declares a canonical.
How do I check hreflang tags on a page?
Enter the page address above. The checker reads every hreflang link in the HTML, validates the language and region codes, and fetches up to 50 alternates to confirm each answers and links back to this page. The table shows each version's status, its lang attribute and whether the return link exists. By hand, search the page source for hreflang.
Does the checker flag alternates that redirect?
Yes. Every alternate is fetched, and any that redirects or does not answer 200 is listed with its status, because Google drops it from the set and may ignore the rest. The usual cause is an old URL left in the tags after a move to HTTPS, a new slug or a trailing-slash change. Point each hreflang link at the final URL that answers 200 directly, the page's own canonical.
How do I fix "no self-referencing hreflang"?
Add an hreflang tag for the page itself to its own set. If the English page lists the German and French versions, it must also list its own URL with hreflang="en". Google expects every version to carry the same full set, including itself. Generating the tags from one list in your CMS, plugin or sitemap keeps the sets identical, and this checker flags a missing self-reference.
Can I check hreflang for a whole site?
Not in one run. The checker validates one page and up to 50 alternates, which covers that page's whole language set. Hreflang is usually generated by templates, so the same mistake repeats on every page of a type: check one home page, category, product and article in each language to cover most of the site.
Which language and region codes are valid?
An ISO 639-1 language code such as en, de or hr, optionally followed by an ISO 3166-1 region such as en-GB or de-AT. A region alone (uk, gb) is invalid, and so are words like english. The code for the United Kingdom is GB, so en-UK is a common mistake that Google ignores. This checker flags every invalid code in the set.
Can hreflang live in the sitemap instead?
Yes, with xhtml:link entries for every URL in the XML sitemap, which suits large sites where editing each page head is impractical. Pick one method per set rather than mixing them. This checker reads hreflang in the HTML of the page only; sets declared in a sitemap or in HTTP headers are not checked.
Is this hreflang checker free?
Yes, with no sign-up. getReport is funded by donations, not plans, and the complete report with all seven modules is one click away, also free. It stays at its shareable link for 12 months, is not listed publicly and carries a noindex tag, and nothing about your visitors is collected.
Related free tools
All 59 tools →Free, funded by the people who use it
No account, no paid plan. Donations keep it running.