Hreflang is the SEO feature with the highest shipped-wrong rate.
Google itself has called it "one of the most complex aspects of SEO".
One missing return tag breaks the entire cluster.
One wrong language code — en-uk instead of en-gb — silently disables localization for an entire market.
Step 1. Crawl extracting every hreflang signal
The 2-UA parser captures every <link rel="alternate" hreflang> tag, including those in HTTP headers and sitemap entries.
All three sources are normalized into one cluster view per URL.
Step 2. Six hreflang errors to filter
- Missing self-reference — every page must include its own language in the cluster.
- Missing return tag — if A points to B with
hreflang="fr", B must point back to A withhreflang="en". - Invalid language code — ISO 639-1 + ISO 3166-1 only (
en-gb, noten-uk). - Conflicting canonical —
hreflang="es"pointing to a URL whose canonical points elsewhere. - Mixing hreflang sources — same cluster declared partially in HTML, partially in the sitemap.
- Pointing to non-200 URLs — broken hreflang targets break the entire cluster's trust.
Step 3. Build a return-tag matrix
Export hreflang relationships to XLSX. Use a pivot table to confirm every language pair is bidirectional. A 6-language site needs 30 directional return tags; missing one breaks the cluster Google computes.
Step 4. Add x-default
For your homepage and language-pickers, include hreflang="x-default"
pointing to your language-selector page or default-locale homepage.
Without x-default, users in unmapped locales see a poorly-matched localized URL in search results.
Patterns to avoid in 2026
- Region without language —
hreflang="us"is invalid; it must been-us. - Localizing on subdomain vs subdirectory mid-flight — pick one structure and stick to it.
- CDN serving the wrong cluster per geo — verify via VPN or curl with locale headers.
- Mixing HTML and sitemap hreflang within one cluster — Google may pick either; consistency wins.
Sitemap vs HTML hreflang
For small sites with under 500 localized URLs, declare hreflang inline in HTML. For larger sites, manage hreflang in sitemap files — they are easier to update programmatically and easier to audit. Do not mix sources within one cluster; pick one declaration style per language family.
Use the free SEO page audit for a single localized URL's hreflang check, or run a project crawl to validate your entire international tree.