SEO, schema, meta tags
Fix Missing Hreflang: Add Language and Region Annotations
Multilingual sites without hreflang let Google pick which variant to surface, often wrong. Add hreflang annotations on every translated or localized page.
What's happening
When a site has multiple language or regional variants of the same content — /en-US/page, /es-ES/page, /fr-FR/page — Google needs hreflang annotations to know which variant to show to which audience. Without hreflang, Google treats the variants as near-duplicates and picks one canonical to rank globally, usually the variant with the most internal links and external authority.
The result is that localized content gets less reach. A French user searching in French may be served the English version because /en-US/page has more links and Google has no signal to prefer the French variant. Conversion drops on the right audience and bounce climbs because the language is wrong.
Hreflang is also the mechanism for region-targeting — distinguishing en-US from en-GB, es-ES from es-MX. Without it, Google may serve the wrong currency, the wrong product availability, or the wrong shipping policy in the SERP snippet, leading to checkout abandonment.
Why it matters
Wrong-language traffic to localized pages. Localized investment is wasted because the right audience never sees the translated version. Conversion rates on /es-ES/page can run 50-80% below /en-US/page solely because of audience mismatch.
Duplicate-content consolidation. Without hreflang, Google treats variants as duplicates and consolidates ranking signals to one canonical. The non-canonical variants drop out of the index, so even users who click through to /es-ES/page in social or email may land on a deindexed URL.
Lost regional CTR. en-GB users seeing en-US prices in dollars and US-only product availability click through less often. Even small regional misalignments compound across an entire international catalog.
Common causes
- Site has translations but no hreflang declarations.
- Translations exist on subdomains (en.example.com, es.example.com) but each subdomain treats itself as the only canonical.
- Translations exist on country TLDs (.com,.co.uk,.es) without cross-references.
- Translations are gated behind detection (auto-redirect by IP) which hides them from Googlebot.
- Hreflang only declared on landing pages, not on inner content pages.
- CMS does not have a translation linking model (each language treated as a separate site).
Detect this on your site
Run a quick scan with the SEO Auditor. The tool surfaces this exact issue with the records and context needed to apply the fix below.
Open SEO AuditorHow to fix it
- 1
Inventory all language and regional variants
Map every page that has a translation or localization to its variants. The simplest model is one canonical URL per language-region pair: /en-US/page, /es-ES/page, /fr-FR/page. Subdomain or country-TLD variants follow the same logic.
- 2
Add hreflang to every variant
Each variant page needs a for itself and every other variant. The simplest correct rule: declare ALL variants on every page in the set. Reciprocation is mandatory.
- 3
Use ISO 639-1 + ISO 3166-1 codes
Format is language-region: en-US, en-GB, es-ES, es-MX, fr-FR, fr-CA, de-DE, de-AT, pt-BR, pt-PT, zh-CN, zh-TW. Region is optional for language-only targeting (en alone targets all English-speaking regions), but explicit region codes give better targeting.
- 4
Add x-default for fallback
tells Google what to show users who do not match any declared language-region. Common targets: the English version, or a generic /en/ or /global/ landing page.
- 5
Pick a declaration mechanism that scales
Three options: tags, HTTP Link header, or XML sitemap. Sitemap is the only mechanism that scales gracefully past 50 language variants without bloating every page's HTML. Pick one — mixing them causes conflicts.
- 6
Verify in Search Console
Search Console > Legacy Tools > International Targeting > Language report shows detected hreflang per URL. Submit each language version's sitemap separately for cleaner reporting. Fix any 'No return tags' or '404' errors that appear.
Example
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en-US/blog/article</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/en-US/blog/article" />
<xhtml:link rel="alternate" hreflang="es-ES" href="https://example.com/es-ES/blog/article" />
<xhtml:link rel="alternate" hreflang="fr-FR" href="https://example.com/fr-FR/blog/article" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en-US/blog/article" />
</url>
</urlset>Hreflang declared in XML sitemap for clean scaling
Frequently asked
No hreflang is only needed when you have multiple language or regional variants of the same content. If your site is English-only and globally targeted hreflang adds no value.
Yes. Each variant should self-canonicalize and declare hreflang for all variants. If /es-ES/page canonicalizes to /en-US/page hreflang signals are ignored — Google treats /en-US as the only canonical. Use canonicalization within a language-region not across.
x-default specifies the fallback URL for users not in any of your declared language-region pairs. Usually the English version or a global landing page. It is recommended for any multilingual setup to give Google a default target.
Related fixes
SEO, schema, meta tags
Fix Broken Hreflang: Resolve Reciprocation and 404 Errors
SEO, schema, meta tags
Fix Missing Canonical Tag: Add rel=canonical to Every Page
SEO, schema, meta tags
Fix Duplicate Content: Consolidate URLs With 301 or Canonical
SEO, schema, meta tags
Fix Canonical Self-Reference Errors: Resolve Loops and Mismatches