Hreflang Lab
Hreflang Lab
@HreflangLab

One URL serving multiple languages: where hreflang stops working

One URL serving multiple languages: where hreflang stops working

Some estates serve different languages from a single URL via cookie or session content negotiation, no /en/ or /de/ path. Hreflang has nothing to annotate in that model, and that's the core tension.

Methodology: we examined four estates using dynamic per-session language on stable URLs, assessing how Google indexed them.

Findings:

— Hreflang requires distinct, crawlable URLs per language. With one URL serving many languages, there are no alternates to declare, so hreflang simply doesn't apply.

— Google indexed whatever language Googlebot received on crawl (typically the default), and the other languages were effectively invisible to search.

— Estates that wanted multilingual visibility had to break the single-URL model — introduce path or parameter-based language URLs — before hreflang became usable at all.

Nuance: this is a common SPA and headless-CMS pitfall. The architecture optimizes for app-like UX and accidentally forecloses international search visibility.

Caveat: dynamic rendering or per-language URLs with a language switcher both resolve it, but they're real engineering work, not a tag fix.

Limitation: four estates, all mid-sized; enterprise headless setups may have negotiation patterns we didn't observe.

Conclusion: hreflang presupposes one indexable URL per language. If your architecture serves languages from a single URL, the fix is architectural — distinct URLs first, annotations second. No tag rescues an un-crawlable language.
Этот пост опубликован в Telegram-канале Hreflang Lab. Подписаться можно по ссылке: @HreflangLab.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.