Key takeaways
- hreflang is a disambiguation system: it tells Google which language/region version to show
- x-default is the “fallback” for users outside your targeted locales
- Here is the minimal correct setup, common failure modes, and how to validate in GSC without cargo-culting
Table of Contents
Most “hreflang problems” are not hreflang problems.
They are canonicalization and duplication problems that show up as:
- wrong language ranking in the wrong country
- the “wrong” version getting indexed
- Search Console noise (duplicates, alternates, unexpected canonicals)
Start with the base model first:
TL;DR
Use hreflang when you have multiple URLs that represent the same page intent in different languages or regions.
Use x-default when you want a neutral fallback for users outside your targeted locales (or when you have a language selector / global landing).
If you have only one language version: you do not need hreflang.
What hreflang actually does
hreflang is not a ranking hack.
It is a routing hint to search engines:
- “This URL is the English version”
- “That URL is the Russian version”
- “If you can’t decide, use this fallback”
Google can still index all versions. You are not “noindexing” anything. You are reducing ambiguity.
What x-default means (in practice)
x-default is the “none of the above” option.
Use it when:
- you have a global homepage that is not tied to a single language
- you have a language selector page
- you run multiple country/language versions and want a stable fallback
If you force everyone into a language based on IP (hard redirects), you can create crawl and indexing problems. x-default is often the cleaner alternative.
Minimal correct setup (copy/paste mental model)
For each page intent, you need a cluster:
enversionruversion (or any other)- optional
x-default
Every page in the cluster must:
- reference all other pages (reciprocal)
- be canonical to itself (usually)
Example:
<link rel="alternate" hreflang="en" href="https://casinokrisa.com/start" />
<link rel="alternate" hreflang="ru" href="https://casinokrisa.ru/start" />
<link rel="alternate" hreflang="x-default" href="https://casinokrisa.com/start" />
Notes:
x-defaultcan point to your global.comversion (common), or to a selector page.- Do not mix:
hreflangthat points to URL A while canonical points to URL B (unless you know exactly why).
The 6 failure modes that break hreflang
1) No reciprocity
If EN links to RU, but RU does not link back, Google often ignores the cluster.
2) Wrong canonical
If your Russian page canonicalizes to the English page, you are telling Google:
- “RU exists” (hreflang)
- “RU is not primary” (canonical)
Pick one truth. Most of the time: self-canonical on each language version.
3) Wrong status codes
hreflang URLs must be crawlable:
- 200 OK
- not blocked by robots
- no redirect chains
If you need to move URLs, fix the redirects first:
4) Using the wrong language codes
Use proper codes:
enoren-USruorru-RU
Do not invent codes.
5) One page mapped to multiple unrelated intents
If your RU page is not a translation but a different page, do not connect it with hreflang.
hreflang is for “same intent, different locale”.
6) Auto-redirecting Googlebot by geo/IP
If Googlebot always gets redirected away from the page it is trying to crawl, it cannot verify the cluster.
If you must do geo logic, prefer:
- server-side rendering without hard redirects, or
- a selector page with
x-default
How to validate (fast, without rituals)
Step 1: check HTML is actually present
Fetch the page source and confirm the <link rel="alternate" hreflang=...> tags exist in the HTML Googlebot sees.
Step 2: check canonicals
Each version should be canonical to itself unless you intentionally consolidate.
If you are seeing “duplicate without user-selected canonical”, fix consolidation first:
Step 3: use GSC URL Inspection (one page per locale)
Inspect EN, then RU:
- is the canonical correct?
- is the page indexed?
- are there unexpected “alternate page” statuses?
If pages are crawled but not indexed, start here:
FAQ
Do I need x-default if I have only en and ru?
Not always. You need it if you want a stable “fallback” for users outside your main locales or if your UX relies on a selector.
Can hreflang fix ranking?
It fixes wrong-country / wrong-language exposure. It does not create authority. Think: disambiguation, not growth.
Hreflang vs canonical — which wins?
Canonical is a stronger consolidation signal. If they conflict, Google often follows canonical.
So: first decide consolidation, then add hreflang.
Next in SEO & Search
Up next:
Entity-first SEO for personal brands (2026): a practical checklist that gets you indexed, trusted, and surfacedEntity-first SEO is how Google connects pages into “who this is” and “why it’s credible”. This checklist shows how to build a personal brand entity (Person/Organization, sameAs, rel=me, author signals, hubs, and internal linking) so your site becomes easier to interpret and worth indexing.