← Blog · October 2, 2026

Hreflang tags for international SEO

How hreflang tells search engines which language and region each version serves, and how to avoid the classic errors.

If your site serves the same content in multiple languages or to multiple regions, hreflang tells search engines which version to show to which audience. Without it, you risk the wrong language ranking, or pages competing with each other.

The syntax

Each version links to all others, including itself:

<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
  • Language is ISO 639-1 (en, de, pt); you may add a region (en-US, pt-BR)
  • x-default points to the fallback page for unmatched languages

The rules

  • Reciprocal: if A links to B, B must link back to A
  • Self-referencing: each page includes an hreflang pointing to itself
  • Absolute URLs: always full https://… links
  • One language per URL: do not serve two languages at the same URL

Hreflang is not canonical

Canonical says "this is the preferred URL for this content." Hreflang says "this is the same content in another language." Each language version should keep its own self-canonical while cross-linking with hreflang.

Common mistakes

  • Missing return links (the most frequent error)
  • Using hreflang="en" when you meant a specific region
  • Pointing at redirects instead of final URLs
  • Forgetting x-default

Generate the block

List each language and URL in the free hreflang generator to get a clean, reciprocal set of tags. There are framework-specific versions for WordPress and Next.js.

Try the free tool

Generate hreflang tags for multilingual and multi-region sites, with x-default support.

Open Hreflang Generator