Hreflang Tester: Checklist + live scan.
Our scan doesn't read hreflang tags yet. It finds your sitemap and tests 30 pages for the errors that break hreflang clusters — 404s, redirects, noindex, stray canonicals.
Why hreflang is the trickiest tag in technical SEO
Hreflang exists to tell Google which language and region each version of a multi-locale page targets. Implemented correctly, it makes Google show the right version to the right user — German users get the .de page, French users get the .fr page, English users get the English page. Implemented incorrectly, the wrong version can show up in the wrong country.
Our scan does not read hreflang tags yet. It finds your sitemap and checks 30 sampled pages for the problems that most often break an hreflang cluster: 404s, redirects, noindex, and canonical tags that point elsewhere. Use the list below to check the hreflang tags themselves.
What to check in your hreflang setup
- Return links — if Page A lists Page B as an alternate, Page B must list Page A back. Google may ignore annotations without a return link.
- Self-reference — every page should list itself among its alternates. Skipping it is a frequent oversight.
- Language and region codes — ISO 639-1 for the language and ISO 3166-1 alpha-2 for the region.
en-ukis invalid; the code for the United Kingdom isen-gb. - x-default — points at the fallback page for users who don’t match any listed locale.
- HTML vs XML implementation — hreflang can live in
<link rel="alternate">tags or in the sitemap. Using both with mismatched values sends conflicting signals. - Pointing to indexable pages — an alternate that returns 404, redirects, or is noindexed breaks that branch of the cluster. These are the page-level problems our scan does check.
How hreflang grows with each locale
Two locales (en-us + en-gb) is easy. Twelve locales means every page carries 12 hreflang annotations, and all 12 pages must agree. Listing hreflang in the XML sitemap instead of the HTML keeps it in one file, which is easier to generate and to check.