Implementace hreflangu bez chyb: kontrolní seznam deseti kritických bodů

Hreflang implementácia bez chýb: Kontrolný zoznam desiatich kritických bodov

Proč je hreflang zásadní a kde nejčastěji selhává

Hreflang je signál pro vyhledávače, který propojuje jazyk a často také regionální variantu jednotlivých verzí stránek. Správná implementace snižuje riziko nesprávného zobrazení (např. en-US ve Velké Británii) a eliminuje interní konkurenci verzí ve výsledcích vyhledávání. K chybám však dochází už při nedodržení základních principů: chybí self-referencing odkaz, neexistuje return tag, míchá se kanonikalizace napříč jazyky nebo se používají neplatné kódy. Následujících 10 bodů představuje praktický kontrolní seznam, který můžete projít při migracích, nasazení na nový trh, ale také při pravidelné technické údržbě.

1) Vždy používejte platné jazykové a regionální kódy (BCP-47)

Hreflang používá jazyk (povinně) a volitelně také regionální kód. Příklady: en, en-GB, en-US, sk, cs-CZ, de-AT. Vyhněte se neexistujícím nebo „obchodním“ kódům (např. en-EU). Kódy nerozlišují velká a malá písmena, běžně se však zapisují tak, že jazyk je malými písmeny a region velkými: en-GB.

2) Každá alternativa musí odkazovat sama na sebe (self-referencing)

Každá jazyková/regionální verze stránky musí v hreflangu odkazovat také sama na sebe. Tím se zabrání tomu, aby vyhledávač vnímal stránku pouze jako alternativu jiné verze. Příklad implementace v HTML <head>:

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

3) Zajistěte obousměrné odkazy (return tags) mezi všemi alternativami

Pokud stránka A uvádí jako alternativu stránku B, musí také stránka B odkazovat zpět na stránku A. Obousměrnost je nutná mezi všemi dvojicemi alternativ, jinak bude hreflang považován za neúplný nebo nespolehlivý.

4) Nepřekračujte hranice kanonikalizace (hreflang ≠ jazykový kanál)

Kanonická adresa rel="canonical" musí vždy směřovat na stejnou jazykově-regionální verzi (sama na sebe nebo na svou kanonickou variantu v rámci téhož jazyka). Nikdy nekanonikalizujte sk na cz nebo en s cílem „přenést signál“ – tím zrušíte význam hreflangu.

5) Na stránce implementujte pouze jednu primární metodu (HTML, HTTP hlavička nebo XML sitemap)

Hreflang lze implementovat třemi způsoby: v HTML, v HTTP hlavičkách (např. pro PDF) a prostřednictvím XML sitemapy. Praktické doporučení: vyberte si jednu hlavní metodu a důsledně ji dodržujte. Při souběžném použití více metod snadno vzniknou nesrovnalosti (různý počet alternativ, odlišné URL, jiné kódy), které snižují důvěryhodnost signálu.

Příklad v XML sitemapě:

<url> <loc>https://www.example.com/sk/produkt-x/</loc> <xhtml:link rel="alternate" hreflang="sk" href="https://www.example.com/sk/produkt-x/"/> <xhtml:link rel="alternate" hreflang="cs-CZ" href="https://www.example.com/cz/produkt-x/"/> <xhtml:link rel="alternate" hreflang="en-GB" href="https://www.example.com/uk/product-x/"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/"/> </url> 

6) Pro výběrovou stránku (jazykový rozcestník) použijte x-default

Pokud máte stránku, která má návštěvníka přesměrovat nebo navést k výběru lokalizace, použijte hreflang="x-default". Jasně tím dáte najevo, že nejde o preferenci pro konkrétní zemi/jazyk, ale o „neutrální“ cílovou stránku.

7) Hreflang uvádějte pouze u indexovatelných URL s konzistentní strukturou

Alternativy musí být indexovatelné (bez noindex, bez blokování v robots.txt) a konzistentní: používejte stejný protokol (https), správný hostitel (nemíchejte www a variantu bez www), správný koncový lomítkový znak a vyhněte se nechtěným parametrům, které mění obsah. Hreflang nepoužívejte u URL se stavovými kódy 3xx/4xx/5xx.

8) Nerozmělňujte signál segmentací podle filtrů a parametrů

V e-commerce je lákavé lokalizovat také velké množství filtrovaných URL. Definujte si „indexovatelný korpus“ (kategorie, produkty, klíčové landing pages) a hreflang používejte jen u těchto stránek. Filtry/parametry (řazení, barva, velikost) ponechte s nastavením noindex, follow a kanonikalizací na hlavní verzi; jinak vzniká „šum“ a chyby při párování alternativ.

9) Ošetřete zvláštní případy: PDF, AMP, mobilní verze, stránkování

Hreflang lze u souborů typu PDF předávat prostřednictvím HTTP hlaviček. U AMP a mobilních verzí dbejte na to, aby byl hreflang konzistentně uveden u každé alternativy v souladu s rel="amphtml"/alternate pro mobilní verzi. U stránkování mějte hreflang na každé stránce série a párujte ji s odpovídající stránkou v jiné jazykové verzi (1↔1, 2↔2…).

10) Ověřování a monitoring: automatizujte kontrolu v CI/CD

