Modul 3 · 3.6
Vícejazyčné weby a hreflang
Modul 3: Technický základ stránky · Doba čtení: 12 minut
Cíl lekce: Po této lekci budete umět správně nastavit hreflang pro web ve více jazycích nebo pro více zemí a zkontrolovat, zda jsou odkazy vzájemné.
Klíčové pojmy: jazyková verze, hreflang, kód jazyka (ISO 639-1), kód země (ISO 3166-1 alpha-2), kód písma (ISO 15924), x-default, vzájemnost (zpětný odkaz), odkaz na sebe sama, HTML, hlavička HTTP nebo sitemap, samostatné adresy pro každý jazyk, žádné automatické přesměrování podle jazyka, atribut lang
Problém: kterou verzi zobrazit?
Bloemenatelier Lotte roste. Vzniká anglická verze webu pro turisty a expaty a německá pro zákazníky hned za hranicí. Stejná stránka se svatebními kyticemi teď existuje třikrát:
https://www.example.com/bruidsboeketten (nizozemština)
https://www.example.com/en/bridal-bouquets (angličtina)
https://www.example.com/de/brautstraeusse (němčina)Vyhledávač musí u každého dotazu vybrat, kterou z těchto tří verzí zobrazí. Člověk v Kolíně nad Rýnem, který hledá německy, by měl dostat německou verzi, ne nizozemskou. Pomocí hreflang vyhledávači sdělíte, které stránky jsou jazykovými verzemi téže stránky a pro jaký jazyk nebo zemi je každá verze určena.
hreflang není trik pro lepší pozice. Zajišťuje jen, aby se správná verze objevila na správném místě. A neslouží ani k rozpoznání jazyka: Google uvádí, že hreflang ani atribut lang v HTML nepoužívá k určení jazyka stránky; ten si zjistí sám z textu. Atribut lang (<html lang="nl">) přesto nastavte správně, kvůli prohlížečům, překladačům a čtečkám obrazovky.
Nejprve základ: samostatné adresy
Google doporučuje vlastní adresu pro každou jazykovou verzi a nedoporučuje přepínat jazyk pomocí cookies nebo nastavení prohlížeče na stejné adrese. Důvod je praktický: Googlebot většinou prochází web ze Spojených států. Pokud se obsah na jedné adrese mění podle toho, kdo se dívá, Googlebot možná uvidí jen jednu verzi.
Ze stejného důvodu: nepřesměrovávejte návštěvníky automaticky na jinou jazykovou verzi podle jejich jazyka nebo polohy. Google to výslovně nedoporučuje. Nizozemec na dovolené v Německu chce nizozemský web; dejte proto na stránku raději zřetelnou volbu jazyka a umožněte všem dostat se ke všem verzím.
Pokud místo jazyků cílíte na země a používáte samostatné domény jako example.de a example.nl, platí totéž. Verze nemusí být na stejné doméně.
Jak hreflang vypadá
V části <head> každé jazykové verze je stejná sada řádků:
<link rel="alternate" hreflang="nl" href="https://www.example.com/bruidsboeketten">
<link rel="alternate" hreflang="en" href="https://www.example.com/en/bridal-bouquets">
<link rel="alternate" hreflang="de" href="https://www.example.com/de/brautstraeusse">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/bruidsboeketten">Čtyři pravidla, která musíte znát:
- Každá verze uvádí sebe sama i všechny ostatní. Anglická stránka má tedy přesně stejné čtyři řádky, včetně řádku pro
en, který odkazuje sám na sebe. - Odkazy musí být vzájemné. Pokud nizozemská stránka odkazuje na německou, musí německá odkazovat zpět na nizozemskou. Google uvádí: pokud dvě stránky neodkazují jedna na druhou, odkazy se ignorují. To je nejčastější chyba, a proto ji úkol této lekce kontroluje.
- Úplné adresy. Včetně
https://. Cesta jako/en/bridal-bouquetsnebo//www.example.com/en/...se nepočítá. - V čisté části
<head>. Řádky patří do části<head>v HTML. Pokud se hlavička přeruší dříve, například samostatným prvkem<img>nebo<div>, který tam nepatří, může vyhledávač považovat hlavičku za ukončenou a zbytek přehlédnout.
Kódy
Hodnota hreflang je kód jazyka, případně s kódem země za ním:
| Kód | Význam |
|---|---|
nl | Nizozemština, pro všechny, kdo mluví nizozemsky |
nl-BE | Nizozemština pro Belgii |
de-AT | Němčina pro Rakousko |
en-GB | Angličtina pro Spojené království |
zh-Hant | Čínština v tradičním písmu (kód písma ISO 15924) |
x-default | Záložní stránka: pro všechny, kterým žádná jiná verze nevyhovuje |
Kód jazyka pochází z ISO 639-1 (dvě písmena), kód země z ISO 3166-1 alpha-2. Na velikosti písmen nezáleží, ale zvykem je jazyk malými a zemi velkými písmeny. Tři úskalí:
- Samotná země nestačí.
hreflang="be"znamená běloruštinu (kód jazykabe), ne Belgii. Země vždy stojí za jazykem:nl-BEnebofr-BE. en-UKneexistuje. Kód země Spojeného království jeGB. Google uvádí, že kódy jakoEU,UNneboUKnemají žádný účinek.- Zemi použijte jen tehdy, když se verze opravdu liší (jiné ceny, měna, doručení, pravopis). Máte-li jednu německou verzi pro všechny, použijte prostě
de.
x-default
x-default je nepovinný. Označíte jím stránku pro návštěvníky, kterým žádná z Vašich verzí nevyhovuje, například pro někoho, kdo mluví francouzsky. Často je to Váš hlavní jazyk nebo stránka, kde si návštěvník jazyk vybere sám.
Tři způsoby, vyberte jeden
Google zná tři rovnocenné způsoby, jak hreflang uvést:
- V HTML, pomocí řádků
<link>v hlavičce, jako výše. Nejpoužívanější. Jako hlavičku HTTP
Link, praktické pro soubory bez HTML, například pdf:Link: <https://www.example.com/en/price-list.pdf>; rel="alternate"; hreflang="en"- V souboru sitemap, pomocí řádků
xhtml:linku každého<url>. Praktické pro velké weby, protože stránky pak nejsou těžší.
Nemusíte je kombinovat. Pokud jich použijete více, musí říkat přesně totéž.
hreflang a canonical dohromady
hreflang a canonical (lekce 3.5) spolupracují, ale nezaměňujte je:
- Každá jazyková verze má canonical sama na sebe. Anglická stránka není kopií nizozemské, takže neodkazuje na nizozemskou jako na kanonickou adresu. Pokud to uděláte, říkáte tím "anglická stránka vlastně neexistuje" a ta vypadne z indexu.
- Adresy v hreflang jsou kanonické adresy jednotlivých verzí. Pokud hreflang odkazuje na adresu, která přesměrovává, vrací 404, má noindex nebo má canonical jinam, skupina se rozpadne.
Google při určování kanonické adresy dává přednost adresám, které jsou součástí skupiny hreflang. Čistá skupina tedy pomáhá i Vaší kanonikalizaci.
V praxi: nechte to na systému
Ruční správa hreflang je náchylná k chybám: při deseti jazycích a stovce stránek jde o tisíc řádků, které musí všechny sedět. Nechte to na svém redakčním systému. AI Builder od WebOké u vícejazyčného webu vloží na každou stránku odkazy hreflang na stejnou stránku v ostatních jazycích, k tomu x-default na hlavní jazyk, a stránku bez přeloženého protějšku ze skupiny záměrně vynechá. Ve WordPressu dělají totéž vícejazyčné pluginy. U jiných nástrojů pro tvorbu webů to najdete pod názvy jako "jazyky" nebo "mezinárodní". Poté sami zkontrolujte, zda odkazy sedí oběma směry; to dělá úkol.
Shrnutí
- hreflang říká, které stránky jsou jazykovými nebo zemskými verzemi téže stránky; nerozpoznává jazyk a není trikem pro lepší pozice.
- Každá verze má vlastní adresu, žádné automatické přesměrování podle jazyka nebo polohy.
- Každá verze uvádí sebe sama i všechny ostatní, s úplnými adresami, a každý odkaz musí mít zpětný odkaz; jinak ho Google ignoruje.
- Kódy: jazyk z ISO 639-1, případně se zemí z ISO 3166-1 alpha-2 (
en-GB, neen-UK);x-defaultpro ostatní. - Každá verze má canonical sama na sebe; hreflang odkazuje jen na kanonické adresy, které vracejí 200.
Kvíz
Úkol
Úkol A3.6: Jsou Vaše odkazy hreflang vzájemné? Zadejte adresu stránky, která existuje ve více jazycích. Program shromáždí odkazy hreflang z hlavičky stránky a z hlavičky HTTP Link, zkontroluje kódy a odkaz na sebe sama, načte každou další jazykovou verzi a ověří, zda odkazuje zpět, vrací 200, nemá noindex a má canonical sama na sebe. Nemáte vlastní vícejazyčný web? Použijte https://european-union.europa.eu/index_nl.
Další čtení
- Google Search Central, Informování Googlu o lokalizovaných verzích stránky: https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central, Správa vícejazyčných a mezinárodních webů: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Google Search Central, Sloučení duplicitních adres URL: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Kódy jazyků ISO 639 (Library of Congress): https://www.loc.gov/standards/iso639-2/php/code_list.php
