Hreflang Lab
126 subscribers
2 photos
5 links
Deep, research-grade analysis of international SEO: hreflang at scale, ccTLD vs subfolder studies, and what large multilingual datasets actually reveal about cross-region rankings.
Download Telegram
The country-targeting setting you can no longer rely on

A piece of institutional memory worth correcting: the International Targeting report's country-setting in Search Console was deprecated. The old workflow — "set this subfolder to target Germany in GSC" — no longer exists as a control.

What this changes in practice:

— Geotargeting now flows from three sources Google still reads: ccTLD signals (hard), hreflang annotations (the language/region handshake), and on-page/behavioral signals (currency, address, local links, server location as a weak hint).

— For a generic TLD on subfolders, you have no explicit "this folder = this country" lever anymore. Hreflang carries that weight. This raises the stakes on getting region codes right, because there's no longer a manual override to compensate.

— The hreflang error reporting that lived in that report has partly migrated; you now lean more on the URL Inspection tool and third-party validators to confirm cluster health.

The deeper point: Google's stated direction is that explicit country-targeting was a crutch, and they'd rather infer market relevance from content and links. Whether that's better for you depends on whether your signals are clear. A US-priced page on a /uk/ subfolder with no other UK signal is now harder to correct manually.

Unknown: how much residual weight legacy GSC settings still carry for sites that set them years ago. Officially zero; we can't verify the implementation.
Hreflang does not rank you higher. It swaps which URL ranks.

A hypothesis we test in every audit because the misunderstanding is so costly: people implement hreflang expecting a ranking lift, see no traffic increase, and conclude it "didn't work."

What hreflang actually does: it's a URL-swapping mechanism, not a ranking factor. When your cluster ranks for a query, hreflang influences which language/region variant Google shows that specific user — not the position the cluster occupies.

What the data suggests this produces:

— Position in the SERP: largely unchanged. The cluster ranks on its own merits (content, links, relevance).

— CTR and engagement: this is where the gain hides. Showing a US user usd-priced /en-us/ instead of /en-gb/ improves click-through and reduces pogo-sticking, which can indirectly help over time.

— Cannibalization relief: correct hreflang stops two language variants from competing for the same impression, consolidating signals onto the right URL per locale.

So "traffic didn't move" is often a measurement artifact — total clicks held, but the right pages now receive them, visible only in a per-locale breakdown.

Caveats and honesty: the indirect engagement-to-ranking pathway is real but small and hard to isolate. We won't claim hreflang lifts rankings directly — the evidence doesn't support it. Its value is correctness and user-URL matching, which is plenty, but sell it as the right thing, not a growth hack.
The invalid-code errors that pass casual review

An audit pattern: hreflang values that look plausible to a human but are silently invalid, so Google ignores the annotation entirely while Search Console may not loudly complain.

The code structure, precisely: language must be ISO 639-1 (two letters), optional region must be ISO 3166-1 Alpha-2, joined by a hyphen, language first. en-GB, not gb-en, not en_GB, not en-UK.

The specific traps we catch repeatedly:

en-UK: "UK" is not a valid region code. The country is GB. This one is almost universal and almost always wrong.

en-EU, es-LATAM: the EU and Latin America are not countries; no Alpha-2 exists. There is no way to target "Europe" or "Latin America" with one region code.

— Underscore instead of hyphen (en_us): copied from locale strings in code. Invalid in hreflang.

— Wrong order (us-en): region-language is backwards.

zh-CN vs script subtags: you can specify script (zh-Hans) per BCP-47, which is sometimes more correct than region for Chinese, but tooling support varies.

Why it's insidious: an invalid value doesn't error the whole page — Google just drops that one annotation, so a 12-language cluster quietly becomes an 11-language cluster with no obvious symptom.

Limitation: validators disagree on edge cases like script subtags and deprecated codes. When in doubt, prefer the simplest valid language-only code over a clever region guess.
Three places to put hreflang — and when each one wins

Hreflang can live in the HTML head, in HTTP headers, or in the XML sitemap. They're functionally equivalent to Google, but the operational tradeoffs differ sharply, and mixing them causes problems.

What we've found across implementations:

