Free & instant — no email, no signup

Free Hreflang Checker

One of the free tools from KinetixSEO, an SEO and AI-citation (GEO) checker. Check any page's hreflang tags for valid language codes, an x-default fallback, a self-reference, and duplicates — then, for every declared target, confirm it actually links back. Most free hreflang checkers only validate the tag's syntax; this one follows every declared target and checks the reciprocal return tag too, which is where most real-world hreflang setups quietly break.

Example — not a real scan

What you'll get

Results for

https://example.com/

Hreflang tags
4
x-default
Present
Self-reference
Present

Issues found

  • Duplicate hreflang value "en-us" declared twice

Reciprocity check

Checked 3 declared targets.

Missing return tags

  • fr-fr → https://example.com/fr/ does not link back

Declared entries

  • en-ushttps://example.com/
  • en-gbhttps://example.com/uk/
  • fr-frhttps://example.com/fr/
  • x-defaulthttps://example.com/

What the Free Hreflang Checker checks

  • Every hreflang value is a valid, well-formed language (and optional region) code
  • The page includes a self-referencing hreflang tag for its own language/region
  • An x-default tag is present for the fallback/unmatched-locale case
  • No two hreflang tags on the page target the same language-region pair
  • Reciprocal return tags: each alternate URL actually hreflang-links back to this page (a one-way hreflang link is invalid per Google's own spec)
  • hreflang tags are declared in <head>, not in the body, where crawlers ignore them

Frequently asked questions

What's the difference between an hreflang syntax error and a reciprocity failure?

A syntax error means the tag itself is malformed — an invalid language code, a duplicate declaration for the same language-region pair, or a tag placed in the body instead of <head> where crawlers ignore it. A reciprocity failure is different: the tag is syntactically fine, but the page it points to doesn't link back with a matching hreflang tag of its own. Google treats a one-way hreflang link as invalid per its own spec — both pages in a language pair need to reference each other, or the whole cluster can be ignored. This tool checks both, since most free hreflang checkers only validate syntax and miss reciprocity entirely.

Why does this tool need to fetch every URL in my hreflang cluster?

Checking reciprocity requires actually visiting each declared alternate URL and reading its own hreflang tags back — there's no way to confirm a return link exists without fetching the target page. This is slower than a pure syntax check, which is why most free hreflang tools skip it, but it's the check that catches the failure mode that actually breaks hreflang in practice: pages get added or renamed on one language version and the corresponding update never happens on the others, leaving stale one-way links that Google silently discards.

Do I need an x-default tag?

x-default isn't strictly required by the hreflang spec, but it's the recommended fallback for a visitor whose language or region doesn't match any of your declared alternates — without it, search engines have to guess which version to show that visitor, typically falling back to whichever URL they'd rank on other signals alone. If your site serves genuinely different content by region (not just language), an x-default pointing at a sensible default (often the English or global version) removes that ambiguity.

What happens if two hreflang tags on the same page target the same language-region?

This is flagged as a duplicate, and it puts search engines in an ambiguous position — they have no reliable way to decide which of the two conflicting declarations to trust for that language-region pair, so the entire hreflang cluster for that page risks being disregarded rather than one of the two duplicates simply winning. This usually happens when hreflang tags are generated by more than one system on the same page (a CMS default plus a manually added set, for example) and one wasn't cleaned up when the other was added.

Does self-referencing hreflang matter if the page is only in one language?

If your site truly has only one language version with no alternates, hreflang tags aren't needed at all — the check is only relevant once you have two or more language/region versions of a page. But once you do add hreflang, each page in the cluster (including the page itself) needs to include a self-referencing tag pointing back to its own URL. Missing the self-reference is a common oversight — it's easy to remember to link to the *other* language versions and forget the page needs to declare its own hreflang value too.

Go deeper

This free check looks at one signal in isolation. KinetixSEO's paid report combines every signal below into one prioritised fix list and tracks it over time.

See the full paid report for this →