Hreflang Mistakes: 12 Common Errors and How to Fix Them

Hreflang Mistakes: 12 Common Errors and How to Fix Them

If you have set up hreflang tags and still see the wrong language page showing in Google search results, you are not alone.

Hreflang is one of the most technically unforgiving areas of international SEO. A single wrong character, a missing return tag, or one mismatched canonical can silently break your entire multilingual setup without triggering any obvious error in the short term.

The problem is that most hreflang mistakes are invisible. You do not get an immediate warning. You only notice them weeks later when the wrong page ranks in the wrong country, or your alternate pages simply disappear from search results.

In this guide, you will find the 12 most common hreflang mistakes, why each one happens, and exactly how to fix them with real code examples. If you are managing international SEO for a client or a large website, this is the checklist you need before you push anything live.


What Is Hreflang and Why Do SEOs Get It Wrong?

Hreflang is an HTML attribute that tells search engines which language and regional version of a page to show based on the user’s location and browser language. Google, Yandex, and other search engines use it to serve localized results correctly.

Here is a basic example:

html
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

The reason hreflang mistakes are so common is that the implementation looks simple but has a lot of rules running underneath. Every page in your language cluster must confirm the relationship from its own code. Every URL must be absolute. Every language code must follow a specific ISO format. One gap anywhere and the whole thing breaks.

For a broader look at why technical details like this matter for rankings, see our guide on technical SEO for website performance.


12 Hreflang Mistakes and How to Fix Them

1. Missing Return Tags

This is the most common hreflang mistake and one Google specifically flags in Search Console under the “No Return Tags” warning.

What goes wrong: You add hreflang tags on Page A pointing to Pages B and C. But Pages B and C do not point back to Page A or to each other.

Why it matters: Google verifies hreflang by checking all referenced pages. If a page is mentioned in hreflang but does not confirm the relationship from its own code, Google ignores the entire tag set for those pages.

The fix: Every page in your hreflang cluster must reference all other pages in the cluster, including itself.

html
<!-- On the English page -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />

<!-- On the French page — must mirror exactly -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />

Think of it as a mutual confirmation. Both sides have to agree for Google to trust the relationship.


2. Missing Self-Referencing Tags

Even experienced SEOs miss this. Each page must include a hreflang tag that points to itself.

What goes wrong: A page references all its alternates but forgets to list itself in the hreflang cluster. This is classified as a source code issue in Google Search Console.

Why it matters: Without a self-referencing tag, Google cannot cleanly determine which page is the authoritative version for that specific language or region. It leads to indexing inconsistencies and misinterpretation of page relationships.

The fix:

html
<!-- Self-referencing tag on the French page -->
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

The French page must include its own URL in the hreflang set. It looks redundant but Google requires it.


3. Wrong Language or Country Codes

ISO language codes like en, fr, de and ISO country codes like US, FR, DE need to follow a strict format. Using wrong or invented codes is one of the most common hreflang errors.

Common wrong codes:

Wrong Correct Issue
en_US en-us Underscore instead of hyphen
en-UK en-gb Wrong country code for Britain
FR fr Country code used without language
chinese zh-hans Made-up language code

The rule: You can use language code alone (en) but never country code alone (US). Language always comes before country.

The fix: Cross-check every code you use against the official ISO 639-1 language code list and ISO 3166-1 alpha-2 country code list before implementation. A single wrong code on a template affects every page on your site.


4. Using Relative URLs Instead of Absolute URLs

Hreflang tags require full absolute URLs. Relative paths do not work.

Wrong:

html
<link rel="alternate" hreflang="en" href="/en/" />

Correct:

html
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

Why it matters: Google needs the complete URL including the protocol and domain to identify and index the correct page. Relative paths break the implementation especially for international setups where alternate pages may live on subdomains or ccTLDs.

The fix: Always use full absolute URLs in every hreflang tag. Use Screaming Frog to crawl your site and filter for hreflang attributes containing relative paths.


5. Underscore Instead of Hyphen in Language-Region Tags

This is a one-character typo that causes a full implementation failure. The correct separator between language and country code is a hyphen (-), not an underscore (_).

Wrong: hreflang="en_US"
Correct: hreflang="en-us"

Google cannot parse underscored codes and will silently ignore those hreflang tags. The language code is case-insensitive, but the hyphen is not optional.

