Modul 3 · 3.6
Slovenčina
Viacjazyčné stránky a hreflang
Modul 3: Technický základ stránky · Čas čítania: 12 minút
Cieľ lekcie: Po tejto lekcii dokážete správne nastaviť hreflang pre web vo viacerých jazykoch alebo pre viac krajín a overiť, či sú odkazy vzájomné.
Kľúčové pojmy: jazyková verzia, hreflang, kód jazyka (ISO 639-1), kód krajiny (ISO 3166-1 alpha-2), kód písma (ISO 15924), x-default, vzájomnosť (spätný odkaz), odkaz na seba samého, HTML, hlavička HTTP alebo sitemap, samostatné adresy pre každý jazyk, žiadne automatické presmerovanie podľa jazyka, atribút lang
Problém: ktorú verziu zobraziť?
Bloemenatelier Lotte rastie. Pribudne anglická verzia webu pre turistov a expatov a nemecká pre zákazníkov hneď za hranicou. Tá istá stránka so svadobnými kyticami teraz existuje trikrát:
https://www.example.com/bruidsboeketten (holandčina)
https://www.example.com/en/bridal-bouquets (angličtina)
https://www.example.com/de/brautstraeusse (nemčina)Vyhľadávač musí pri každom vyhľadávaní vybrať, ktorú z troch verzií zobrazí. Človek v Kolíne, ktorý vyhľadáva po nemecky, by mal dostať nemeckú verziu, nie holandskú. Pomocou hreflang poviete vyhľadávaču, ktoré stránky sú jazykovými verziami jedna druhej a pre aký jazyk alebo akú krajinu je každá verzia určená.
hreflang nie je trik na lepšie umiestnenie. Zabezpečuje len to, aby sa správna verzia objavila na správnom mieste. A nie je to ani rozpoznávanie jazyka: Google píše, že hreflang ani atribút lang v HTML nepoužíva na určenie jazyka stránky; ten určuje sám, z textu. Atribút lang (<html lang="nl">) však nastavte správne, kvôli prehliadačom, prekladačom a čítačkám obrazovky.
Najprv základ: samostatné adresy
Google odporúča samostatnú adresu pre každú jazykovú verziu a neodporúča prepínať jazyk pomocou cookies alebo nastavení prehliadača na tej istej adrese. Dôvod je praktický: Googlebot väčšinou prehľadáva zo Spojených štátov. Ak sa obsah na jednej adrese mení podľa toho, kto sa pozerá, Googlebot možno uvidí len jednu verziu.
Z rovnakého dôvodu: neprenášajte návštevníkov automaticky na inú jazykovú verziu podľa ich jazyka alebo polohy. Google to výslovne neodporúča. Holanďan na dovolenke v Nemecku chce holandský web; radšej umiestnite na stránku jasnú voľbu jazyka a umožnite každému dostať sa ku všetkým verziám.
Ak namiesto jazykov cielite na krajiny so samostatnými doménami, napríklad example.de a example.nl, platí to isté. Verzie nemusia byť na tej istej doméne.
Ako hreflang vyzerá
V <head> každej jazykovej verzie je rovnaká sada riadkov:
<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">Štyri pravidlá, ktoré by ste mali poznať:
- Každá verzia uvádza seba aj všetky ostatné. Anglická stránka má teda presne tie isté štyri riadky vrátane riadka pre
en, ktorý ukazuje na ňu samotnú. - Odkazy musia byť vzájomné. Ak holandská stránka odkazuje na nemeckú, nemecká musí odkazovať späť na holandskú. Google uvádza: ak dve stránky neodkazujú jedna na druhú, odkazy sa ignorujú. Je to najčastejšia chyba, a preto ju kontroluje úloha tejto lekcie.
- Úplné adresy. Vrátane
https://. Cesta ako/en/bridal-bouquetsalebo//www.example.com/en/...sa nepočíta. - V čistom
<head>. Riadky patria do<head>v HTML. Ak sa hlavička niekde skôr preruší, napríklad samostatným<img>alebo<div>, ktorý tam nepatrí, vyhľadávač môže hlavičku považovať za ukončenú a zvyšok prehliadne.
Kódy
Hodnota hreflang je kód jazyka, prípadne doplnený o kód krajiny:
| Kód | Význam |
|---|---|
nl | Holandčina, pre každého, kto hovorí po holandsky |
nl-BE | Holandčina pre Belgicko |
de-AT | Nemčina pre Rakúsko |
en-GB | Angličtina pre Spojené kráľovstvo |
zh-Hant | Čínština v tradičnom písme (kód písma ISO 15924) |
x-default | Záložná stránka: pre každého, komu nevyhovuje žiadna iná verzia |
Kód jazyka pochádza z ISO 639-1 (dve písmená), kód krajiny z ISO 3166-1 alpha-2. Na veľkosti písmen nezáleží, zvykom však je jazyk malými a krajinu veľkými písmenami. Tri nástrahy:
- Samotná krajina nestačí.
hreflang="be"znamená bieloruštinu (kód jazykabe), nie Belgicko. Krajina vždy nasleduje za jazykom:nl-BEalebofr-BE. en-UKneexistuje. Kód krajiny Spojeného kráľovstva jeGB. Google píše, že kódy akoEU,UNaleboUKnemajú žiadny účinok.- Krajinu použite len vtedy, keď sa verzie naozaj líšia (iné ceny, mena, doručenie, pravopis). Ak máte jednu nemeckú verziu pre všetkých, použite jednoducho
de.
x-default
x-default je voliteľný. Určíte ním stránku pre návštevníkov, ktorým nevyhovuje žiadna z vašich verzií, napríklad pre niekoho, kto hovorí po francúzsky. Často je to váš hlavný jazyk alebo stránka, na ktorej si návštevník sám vyberie jazyk.
Tri spôsoby, vyberte si jeden
Google pozná tri rovnocenné spôsoby, ako hreflang uviesť:
- V HTML, pomocou riadkov
<link>v hlavičke, ako je uvedené vyššie. Najpoužívanejší spôsob. Ako hlavička HTTP
Link, praktická pre súbory bez HTML, napríklad pdf:Link: <https://www.example.com/en/price-list.pdf>; rel="alternate"; hreflang="en"- V sitemap, pomocou riadkov
xhtml:linkpre každý<url>. Praktické pre veľké weby, pretože stránky tak nie sú ťažšie.
Nemusíte ich kombinovať. Ak ich použijete viac, musia hovoriť presne to isté.
hreflang a canonical spolu
hreflang a canonical (lekcia 3.5) spolupracujú, nezamieňajte si ich však:
- Každá jazyková verzia má canonical na seba samú. Anglická stránka nie je kópiou holandskej, preto neukazuje na holandskú ako na kanonickú adresu. Ak to urobíte, hovoríte tým „anglická stránka v skutočnosti neexistuje“ a vypadne z indexu.
- Adresy v hreflang sú kanonické adresy jednotlivých verzií. Ak hreflang ukazuje na adresu, ktorá presmerúva, vracia 404, má noindex alebo má canonical inam, skupina sa rozpadne.
Google pri určovaní kanonickej adresy uprednostňuje adresy, ktoré patria do skupiny hreflang. Čistá skupina teda pomáha aj vašej kanonikalizácii.
V praxi: nechajte to na systém
Ručná správa hreflang je náchylná na chyby: pri desiatich jazykoch a sto stránkach je to tisíc riadkov, ktoré musia všetky sedieť. Nechajte to na svoj redakčný systém. AI Builder od WebOké pri viacjazyčnom webe pridá na každú stránku odkazy hreflang na tú istú stránku v ostatných jazykoch a k tomu x-default na hlavný jazyk; stránku bez preloženého náprotivku zámerne zo skupiny vynechá. Vo WordPress robia to isté viacjazyčné pluginy. V iných nástrojoch na tvorbu webov to nájdete pod názvami ako „jazyky“ alebo „medzinárodné“. Potom si sami overte, či odkazy sedia tam aj späť; na to slúži úloha.
Zhrnutie
- hreflang hovorí, ktoré stránky sú jazykovými alebo krajinnými verziami jedna druhej; nerozpoznáva jazyk a nie je to trik na lepšie umiestnenie.
- Každá verzia má vlastnú adresu, žiadne automatické presmerovanie podľa jazyka alebo polohy.
- Každá verzia uvádza seba aj všetky ostatné, s úplnými adresami, a každý odkaz sa musí vracať späť; inak ho Google ignoruje.
- Kódy: jazyk z ISO 639-1, prípadne s krajinou z ISO 3166-1 alpha-2 (
en-GB, nieen-UK);x-defaultpre ostatných. - Každá verzia má canonical na seba samú; hreflang ukazuje len na kanonické adresy, ktoré vracajú 200.
Kvíz
Úloha
Úloha A3.6: Sú vaše odkazy hreflang vzájomné? Zadajte adresu stránky, ktorá existuje vo viacerých jazykoch. Program zozbiera odkazy hreflang z hlavičky stránky a z hlavičky HTTP Link, skontroluje kódy a odkaz na seba samú, načíta každú ďalšiu jazykovú verziu a overí, či odkazuje späť, vracia 200, nemá noindex a má canonical na seba samú. Nemáte vlastný viacjazyčný web? Použite https://european-union.europa.eu/index_nl.
Čítajte ďalej
- Google Search Central, Informovanie Googlu o lokalizovaných verziách stránky: https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central, Správa viacjazyčných a medzinárodných webov: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Google Search Central, Zlučovanie duplicitných URL: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Kódy jazykov ISO 639 (Library of Congress): https://www.loc.gov/standards/iso639-2/php/code_list.php
