Slovník Core Web Vitals: LCP, INP, CLS a ďalšie pojmy
Základný slovník - definície, čísla, typické pasce a kvalitné zdroje pre každú metriku.
· 13 min čítania
Core Web Vitals sú tri metriky - LCP, INP a CLS. Web ich spĺňa, keď sú všetky tri v "zelených číslach" na 75. percentile návštev, pre mobilné zariadenia a desktop. Tento slovník je referenčná stránka, podľa ktorej sa môžete orientovať: každý pojem má definíciu, prahy, typické pasce a odkaz na primárny zdroj.
Všetky prahy nižšie sú hodnotené na p75 z reálnych používateľov (web.dev: Web Vitals). Štandardne sa pri metrikách rozlišujú tri intervaly: Good, Needs improvement a Poor. Ak je metrika v zelenom, stránka je "good" pre túto metriku.
| Metrika | Čo meria | Good | Needs improvement | Poor | Status |
|---|---|---|---|---|---|
| LCP | Načítanie najväčšieho viditeľného obsahu | ≤ 2,5 s | 2,5–4,0 s | > 4,0 s | Core Web Vital |
| INP | Odozva na interakcie | ≤ 200 ms | 200–500 ms | > 500 ms | Core Web Vital (od 12. 3. 2024) |
| CLS | Vizuálna stabilita | ≤ 0,1 | 0,1–0,25 | > 0,25 | Core Web Vital |
| TTFB | Odozva servera | ≤ 0,8 s | 0,8–1,8 s | > 1,8 s | Diagnostická |
| FCP | Prvé vykreslenie obsahu | ≤ 1,8 s | 1,8–3,0 s | > 3,0 s | Diagnostická |
| TBT | Blokovanie hlavného vlákna (lab) | < 200 ms | - | - | Lab proxy pre INP |
Ako čítať tento slovník: najprv základné pojmy (p75, field vs. lab), potom tri Core Web Vitals, diagnostické metriky, aktuálne dáta o stave webu a nakoniec ďalšie pojmy.
Základné pojmy
Web Vitals - iniciatíva Googlu, ktorá definuje signály kvalitného používateľského zážitku na webe. Zahŕňa aj pomocné metriky ako TTFB, FCP či TBT (web.dev).
Core Web Vitals (CWV) - podmnožina Web Vitals, ktorá platí pre každú stránku a je priamo merateľná na webe. V súčasnosti sú to LCP (načítanie), INP (interakcie) a CLS (vizuálna stabilita). Stabilné metriky sa menia najviac raz ročne a každá zmena ide do verejného changelogu.
Životný cyklus metriky - experimental → pending → stable. Pending fáza trvá najmenej šesť mesiacov, aby sa ekosystém stihol prispôsobiť. Touto cestou prešlo napríklad INP predtým ako nahradilo pôvodnú metriku FID(first input delay).
p75 (75. percentil) - hodnota, pod ktorou je 75 % meraní. Stránka je „good“, keď aspoň 75 % návštev spĺňa prah. Dôvodom na využívanie tohoto percentilu je, aby nám odchýlky spôsobené sieťou alebo zariadeniami s extrémne odchýlenými hodnotami nevychýlili výsledky. Hodnotí sa zvlášť mobil a desktop, kvôli rôznym zobrazovacím a sieťovým podmienkam.
Passing / „prešiel CWV“ - stav, keď web spĺňa všetky tri Core Web Vitals na p75 naraz. Ak chýba dátový bod pre INP (nikto neinteragoval), hodnotí sa zo zvyšných dvoch metrik.
Field data - merania od reálnych používateľov na ich zariadeniach a sieťach. Zdroje: CrUX a vlastný RUM. Toto sú dáta, podľa ktorých sa Core Web Vitals hodnotia.
Lab data - merania v kontrolovanom prostredí (Lighthouse, DevTools, WebPageTest). Sú reprodukovateľné a vhodné na ladenie, nevidia však skutočné interakcie uživateľov, cache ani rozmanitosť zariadení a sieťových podmienok. Lighthouse preto INP nemeria a používa TBT ako proxy (web.dev).
CrUX (Chrome User Experience Report) - verejný dataset anonymizovaných terénnych meraní z Chromu. Poháňa PageSpeed Insights, Search Console aj CrUX v DevTools (CrUX dokumentácia).
28-dňové okno - CrUX v PageSpeed Insights a CrUX API sú agregované za posledných 28 dní. Oprava nasadená dnes sa preto v skóre prejaví postupne a naplno až po zhruba štyroch týždňoch.
Origin vs. URL - CrUX má dáta za celú doménu ale aj za jednotlivé podstránky, pokiaľ majú dostatočnú návštevnosť.
RUM (Real User Monitoring) - vlastné meranie hodnôt pri uživateľoch, typicky cez knižnicu web-vitals alebo cez iný na to určený nástroj. Na rozdiel od CrUX, tu sme schopní merať hodnoty pre všetky prehliadače, každý pageview a vieme úsť viac do hĺbky (ktorý element bol problémový, ktorá interakcia je pomalá, ...). Aj Google odporúča mať vlastné RUM popri CrUX.
Atribúcia (attribution build) - verzia web-vitals (web-vitals/attribution), ktorá k hodnote pridá príčinu: LCP element, INP interakcie a jej fázy, element s najväčším posunom pri CLS.
LCP - Largest Contentful Paint
LCP je čas od začiatku navigácie po vykreslenie najväčšieho obrázku alebo najväčšieho textového bloku vo na obrazovke(viewport). Good je ≤ 2,5 s na p75 (web.dev: LCP).
Kandidáti na LCP element - <img>, <image> v SVG, náhľad <video>, element s CSS background-image cez url() a blokové elementy s textom. Štatistiky podľa Web Almanac 2025 tvrdia, že LCP elementom je obrázok na 76 % mobilných a 85 % desktopových stránok, text na 24 % mobilných (Web Almanac 2025).
Fázy LCP (LCP subparts) - každé LCP sa dá bez medzier rozložiť na štyri časti, ktoré spolu dávajú celkový čas (web.dev: Optimize LCP):
| Fáza | Čo meria | Odporúčaný podiel |
|---|---|---|
| TTFB | Od navigácie po prvý bajt HTML | ~40 % |
| Resource load delay | Od TTFB po začiatok sťahovania zdroja LCP | < 10 % |
| Resource load duration | Sťahovanie LCP zdroja | ~40 % |
| Element render delay | Od stiahnutia po vykreslenie elementu | < 10 % |
Typické problémy:
loading="lazy"na LCP elemente: robí to 16-17 % stránok, hoci to vždy zhorší samotnú rýchlosť vykreslenia LCP elementu, pretože sa sťahuje neskôr. Lazy v tomto prípade nie je riešením.- LCP obrázok nie je v HTML (vložený JavaScriptom,
data-src, CSS pozadie bez preloadu), - chýbajúci
fetchpriority="high": používa ho len 17 % mobilných stránok s LCP obrázkom, - client-side rendering, A/B testovacie skripty skrývajúce obsah, synchrónne skripty v
<head>.
Podpora v prehliadačoch - Firefox meria LCP od januára 2024, Safari od verzie 26.2 (december 2025) (DebugBear).
INP - Interaction to Next Paint
INP meria najhoršiu (takmer najhoršiu) odozvu na kliknutia, ťuknutia a stlačenie klávesov počas celej návštevy stránky. Good je ≤ 200 ms na p75 (web.dev: INP). Core Web Vital je od marca 2024, keď nahradilo metriku FID (web.dev blog).
Prečo je to dôležité - podľa dát Chromu trávi používateľ 90 % času na stránke až po jej načítaní. FID meralo len prvú interakciu uživateľa a INP sleduje všetky interakcie.
Interakcia - skupina event handlerov jedného logického gesta (napr. pointerdown + pointerup + click pri ťuknutí). Počítajú sa iba klik myšou, ťuknutie a klávesnica. Scroll alebo zoom sa nepočítajú.
Tri fázy interakcie:
- Input delay - od vstupu po spustenie prvého handlera. Rastie, keď nám úkon blokujú dlhé úlohy (hydratácia, scripty tretích strán).
- Processing duration - beh všetkých event handlerov interakcie.
- Presentation delay - od konca handlerov po vykreslenie ďalšieho frame-u (style, layout, paint). Veľký DOM a layout thrashing ju predlžujú.
Pravidlo outlierov - na každých 50 interakcií sa ignoruje jedna najhoršia. Väčšina návštev má však často menej ako 50 interakcií, takže sa obvykle odreportuje tá úplne najhoršia.
Kedy INP chýba - používateľ nevykonal nijakú interakciu, iba scrolloval, alebo išlo o bota. Lab nástroje bez skriptovaných interakcií INP nenamerajú; v takom prípade sa sleduje TBT.
Typické problémy:
- dlhé synchrónne handlery - napríklad filtrovanie veľkého zoznamu pri každom stlačení klávesy,
- drahá reaktivita bez debouncu alebo throttlingu,
- zmena, pri ktorej prerenderujeme veľkú časť strany,
- množstvo JS ktoré beží na pozadí a blokuje tým hlavné vlákno (reklamy, analytika, widgety tretích strán),
Podpora v prehliadačoch - Firefox podporuje interactionId potrebné pre INP od októbra 2025, Safari od verzie 26.2 (DebugBear).
CLS - Cumulative Layout Shift
CLS je súčet neočakávaných posunov počas celej návštevy podstránky. Good je ≤ 0,1 na p75 (web.dev: CLS). Je bezrozmerné - nie sekundy, nie pixely. Vyjadrená je koeficientom, ktorý sa počíta z veľkosti posunutých elementov a vzdialenosti, o ktorú sa posunuli.
Layout shift - viditeľný element zmení svoju počiatočnú pozíciu. Pridanie nového elementu alebo zmena veľkosti nie je posun, pokiaľ neposunie iné viditeľné elementy.
Layout shift score - súčin dvoch zlomkov: layout shift score = impact fraction × distance fraction.
- Impact fraction - podiel viewportu, ktorý zaberajú nestabilné elementy pred a po posune dohromady.
- Distance fraction - najväčšia vzdialenosť, o ktorú sa element posunul, delená najväčším rozmerom viewportu.
- Príklad z web.dev: element na 50 % viewportu sa posunie o 25 % výšky → 0,75 × 0,25 = 0,1875, čiže jediný takýto posun nás dostane k „poor“ hodnoteniu.
Session window - skupina posunov s menej než 1 s medzi nimi a maximálnou dĺžkou okna 5 s. CLS je skóre najhoršieho okna. Pôvodne bolo CLS súčtom všetkých posunov, čo neprimerane trestalo dlho otvorené stránky (obzvlášt postihovalo SPA).
Očakávaný vs. neočakávaný posun - posuny do 500 ms po diskrétnom vstupe (klik, ťuk, klávesa) majú príznak hadRecentInput a nezapočítavajú sa. Scroll, drag a pinch sa za takýto vstup nepovažujú.
Lab vs. field - lab nástroje vidia iba posuny počas načítania, takže CLS z Lighthouse býva nižšie než u reálnych používateľov.
Typické príčiny (Web Almanac 2025):
- obrázky bez
width/heightaleboaspect-ratio- 62 % mobilných stránok má aspoň jeden, - výmena fontu za fallback s inými metrikami,
- reklamy a iframy bez rezervovaného miesta,
- animácie
top/heightnamiestotransform- 40 % mobilných stránok.
Podpora v prehliadačoch - CLS (Layout Instability API) meria stále iba Chromium.
Diagnostické a historické metriky
Nasledujúce metriky nie sú Core Web Vitals, ale vysvetľujú, prečo je LCP alebo INP zlé.
TTFB - Time to First Byte - čas od začiatku navigácie po prvý bajt HTML odpovede. Zahŕňa presmerovania, DNS, TCP/TLS a spracovanie na serveri. Good ≤ 0,8 s, poor > 1,8 s (web.dev: TTFB). Je prvou podčasťou LCP, takže pomalé TTFB robí 2,5 dokáže narobiť veľké problémy pri LCP metrike.
FCP - First Contentful Paint - prvé vykreslenie akéhokoľvek obsahu (text, obrázok, SVG, nie-biely canvas). Good ≤ 1,8 s, poor > 3,0 s (web.dev: FCP). Veľký rozdiel TTFB → FCP signalizuje render-blocking zdroje.
TBT - Total Blocking Time - iba lab metrika: súčet časti dlhých úloh nad 50 ms medzi FCP a Time to Interactive. Good < 200 ms. Je to lab proxy pre INP, nie náhrada (web.dev: TBT).
Long task - úloha na main threade ktorá jedlhšia ako 50 ms. Blokuje vstup aj vykresľovanie.
LoAF - Long Animation Frames API - API, ktoré hlási frame-y oneskorené o viac ako 50 ms a pripisuje im konkrétne skripty. Je to najlepší nástroj na identifikáciu zlého INP v teréne (Chrome for Developers).
FID - First Input Delay (vyradené) - meralo iba input delay prvej interakcie. 12. marca 2024 ho nahradilo INP a z nástrojov Googlu bolo odstránené. Staré články s FID treba považovať za neaktuálne.
Speed Index, TTI - staršie lab metriky z Lighthouse. Speed Index meria, ako rýchlo sa obsah vizuálne vyplní; TTI bolo z Lighthouse 10 odstránené.
Stav webu v číslach
V júli 2025 spĺňalo všetky tri Core Web Vitals 48 % mobilných a 56 % desktopových verzií webov (Web Almanac 2025). Ide o posledný úplný ročný prehľad; ktorý štadardne vychádza ku koncu roka. Aktuálne mesačné čísla sú v CrUX.
| Ukazovateľ (CrUX, júl 2025) | Mobil | Desktop |
|---|---|---|
| Originy s dobrými CWV | 48 % | 56 % |
| Domovské stránky s dobrými CWV | 45 % | - |
| Sekundárne stránky s dobrými CWV | 56 % | - |
| Originy s dobrým TTFB | 44 % | - |
Mobil rástol aj po nástupe prísnejšieho INP v marci 2024. Desktop sa medzi 2024 a 2025 prakticky nepohol.
LCP je na mobile úzkym hrdlom, pretože jeho prvou podčasťou je TTFB, ktoré má dobré iba 44 % mobilných originov. CLS je jediná metrika, kde mobil vedie nad desktopom.
Pre kontext z rovnakej kapitoly:
- domovské stránky spĺňajú CWV horšie ako sekundárne: 45 % vs. 56 % na mobile,
- top 1 000 webov má dobré CWV na mobile v 51 %, stredne populárne weby (top 100 000) len v 37 %,
- medián TBT na mobile stúpol na 1 916 ms (2024: 1 209 ms), hoci terénne INP sa zlepšilo.
Ďalšie pojmy A–Z
bfcache (back/forward cache) - prehliadač uloží celú stránku do pamäte a pri tlačidle Späť/Dopredu ju obnoví okamžite z pamäte. CLS aj INP sa vtedy resetujú. Blokujú ju napr. unload handlery (11 % desktopových stránok) a v Safari a Firefoxe aj Cache-Control: no-store (23 % stránok) (web.dev: bfcache, Web Almanac 2025).
Distribution (good / NI / poor) - CrUX neuvádza len p75, ale aj podiel návštev v každom pásme. Posun distribúcie ukáže zlepšenie skôr, než sa p75 prehupne cez prah.
Early Hints (HTTP 103) - server pošle preload/preconnect hinty ešte pred hotovým HTML. Zlepšuje FCP a LCP pri pomalom TTFB; používa sa na menej než 6 % stránok.
fetchpriority - HTML atribút (high/low/auto), ktorý mení prioritu sťahovania. Na LCP obrázok high, na neviditeľné slajdy karuselu low.
Hydratácia - kroky, ktorými frontendový framework pripojí JavaScript k serverovo vyrenderovanému HTML. Dlhá hydratácia je častým zdrojom input delay pri INP počas načítania.
Interop - každoročná iniciatíva výrobcov prehliadačov zjednotiť vybrané funkcie. V Interop 2025 boli LCP a INP (Event Timing), vďaka čomu ich dnes merajú Chrome, Firefox aj Safari.
Page-level vs. origin-level - Web Almanac ukázal, že sekundárne stránky majú lepšie CWV ako domovské (56 % vs. 45 % na mobile), pretože často profitujú z cache.
Preload scanner - paralelný parser, ktorý v surovom HTML hľadá zdroje na sťahovanie skôr, než sa vykoná JavaScript. Čo nevidí (obrázok vložený JS-om), sťahuje sa neskoro.
Soft navigation - zmena URL a obsahu v SPA bez plného načítania. Klasické CWV ju nemerajú ako novú stránku; Chrome testuje Soft Navigations API, ktoré má meranie rozšíriť (Chrome for Developers).
Speculation Rules - JSON pravidlá na prefetch alebo prerender celých stránok. Prerenderovaná navigácia môže mať LCP takmer nulové; WordPress ich má v jadre od verzie 6.8.
web-vitals.js - oficiálna knižnica Google Chrome tímu (onLCP, onINP, onCLS, onTTFB, onFCP), ktorá meria metriky rovnako ako nástroje Googlu, vrátane bfcache a reportovania pri visibilitychange (GitHub).
Zdroje
Primárne definície (Google / Chrome tím)
- Web Vitals - Philip Walton, web.dev (aktualizované 31. 10. 2024)
- Largest Contentful Paint (LCP) a Optimize LCP - Walton, Pollard (aktualizované 31. 3. 2025)
- Interaction to Next Paint (INP) - Jeremy Wagner, Barry Pollard (aktualizované 2. 9. 2025)
- Optimize INP
- Cumulative Layout Shift (CLS) - Milica Mihajlija, Philip Walton
- Defining the Core Web Vitals metrics thresholds - metodika za prahmi a p75
- TTFB, FCP, TBT
- Lab vs. field data a CrUX vs. RUM
- Chrome UX Report - dokumentácia
- Metrics changelog (Chromium)
- web-vitals.js
Dáta
- Web Almanac 2025: Performance - HTTP Archive, publikované 15. 1. 2026, CrUX júl 2025, DOI 10.5281/zenodo.18258743
- Surové dáta k Web Almanac 2025 a SQL dotazy
Podpora v prehliadačoch
- Firefox And Safari Now Support Two Core Web Vitals Metrics - Matt Zeunert, DebugBear (15. 12. 2025, aktualizované 19. 3. 2026)
- Safari 26.2 release notes
Súvisiace články
· 12 min čítania
Prečo milisekundy stoja peniaze
Ako sa milisekundy menia na eurá - štúdie, A/B testy, stav webu a postup, ako vyčísliť hodnotu rýchlosti vo vlastnom projekte.