Umów konsultację

Bezpłatna wycena w 24h

Jak czytać raport Core Web Vitals — pole vs lab, co naprawiać najpierw

Jak czytać raport Core Web Vitals — pole vs lab, co naprawiać najpierw

SEO23 maja 20269 min czytania

Core Web Vitals (CWV) to trzy metryki wydajności, które Google używa jako sygnał rankingowy: LCP (ładowanie), INP (interaktywność) i CLS (stabilność wizualna). Problem: większość właścicieli stron nie wie, jak czytać raporty CWV, myli dane laboratoryjne z polowymi i naprawia nie to, co trzeba. Poniżej opisujemy, jak interpretować te dane — żebyś naprawiał rzeczy, które realnie wpływają na pozycje i konwersję.

Pole vs lab — fundamentalna różnica

To jest źródło 90% nieporozumień. Dane CWV pochodzą z dwóch źródeł:

  • Dane polowe (field / CrUX) — zebrane od prawdziwych użytkowników w Chrome przez ostatnie 28 dni. To jest prawda o Twojej stronie — jak ją widzą realni użytkownicy na realnych urządzeniach i połączeniach.
  • Dane laboratoryjne (lab / Lighthouse) — symulacja na jednym urządzeniu, z jednym połączeniem, w kontrolowanych warunkach. To jest przybliżenie — przydatne do debugowania, ale NIE pokazuje, jak strona działa w realnym świecie.

Kluczowe: Google używa danych polowych (CrUX) jako sygnału rankingowego, NIE laboratoryjnych. Wynik 95 w Lighthouse z laptopa nie znaczy nic, jeśli dane polowe pokazują LCP 4 sekundy na mobile. I odwrotnie — wynik 60 w Lighthouse nie jest problemem, jeśli dane polowe są zielone.

LCP — Largest Contentful Paint

LCP mierzy, kiedy największy element wizualny na stronie (zwykle hero image lub nagłówek H1) jest w pełni załadowany i widoczny. Google chce: <2.5s (dobre), 2.5–4.0s (do poprawy), >4.0s (słabe).

Co najczęściej psuje LCP (z naszych projektów):

  • Duże obrazy bez optymalizacji — hero image 2 MB zamiast 200 KB. Rozwiązanie: WebP/AVIF, responsive images (srcset), preload dla LCP image.
  • Wolny serwer (TTFB) — jeśli serwer odpowiada po 1.5s, LCP nie może być poniżej 1.5s + czas renderowania. Rozwiązanie: Redis, CDN, lepszy hosting.
  • Render-blocking CSS/JS — pliki CSS i JS, które muszą się załadować zanim cokolwiek się wyświetli. Rozwiązanie: critical CSS inline, defer/async dla JS.
  • Web fonty — ładowanie fontów z Google Fonts blokuje renderowanie. Rozwiązanie: font-display: swap, self-hosting fontów.

INP — Interaction to Next Paint

INP (od marca 2024 zastąpił FID) mierzy responsywność strony na interakcje użytkownika: kliknięcia, tappy, wpisywanie tekstu. Google chce: <200ms (dobre), 200–500ms (do poprawy), >500ms (słabe).

INP jest najtrudniejszą metryką do optymalizacji, bo zależy od JavaScriptu wykonywanego w przeglądarce. Co najczęściej psuje INP:

Max Mazurkiewicz

Max Mazurkiewicz

Founder

POTRZEBUJESZ SPERSONALIZOWANEJ WYCENY?

Chcesz się na coś zdecydować ale od nadmiaru możliwości boli głowa? Skontaktuj się z nami, dobierzemy rozwiązanie do potrzeb Twojej firmy.

Umów się na konsultację
  • Ciężki JavaScript — Elementor, jQuery, Swiper, Lightbox, Share widgets. Każdy skrypt blokuje main thread. Rozwiązanie: usunięcie zbędnych skryptów, lazy loading, web workers.
  • Hydration w React/Next.js — client-side hydration dużych komponentów blokuje interaktywność. Rozwiązanie: Server Components, streaming, partial hydration.
  • Event handlery w pętli — addEventListener na setki elementów (np. każdy produkt w katalogu). Rozwiązanie: event delegation.

CLS — Cumulative Layout Shift