The fix: Run a site-wide find-and-replace in your CMS templates or codebase. Replace every instance of underscore in hreflang values with a hyphen. This is especially important if you migrated from a platform that used underscore formatting for locale codes.


6. Missing x-default Tag

The x-default tag tells Google which page to show when no other hreflang tag matches the user’s language or location. Skipping it is a missed opportunity that can create a poor experience for unmatched audiences.

Example scenario: You have pages for en-us, fr-fr, and de-de. A user in Japan searches Google. Without x-default, Google guesses which version to show. With x-default, you control that fallback.

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

The fix: Add x-default to every hreflang cluster pointing to your international homepage or a language selection page. It is technically optional but has real SEO and UX value for global sites.


7. Hreflang Tags Pointing to Broken or Redirected URLs

This is one of the hardest hreflang mistakes to catch because the URLs often worked fine at some point and broke later.

What goes wrong: A hreflang tag points to a URL that now returns a 404, 410, or triggers a 301 redirect. Bots follow the hreflang reference, hit a dead end, and cannot crawl the intended alternate page.

Why it matters: Pages that cannot be crawled cannot be indexed. If your alternate pages are not indexed, your hreflang setup is completely wasted. This also directly drains your crawl budget on dead-end URLs. Understanding crawl budget optimization is essential for large international sites where this adds up fast.

The fix: Run your full hreflang URL list through Screaming Frog or Sitebulb regularly. Filter for URLs returning 4xx or 5xx responses and update them immediately. Make hreflang URL audits a standard part of every site migration checklist.


8. Canonical and Hreflang Tag Conflict

This is where technically solid websites still break their international SEO. Canonical and hreflang tags interact in a specific way and conflicting signals confuse Google’s crawlers.

What goes wrong: You have three alternate pages (English, French, German). Each page has correct hreflang tags pointing to all three. But the canonical tag on the French and German pages points to the English page.

Now Google sees a contradiction. Hreflang says all three pages are valid alternates. Canonical says only the English page is the real one. Google may consolidate everything to English, making your international setup pointless.

The fix: Each page needs a self-referential canonical. The English page’s canonical points to itself, the French page’s canonical points to itself.

html
<!-- On the French page -->
<link rel="canonical" href="https://example.com/fr/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />

This is one of the most impactful common SEO mistakes you will find in international setups, and it is almost always a template-level issue.


9. Blocked Pages Referenced in Hreflang

If a page is blocked in robots.txt or carries a noindex meta tag, Google will not crawl it. If that same page is referenced in your hreflang cluster, the return links from that page cannot be verified.

What goes wrong: A checkout page, staging URL, or login page accidentally gets included in hreflang annotations. Google tries to verify the return tag but cannot access the blocked page, breaking the confirmation loop for the entire cluster.

The fix: Audit your hreflang implementation and cross-reference it against your robots.txt and noindex pages. Remove any blocked or noindexed pages from hreflang tag sets. Only fully crawlable, indexable pages should ever appear in hreflang annotations.


10. Mixing Two Different Hreflang Implementation Methods

There are three valid ways to implement hreflang: in the HTML <head>, in your XML sitemap, or via HTTP headers for non-HTML files like PDFs. Each method works on its own.

What goes wrong: Some sites implement hreflang in both the HTML head and the XML sitemap simultaneously, thinking more signals equals better results. It does not. It creates duplication and can confuse how crawlers process and prioritize the tags.

The fix: Choose one implementation method and use it consistently across your entire site. For most sites, the HTML <head> method is simplest to manage. For large sites with thousands of URLs, the XML sitemap method scales better. Never use both at the same time.


11. Adding Hreflang to Pages Not Yet Translated

This is a scaling mistake. Teams add hreflang tags for a language before the page content is actually translated, planning to update the content later.

Why it is a problem: Google follows the hreflang tag, lands on a page still written in English, and flags it as a mismatch between declared language and actual content. This damages your international targeting signals and can create quality issues that affect the broader site.

The fix: Only add hreflang tags once the page content is fully available in the target language. If you are rolling out translations in phases, hold the hreflang tags back until each language version is live and properly translated.


12. Never Validating Hreflang After Implementation

This is a process failure more than a technical one. Even a perfectly implemented hreflang setup can break over time due to site migrations, CMS updates, URL restructures, or template changes.

The fix: Make hreflang validation a recurring part of your technical SEO audits. Use these tools:

→ Google Search Console — Check the International Targeting report for flagged errors

→ Screaming Frog — Crawl and export all hreflang annotations for cross-referencing

