Lang and X-Default

No Comments
Lang and x-default
TL;DR: A single URL is allowed to carry both a language-specific hreflang (like en-us) and the x-default value at the same time. That is valid and often intentional: it means "this is the US English page, and it is also the fallback for anyone we do not have a better match for." This check is a sanity flag, not an automatic error. Confirm the intent.
Check code
HR-018
Severity
Info
Usually
Intentional
Action
Verify intent
Detect with
Screaming Frog

What this check is flagging

In an hreflang cluster, x-default is a special value that names the fallback page: the version Google serves when none of your language or region annotations is a good match for the searcher. Think of a Portuguese speaker in a market where you only publish English, French, and German. There is no Portuguese page, so Google falls back to whatever URL you tagged x-default.

This check notices that one URL is tagged with both a real language code and x-default. For example the same page appears as hreflang="en" and hreflang="x-default". That is completely legal per Google's specification. A URL can serve double duty as both a specific language version and the global fallback. The check exists because it is worth a two-second confirmation that you meant to do it, since it is also a shape that shows up when someone misconfigures a template.

Searcher lands, Google picks a version

French user German user Portuguese user (no PT page)

fr/ hreflang="fr" de/ hreflang="de"

en/ hreflang="en" + hreflang="x-default" <- one URL, both roles

The English page is both the EN version and the catch-all fallback.

Why this matters for SEO

Get x-default right and every searcher you do not explicitly target still lands somewhere sensible instead of on a randomly guessed locale. Assigning it to your primary language page is one of the most common and correct patterns on the web, so the combination this check flags is usually a sign your setup is working, not broken.

The reason a validator bothers to surface it: the same shape appears when a template is misfiring, for instance stamping x-default onto every page in the cluster instead of one, or dropping it onto a thin redirect selector page while also labeling that page as a real language version. Those are genuine problems. So this is a "look once and confirm" flag. If you meant it, dismiss it. If you did not, you just caught a real bug cheaply.

Valid versus questionable patterns

PatternVerdictNotes
One page = en and x-defaultValidClassic fallback to primary language
A generic selector page = x-default onlyValidFine when it is a real landing/selector
Every page tagged x-defaultBrokenOnly one fallback per cluster
No x-default anywhereOptionalAllowed, but you lose fallback control

How to detect and confirm it

  • Screaming Frog SEO Spider: the Hreflang tab lists the x-default assignments and confirmations per cluster. Sort by hreflang value to see exactly which URL owns x-default and whether more than one does.
  • Google's Rich Results and URL Inspection: inspect the page to see the alternates Google actually parsed, including which URL it read as the default.
  • Sitebulb: its hreflang report calls out missing or duplicated x-default across a cluster, which is the failure mode you actually care about.
  • Manual source check: view the head or sitemap and confirm exactly one URL in the cluster carries x-default, and that it is the URL you intended.

How to handle it, step by step

  1. Decide your fallback deliberately. For most sites the fallback should be the primary language homepage or the primary language version of the page. Pick it on purpose rather than letting a plugin guess.
  2. Assign x-default to exactly one URL per cluster. That URL can, and often should, also carry its own language code. Both on one page is fine.
  3. Confirm the template is not spraying it. If your CMS added x-default to every alternate, fix the template so only the intended page gets it.
  4. Keep the href absolute and self-consistent. The x-default href follows the same rules as any hreflang: full absolute URL, matching the target page's canonical.
  5. Re-crawl and confirm. One x-default per cluster, on the page you chose, with clean return tags.

What "good" looks like

Each hreflang cluster has exactly one x-default URL, and it is the fallback you consciously chose. That URL frequently doubles as a specific language version, and that is expected rather than a defect. A crawl shows one default per set, no duplicates, no missing return tags. Searchers you do not target land on the fallback you picked instead of a coin flip.

Do

  • Let one URL be both a language version and x-default when that is your intent
  • Assign x-default to your primary language page for most setups
  • Keep exactly one x-default per cluster
  • Confirm the choice in Screaming Frog after any template change
  • Use an absolute href that matches the page canonical

Don't

  • Treat this flag as an automatic error to strip out
  • Stamp x-default onto every page in the cluster
  • Point x-default at a thin or broken redirect page
  • Leave two different URLs both claiming x-default
  • Assume no x-default is safer: you just lose fallback control

FAQ

Can one URL really have both a language code and x-default?
Yes. Google's documentation explicitly allows it. A page can be your English version and also the fallback for everyone you do not otherwise target. That combination is exactly what this check surfaces, and it is usually correct.
Is x-default required?
No, it is optional. Without it Google will still pick a version for unmatched searchers, you just do not control which one. For international sites it is worth setting so the fallback is your decision.
When is this flag an actual problem?
When more than one URL in a cluster claims x-default, when a template stamps it on every page, or when it points at a page that is not a real destination. Those are the cases the flag is trying to help you catch.
Should x-default point at a language selector page instead?
It can, if that selector is a genuine landing page with content and not just an instant redirect. Many large sites instead point x-default at their primary language page, which is simpler and avoids an empty intermediate step.

Not sure your fallback logic is right?

x-default bugs are easy to miss because they only hurt the searchers you did not plan for. We map your full hreflang graph and confirm every cluster has one deliberate fallback.

Get an advanced SEO audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog