Do your language and country versions reference each other correctly?

Reciprocal hreflang annotations help AI assistants serve the right language version of your site to each user.

Scan your site

What this signal tests

For sites that publish content in more than one language or for more than one country, we check that every language version declares its siblings using hreflang annotations, that the language and region codes follow the international BCP 47 standard, that every link is reciprocated by a return link, and that a default fallback (x-default) is declared for users whose locale you do not specifically cover.

Why it matters for your visibility in AI

AI assistants increasingly serve answers tailored to a user's language and region. If your hreflang annotations are missing or asymmetric, the assistant either guesses the wrong locale variant - showing a French user your German page, for example - or gives up and shows no variant at all, citing a competitor whose international setup is correctly declared. For brands that have invested in localised content, this is a costly silent failure. The translated pages exist but never reach the users they were built for, and the localisation budget produces no measurable lift in AI visibility. A small set of correct hreflang annotations can unlock that traffic across every language version in days.

Pass criteria at a glance

Criterion Passes when
100% reciprocity + 100% valid codes + x-default present.

How we test it

For each indexable page in our sample we collect every hreflang annotation declared, in any of the three permitted locations: a link tag in the HTML head, a Link header in the HTTP response, or an xhtml:link element inside the sitemap. We then verify each language code follows the international standard, that every A-points-to-B is matched by a B-points-to-A return link, and that at least one entry uses x-default when two or more languages are declared.

Show technical detection method
Collect (locale, source, target) triples; assert reciprocity; validate codes via RFC 5646 grammar; require >=1 x-default when >=2 languages.

If your site fails: how to fix it

  1. List every language and country version of your site in a spreadsheet, with the language code, country code (if any), and URL for each variant.
  2. Pick a single location to declare hreflang - link tags in the HTML head are most common - and apply it consistently. Mixing methods across pages is a common source of errors.
  3. Make sure every language version lists every other version, including itself, as hreflang link entries. Each page must declare the entire family of variants.
  4. Use BCP 47 codes: language as ISO 639-1 (en, fr, de), optionally combined with an ISO 3166 country code (en-GB, en-US, fr-CA). Avoid invalid combinations like en-UK.
  5. Add an entry with hreflang set to x-default pointing to your generic or English fallback page, so AI assistants know what to serve to locales you have not localised for.
  6. Re-run the AI Ready Test and verify reciprocity is at 100% across the sample.

Quick facts

MaturityESTABLISHED
Weightmedium
CategoryCrawlability

Primary sources

Related signals

Frequently asked questions

I only have an English site - do I need hreflang?

No. Hreflang only matters when you publish the same content in multiple languages or for multiple countries. A single-language site with no localised variants should not declare hreflang at all - declaring it incorrectly is worse than not declaring it.

What is x-default for?

It is the fallback variant for any user whose language or region does not match a declared variant. For example, if you have English, French, and German versions, a user in Japan would see your x-default page - typically your global English site - rather than picking a random declared variant.

Can I declare hreflang in my sitemap instead of in each page?

Yes - using xhtml:link elements inside the sitemap is a valid alternative, especially useful for large sites where editing every template is impractical. Pick one method and use it consistently across the whole site to avoid mismatch errors.

Why does the reciprocity matter so much?

If A says B is its French version but B does not confirm by saying A is its English version, crawlers treat the declaration as suspect and may ignore both. Reciprocity is what tells the crawler the relationship is intentional rather than a one-sided mistake.

Run your own scan

Run a free scan and see how your site grades across all 155 AI-readiness signals.

Scan your site