Hreflang Tags: Serving the Right Language to the Right User

Hreflang tags tell search engines which language version of a page to show. Learn how they work, common implementation mistakes, and how to audit them.

You have your page in English and Spanish. Google is showing the English version to Spanish speakers.

When your site exists in multiple languages or targets multiple regions, hreflang tags tell Google which version to show to which audience. Without them, Google guesses — and often gets it wrong.

The result? Spanish-speaking users land on your English page, bounce, and you lose the traffic you worked hard to get.

How hreflang works

Hreflang is an HTML attribute that declares the language and optional region of a page, and links it to its alternate versions:

<link rel="alternate" hreflang="en" href="https://example.com/page" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />

The x-default tells Google which version to show when no other hreflang matches the user's language.

When you need hreflang

  • You have the same content translated into multiple languages
  • You have regional variations (US English vs UK English)
  • You serve different content to different countries (pricing, availability)

If your site is in one language only, you don't need hreflang.

The mistakes that break everything

Hreflang has a reputation for being hard to implement — because people keep making the same mistakes:

MistakeWhat goes wrong
Missing return linksPage A references Page B, but B doesn't reference A. Google ignores both.
Wrong language codesUsing "uk" instead of "en-GB" or "jp" instead of "ja"
Missing x-defaultGoogle doesn't know which version is the fallback
Hreflang on non-canonical URLsThe canonical and hreflang point to different pages — confusion
Inconsistent across pagesSome pages have hreflang, others don't

The return link rule is the most broken. Every hreflang tag must be bidirectional. If the English page says "my Spanish version is /es/page", then /es/page must also say "my English version is /page". If either side is missing, Google ignores the whole set.

How to audit hreflang

Hreflang issues are nearly impossible to catch manually because they require cross-checking between multiple pages. An automated audit should:

  1. Check every page for hreflang tags
  2. Verify return links exist on both sides
  3. Validate language and region codes
  4. Confirm hreflang URLs match canonical URLs
  5. Detect missing x-default tags
  6. Flag pages where some language versions have hreflang and others don't

Kaitico checks hreflang implementation across every crawled page, validating return links, language codes, and consistency — so you can fix international SEO issues before they cost you traffic.

Want to check your site for this issue?

Kaitico scans your entire site and finds all SEO issues in minutes.

Start Free Audit