Scan any URL for hreflang tags and validate them against the spec. Catches missing self-references, missing x-default, invalid language codes, duplicate targets, and protocol mismatches.
Hreflang is the single most error-prone signal in international SEO. A broken cluster sends Spanish visitors the English page and vice versa, splits ranking signals across duplicate URLs, and triggers Search Console warnings that take weeks to clear. Google estimates over 60% of multi-region sites have hreflang errors. This tool catches every error class on one page in one click.
We issue a single HTTPS GET against the URL you enter (following redirects, 10-second timeout, 600 KB body cap) and scan the raw HTML for every <link rel="alternate" hreflang="…"> tag. We do not execute JavaScript — hreflang must be present in the server-rendered HTML to be discoverable, and any tags injected client-side will not be seen by Google either. Each tag is validated against a light BCP-47 regex covering the patterns Google documents: 2- or 3-letter language, optional script, optional region. We then cross-check the set: self-reference, duplicates, x-default, and protocol mix. The score deducts 25 per error and 8 per warning, capped at 0–100.
Hreflang is an HTML tag that tells Google "this page has equivalent versions in other languages or regions at these URLs." It prevents duplicate-content penalties, ensures the right version ranks for the right user, and consolidates link equity across language variants.
Most CMSs generate hreflang for sister pages but forget the current page. Google requires every page in a cluster to list itself. Without it, the cluster is treated as broken and Google falls back to its own guess at which version to show.
Only if you have a generic landing page (e.g. example.com/ that auto-detects language) or a language-picker page. x-default tells Google "show this version when the user's language does not match any of the others."
Yes — they coexist. Each hreflang variant should canonicalise to itself, not to a single master version. Self-canonical + hreflang cluster = the correct setup.
Three common causes: (1) tags injected by JavaScript only — Google's crawler may not see them; (2) tags reference URLs that 404 or redirect; (3) the cluster is missing reciprocal references on the linked pages. Fix all three.
Yes — hreflang can live in HTML <link> tags, HTTP headers, or sitemap.xml. Pick one method; mixing them causes Google to use the most recently parsed signal and is a common source of bugs.