href-lengTakéhreflang atribut, rel="alternate" hreflang, jazykové cíleníPokročilý
Definice
Hreflang je atribut odkazu, kterým web vyhledávačům oznamuje, že určitá stránka má jazykové nebo regionální varianty na jiných adresách. Každá varianta nese kód jazyka podle ISO 639-1, volitelně doplněný kódem země podle ISO 3166-1 alpha-2. Vyhledávač podle něj vybere pro uživatele správnou verzi místo té původně nalezené.
Než se na to spolehnete: Podpora hreflangu u jednotlivých vyhledávačů (zejména postoj Bingu) se v čase mění a vychází z jejich veřejných doporučení, nikoli ze standardu. Wikidata ID pro heslo Hreflang jsem neověřil s jistotou, doporučuji zkontrolovat nebo odstranit.
Jaký problém hreflang řeší
Vícejazyčný web má stejný obsah na několika adresách: česky, slovensky, anglicky. Bez jakéhokoli signálu vyhledávač netuší, že jde o varianty jednoho dokumentu, a může slovenskému uživateli nabídnout českou verzi. Hreflang tuhle skupinu variant popíše a vyhledávač pak podle jazyka prohlížeče a lokality vybere tu vhodnou. Zároveň to zmírňuje riziko, že se velmi podobné jazykové mutace budou ve výsledcích vzájemně vytlačovat.
Zápis a povinná vzájemnost
Anotace se dá umístit třemi způsoby: do <link> v hlavičce HTML, do HTTP hlavičky Link (typicky u PDF a jiných nehtml souborů), nebo do XML sitemapy. Míchat je na jedné stránce nemá smysl, vyber jeden způsob.
Klíčové pravidlo je obousměrnost: pokud stránka A odkazuje na B, musí B odkazovat zpět na A i na sebe samu. Jednosměrná anotace je vyhledávači obvykle ignorována jako nedůvěryhodná. Sada proto musí být kompletní, včetně vlastního odkazu na sebe (self-referencing).
Co znamenají kódy hodnot
Hodnota je buď samotný jazyk (cs, de), nebo jazyk s regionem (en-gb, pt-br). Samotná země bez jazyka není platná: hreflang="cz" je častá chyba, protože cz žádný jazyk neoznačuje. Speciální hodnota x-default označuje stránku pro uživatele, na které žádná varianta nesedí, tedy typicky rozcestník nebo globální anglickou verzi.
Vztah ke kanonizaci
Hreflang a canonical se často zaměňují. Každá jazyková varianta má vlastní kanonickou URL, která ukazuje sama na sebe. Kanonizace napříč jazyky celou sadu rozbije, protože stránka označená jako duplicita se z indexu vytratí a s ní i její hreflang anotace. Kombinace kanonického odkazu na anglickou verzi a hreflang sady je jedna z nejčastějších příčin toho, že cílení vůbec nefunguje.
Kde se to nejčastěji rozbije
- Nekonzistentní adresy: v anotaci je
http://nebo verze bez lomítka, zatímco skutečná stránka je jinde. - Odkaz na stránku blokovanou v
robots.txtnebo označenounoindex: taková varianta ze sady vypadne. - Relativní URL, které některé implementace nezpracují spolehlivě. Používej absolutní adresy.
- Přesměrování podle IP adresy: uživatel i robot skončí jinde, než anotace slibuje.
Kdy hreflang nepotřebuješ
Jednojazyčný web ho nepotřebuje vůbec. Nepotřebuje ho ani web, kde se jednotlivé varianty obsahově výrazně liší, protože to nejsou varianty, ale samostatné stránky. Naopak dvě verze lišící se jen měnou, cenami nebo pravopisem (britská a americká angličtina) jsou přesně ten případ, kdy anotace dává smysl.
Příklady z praxe
Česko-slovensko-anglický e-shop
E-shop běží na třech doménách a každá stránka produktu má tři jazykové varianty. Do hlavičky každé z nich patří identická sada odkazů včetně odkazu na sebe samu a x-default mířícího na rozcestník. Jakmile jedna z domén tuhle sadu vynechá, vyhledávač obvykle přestane brát v potaz i zbývající dvě.
<link rel="alternate" hreflang="cs" href="https://example.cz/boty/" /> <link rel="alternate" hreflang="sk" href="https://example.sk/topanky/" /> <link rel="alternate" hreflang="en" href="https://example.com/shoes/" /> <link rel="alternate" hreflang="x-default" href="https://example.com/" />Tisíce URL řešené přes sitemapu
U katalogu s desítkami tisíc adres je vkládání anotací do HTML hlavičky náročné na údržbu a snadno se rozjede. Alternativou je XML sitemapa, kde každý záznam obsahuje sadu prvků xhtml:link pro všechny své varianty. Generuje se z jednoho zdroje dat, takže vzájemnost je zaručená konstrukcí.
<url> <loc>https://example.cz/boty/</loc> <xhtml:link rel="alternate" hreflang="cs" href="https://example.cz/boty/"/> <xhtml:link rel="alternate" hreflang="sk" href="https://example.sk/topanky/"/> </url>
Časté omyly
- MýtusHreflang zajistí, že se stránka bude v dané zemi líp umísťovat.
- Ve skutečnostiHreflang není hodnotící signál a sám o sobě pozice nezvedá. Ovlivňuje jen to, která z už existujících variant se konkrétnímu uživateli zobrazí.
- Mýtushreflang="cz" je kód pro Česko, takže je správně.
- Ve skutečnostiHodnota začíná kódem jazyka podle ISO 639-1, což je pro češtinu cs. Kód cz z ISO 3166 označuje zemi a smí stát jen za jazykem, tedy cs-cz.
- MýtusKdyž mám hreflang, můžu všechny mutace kanonizovat na hlavní jazyk kvůli duplicitě.
- Ve skutečnostiKřížová kanonizace anotaci ruší. Každá varianta musí mít kanonický odkaz sama na sebe, jinak ji vyhledávač vyřadí jako duplicitu a hreflang přestane platit.
Časté dotazy
- Musí být hreflang na každé stránce webu?
- Hreflang patří na každou stránku, která má jazykovou nebo regionální variantu, a anotace se vždy vztahuje ke konkrétní URL, ne k celému webu. Domovská stránka tedy odkazuje na domovské stránky ostatních jazyků, detail produktu na odpovídající detaily produktu. Odkazovat ze všech podstránek na cizojazyčnou homepage je chyba, protože obsah neodpovídá. Stránky, které v jiných jazycích neexistují, anotaci prostě mít nebudou.
- K čemu slouží hodnota x-default?
- Hodnota x-default označuje stránku určenou pro uživatele, jejichž jazyk ani region neodpovídá žádné definované variantě. Typicky to bývá jazykový rozcestník nebo mezinárodní anglická verze. Povinná není, ale u webů s omezeným počtem mutací se vyplatí: bez ní vyhledávač volí náhradní variantu podle vlastního odhadu. V sadě může být x-default jen jednou a smí ukazovat i na stránku, která už má vlastní jazykový kód.
- Respektují hreflang i jiné vyhledávače než Google?
- Hreflang podporuje Google a Yandex, zatímco Bing dlouhodobě doporučuje spíš atribut content-language a signály na úrovni domény. Anotace je proto v praxi hlavně nástroj pro Google. Ostatní vyhledávače ji obvykle ignorují, nikoli penalizují, takže její nasazení nic nezhoršuje. Pro širší pokrytí se hreflang kombinuje s lokalizovanou doménovou strukturou, jasným jazykem obsahu a geografickým cílením ve webmasterských nástrojích.
- Jak se ověří, že je hreflang nasazený správně?
- Ověření začíná u zdrojového kódu: musí sedět absolutní adresy včetně protokolu a lomítek a každá stránka musí odkazovat i sama na sebe. Následuje kontrola vzájemnosti, tedy že všechny varianty odkazují navzájem na sebe. Pomůže crawler jako Screaming Frog nebo Sitebulb, který nesouhlasné páry vypíše. Google Search Console hlásí problémy s mezinárodním cílením jen omezeně, takže spoléhat výhradně na ni nestačí.
- Nahrazuje hreflang přesměrování podle IP adresy?
- Hreflang přesměrování podle IP nejen nahrazuje, ale je vůči němu i bezpečnější. Automatické přesměrování podle geolokace často zabrání robotovi indexovat ostatní mutace, protože ten prochází web typicky z jedné oblasti, a uživatele uvězní ve verzi, kterou nechce. Doporučený postup je nechat uživatele na požadované URL, hreflangem popsat existující varianty a nabídnout jen nenásilné upozornění s odkazem na jinou jazykovou verzi.
Zdroje
- Localized versions of your pages(otevře se v novém okně)
- ISO 639 Language code(otevře se v novém okně)
- HTML Standard(otevře se v novém okně)
- Tags for Identifying Languages (BCP 47)(otevře se v novém okně)