HomeGuides › What 60 Sites Actually Do With hreflang

What 60 Sites Actually Do With hreflang

We parsed hreflang on 60 high-traffic homepages. Less than half declare it, and a third skip x-default — the tag Google recommends but never requires.

How this was measured

On 2026-09-24 we fetched the homepage of 78 high-traffic domains and looked for <link rel="alternate" hreflang="..."> tags in the initial HTML. Of the 78, 60 returned a usable page: 41 over a direct connection and 19 over a local proxy, because some domains are unreachable from our network without one. The other 18 were unreadable — four behind bot protection returning 403 or 418, the rest timing out or returning 404.

Extraction used a single regex over <link> tags, keeping only those whose rel contains alternate and whose hreflang is non-empty. A bare hreflang="" is treated as absent, because an empty annotation is the same as none and counting it would invent findings that are not there. The script and the domain list ship with this site, so every number below can be re-derived rather than taken on trust.

Finding 1: fewer than half use hreflang at all

28 of the 60 sites (46.7%) declare hreflang. The other 32 declare none. That sounds low until you look at who the 32 are: Amazon, LinkedIn, Reddit, GitHub, Wikipedia, the New York Times, Bloomberg — overwhelmingly monolingual or single-locale sites where hreflang would be meaningless. hreflang exists to tell a crawler "this page has equivalents in other languages or regions." A site with one language has nothing to point at, so its absence is correct, not a gap.

So the coverage number is not a score. It is a reminder that hreflang is a multilingual-site tool, and most of the web's famous names are not multilingual in the way that needs it.

Finding 2: when sites do it, they do it thoroughly

The 28 that declare hreflang are not dabbling. 24 of them ship six or more alternate links; the median site in the group declares 15. The outliers are startling: uber.com emits 173, stripe.com 89, mozilla.org 80, linkedin.com 77, shopify.com 71. The average across the 28 is 30.9 annotations per site.

Two things explain the spread. First, genuinely global products — ride-hailing, payments, browsers — really do serve dozens of locales, and each one is a link. Second, a few sites that are not obviously global still go deep: ahrefs.com and semrush.com, both SEO vendors, declare 14 each, which is consistent with the pattern we have seen across every survey on this site — the companies whose business is this metadata treat it more carefully than average.

The practical point for a normal site: you do not need 70 annotations. You need one correct set per localized URL, which for most operators is a handful. The big numbers belong to companies with genuinely big locale matrices.

Finding 3: the common miss is x-default

Of the 28 sites that declare hreflang, 9 (32.1%) have no x-default annotation. The list is not obscure: bbc.com, atlassian.com, notion.so, pinterest.com, docker.com, kubernetes.io, semrush.com, squareup.com, uber.com.

Google recommends x-default as the fallback for users whose language or region matches none of your specific alternates. Without it, the version an unmatched user sees is undefined, and because hreflang errors are silent, no validator will tell you it is missing. It is recommended, not required — a site without x-default is not penalised — but for sites serving this many locales, leaving it out is a real, if mild, gap. That a third of even the careful sites skip it tells you how easy it is to forget.

Finding 4: the format is cleaner than expected

We checked every hreflang value against BCP-47. Zero sites used a relative URL in the href. The values a naive validator might flag as non-standard — zh-Hans, zh-Hant-TW, sco, ast — are all valid: the Hans/Hant forms are script subtags, and sco and ast are legitimate ISO 639-3 language codes used by sites that genuinely serve Scots and Asturian. Nobody in the sample shipped a broken value like "english" or "en_en".

This is a useful contrast with our other surveys, which did find real defects. hreflang's format is mature enough that the mistakes are about relationships between annotations, not about the annotations themselves.

Finding 5: a sampling caveat, not a defect

Four sites — gitlab.com, notion.so, zoom.us, spotify.com — have their hreflang set living on a different domain or subdomain from the bare homepage we fetched: about.gitlab.com, notion.com, zoom.com, open.spotify.com. Because we sampled the bare homepage, that page shows no same-origin self-reference. In every case the bare domain is effectively an entry point that redirects to the host serving localized content, where the set is complete and reciprocal. We report it as a measurement artifact, not as a broken annotation.

The two errors that actually break hreflang

The format is fine and the coverage question is mostly irrelevant. The failures that matter are about relationships, and both are silent. The first is a missing return tag: if your English page points at the German page, the German page must point back, or Google treats the whole annotation as unconfirmed and ignores it. The second is a missing self-reference: every URL in the set must include a link to itself. A page that lists its siblings but not itself is, to a crawler, a page that never confirmed its own identity.

Both are invisible. The page renders, the links are present, and the annotation simply does not take effect — which is exactly the state you discover months later when a locale refuses to rank. The fix is to generate the full set, including x-default and the self-link, from one source, so the relationships cannot drift apart.

How to do it without the foot-guns

A correct set has one entry per locale plus x-default, every entry points at an absolute URL, the page lists itself, and every target links back. Writing that by hand for more than two locales is how the return-tag rule gets broken. Generating it — as the hreflang generator on this site does, from a single list of language and URL pairs — makes the reciprocal links and the self-reference impossible to forget, because the tool emits them for you.

If your site is monolingual, the right move is to declare nothing and spend the effort on content. hreflang is for sites that actually have equivalents to offer.

Limitations

60 pages from 78 hand-picked high-traffic domains — representative of well-known sites, not of the web. A random sample would be dominated by monolingual sites and would show lower usage. We parsed only the initial HTML of the homepage, so annotations delivered through HTTP headers, sitemap entries, or injected by client-side JavaScript on a single-page app are not counted. A site whose hreflang lives only in its sitemap would appear here as not using it. Where a specific site is named, the raw HTML we retrieved is the arbiter; corrections are welcome.

Reproduce it

The script and the shared domain list ship with this site and store the raw HTML for every domain, so every claim above can be checked against the source rather than against our summary of it.

About the author

Hongtao Ren (任宏涛) — Developer based in Xi'an, China. Builds browser-based tools and JetBrains IDE plugins. He built and maintains SerpPrism.

Corrections are the most useful thing you can send. If a tool or guide here gives you a wrong answer, that is a bug, not a judgement call — use the contact page.

Questions

Is hreflang a ranking factor?

No. It tells Google which regional or language version to serve to a given user; it does not by itself improve rankings. Its job is to stop the wrong-language page from showing, not to lift the right one.

Do I need x-default?

Recommended, not required. Without it, users whose language or region matches none of your specific alternates get an undefined fallback. It is the most commonly skipped tag among the sites we measured, but its absence is not a penalty.

Can I put hreflang in the sitemap instead of the head?

Yes. Sitemap alternates are valid and keep the head clean, but they are only seen by crawlers that read your sitemap, whereas HTML link tags are visible to any crawler parsing the page.

Does hreflang have to be on every page?

Every URL that has localized variants should carry the full set, including a link to itself. A common gap is declaring it only on the homepage and leaving deep pages unannotated, which leaves those pages unconfirmed.

What silently breaks hreflang?

A missing return tag — if page A links to B, B must link back — and a missing self-reference. Neither produces an error; the annotation just does not take effect, which you usually notice only as a locale that will not rank.