Hreflang: označování jazykových a geografických variant URL

Hreflang: Označenie jazykových a geografických variantov URL

Co je hreflang a proč je zásadní pro mezinárodní SEO

Hreflang je signál pro vyhledávače, který říká: „Tato URL má jazykové a/nebo geografické alternativy.“ Správné nasazení zajistí, že se uživateli zobrazí správná verze stránky (jazyk, regionální formáty, měna, právní texty) a minimalizuje riziko duplicitního obsahu mezi překlady. V moderním SEO a kontextech AIO/AEO (AI/Answer Engine Optimization) a LLM jde také o přesnou prezentaci entit, tvorby cen a legislativních rozdílů v odpovědích modelů.

Základní principy a syntaxe hreflang

  • Hodnota atributu hreflang: používá standard IETF BCP 47; v praxi jde o jazyk (ISO 639-1) + volitelně -REGION (ISO 3166-1 alpha-2), např. sk, cs, en-GB, en-US, fr-CA, zh-Hant, zh-Hans.
  • Reciprocita: každá URL musí odkazovat na své alternativy a ty zpět na ni (včetně odkazu self-referencing).
  • Mapování 1:1: každá jazyková verze konkrétní stránky by měla mít ekvivalent v ostatních jazykových sadách. Neodkazujte na „blízkou“, ale ne zcela totožnou podstránku.
  • x-default: volitelná záložní URL, často přepínač jazyků nebo globální domovská stránka.
  • Kanonikalita: v hreflang uvádějte kanonické URL (protokol, hostitel, cesta, koncové lomítko).

Způsoby implementace: HTML, XML sitemap a HTTP hlavičky

Hreflang lze nasadit třemi rovnocennými způsoby (není třeba je kombinovat, stačí jeden; v praxi se však kvůli škálovatelnosti často používá XML sitemap):

1) HTML <link rel="alternate" hreflang="..."> v <head>

<link rel="alternate" hreflang="sk" href="https://example.com/sk/produkt-a/"> <link rel="alternate" hreflang="cs" href="https://example.com/cs/produkt-a/"> <link rel="alternate" hreflang="en-GB" href="https://example.com/uk/product-a/"> <link rel="alternate" hreflang="x-default" href="https://example.com/global/product-a/"> 

2) XML sitemap s hreflang (namespace xhtml)

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url> <loc>https://example.com/sk/produkt-a/</loc> <xhtml:link rel="alternate" hreflang="sk" href="https://example.com/sk/produkt-a/"/> <xhtml:link rel="alternate" hreflang="cs" href="https://example.com/cs/produkt-a/"/> <xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/uk/product-a/"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/global/product-a/"/> </url> <!-- ďalšie URL bloky s kompletnou hreflang sadou --> </urlset> 

3) HTTP hlavičky (zejména pro dokumenty bez HTML, např. PDF)

Link: <https://example.com/sk/brochure.pdf>; rel="alternate"; hreflang="sk", <https://example.com/cs/brochure.pdf>; rel="alternate"; hreflang="cs", <https://example.com/global/brochure.pdf>; rel="alternate"; hreflang="x-default" 

Architektura webu a strategie pro jazykové/regionální verze

  • ccTLD vs. subdoména vs. podadresář: ccTLD (např. .sk) přirozeně signalizuje geografické cílení; subdomény (sk.example.com) a podadresáře (/sk/) jsou flexibilnější z hlediska správy a konsolidace autority.
  • Regionální varianty obsahu: rozdíly v měnách, DPH, právních textech a dostupnosti produktů vyžadují odlišné šablony a datové zdroje.
  • Jazyk vs. země: nepoužívejte kód země bez jazyka (GB je neplatné); vždy uveďte alespoň jazyk (en), případně jazyk a zemi (en-GB).
  • Varianty písma: u čínštiny zh-Hans/zh-Hant nebo srbštiny sr-Latn/sr-Cyrl jasně definujte cílové publikum.

