Free Tool
    Updated 7 June 2026

    hreflang checker

    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.

    By Deepak Shukla — Founder & CEO, Pearl Lemon

    Part of SEO monitoring — the full answer, the facts and the alternatives in one place.

    What This Tool Checks

    • Every <link rel="alternate" hreflang="…"> tag in the HTML head
    • BCP-47 validity of each hreflang value
    • Self-reference (the page must list itself)
    • Presence of x-default for global / language-picker pages
    • Duplicate hreflang values pointing at different URLs
    • Mixed http: / https: targets across the cluster
    • Total tag count and per-language coverage

    Why This Matters

    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.

    How to Fix Issues

    1. 1.Add a self-referencing hreflang on every page in the cluster
    2. 2.Fix any invalid language codes to standard BCP-47 (e.g. "en-US", not "en_us")
    3. 3.Pick one canonical target per (language, region) and update all duplicates
    4. 4.Add an x-default if you have a global / language-picker landing page
    5. 5.Normalise every target to https — never mix protocols
    6. 6.Re-run the test on at least three pages in the cluster (some / each language) to confirm symmetry

    Hreflang tells search engines that several URLs are the same page in different languages or regions, and which one to show to whom. It is conceptually simple and, in practice, the most error-prone signal in international SEO — because it only works if every page in the cluster agrees with every other.

    The cluster has to be symmetrical

    If page A lists page B as its Spanish version, page B must list page A as its English version. When the reciprocal reference is missing, the pairing is treated as unconfirmed and ignored. The most common version of this failure is an entirely missing self-reference: a CMS generates the links to sister pages but not the link to the page itself, which invalidates the whole set. This is why checking one page is never enough — you have to check both ends.

    Language codes are stricter than they look

    The value must be a valid language code, optionally with a region: a two-letter language, an optional script, an optional two-letter country. Underscores instead of hyphens, country-only values, invented region codes and uppercase language codes are all rejected silently. There is no error message anywhere; the tag is simply skipped, and the page it referred to competes as a duplicate instead.

    x-default, canonicals and the interaction people get wrong

    x-default marks the page to show when no other version matches the user — typically a global landing page or a language picker. It is optional but valuable for international sites. Canonicals are where most clusters break: each language version must canonicalise to itself. Canonicalising every translation to the English original tells search engines the translations should not be indexed at all, which undoes the entire hreflang setup while looking like good housekeeping.

    Where to declare it

    Hreflang can live in HTML link tags, in HTTP headers, or in the sitemap. All three work. Using more than one at a time is the problem, because the versions drift apart and whichever was parsed most recently wins. Pick one method, implement it everywhere, and re-check after any URL structure change — a migration that redirects one language and not another breaks every cluster it touches.

    Methodology

    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.

    Frequently Asked Questions

    Monitor this continuously with LemWatch

    A one-off free hreflang tag checker shows you today. LemWatch re-runs the same checks around the clock and alerts you the moment something breaks — free for up to 10 sites, no card needed.

    HTTP Status Code Reference

    Understanding HTTP status codes helps you diagnose issues found by this tool: