← All articles

Hreflang Implementation: The Guide That Actually Prevents Mistakes

Hreflang is the most commonly broken piece of international SEO. In a recent audit of a bilingual site, I found 25 hreflang conflicts on a single domain — and that's typical, not exceptional. The frustrating part: every one of those conflicts was preventable with three rules that fit on a sticky note.

What hreflang actually does (and doesn't)

Hreflang tells Google which language/region version of a page to show to which user. That's all. It does not boost rankings, it does not translate anything, and it does not fix duplicate content between different languages — it prevents your own versions from competing against each other in the same market.

If your German page shows up for English users, or your English page outranks your Arabic page in Saudi results, that's a hreflang job.

The three rules that prevent 90% of conflicts

Rule 1 — Reciprocity. If page A points to page B, page B must point back to page A. One-way hreflang is ignored by Google entirely. This is the #1 cause of "we implemented hreflang and nothing changed."

Rule 2 — Self-reference. Every page must include a hreflang tag pointing to itself. Skipping the self-referencing tag is the second most common error I find in audits.

Rule 3 — Absolute, canonical, indexable URLs. Hreflang must point to the exact canonical URL — https, correct trailing slash, no redirects, no noindexed pages. A hreflang tag pointing to a redirecting URL is a broken tag.

A minimal, correct setup

For a site with English (default), German, and Arabic:

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

Every one of the three pages carries this identical block. The x-default tells Google what to show users who match none of your languages — usually your primary version.

Language vs. region: when to use de vs de-DE

hreflang="de" targets German speakers everywhere. hreflang="de-DE" targets Germany specifically. Use region codes only when you genuinely serve different content per country (prices in CHF vs EUR, different legal pages). Otherwise, plain language codes are simpler and safer — region splitting without content differences just multiplies your maintenance surface.

One trap: hreflang="ar" covers all Arabic speakers. There is no meaningful benefit in splitting ar-AE, ar-SA, ar-EG unless your content genuinely differs — and most sites' doesn't.

How to verify your implementation

  1. Search Console → International Targeting (legacy report) or third-party validators for reciprocity errors.
  2. Crawl your own site with Screaming Frog: the hreflang tab surfaces missing return links, non-canonical targets, and unreachable URLs in minutes.
  3. Spot-check from the target market: search your brand from a German IP (or VPN) and confirm the German version appears.

When hreflang can't save you

Hreflang assigns versions; it doesn't create relevance. If your German page is a thin translation of English keywords nobody searches in German, hreflang will dutifully serve the wrong content to the right people. Multilingual SEO starts with per-market keyword research — hreflang just makes sure the results get routed correctly.

Working across English, German, and Arabic markets? I audit and fix multilingual setups for a living — book a free 30-minute call and bring your hreflang questions.

Let’s find out what’s holding your site back

Book a free 30-minute call — in English, German, or Arabic — and get at least three concrete improvements, whether we work together or not.

Book your free call