Try the Hreflang Generator

Common Hreflang Implementation Errors and How to Debug Them

Most hreflang implementations have errors — missing return tags, wrong language codes, orphaned pages. Here's the seven most common hreflang mistakes, how to audit an existing implementation systematically, and what Google Search Console does and doesn't report.

By sadiqbd · June 10, 2026

Common Hreflang Implementation Errors and How to Debug Them

Most hreflang implementations are wrong — here's what the errors look like and how to find them

Hreflang is simultaneously one of the most powerful international SEO tools and one of the most commonly broken. The specification is strict: every page in a hreflang set must reference all other pages in the set, including itself. Miss one reference, use the wrong language code, or create an orphaned page, and Google ignores the entire set.

The frustration is that hreflang errors are silent — Google doesn't produce visible error messages in Search Console for most hreflang issues. You have to actively audit to discover them.


How hreflang is supposed to work

The correct implementation for a three-variant page set (English US, English UK, German):

<!-- On the English US page (en-us) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />

<!-- On the English UK page (en-gb) — must reference ALL variants -->
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />

Every page must reference every other page, including itself. The reciprocal requirement is the most commonly missed rule.


The seven most common hreflang errors

Error 1: Missing return tags (non-reciprocal)

Page A references Page B, but Page B doesn't reference Page A. Google ignores the entire hreflang relationship.

<!-- Page A correctly references B -->
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />

<!-- Page B doesn't reference A — the whole set is invalidated -->

Detection: check each linked page's hreflang tags and verify they include a return reference to the source page.

Error 2: Wrong language codes

Hreflang uses IETF BCP 47 language tags. Common mistakes:

Wrong Correct Issue
en-uk en-GB Country code must be uppercase ISO 3166-1
zh-cn zh-Hans or zh-CN Complex for Chinese variants
pt pt-BR or pt-PT Ambiguous without country for Portuguese
en_US en-US Underscore instead of hyphen

Language subtags are lowercase (en, de, fr); country codes are uppercase (US, GB, DE). The separator is a hyphen, not an underscore.

Error 3: Orphaned pages

A page exists in one language but is referenced in the hreflang set of other pages but has no hreflang tags itself. If the page returns a 404 or has no outbound hreflang annotations, Google may ignore the reference.

Error 4: Hreflang pointing to redirects

Hreflang URLs should point directly to the canonical version of each page, not through redirects. If the German page redirects from /de/page/ to /de/seite/, the hreflang should reference the final destination URL.

Error 5: Inconsistent canonical and hreflang URLs

If Page A's canonical is https://example.com/en-us/page/ but the hreflang references https://example.com/en-US/page/ (different capitalisation), Google may not recognise them as the same URL.

Error 6: Hreflang only in sitemap, not on pages

Google supports hreflang annotations in sitemaps as an alternative to <link> tags in HTML. But mixing implementations — some pages using HTML tags, some using sitemap-only — can create gaps where some pages have no return annotations.

Error 7: Using hreflang for content that isn't actually localised

Hreflang should only connect pages with genuinely localised content. Using it to connect pages with trivially different content (same article, price changed from USD to EUR but otherwise identical English) provides no user value and may trigger thin content signals.


Auditing an existing hreflang implementation

Step 1: Crawl and extract

Screaming Frog, Sitebulb, or an online hreflang tester can crawl a site and extract all hreflang annotations. For smaller sites, manually inspect pages.

Step 2: Check for reciprocal tags

For each hreflang pair (A→B), verify the reverse exists (B→A). A spreadsheet mapping all hreflang relationships makes this systematic.

Step 3: Validate language codes

Use an IETF BCP 47 validator. The hreflang Generator at sadiqbd.com uses correct language code format — compare your existing tags against the generator's output.

Step 4: Check Google Search Console

The International Targeting report in GSC shows some hreflang errors — specifically return tag errors and language code errors. Not comprehensive, but catches the most common issues.

Step 5: Check rendered HTML for JavaScript-heavy sites

If hreflang is injected by JavaScript, verify the rendered HTML (DevTools → Elements) contains the tags. Google needs to execute JavaScript to see them.


Debugging hreflang in Google Search Console

The International Targeting report (Sitemaps → International Targeting in older GSC, or under Settings → International Targeting in some configurations):

Errors reported:

  • Return tag error: Page A references Page B, but Page B doesn't reference Page A
  • Language attribute error: unrecognised language code

What GSC doesn't report:

  • Pages that render hreflang via JavaScript but fail rendering
  • Hreflang pointing to redirects
  • Orphaned pages with no hreflang

How to use the Hreflang Generator on sadiqbd.com

  1. Enter each language variant — URL + hreflang language-region code
  2. Generate the complete tag set — the tool produces tags for all pages simultaneously
  3. Copy to each respective page — each page gets the same complete set of tags
  4. Verify with a crawl tool — after implementation, confirm all tags are rendering in HTML

Frequently Asked Questions

How long does it take Google to recognise corrected hreflang? After fixing hreflang errors, Google needs to recrawl all affected pages. For large sites this can take weeks. Submitting updated sitemaps in Search Console accelerates recrawling.

Should I use hreflang in the sitemap or HTML? HTML is more reliable — it's discovered whenever the page is crawled. Sitemap-based hreflang requires Google to process the sitemap after crawling the page. For large sites, sitemap-based hreflang can be more manageable to maintain.

Is the Hreflang Generator free? Yes — completely free, no sign-up required.


Hreflang errors are silent until rankings suffer. Systematic auditing after implementation — and after any site structure change — ensures the international targeting signals Google receives are accurate and complete.

Try the Hreflang Generator free at sadiqbd.com — generate correctly formatted, reciprocal hreflang tag sets for any number of language variants.

Try the related tool:
Open Hreflang Generator

More Hreflang Generator articles