Cumulative Layout Shift (CLS): Kompletní průvodce optimalizací

10.03.2025

Cumulative Layout Shift (CLS) je metrika Core Web Vitals, která měří vizuální stabilitu stránky během jejího načítání. CLS hodnotí, jak moc se prvky na stránce neočekávaně posouvají, což může negativně ovlivnit uživatelskou zkušenost.

Google doporučuje následující hodnoty CLS:

  • Dobrý CLS: < 0,1

  • Potřebuje zlepšení: 0,1 – 0,25

  • Špatný CLS: > 0,25

CLS: Posun rozložení stránky způsobující nechtěná kliknutí
CLS: Posun rozložení stránky způsobující nechtěná kliknutí

Proč je CLS důležitý?

CLS ovlivňuje uživatelskou spokojenost a celkové vnímání kvality webu. Neočekávané změny layoutu mohou způsobit:

  • Kliknutí na nesprávný prvek (např. uživatel klikne na tlačítko, které se posune těsně před interakcí).

  • Frustraci uživatelů a vyšší míru odchodu (bounce rate).

  • Negativní dopad na SEO, protože Google penalizuje weby s vysokým CLS.

Jak se CLS měří?

CLS se počítá na základě posunu viditelných prvků na stránce. Výsledek je součtem jednotlivých layout shift hodnot během celého načítání stránky.

1. Měření pomocí Google PageSpeed Insights

Google PageSpeed Insights poskytuje CLS skóre v sekci Field Data (reálná uživatelská data) a Lab Data (simulované testy).

2. Google Search Console

V sekci Core Web Vitals lze sledovat, které stránky mají problémy s CLS.

3. Chrome DevTools

V Chrome DevTools lze v záložce Performance sledovat posuny layoutu a identifikovat problematické prvky.

4. Web Vitals JavaScript API

Pro měření CLS přímo na webu můžete použít web-vitals.js:

import {getCLS} from 'web-vitals'; getCLS((metric) => { console.log(metric.value); });

 CLS: Hodnocení stability rozložení – dobré, zlepšit, špatné
CLS: Hodnocení stability rozložení – dobré, zlepšit, špatné

Hlavní příčiny vysokého CLS

  1. Načítání obrázků bez definovaných rozměrů

    • Obrázky bez width a height způsobují posuny layoutu.

  2. Reklamy a vložený obsah (iframe, widgety, bannery)

    • Reklamy se mohou načítat asynchronně, což způsobuje posuny.

  3. Dynamický obsah

    • AJAX volání nebo změna obsahu může způsobit posuny layoutu.

  4. Nesprávné načítání webfontů

    • Flash of Unstyled Text (FOUT) nebo Flash of Invisible Text (FOIT) mohou způsobit vizuální posuny.

  5. Pozdní aplikace CSS stylů

    • Styly aplikované později mohou změnit velikost prvků.

Jak zlepšit CLS?

1. Definování rozměrů médií

  • Přidejte pevné rozměry pro obrázky a videa:

<img src="image.jpg" width="600" height="400" alt="Optimalizovaný obrázek">

  • Používejte CSS aspect-ratio pro flexibilní velikosti:

img { aspect-ratio: 16/9; }

2. Optimalizace načítání reklam a iframe obsahu

  • Rezervujte pevné místo pro reklamy pomocí CSS:

.ad-slot { width: 300px; height: 250px; }

  • Používejte lazy loading:

<iframe src="ad.html" loading="lazy"></iframe>

3. Zamezení posunů způsobených webovými fonty

  • Používejte font-display: swap; pro rychlé načtení náhradního fontu:

@font-face { font-family: 'CustomFont'; src: url('custom-font.woff2') format('woff2'); font-display: swap; }

4. Použití Skeleton Loaders pro dynamický obsah

  • Místo prázdných míst vykreslujte placeholdery:

<div class="skeleton"></div>.skeleton { background-color: #eee; height: 200px; width: 100%; }

5. Minimalizace JavaScriptového reflow

  • Používejte transform místo top/left pro animace:

.bad { position: absolute; top: 50px; } .good { transform: translateY(50px); }

Případové studie: Jak snížení CLS pomohlo webům

1. E-commerce web: Snížení CLS o 75 % a zvýšení konverzí

Problém: Produkty na stránce se při načítání pohybovaly kvůli dynamicky načítaným obrázkům.

Řešení:

  • Přidání pevné velikosti obrázků

  • Zavedení lazy loadingu

  • Použití skeleton loaders

Výsledek:

  • CLS se snížilo z 0,32 na 0,08

  • Konverzní poměr se zvýšil o 25 %

2. Zpravodajský web: Snížení odchodu uživatelů o 20 %

Problém: Reklamy a vložený obsah způsobovaly nečekané posuny stránky.

Řešení:

  • Rezervace prostoru pro reklamy

  • Optimalizace lazy loadingu widgetů

Výsledek:

  • CLS kleslo z 0,40 na 0,09

  • Bounce rate se snížil o 20 %

Cumulative Layout Shift je důležitou metrikou pro uživatelskou zkušenost i SEO. Zaměřte se na pevné rozměry médií, správné načítání reklam, optimalizaci webfontů a minimalizaci dynamických změn layoutu.

🔍 Trápí vás vysoký CLS? 

Pomohu vám optimalizovat vizuální stabilitu vašeho webu a zlepšit uživatelskou zkušenost. Kontaktujte mě a prvních 15 minut konzultace máte zdarma!

Napiš mi a začněme vytvářet hodnoty ještě dnes!

Prvních 15 minut konzultace je na mě!


Štítky
Hodnocení článku

Na tvém názoru záleží

0.0
Hodnotilo 0 uživatelů
5★
0x
4★
0x
3★
0x
2★
0x
1★
0x
Ohodnotit článek
Děkujeme za vaše hodnocení!
Napsat komentář

Komunita a newsletter

Chceš být u novinek jako první? Připoj se na náš CZ/SK komunitní Discord, kde v roomce #herní-novinky najdeš ty nejčerstvější pecky! 🎮💥 Můžeš se taky zapojit do diskuze, najít nové přátele, spoluhráče, účastnit se GIVEAWAYS a ulovit periférie nebo klíče na hry, které tě zajímají! 🔑👾

Díky tvé podpoře mohu vytvářet kvalitní herní obsah a přinášet nejčerstvější informace ze světa gamingu 🎮. Některé odkazy v mých článcích mohou být affiliate - když přes ně nakoupíš, dostanu malou provizi, aniž by se změnila cena pro tebe. Všechny produkty a hry, které doporučuji, jsou pečlivě vybrané a osobně otestované. Tento příjem mi pomáhá zůstat nezávislým tvůrcem a přinášet ti objektivní recenze a názory. Pokud se ti můj obsah líbí, můžeš mě podpořit i přes členství na Twitchi, YouTube nebo Discord Nitro boost. Děkuji za tvou podporu! - MagicStark 💎

Autorova fotka

Daniel Haša

🎮 Streamer | 🎥 Content Creator | 📈 SEO Specialist | 🎮 Gamer & Beta Tester | ✍️ Copywriter | 🧠 AI user

Daniel je vášnivý hráč a tvůrce obsahu, který se specializuje na herní recenze, návody a novinky ze světa videoher. Pravidelně streamuje na Twitchi, vytváří detailní YouTube videa a přináší exkluzivní články na magicstark.cz. Pokrývá nejnovější tituly, poskytuje hluboké herní analýzy a pomáhá hráčům dostat ze sebe maximum.