Po nasazení ověřujte:

  • Syntaxi (platné kódy, správné páry, self-ref, return-tags).
  • Dostupnost (200 OK, HTTPS, bez blokování a duplicit).
  • Konzistentnost s kanonickými tagy (žádný canonical napříč jazyky).
  • Mapování URL mezi jazyky (1:1 nebo jasná pravidla 1:n při konsolidaci obsahu).

V rámci CI/CD pipeline přidejte kroky pro procházení lokalizovaných verzí, validaci hreflangu, porovnání počtu alternativ v HTML a sitemapě, kontrolu duplicitních či nesourodých dvojic a report rozdílů při každém nasazení.

Rozhodovací diagram při chybách (stručný přehled)

Příznak Pravděpodobná příčina Řešení
Střídání jazyků ve výsledcích vyhledávání Chybí self-ref nebo return-tags; neplatné kódy Doplnit obousměrné odkazy, opravit kódy podle BCP-47
Indexuje se „nesprávný“ jazyk Canonical ukazuje na jinou jazykovou verzi Upravit canonical, sladit s hreflangem
Hreflang je ignorován URL mají stavový kód 3xx/4xx/5xx nebo noindex Zajistit stav 200 OK, odstranit blokování
Rozdíl mezi HTML a sitemapou Neshodný počet alternativ / odlišné URL Sjednotit primární metodu, synchronizovat zdroje
Nekonzistentní varianty pro jednotlivé trhy Míchají se subdomény, protokoly a koncová lomítka Normalizovat strukturu URL a interní odkazy

Implementační vzory podle typu projektu

  • Vícedoménový model (example.sk, example.cz): udržujte totožnou strukturu cest; mapování tak bude stabilní a automatizovatelné.
  • Model s podadresáři (/sk/, /cz/): ideální na jednotném hostiteli a CDN; důležité je důsledně oddělit jazykové zdroje (menu, metadata, data, měny).
  • Model se subdoménami (sk.example.com): věnujte pozornost shodě varianty www a certifikátů; hreflang musí používat absolutní URL.

Příklady správných a chybných implementací

Správně (HTML, absolutní URL, self-ref, x-default):

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

Chybně (canonical napříč jazyky):

<link rel="canonical" href="https://www.example.com/en/service/" /> <!-- na slovenské verzi --> 

Hreflang v HTTP hlavičce pro jiné než HTML zdroje (např. PDF)

U PDF nebo jiných typů odpovědí můžete použít hlavičku Link:

Link: <https://www.example.com/sk/brochura.pdf>; rel="alternate"; hreflang="sk", <https://www.example.com/cz/brozura.pdf>; rel="alternate"; hreflang="cs-CZ", <https://www.example.com/>; rel="alternate"; hreflang="x-default" 

Proces zavedení a kontroly v 5 krocích

  1. Inventarizace URL: seznam všech jazykových verzí, párování 1:1 (mapa).
  2. Výběr metody: HTML versus XML sitemap (u velkých webů upřednostněte sitemapu kvůli škálovatelnosti).
  3. Generování tagů: šablony pro každý typ stránky (domovská stránka, kategorie, produkt, článek).
  4. Validace: testovací crawl (výstup: počet alternativních verzí, výskyt kódů, stavové kódy, soulad canonical).
  5. Monitoring: kontrola v CI při každém nasazení + pravidelný crawl (měsíčně) s porovnáním regresí.

Nejčastější „skryté“ nástrahy v reálných projektech

  • Dynamický přepínač jazyka, který mění pouze rozhraní, nikoli URL – hreflang nedává smysl bez jedinečných URL.
  • Geografické přesměrování před doručením HTML – vyhledávač uvidí jinou verzi, než jakou deklaruje hreflang. Místo tvrdých přesměrování používejte mírná doporučení (banner).
  • Přerušené mapování (některý trh chybí u části šablon) – naruší obousměrnost v sérii stránkování nebo u variant produktů.
  • Kombinace absolutních a relativních URL v tazích – vždy používejte absolutní URL s protokolem a hostitelem.

Kontrolní seznam: „Hreflang bez chyb“ na jednom místě

  • Platné kódy BCP-47 (jazyk povinný, region volitelný).
  • Tag self-referencing je uveden u každé verze.
  • Return-tags mezi všemi alternativami.
  • Canonical ukazuje na stejný jazyk (žádný canonical napříč jazyky).
  • Jedna primární metoda implementace (HTML/HTTP/sitemap), používaná konzistentně.
  • x-default pro jazykový rozcestník.
  • Pouze indexovatelné URL se stavem 200 OK; žádné blokování ani přesměrování.
  • Minimalizovaná indexace filtrů/parametrů; jasně definovaný korpus stránek.
  • Ošetřené zvláštní případy (PDF, AMP, mobilní verze, stránkování).
  • Automatizované testy a pravidelný monitoring v CI/CD.

Hreflang jako stabilní signál, nikoli jednorázový úkol

Hreflang je dlouhodobý technický závazek. Nejlepších výsledků dosahuje v kombinaci s jednoznačnou strategií URL, disciplinovanou kanonikalizací a automatizovanou validací. Pokud se budete řídit výše uvedenými 10 body, minimalizujete šum, zlepšíte relevanci ve výsledcích vyhledávání a zajistíte, že uživatelé vždy dostanou správnou jazykovou/regionální verzi vašeho obsahu.