Hreflang Reciprocity Checker
Hreflang only works when every page in the cluster points back. This validates your tags, then goes and fetches the alternates to see whether the return links are really there.
The reciprocity rule
Hreflang is an agreement between pages. The English page names the German alternate, and the German page has to name the English one back. If that return tag is missing, Google ignores the annotation from both sides, and it never tells you. It’s the most common reason hreflang “doesn’t work”, and you can’t see it without going and fetching the other pages. So this fetches the other pages.
What it validates
- Syntax: absolute URLs, since relative hrefs aren’t valid here. Well-formed
language-REGIONcodes, the underscore-instead-of-hyphen classic, and invented regions.en-UKshould been-GB, anden-EUisn’t a thing. - Cluster shape: a self-reference (recommended), an
x-defaultfor language-picker pages, and duplicate hreflang values claiming different URLs - Reciprocity, live. Each sampled alternate gets fetched and its hreflang set parsed. Does it link back to the page you checked? Is it even a live 200, or a redirect or 404 breaking the cluster from the inside?
The tool reads hreflang from link tags and HTTP Link headers, validates codes against ISO 639-1 and ISO 3166-1, then fetches up to 8 alternate URLs to verify return tags and liveness. Very large clusters get sampled. Nothing is stored.