Interakce s kanonickými odkazy a indexací

  • Self-canonical: jazyková verze má kanonizovat sama na sebe, nikoli na jinou jazykovou mutaci.
  • Hreflang ≠ rel=canonical: canonical řeší duplicitu v rámci „téže“ URL s variantami; hreflang řeší paralelní jazykové ekvivalenty.
  • Noindex a hreflang: neodkazujte pomocí hreflang na stránky s direktivou noindex; narušíte tím sadu a zmatete vyhledávače.
  • Parametry a filtrování: v hreflang uvádějte kanonické URL bez zbytečných parametrů (UTM apod.).

Škálování: generování sitemap pro stovky tisíc URL

  1. Datový model: v CMS/DB udržujte pro každou logickou stránku mapu „global_id → jazykové URL“.
  2. Rozdělení sitemap: maximálně 50 000 URL nebo 50 MB nekomprimovaně; použijte index sitemap (sitemapindex).
  3. Automatická validace: build pipeline by měla kontrolovat reciprocitu a přítomnost odkazů self-referencing.
  4. Konzistence domén: u sad napříč doménami (např. example.sk + example.cz) generujte úplné sady ve všech souborech sitemap.

Příklady správných a chybných kódů

  • Správně: en-GB, en-US, pt-BR, zh-Hant, sr-Latn, fr-CA, sk.
  • Nesprávně: en-UK (má být en-GB), eng (používejte dvoupísmenné kódy), GB bez jazyka, en_GB s podtržítkem (používejte pomlčku).

Ukázkové sady pro běžné situace

SK/CZ/EN s globální záložní variantou

<link rel="alternate" hreflang="sk" href="https://example.com/sk/sluzba/"/> <link rel="alternate" hreflang="cs" href="https://example.cz/cs/sluzba/"/> <link rel="alternate" hreflang="en" href="https://example.com/en/service/"/> <link rel="alternate" hreflang="x-default" href="https://example.com/"/> 

Varianty angličtiny a cenové rozdíly

<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/pricing/"/> <link rel="alternate" hreflang="en-US" href="https://example.com/us/pricing/"/> <link rel="alternate" hreflang="en-AU" href="https://example.com/au/pricing/"/> 

Varianty písma pro čínštinu

<link rel="alternate" hreflang="zh-Hans" href="https://example.com/zh-hans/產品/"/> <link rel="alternate" hreflang="zh-Hant" href="https://example.com/zh-hant/產品/"/> 

Speciální případy: stránkování, kategorie, „soft 404“ a jazykové přepínače

  • Stránkování (?page=2): sady hreflang musí mapovat stejné číslo stránky na stejné číslo v jiné jazykové verzi (neodkazujte vše na page 1).
  • Filtrované výpisy: pokud jsou kanonické (indexovatelné), mohou mít vlastní hreflang; jinak ne.
  • Jazykový přepínač: URL přepínače (bez konkrétního obsahu) použijte jako x-default, nikoli jako jazykovou mutaci.
  • Soft 404 a prázdné kategorie: pokud nemáte plnohodnotný obsah, nepropojujte stránky přes hreflang (neponechávejte „mrtvé“ sady).

Nejčastější chyby, které ruší účinek hreflang

  1. Chybějící reciprocita (A → B, ale B → A nikoli).
  2. Míchání protokolů/hostitelů (http vs. https, www vs. bez www).
  3. Neplatné kódy (en-UK, třípísmenné kódy, samotné kódy zemí).
  4. Odkazování na nekanonické URL (s parametry, ID relace, varianta „/index.html“).
  5. Neexistující ekvivalenty (obsah si neodpovídá v poměru 1:1, a přesto je stránka zahrnuta v sadě).
  6. Noindex v sadě (narušuje důvěryhodnost celé sady).

