/ Learning Hub / Hreflang Fixes

How to Fix Every Hreflang Error

The Hreflang Checker validates international targeting on multi-language and multi-region sites. It catches the errors that quietly bleed organic traffic: missing return tags, invalid language codes, x-default omissions, conflicts between sitemap and HTML declarations, and canonical/hreflang collisions. Hreflang errors are subtle — they don't 404 — but they push Google to serve the wrong language to the wrong country. This index covers every fix.

New here?
Start with the Hreflang Guide for the standard and why it exists, the example report for real findings, or the beginner tutorial.

By error type

Hreflang errors fall into these categories. Pick the one matching your finding:

↔️ Fix missing return tags PLANNED
Hreflang is bidirectional: if page A points at B, B must point back at A. Missing return tags void the entire annotation. How to audit reciprocity at scale and the auto-generation patterns that prevent it happening again.
🌐 Fix invalid language codes PLANNED
Hreflang uses ISO 639-1 for language (en, fr) and ISO 3166-1 alpha-2 for region (GB, US). Common mistakes: en-UK (should be en-GB), cn (should be zh-CN), br as language code.
🎯 Add missing x-default PLANNED
x-default tells Google which page to serve to users who don't match any of your language/region targets. Without it, Google guesses. The pattern: point x-default at your language-picker landing page or your English-international version.
⚔️ Fix hreflang / canonical conflicts PLANNED
The English page has a hreflang to the French page, but the French page canonicals back to the English. Google ignores the entire hreflang cluster. Why this happens, how to detect it, and the right canonical pattern for each locale variant.
🗺️ Fix sitemap vs HTML hreflang mismatch PLANNED
Hreflang declared in the sitemap doesn't match what's in the HTML head. Pick ONE source of truth — HTML head OR sitemap (not both). The auto-generation patterns for each, and which Google prefers in 2026.
🪞 Add missing self-referencing hreflang PLANNED
Every page in a hreflang cluster must include a self-reference: the English page tells Google "this page is en-GB". Missing self-references are the most common reason a cluster doesn't activate. How to audit and fix.
🔗 Fix hreflang pointing at 404s or redirects PLANNED
Hreflang targets that return 404 or 301 invalidate the cluster. Common after content deletions, locale launches, URL migrations. How to keep targets honest with automated checks in CI.
🚫 Fix blocked or noindexed hreflang targets PLANNED
Hreflang pointing at a page that's blocked by robots.txt or carries noindex in meta. Google cannot honour the annotation. Audit, fix the block, or remove the bad targets from the cluster.

By platform

Implementation depends on your CMS or framework:

📰 Fix hreflang in WordPress PLANNED
WPML, Polylang, TranslatePress hreflang generation, conflicts with Yoast/Rank Math, and the multisite-vs-plugin trade-off for multi-language sites.
🛒 Fix hreflang in Shopify PLANNED
Shopify Markets hreflang auto-generation, the country-domain vs sub-folder structure, and the common errors when launching new markets.
⚛️ Fix hreflang in Next.js / Nuxt PLANNED
i18n routing patterns, generating hreflang from locale config, the SSG vs SSR considerations, and integration with the framework's Metadata API.

What our Hreflang Checker validates

The checker crawls each declared locale variant, validates reciprocal return tags, language code syntax, x-default presence, sitemap consistency, target reachability, and canonical alignment. For the complete reference, see the Hreflang Guide or sample report.

🌍 Audit your locales first

Run the checker against your main locale pages — it will follow the cluster and validate every annotation reciprocally.

Run Hreflang Checker →
Related Guides: Hreflang Guide  ·  Example Report  ·  Beginner Tutorial  ·  Learning Hub
💬 Got a problem?