Most guides describe x-default hreflang as “the tag for your default language,” and that one phrase is responsible for half the broken international setups on the web. It is not a language tag. It is a fallback rule — the version Google serves when a user’s language and region match none of your specific alternates. Get that distinction right and x-default becomes the safety net that catches every visitor your language-region tags miss. Get it wrong and you either leave that net empty or point it at a page that auto-redirects the crawler into a wall.
What x-default Hreflang Actually Is
Google introduced x-default in 2013 as a reserved value inside the hreflang annotation system. A normal hreflang value names a language (and optionally a region): en, en-gb, es-mx. The x-default hreflang value names no language at all. It says: “for any user whose browser settings don’t match one of my listed language-region pairs, show this URL.” It is the catch-all, the else branch in your if/else chain of alternates.
That is why calling it a “default language tag” is misleading. A German user, a Thai user, and a Brazilian user with no matching alternate all land on the same x-default page — regardless of the language it happens to be written in. The value describes a role in the fallback logic, not the content’s language.
When x-default Actually Fires
Google walks your hreflang set looking for the closest match to the user’s Accept-Language and location signals. If someone in France with a French browser hits your page and you have an fr or fr-fr alternate, they get that — x-default never enters the picture. The fallback only fires when there is no reasonable match. A visitor from Poland with a Polish browser, on a site that only publishes English, Spanish, and Japanese versions, has no alternate that fits — so Google shows them your x-default URL.
The practical takeaway: x-default matters most for the long tail of markets you don’t explicitly target. The more languages you serve, the fewer users ever see the fallback — but the ones who do are exactly the visitors you’d otherwise lose to a wrong-language landing.
x-default Is Part of a Reciprocal Set — Not a Standalone Tag
Hreflang only works when every annotation is reciprocal: if page A lists page B as an alternate, page B must list page A back. The x-default entry lives inside that same bidirectional set. Every URL in a cluster — the English page, the Spanish page, the Japanese page, and the x-default target — must list the complete set of alternates, including the x-default line, and they must all agree. A common failure is adding x-default to only the homepage while the language versions omit it. That breaks reciprocity, and Google may ignore the annotations for that cluster entirely.
Here is a minimal, correct set for a three-language site whose fallback is a global English page:
<link rel="alternate" hreflang="en" href="https://example.com/en/" /><link rel="alternate" hreflang="es" href="https://example.com/es/" /><link rel="alternate" hreflang="ja" href="https://example.com/ja/" /><link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
Notice the x-default and the en line can point at the same URL — that is normal and correct. It simply means “English is both a targeted language and the fallback.”
Three Ways to Implement x-default — Pick One
There are exactly three delivery methods for hreflang, and the x-default line goes wherever the rest of your annotations live. Choose a single method per site; mixing them is the fastest route to conflicting signals.
- HTML
<link>elements in the<head>— the most common approach, readable and easy to audit, but it inflates the head on pages with many alternates. - HTTP
Linkresponse headers — the only option for non-HTML files like PDFs, and useful when you can’t touch the template but can configure the server. - XML sitemap annotations — the cleanest at scale because all the reciprocal logic lives in one file instead of being duplicated across thousands of page heads.
For a large multilingual site, the sitemap method is usually the sane choice: one place to maintain the fallback logic, no per-template edits, and far easier to keep reciprocal. Whichever you pick, the x-default value uses the identical hreflang="x-default" syntax — only the container changes.
Where Should x-default Point?
There are three defensible targets, and the right one depends on your architecture:
- A neutral language-selection page — the classic recommendation when you have no obvious “home” market. Users who don’t match an alternate see a page that lets them choose. This is what Google originally described x-default for.
- Your global/international version — often an
enoren-uspage that serves as the generic default. Pragmatic for most businesses that publish primarily in one language plus a few translations. - A geo-neutral homepage — a landing page that does not auto-redirect based on location, letting the visitor navigate themselves.
The one thing the x-default target must never do is silently redirect users (and crawlers) by IP or Accept-Language. More on why that quietly wrecks everything below.
x-default vs a Language-Region Tag: The Distinction People Miss
People conflate x-default with en because their fallback happens to be English. But they answer different questions. en means “serve this to English-language users.” x-default means “serve this to everyone with no better match, whatever language they speak.” If you only had an en tag and dropped x-default, a Polish or Vietnamese visitor with no matching alternate has no rule telling Google what to show — you’ve left the else branch empty and Google falls back to its own guess. The x-default hreflang line exists precisely to remove that guesswork.
Why Auto-Redirecting the Fallback Backfires
The most damaging x-default mistake isn’t a syntax error — it’s pointing the fallback at a page that redirects visitors by IP or browser language. Googlebot crawls predominantly from US IP addresses. If your x-default URL detects a US IP and bounces the crawler to your en-us page, Google may never see the neutral fallback you intended, and other language versions can go undiscovered. The fix is a user-choice banner (“View this site in your language?”) that suggests a version without forcing a server-side redirect. Let the user click; never redirect the crawler.
Common x-default Hreflang Mistakes
- Treating x-default as required. It isn’t — a hreflang set without it is still valid. But omitting it means unmatched users get Google’s best guess instead of your chosen fallback, so it’s strongly recommended.
- Breaking reciprocity. Adding the x-default line to some pages in the cluster but not others. Every alternate must reference the full set.
- Multiple conflicting x-default values. One cluster, one x-default URL. Two different x-default targets in the same set is a contradiction Google can’t resolve.
- Using a made-up region code elsewhere in the set. x-default often gets blamed when the real culprit is
en-uk(should been-gb) or a region code used where a language is expected. Invalid codes get dropped, and the whole cluster can be discounted. - Pointing x-default at a noindexed or redirecting URL. The fallback must resolve to a real, indexable page.
What About Bing, Yandex, and Baidu?
Hreflang — and therefore x-default — is a Google and Yandex signal. Bing has stated it doesn’t use hreflang; it relies on its own signals like page language detection and the older content-language meta tag, so your x-default line won’t steer Bing. Baidu (China) and Naver (Korea) run entirely separate ranking systems and don’t consume hreflang either; targeting those markets means following their own webmaster requirements, not annotating for them. If your international strategy leans on Yandex for Russia, the good news is that x-default works there the same way it does on Google.
Catching x-default Errors Before They Cost You
Hreflang reciprocity is nearly impossible to verify by eye once you cross a few dozen URLs — a single missing x-default line on one language version can silently invalidate a cluster. This is where a real-crawler audit earns its keep. SEO Rocket runs a site audit with an actual crawler that flags hreflang problems the way Google encounters them: missing return references, mismatched or invalid region codes, x-default entries pointing at redirecting or noindexed URLs, and duplicate content across language versions that never got annotated at all. Because the platform also does market-specific keyword research on real Ahrefs data — with a per-country volume selector — and rank tracking across countries, you can see whether your fixed hreflang is actually pulling the right pages into the right markets, not just whether the tags validate. It’s an SEO layer, not a translation service, but it’s built by a Singapore consultant working across a genuinely multilingual region, on a playbook proven across 1,000,000+ ranking pages.
Frequently Asked Questions
Is x-default hreflang mandatory?
No. A hreflang set is technically valid without it. But without an x-default, users whose language and region match none of your alternates get whichever version Google guesses is best. Adding x-default lets you control that fallback, which is why it’s strongly recommended for any multi-language site.
Does x-default have to be an English page?
No. x-default is a fallback role, not a language. It can point at a language-selection page, a neutral global homepage, or any single version you choose as the catch-all. It’s English on many sites only because English is often the practical default — not because the value requires it.
Can x-default and a language tag point to the same URL?
Yes, and it’s common. Listing the same URL for both hreflang="en" and hreflang="x-default" simply means English is both a targeted language and the fallback for unmatched users. It’s valid and expected.
Where do I put the x-default line?
In the same place as the rest of your hreflang annotations — HTML <link> tags in the head, HTTP Link headers, or your XML sitemap. Use one method consistently across the site, and make sure every page in the cluster references the full reciprocal set, x-default included.