— HTML <link> tags: most common, easiest to inspect, but they bloat every page. A 50-language cluster adds 50 link tags to all 50 pages — that's 2,500 annotations to keep synchronized, and page weight grows linearly. Fine for small clusters.

— HTTP headers: the only option for non-HTML files (PDFs, etc.). Operationally fiddly; hard to audit because you can't see them in page source without inspecting response headers.

— XML sitemap: scales best for large clusters. The annotations live in one centralized, machine-generated file rather than scattered across thousands of pages. Easiest to regenerate atomically when a locale is added or removed.

The critical rule: pick one method per cluster. Don't put partial hreflang in HTML and the rest in the sitemap — Google reads all sources, and inconsistencies between them create contradictions that can invalidate the cluster.

The scaling argument: past roughly 10 languages, the sitemap method's centralization usually pays for itself in maintainability and reduced reciprocity errors.

Caveat: sitemap hreflang is the least visible to third-party tools and the hardest for new team members to discover, so document it. The right choice trades inspectability against maintainability.
The crawl-budget tax of large hreflang clusters

An under-discussed cost: hreflang creates a dense graph of cross-references, and Google must crawl and reconcile every node before it can trust the cluster. For large multilingual sites, this interacts with crawl budget in ways that delay correct behavior.

The mechanism: a cluster is only valid once Google has recrawled enough members to confirm reciprocity. Add a 40th language, and the annotation isn't confirmed until the crawler revisits a meaningful share of the other 39 pages to see the new return tags.

What we observe:

— On sites with constrained crawl budget, newly added locales can take weeks to activate, because the bottleneck is recrawl frequency of the slowest cluster members, not the new page itself.

— Frequent structural churn (adding/removing locales, changing URL patterns) keeps the cluster in a perpetual semi-confirmed state. Each change resets the reconciliation clock for affected nodes.

— Sitemaps with accurate lastmod meaningfully help here — they hint which members changed, focusing recrawl where it matters.

The practical implication: international rollouts should be batched and stable, not drip-fed. Adding 20 markets at once, then leaving the structure alone, confirms faster than adding one per week for 20 weeks.

Caveats: crawl budget is mostly a concern at scale (hundreds of thousands of URLs); small sites rarely hit it. And we can't directly measure Google's internal reconciliation state — we infer it from the lag between deploying tags and seeing correct per-locale serving.
Relative URLs and protocol mismatches break clusters quietly

A mechanical failure mode that produces no obvious error but severs the cluster: hreflang hrefs that aren't fully-qualified, canonical, absolute URLs.

The requirements, stated exactly:

— Absolute, not relative. href="/de/" is invalid in this context; it must be https://example.com/de/. Some parsers tolerate relative, but the spec and Google expect absolute, and tolerance is not something to depend on.

— Protocol must match reality. If the site is on HTTPS but the hreflang href says http://, that's a different URL. Google follows it, may get redirected, and the redirect breaks the clean reciprocity match.

— Trailing-slash consistency. /de and /de/ are different URLs. If the annotation says one and the canonical is the other, the return-tag handshake fails on a character.

— www vs non-www, and tracking parameters, same story — any divergence from the exact canonical URL is a different node.

Why it's hard to catch: each individual URL still resolves (via redirect), the page still loads, nothing 404s. The damage is purely in cluster reconciliation — Google sees the declared alternate and the actual canonical as two different things and declines to confirm reciprocity.

The audit: extract every hreflang href, and confirm each is byte-for-byte the canonical URL of its target, including protocol, host, path, and slash. Caveat: a few redirects in a large cluster won't necessarily collapse it — Google is somewhat resilient — but they accumulate into the "no return tags" warning.
International near-duplicates: why Google mostly forgives them

A reassurance grounded in how Google's model actually works, because fear of "duplicate content penalties" drives a lot of bad hreflang decisions.

The hypothesis to dispel: that /en-us/ and /en-gb/ with 95% identical text trigger a duplicate-content penalty requiring canonicalization to one master.

What the evidence and Google's statements suggest:

— There is no duplicate-content penalty for legitimate international variants. Google explicitly recognizes that the same product page in US and UK English is a normal, expected pattern, not manipulation.

— Hreflang is precisely the mechanism that tells Google "these are localized equivalents, pick the right one per user" — which is the opposite of asking it to choose one and suppress the rest.

