SEO-14

Atribut lang chybí nebo je neplatný

VarováníStruktura

Co kontrola měří

Na každé živé stránce se čte atribut lang na značce <html> a ověřuje se tvar: jestli vypadá jako platný jazykový kód podle BCP 47. Nález vznikne, když atribut chybí, je prázdný, nebo má zjevně špatný tvar (cz, czech, en_US s podtržítkem).

Kontroluje se jen tvar, ne pravdivost. Stránka v češtině deklarující lang="de" tímhle nálezem projde; má platný kód. Nesoulad deklarace s obsahem hlásí samostatně SEO-34, a ten umí spolehlivě rozeznat jen češtinu.

Co kontrola nedělá: nekontroluje lang na vnořených prvcích (cizojazyčná citace uvnitř článku), neporovnává s jazykem obsahu a nevidí atribut doplněný JavaScriptem. Nález je na úrovni stránky, závažnost varování.

Jak silný důkaz za tím stojí

Efekt nedoložený

Doporučujeme to, protože to neuškodí nebo to má jiný užitek, ale vliv na to, jestli vás jazykové modely budou citovat, neslibujeme. Nikdo ho zatím nedoložil.

Na viditelnost v odpovědích AI doložený vliv nemáme, proto „efekt nedoložený“. Jako u STR-05 je ale potřeba rozlišit, komu ten atribut doopravdy slouží, protože odpověď je jinde, než se čeká.

Hlavní příjemce je čtečka obrazovky. Podle atributu lang si vybírá výslovnost. Česká věta přečtená anglickým hlasovým modelem je pro uživatele čtečky nesrozumitelná, ne nepohodlná, nesrozumitelná. Je to kritérium WCAG a je to nejtvrdší důvod, který tenhle nález má.

Druhý příjemce je prohlížeč: podle lang volí dělení slov, kontrolu pravopisu a nabídku překladu.

Pro vyhledávače je to slabší, než se tvrdí, a Google to říká nezvykle natvrdo. V dokumentaci o vícejazyčných webech stojí:

Google k určení jazyka stránky používá její viditelný obsah. Nepoužíváme žádné informace o jazyce na úrovni kódu, jako jsou atributy lang nebo URL.Google Search Central, vícejazyčné weby

Náš nález tedy hlásí něco, o čem Google výslovně píše, že to nepoužívá. Doporučujeme ho kvůli lidem a prohlížečům, ne kvůli pozici ve výsledcích, a kdyby vám někdo tvrdil, že lang zlepší vaše SEO, teď víte, kde si to ověřit.

Jak to opravit

Jeden atribut na otevírací značce dokumentu:

<html lang="cs">
  • Čeština je cs, ne cz. cz je kód země, ne jazyka, a je to nejčastější chyba v českém webu vůbec.
  • Pomlčka, ne podtržítko, když upřesňujete oblast: en-GB, ne en_US.
  • Nepřidávejte oblast, když ji nepotřebujete. cs je pro české texty správně; cs-CZ není chyba, ale nic nepřidá.
  • Vícejazyčný web má na každé jazykové verzi svůj lang: jeden lang="cs" napevno v šabloně sdílené s anglickou verzí je horší než žádný, protože tvrdí něco nepravdivého.

Když je na stránce delší pasáž v jiném jazyce, označte ji samostatně; čtečka podle toho přepne výslovnost uprostřed textu:

<p>Anglický originál zní: <span lang="en">There are no additional requirements.</span></p>

Co o tom říká report

Popis nálezu

`<html lang>` má hodnotu "[value]", což nevypadá jako platný jazykový kód (BCP 47). Vyhledávače i asistivní technologie ho čtou přímo, chybný nebo chybějící atribut je matoucí signál. Jde o standardní doporučení pro klasické vyhledávání (Google/Bing); nemáme doklad, že by to ovlivňovalo viditelnost v odpovědích AI asistentů.

Doporučení

Nastavte `<html lang="…">` na platný BCP 47 kód odpovídající skutečnému jazyku obsahu stránky (např. "cs", "en", "de-AT").

Zdroje

Text ověřen 2026-09-12