Validace a audit krok za krokem

  1. Inventarizace: seznam všech jazykových mutací a párování URL podle „global_id“.
  2. Kontrola kódů: ověřte jazyk/region podle BCP 47 a nahraďte neplatné kódy.
  3. Reciprocita a self-link: programově ověřte, že každá dvojice je obousměrná a obsahuje odkaz self-referencing.
  4. Kanonikalita: zkontrolujte rel=canonical a ověřte, že hreflang používá přesně stejné kanonické URL.
  5. Stránkování: mapování stránky na stránku (1↔1, 2↔2, …).
  6. Živé testy: otestujte několik URL pomocí inspekčních nástrojů a sledujte, kterou verzi Google zobrazuje v SERP pro různé lokality/jazyky.

Měření dopadu: SEO i AIO/AEO

  • Počet zobrazení a CTR podle zemí/jazyků: porovnávejte hodnoty před implementací a po ní.
  • Segmentace návštěvnosti: organické relace a tržby podle lokality/jazyka.
  • Správnost výběru úryvků: sledujte, zda se v daném regionu zobrazuje správný jazyk a měna.
  • Odpovědi LLM/AI: konzistentní jazykové URL v citacích a odkazech (AEO) znamenají méně „zmatených“ odpovědí, které míchají měny a jazyky.

Doporučené procesy a správa

  1. Standard v repozitáři: zdokumentujte jazykové kódy, mapování URL a pravidla pro x-default.
  2. CI validace: při sestavení/nasazení spusťte automatický test sitemap (reciprocita, kanonikalita, stav 200).
  3. Redakční workflow: při publikování nové stránky vytvořte placeholder v ostatních jazycích, nebo stránku dočasně vyřaďte ze sady, aby nevznikaly neúplné sady.
  4. Monitorování chyb: nastavte upozornění při odpovědích 4xx/5xx na URL v sadách hreflang, při přesměrováních a změnách kanonických URL.

Kontrolní seznam pro správné nasazení

  • Jasná architektura jazyků/regionů (ccTLD/subdoména/podadresář) a mapování 1:1.
  • Platné hodnoty BCP 47 (jazyk nebo jazyk-REGION), bez neplatných kódů.
  • Úplné sady s reciprocitou a odkazy self-referencing.
  • Konzistentní rel=canonical a použití kanonických URL v hreflang.
  • Správné nasazení v sitemapě (doporučeno pro velké weby) nebo v HTML head/HTTP hlavičkách.
  • Mapování stránkování a filtrovaných kategorií pouze v případě, že jsou kanonické.
  • x-default pro jazykový přepínač nebo globální vstupní stránku.
  • Automatizovaná validace a monitorování po nasazení.

Časté otázky (FAQ)

  • Potřebuji hreflang, pokud mám pouze angličtinu? Pokud máte jen jednu jazykovou verzi, ne. Smysl má až při více jazycích/regionech.
  • Mohu kombinovat kódy jako en-UK? Ne. Použijte en-GB. Řiďte se standardem BCP 47.
  • Je x-default povinný? Ne, ale hodí se pro výběr jazyka nebo globální domovskou stránku.
  • Stačí HTML, nebo musím mít také sitemapu? Stačí jeden způsob. U velkých webů se sitemap snadněji udržuje.
  • Jak je to s automatickým strojovým překladem? Je přijatelný, ale ověřte jeho kvalitu a konzistenci; hreflang řeší pouze správné cílení, nikoli kvalitu obsahu.

Shrnutí

Hreflang je nezbytný pro správné směrování mezinárodní návštěvnosti a eliminaci jazykových/regionálních kolizí v indexu. Klíčové jsou přesné kódování jazyků a regionů, reciprocita, mapování 1:1 a kanonikalita. Implementaci ideálně řešte v sitemapě s jasně nastavenou správou a automatizovanou validací. Výsledkem jsou správné úryvky ve výsledcích vyhledávání, lepší uživatelská zkušenost a čistší signály také pro systémy AI a odpovědní systémy.