— Without hreflang, Google may still figure it out, but it might consolidate the variants and serve the "wrong" one (a UK user seeing USD prices), or pick one to index and filter the others as duplicates.

So the risk of international duplicates isn't a penalty — it's wrong-variant serving and signal dilution. Hreflang fixes serving; it doesn't need to fix a penalty that doesn't exist.

The genuine caveat: if your only differentiation between locales is the URL and a flag in the corner, you have thin localization. Google may still cluster them and the hreflang adds little. The fix there isn't more annotation — it's more genuine localization (price, currency, examples, spelling) so the variants earn their separate existence.
Worth your feed

@LinkBuildIndex. Benchmarks for link building campaigns: cost-per-link, reply rates, DR distributions… We read it, you probably should too.
Forwarded from Потрачено! Клуб спящих бизнесменов!
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 aff.top — вся индустрия арбитража в одном месте
🧠 Блог про арбитраж и ИИ — как нейросети меняют залив и антифрод
🚨 База спамеров — ежедневно собираем спамеров и ведём рейтинг
🛠 70+ инструментов — от клоаки до антифрод-чека
🎬 1000+ видео — весь YouTube про трафик в одной ленте
👤 2400+ персон — байеры и фаундеры с контактами напрямую
Без регистрации, без платных «премиумов».
👇 Подписывайся на канал
This media is not supported in your browser
VIEW IN TELEGRAM
Алиса AI будет конкурировать с Google AI Studio

Яндекс разворачивает экосистему AI-агентов на базе Алисы с доступом сначала для компаний, затем для всех. Агенты уже работают в Яндекс Такси и Лавке, скоро появятся в браузере и студии разработки. Платформа интегрирует стандартные функции — заказ такси, покупки, анализ данных. Алиса AI показывает неплохие результаты: менее известна, чем конкуренты, поэтому предлагает щедрые лимиты на видеогенерацию и работу с контентом. Яндекс планирует внедрить…

➡️ Читайте на сайте: https://aff.top/blog/alisa-ai-budet-konkurirovat-s-google-ai-studio

🧠 Ещё больше инсайтов → в канале AFF.top
hreflang vs the content-language meta tag vs HTML lang

Three language signals, frequently conflated, with very different scopes. Clarifying which does what resolves a surprising number of audit findings.

The three:

hreflang: a between-page signal. It says "these distinct URLs are localized equivalents; serve the right one per user." It does nothing for a single standalone page.

— HTML lang attribute (<html lang="de">): a within-page signal, primarily for accessibility (screen-reader pronunciation) and browser behavior. Google largely ignores it for ranking/serving but it's correct practice and cheap.

content-language meta / HTTP header: a legacy within-page signal. Google has stated it doesn't use it for language determination. Harmless but not load-bearing.

The practical hierarchy: hreflang does the international serving work. The lang attribute is good hygiene for accessibility and won't hurt. content-language is optional and inert for Google.

Where confusion causes harm: teams set content-language meticulously, skip hreflang, and wonder why localized serving doesn't happen. The meta tag was never going to do that job — it has no cross-URL knowledge.

A subtlety: Google actually determines a page's language from its visible content, not from any of these tags. So all three are declarations, not commands — and hreflang is the only one that operates across the cluster.

Caveat: this is Google-specific. Other search engines (notably Yandex) weight these signals differently, so the inert-for-Google verdict isn't universal.
This media is not supported in your browser
VIEW IN TELEGRAM
В Zennoposter добавили ИИ-помощник

Zennolab добавил в Zennoposter встроенный ИИ-кубик с доступом к четырём моделям (Gemini, DeepSeek, Claude, ChatGPT) — 50 бесплатных запросов в сутки. Есть режимы Assistant (чтение) и Agent (автоматическое создание скриптов), плюс новый GET-запрос по API. Нейросети хорошо справляются с регистрацией, постингом, фармингом аккаунтов и простым кодированием, но требуют проверки при парсинге динамических сайтов и диагностике ошибок. В связке с Zennoobr…

➡️ Читайте на сайте: https://aff.top/blog/v-zennoposter-dobavili-ii-pomoschnik

🧠 Ещё больше инсайтов → в канале AFF.top