→ Ahrefs Site Audit — Flags hreflang issues as part of its technical health score

→ hreflang.org validator — Free tool specifically built for testing hreflang tag sets

Set a quarterly calendar reminder. Run audits immediately after any site migration or major structural change.


Hreflang Implementation Checklist

Use this before every hreflang go-live:

All pages in the cluster have return tags pointing to each other

Every page includes a self-referencing hreflang tag

Language and country codes follow ISO standards with a hyphen separator

All URLs are absolute (full https:// paths, no relative URLs)

x-default tag is included pointing to the correct fallback page

No hreflang tags point to 4xx, 5xx, or redirected pages

Canonical tags on each page are self-referential

No blocked or noindexed pages appear in hreflang annotations

Only one implementation method is used across the entire site

All hreflang-tagged pages contain actual content in the declared language


How Hreflang Mistakes Hurt Your International Rankings

Getting hreflang wrong does not just send users to the wrong page. The downstream SEO effects are significant.

Duplicate content signals. When hreflang fails, Google treats your language alternates as duplicate pages instead of localized versions. This dilutes ranking signals and can suppress all versions of the page simultaneously.

Wasted crawl budget. Broken hreflang URLs send bots to dead ends, consuming crawl budget without any indexing benefit. On large international sites with thousands of URLs, this is a serious efficiency drain.

Wrong audience targeting. If the right language page does not reach the right users, bounce rate goes up, dwell time goes down, and behavioral signals weaken. These signals influence how Google evaluates page quality over time.

Competitive disadvantage. In international markets, a technically clean hreflang setup is a real edge over competitors who have implementation errors. Fixing hreflang mistakes is often one of the highest-ROI technical SEO tasks available to an international site.


Frequently Asked Questions About Hreflang Mistakes

Q1. Does Google penalize hreflang errors?

Google does not issue a direct ranking penalty for hreflang mistakes. However, errors cause your alternate pages to be ignored, misindexed, or shown to the wrong audience, which hurts your rankings and traffic indirectly.

Q2. How do I check if my hreflang tags are working?

Use Google Search Console’s International Targeting report for flagged errors. Screaming Frog lets you crawl your full site and export hreflang data for manual checking. The hreflang.org validator is also a quick free option for testing individual page tag sets.

Q3. Can hreflang mistakes cause duplicate content issues?

Yes. Missing return tags or conflicting canonical tags can cause Google to treat your localized pages as duplicates rather than alternates. This is the opposite of what hreflang is designed to do.

Q4. Is hreflang necessary if I only have one language?

No. Hreflang is only needed when you have the same content in multiple languages, or the same language targeting different regions, for example en-us and en-gb.

Q5. What does the x-default hreflang tag do?

It specifies which page to display when none of your targeted languages or regions match the user’s browser settings or location. It is typically your homepage or an international landing page with a language selector.

Q6. How often should I audit hreflang tags?

At minimum, quarterly. Always audit after any site migration, URL restructure, or major CMS update, as these are the most common triggers for hreflang breaking silently.


Wrapping Up

Hreflang mistakes are easy to make and slow to discover. Most of them sit quietly in your code causing wrong pages to rank in wrong countries without triggering any obvious alarm. That is what makes them genuinely dangerous for international SEO.

Every mistake in this guide has a clear, actionable fix. Start with a proper audit using Google Search Console and Screaming Frog, work through the implementation checklist, and make hreflang validation a regular part of your technical workflow.

International SEO done right means the right page reaching the right person in the right language. Hreflang is the technical foundation that makes that possible.

If you want to dig deeper into finding and fixing technical issues across your site, check out our guide on advanced Google Search Console filters that experienced SEOs use to surface problems faster.

Tanishka Vats

Lead Content Writer | HM Digital Solutions Results-driven content writer with over five years of experience and a background in Economics (Hons), with expertise in using data-driven storytelling and strategic brand positioning. I have experience managing live projects across Finance, B2B SaaS, Technology, and Healthcare, with content ranging from SEO-driven blogs and website copy to case studies, whitepapers, and corporate communications. Proficient in using SEO tools like Ahrefs and SEMrush, and content management systems like WordPress and Webflow. Experienced content writer with a proven track record of creating audience-centric content that drives significant results on website traffic, engagement rates, and lead conversions. Highly adaptable and effective communicator with the ability to work under deadlines.

Write a comment

Your email address will not be published. Required fields are marked *