CLS mierzy, jak bardzo elementy strony „skaczą" podczas ładowania. Google chce: <0.1 (dobre), 0.1–0.25 (do poprawy), >0.25 (słabe).

Co najczęściej powoduje CLS:

  • Obrazy bez wymiarów — brak width/height na <img> powoduje, że przeglądarka nie rezerwuje miejsca. Rozwiązanie: zawsze podawaj width i height (lub aspect-ratio w CSS).
  • Reklamy i embedy — AdSense, iFrame YouTube, widgety social media ładują się z opóźnieniem i przesuwają treść. Rozwiązanie: rezerwacja miejsca za pomocą min-height.
  • Web fonty bez font-display: swap — tekst renderowany jednym fontem zmienia rozmiar po załadowaniu innego. Rozwiązanie: font-display: swap + dopasowanie fallback fontu.
  • Dynamicznie wstrzykiwane banery — consent banery (cookie), alerty, promocje. Rozwiązanie: zarezerwuj miejsce lub użyj overlay zamiast push-down.

Co naprawiać najpierw — priorytetyzacja

Nie naprawiaj wszystkiego naraz. Nasza kolejność priorytetów:

  • 1. LCP — ma największy wpływ na pozycję i konwersję. Wolna strona = użytkownik wychodzi. Zacznij od obrazów i TTFB.
  • 2. CLS — łatwy do naprawienia (wymiary obrazów, font-display) i daje szybkie efekty w raporcie CrUX.
  • 3. INP — najtrudniejszy, bo wymaga zmian w JavaScript. Naprawiaj po LCP i CLS, chyba że INP jest krytycznie zły (>500ms).

Pomiar po zmianach — jak długo czekać

Dane polowe (CrUX) aktualizują się z 28-dniowym oknem kroczącym. To znaczy: po naprawie LCP musisz czekać 2–4 tygodnie, zanim dane polowe pokażą poprawę. W tym czasie monitoruj dane lab (Lighthouse) — jeśli lab poprawione, pole dogoni.

Google Search Console aktualizuje raport CWV z opóźnieniem — zwykle 1–2 tygodnie po aktualizacji CrUX. Nie panikuj, jeśli GSC nadal pokazuje „do poprawy" tydzień po naprawie. Sprawdzaj CrUX bezpośrednio na web.dev/measure lub w Chrome DevTools (Ctrl+Shift+I → Performance → Core Web Vitals).

Czego NIE nadinterpretować: jednorazowy słaby wynik Lighthouse (zależy od obciążenia komputera), różnice 5–10 punktów między testami (normalne), „oportunistyczne" sugestie Lighthouse (nie wszystkie warte wdrożenia). Patrzymy na dane polowe w CrUX i trend tygodniowy — nie na pojedynczy test lab.

Jeśli potrzebujesz pomocy z optymalizacją wydajności strony — analizujemy CWV i wdrażamy naprawy, które realnie przesuwają dane polowe, a nie tylko wynik Lighthouse.

Najczęściej zadawane pytania

Dane polowe (CrUX) to pomiary od prawdziwych użytkowników Chrome z ostatnich 28 dni — to na nich opiera się Google jako sygnał rankingowy. Dane laboratoryjne (Lighthouse) to symulacja na jednym urządzeniu w kontrolowanych warunkach. Wynik 95 w Lighthouse nie znaczy nic, jeśli dane polowe pokazują problemy.

LCP — ma największy wpływ na pozycję i konwersję. Potem CLS (łatwy do naprawienia: wymiary obrazów, font-display). INP na końcu, chyba że jest krytycznie zły (>500ms), bo wymaga zmian w JavaScript.

Dane polowe (CrUX) aktualizują się z 28-dniowym oknem kroczącym — po naprawie trzeba czekać 2–4 tygodnie na poprawę w raportach. Google Search Console aktualizuje się z dodatkowym 1–2 tygodniowym opóźnieniem. Monitoruj dane lab (Lighthouse) — jeśli lab się poprawiło, pole dogoni.

Niekoniecznie. Lighthouse to dane laboratoryjne — wynik zależy od obciążenia komputera, różnice 5–10 punktów między testami są normalne. Google ranking opiera się na danych polowych (CrUX), nie na Lighthouse. Patrzę na CrUX i trend tygodniowy, nie na pojedynczy test lab.

Max Mazurkiewicz
Max Mazurkiewicz
Founder
Digital marketing expert