CometWebPakiet badania

Core Web Vitals: testy laboratoryjne a dane terenowe CrUX

Maciej Zmitrukiewicz · Pakiet badania

To materiał do artykułu Core Web Vitals: dane laboratoryjne a CrUX. We wrześniu 2026 wielokrotnie testowałem cztery niezmienione strony cometweb.io, żeby sprawdzić trzy rzeczy: jak bardzo Lighthouse waha się sam z siebie, jak bardzo mój komputer i PageSpeed Insights różnią się w ocenie i co do tego dokładają dane terenowe CrUX.

Na co patrzyłem

Każdą z czterech stron produkcyjnych przepuściłem przez Lighthouse siedem razy: stronę główną, /pricing, /tools/auditor i /blog/woff2-vs-ttf. Użyłem domyślnego profilu mobilnego z symulowanym dławieniem, bez logowania i bez zgody na cookies. Każda próba dostawała nowy profil przeglądarki, więc za każdym razem było to zimne ładowanie, a strony szły na zmianę, żeby żadna nie miała wszystkich prób w jednym przedziale czasu.

Waga każdej strony mieściła się we wszystkich próbach w 0,31 KB, co zgadza się z tym, że w trakcie nic nie wdrażałem. Zostawiłem wszystkie 28 prób i żadnej nie wykluczyłem.

Do tego wywołałem API PageSpeed Insights trzy razy na stronę. Każda odpowiedź zawiera też dane terenowe CrUX, które Google ma dla adresu albo, zastępczo, dla całej domeny. Samo API CrUX było dla mojego klucza wyłączone, więc dane CrUX czytałem z odpowiedzi PSI.

Żeby zobaczyć, co mówi laboratorium tam, gdzie dane terenowe istnieją, wywołałem PSI raz dla pięciu znanych stron głównych, które niemal na pewno mają dane CrUX: web.dev, developer.chrome.com, MDN, w3.org i wikipedia.org. Wybrałem je właśnie z tego powodu, więc traktuj je jako ilustrację, bez wniosków o całej sieci.

Wyniki

Cztery niezmienione strony, 28 lokalnych prób. Podaję medianę, a w nawiasie najniższą i najwyższą wartość.

StronaWynikLCPFCPTBT
/67 (63–68)6,4 s (6,0–6,8)4,2 s (4,1–4,4)32 ms (17–43)
/pricing67 (65–75)6,3 s (4,9–7,0)4,0 s (3,4–4,5)3 ms (0–17)
/tools/auditor69 (68–72)5,9 s (5,3–6,1)3,7 s (3,6–4,1)1 ms (0–31)
/blog/woff2-vs-ttf70 (69–77)5,7 s (4,8–5,9)3,7 s (2,9–3,9)0 ms (0–20)

We wszystkich 28 próbach wynik wahał się od 63 do 77. Żadna symulowana próba nie miała LCP na poziomie 2,5 s albo niżej. Bez dławienia te same ładowania kończyły LCP w około 1,3 s (mediana), co pokazuje, ile z wyniku laboratoryjnego to model dławienia. Wszystkie 28 lokalnych prób miało CLS równe dokładnie 0.

PageSpeed Insights wobec moich lokalnych prób, trzy wywołania PSI na stronę:

StronaWynik PSIWynik lokalnyLCP w PSILCP lokalnie
/71 (63–76)674,5 s6,4 s
/pricing85 (79–85)673,8 s6,3 s
/tools/auditor79 (78–82)694,2 s5,9 s
/blog/woff2-vs-ttf78 (77–81)704,1 s5,7 s

PSI dawał od 4 do 18 punktów więcej. Jego maszyny są dużo wolniejsze: indeks wydajności, który zapisuje Lighthouse, wynosił na moim komputerze od 4191 do 4430, a w PSI od 499 do 1338. Jedna próba PSI strony głównej miała TBT 433 ms, a moje najwyższe lokalne TBT wyniosło 43 ms.

CrUX nie miał dla cometweb.io żadnych danych terenowych, ani dla adresów, ani dla domeny.

Pięć publicznych stron, jedna laboratoryjna próba PSI wobec 75. percentyla CrUX z tej samej odpowiedzi:

StronaLCP w laboratoriumLCP w terenie (p75)INP w terenie (p75)Core Web Vitals w terenie
web.dev6,8 s3,1 s220 msniezaliczone
developer.chrome.com3,8 s3,0 s294 msniezaliczone
developer.mozilla.org2,7 s1,9 s160 mszaliczone
w3.org1,7 s1,1 s89 mszaliczone
wikipedia.org1,4 s1,3 s98 mszaliczone

LCP z laboratorium był wyższy na wszystkich pięciu stronach. Pojedyncza próba i percentyl z 28 dni to liczby innego rodzaju, więc różnica pokazuje, czym się te dwie liczby różnią, i żadne narzędzie się tu nie myli.

Po 28 próbach uruchomiłem Lighthouse jeszcze raz na stronie głównej i przeczytałem jego diagnostykę. Szacowane oszczędności to estymacje Lighthouse z tej jednej próby. Poprawkę, która z tego wyszła, opisuję w pomiarze przed i po.

Czego te dane nie pokażą

Pliki

Pola w plikach danych mają angielskie nazwy, wspólne dla obu wersji językowych.

Żeby to powtórzyć, zainstaluj lighthouse@13.5.0, a potem uruchom CHROME_PATH=<Chromium> node lab-runs.mjs --runs 7 --out lab-runs.json, node psi-runs.mjs --out psi-runs.json (opcjonalny klucz podajesz w PAGESPEED_API_KEY i nie trafia on do żadnego pliku) oraz node analyze.mjs.

Wróć do artykułu