Souhlas s cookies a Core Web Vitals: Jak si udržet skóre rychlosti stránky v roce 2026
Souhlas s cookies je zákonný požadavek — ale při špatné implementaci může banner souhlasu zničit vaše Core Web Vitals, stáhnout dolů SEO hodnocení a poškozovat konverze. V roce 2026, kdy Interaction to Next Paint (INP) od Google je nyní výchozí metrikou odezvy a zkušenost se stránkou je hluboce zakotvena v systému hodnocení, je technická kvalita vašeho CMP stejně důležitá jako jeho pokrytí souladu. Tato příručka vysvětluje, jak každý Core Web Vital ovlivňují implementace souhlasu s cookies a jak navrhnout tok souhlasu, který zůstane jak v souladu, tak rychlý.
Tři Core Web Vitals v roce 2026
Google měří tři primární polní metriky pro zkušenost se stránkou. Každá má práh pro „Dobré" výkon:
- Largest Contentful Paint (LCP) — čas vykreslení největšího viditelného prvku. Dobré: pod 2,5 sekundy.
- Interaction to Next Paint (INP) — odezva na všechny interakce uživatele (nahradil FID v březnu 2024). Dobré: pod 200 ms.
- Cumulative Layout Shift (CLS) — vizuální stabilita při načítání. Dobré: pod 0,1.
Banner souhlasu, který blokuje vykreslování, spouští těžký JavaScript při načítání nebo vkládá pozdní změny rozvržení, může kteroukoli z těchto hodnot tlačit do pásma „Potřebuje zlepšení" nebo „Špatné" — a Google používá 28denní polní data od skutečných uživatelů Chrome, takže přechodné problémy se stávají trvalými signály hodnocení.
Jak bannery souhlasu poškozují LCP
Largest Contentful Paint se obvykle spouští na hero obrázku nebo nadpisu. Několik vzorů souhlasu jej zbytečně zdržuje:
CMP skripty blokující vykreslování
Synchronní načítání CMP z hlavičky dokumentu zastaví analýzu HTML, dokud se skript nestáhne a nespustí. Pokud je CMP hostován na pomalém CDN nebo má studenou mezipaměť, můžete globálně přidat k LCP 200–800 ms.
Banner zakrývající hero prvek
Pokud je banner souhlasu umístěn jako modální překrytí zakrývající prvek LCP, prohlížeče stále měří LCP ze zakrytého prvku. Pokud je však banner největším vykresleným prvkem, stává se kandidátem LCP — a pokud se vykresluje přes JavaScript po načtení stránky, LCP je uměle vysoký.
Oprava: Asynchronní načítání s malým inline bootstrapem
Načtěte plný CMP asynchronně (`async` nebo `defer`), jen s malým inline skriptem pro počáteční zobrazení banneru. Cílem je bootstrap menší než 5 KB v gzip. Plná logika chování, seznamy dodavatelů a UI chrome se mohou líně načítat po prvním vykreslení.
Jak bannery souhlasu poškozují INP
Interaction to Next Paint měří nejhorší dobu odezvy napříč všemi kliknutími, klepnutími a stisky kláves během relace. Interakce souhlasu s cookies jsou často první interakcí, kterou uživatel provede — takže pomalé tlačítko Přijmout zničí skóre.
Těžká práce při přijetí
Mnoho CMP spouští synchronní práci při přijetí: načítání 40+ skriptů dodavatelů, zápis do localStorage, spouštění událostí dataLayer, aktivace aktualizací Google Consent Mode. Pokud to překročí 200 ms, INP trpí.
Oprava: Naplánujte práci po vykreslení
Při kliknutí na Přijmout okamžitě skryjte banner a naplánujte těžkou práci pomocí `requestIdleCallback` nebo `setTimeout(0)`. Uživatel vidí okamžité zmizení banneru; skripty dodavatelů se načítají na pozadí bez blokování interakce.
Jak bannery souhlasu poškozují CLS
Cumulative Layout Shift sleduje neočekávané vizuální pohyby. Bannery jsou klasickým zdrojem CLS, když jsou vloženy do DOM po vykreslení obsahu.
Pozdní vložení banneru
Pokud se banner zobrazí 800 ms po LCP, odtlačí obsah dolů a vytvoří posun rozvržení. I malý banner může spustit skóre CLS 0,1+ pokud ovlivní velkou část výřezu.
Překreslování widgetu preferencí cookies
Widgety preferencí v zápatí, které asynchronně načítají loga dodavatelů, mohou způsobit přetok celého zápatí vícekrát, čímž se CLS kumuluje.
Oprava: Rezervujte prostor předem
Použijte CSS k rezervaci prostoru banneru od samotného prvního vykreslení — zástupný prvek s pevnou výškou, `min-height` v zápatí nebo banner fixovaný dole, který neodtlačuje obsah. Moderní CMP by měly nabízet konfiguraci bez CLS přímo z krabice.
Google Consent Mode V2 a výkon
Consent Mode V2 umožňuje taggům Google fungovat v stavu bez cookies před souhlasem a předávat signály přes `gtag('consent', 'default', {...})`. To je skvělé pro kontinuitu měření, ale samotná knihovna gtag.js má 50–90 KB. Načtěte ji asynchronně a nastavte výchozí hodnoty co nejdříve, abyste se vyhnuli závodním podmínkám.
- Nastavte výchozí hodnoty před načtením gtag — umístěte volání výchozí hodnoty souhlasu do hlavičky, před skript gtag.js.
- Použijte `analytics_storage: 'denied'` jako výchozí hodnotu — minimalizuje data shromážděná před souhlasem.
- Aktualizujte při přijetí přes requestIdleCallback — vyhněte se blokování hlavního vlákna.
Měření dopadu CMP na Core Web Vitals
Neodhadujte — měřte. Pomocí těchto nástrojů kvantifikujte dopad svého banneru:
- PageSpeed Insights — polní data z Chrome UX Report plus laboratorní audit Lighthouse. Porovnejte skóre s CMP skriptem a bez něj.
- Rozšíření Web Vitals pro Chrome — překrytí LCP, INP, CLS v reálném čase během místního testování.
- WebPageTest.org — zobrazení filmového pásu a vodopádu přesně ukazující, kdy se banner vykresluje a co blokuje.
- Zpráva Core Web Vitals v Search Console — 28denní polní data seskupená podle vzoru URL. Zkontrolujte, zda cílové stránky s vaším bannerem skórují odlišně než stránky bez něj.
Jak FlexyConsent zůstává rychlý
FlexyConsent je navržen pro Core Web Vitals:
- 4 KB gzip komprimovaný bootstrap skript — plný CMP se líně načítá po prvním vykreslení.
- Banner se vykresluje přes záložní řešení pouze CSS, nulový CLS při prvním vykreslení.
- Handlery Přijmout/Odmítnout používají `requestIdleCallback` — žádná regrese INP.
- Výchozí hodnoty Google Consent Mode V2 přednastaveny před načtením gtag.js.
- Možnost vlastního hostování pro týmy s přísnými mezidoménovými rozpočty.
- Seznamy dodavatelů se streamují po souhlasu, ne předem.