SEO-21
Vysoké CLS
Co kontrola měří
Stránka se načte ve skutečném prohlížeči a změří se CLS (Cumulative Layout Shift): nakolik obsah během načítání poskakuje. Je to bezrozměrné číslo; čím vyšší, tím víc se stránka pod rukama hýbe. Nález vznikne nad 0,1. Práh je v config/ pod web_ a je to oficiální hranice „dobré“ z metodiky Core Web Vitals, ne náš odhad.
Platí tu stejná omezení jako u SEO-20 a jsou u CLS ještě podstatnější: je to jedno laboratorní načtení bez interakce, nad vzorkem nejvýš 10 stránek. Skutečné posuny přitom často nastanou až při scrollování nebo po kliknutí na souhlas s cookies, a to naše měření nezachytí.
Z toho plyne důležitá věc: nulový CLS v našem reportu neznamená, že stránka neposkakuje. Znamená, že neposkočila během těch několika vteřin, co jsme se dívali.
A co kontrola nedělá: neřekne, který prvek poskočil. Změří součet posunů, ne jejich původce; najít ho musíte v prohlížeči, viz níž.
Nález je na úrovni stránky, závažnost varování.
Jak silný důkaz za tím stojí
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.
Pro klasické vyhledávání je to potvrzený řadicí signál: Google ve vlastní dokumentaci uvádí, že Core Web Vitals používají jeho řadicí systémy. Jen je to jedna součást širšího hodnocení „page experience“, ne hlavní kritérium.
Na viditelnost v odpovědích AI doložený vliv nemáme a netvrdíme ho. Proto třída „efekt nedoložený“, stejná disciplína jako u SEO-20.
Kde má ale CLS hodnotu bez ohledu na jakýkoli vyhledávač: je to jediná metrika, jejíž dopad si zákazník sám vybaví. Každý zná ten okamžik, kdy se chystá kliknout na odkaz, stránka doskočí a klik dopadne na reklamu. To není abstraktní číslo, to je konkrétní naštvaný člověk.
Praktický závěr: opravujte to kvůli tomu, ne kvůli nám. A protože je naše měření jedno načtení bez interakce, berte hodnotu z reportu jen jako ukazatel směru; skutečná čísla jsou v Search Console od vašich návštěvníků.
Jak to opravit
Posun rozvržení má čtyři obvyklé příčiny a všechny jdou odstranit tím, že prvku vyhradíte místo předem:
- Obrázky bez rozměrů. Prohlížeč neví, kolik místa vyhradit, a když obrázek dorazí, odsune text. Doplňte
widthaheightdo atributů; hlásí to iSEO-10. - Vložený obsah bez rozměrů: mapy, videa, reklamní bloky. Obalte je kontejnerem s pevným poměrem stran (
aspect-ratio). - Písma, která přeskočí. Text se nejdřív vykreslí záložním písmem a po dotažení vlastního se přesází. Řešení:
font-display: optional, nebo záložní písmo s podobnými metrikami. - Obsah vkládaný nad existující. Lišta se souhlasem, oznámení, banner. Rezervujte pro ně místo, nebo je vykreslujte přes obsah, ne nad něj.
<!-- Obrázek s vyhrazeným místem -->
<img src="foto.jpg" alt="…" width="1200" height="800" style="max-width:100%;height:auto">
<!-- Vložené video s pevným poměrem stran -->
<div style="aspect-ratio:16/9">
<iframe src="…" style="width:100%;height:100%"></iframe>
</div>Ověřit si to můžete sami a spolehlivěji než naším měřením: otevřete stránku, ve vývojářských nástrojích zapněte zpomalení sítě a dívejte se, co při načítání poskočí. Co uvidíte, to CLS měří.
Co o tom říká report
Popis nálezu
Naměřený Cumulative Layout Shift je [cls], hranice „dobré“ hodnoty je [threshold]. Core Web Vitals jsou doložený ranking signál Google pro klasické vyhledávání (zdroj: web.dev / Google Search Central, viz docs/
Doporučení
Nastavte explicitní rozměry obrázků/videí (souvisí se SEO-10), rezervujte místo pro reklamy/
Zdroje
- Google Search Central: Understanding page experience (ověřeno 2026-09-12)
- web.dev: Cumulative Layout Shift (CLS) (ověřeno 2026-09-12)
Text ověřen 2026-09-12