Największe malowanie treści (LCP)

Co mierzy LCP, jego progi, cztery podczęści, z których się składa, oraz jak faktycznie go poprawić — metryka Core Web Vitals, z którą ludzie mają najwięcej problemów.

Opublikowano po raz pierwszy: 26 cze 2026 · Ostatnia aktualizacja: 3 sie 2026 · Zaawansowane

Największe malowanie treści (LCP) to czas renderowania największego obrazu lub bloku tekstu widocznego w viewporcie, liczony od momentu rozpoczęcia ładowania strony. Dobry wynik to ≤2,5 s na 75. percentylu rzeczywistych użytkowników; jest to jedna z trzech metryk Core Web Vitals. Dzieli się na cztery podczęści — TTFB, opóźnienie ładowania zasobu, czas ładowania zasobu i opóźnienie renderowania elementu — przy czym TTFB i czas ładowania zwykle dominują. Największe zyski: nie używaj leniwego ładowania dla obrazu LCP, nadaj mu fetchpriority=high, wczytaj go wcześniej, ogranicz zasoby blokujące renderowanie i napraw TTFB. To metryka polowa — narzędzia laboratoryjne tylko ją przybliżają — i spośród Core Web Vitals to z nią ludzie mają największe trudności, zwłaszcza na urządzeniach mobilnych.

TL;DR — LCP to czas renderowania największego obrazu lub bloku tekstu widocznego w obszarze widoku, względem momentu rozpoczęcia ładowania strony. Dobry wynik to ≤ 2,5 s przy 75. percentylu prawdziwych użytkowników (podzielonych według urządzeń); 2,5–4 s wymaga pracy, powyżej 4 s jest słabe. To jeden z trzech wskaźników Core Web Vitals i dzieli się na cztery podczęści — TTFB, opóźnienie ładowania zasobu, czas trwania ładowania zasobu, opóźnienie renderowania elementu — gdzie TTFB i czas trwania ładowania zwykle dominują (wytyczne, nie stałe udziały — diagnozuj własną stronę). Najlepsze poprawki: nigdy nie stosuj leniwego ładowania obrazu LCP, dodaj fetchpriority="high" na faktycznym kandydacie, wstępnie ładuj go, gdy nie ma go w HTML, usuń blokujące renderowanie CSS/JS i napraw TTFB. To metryka polowa — narzędzia laboratoryjne tylko ją przybliżają — a element LCP może się zmieniać podczas ładowania. Google potwierdza, że Core Web Vitals wpływają na systemy rankingowe, ale nie publikuje dokładnej wagi LCP ani nie nazywa go tie-breakerem; trafność treści nadal dominuje.

Co dokładnie mierzy LCP

LCP raportuje czas renderowania największego obrazu lub bloku tekstu widocznego w viewport, mierzony względem momentu, w którym użytkownik po raz pierwszy przeszedł na stronę. Ujęcie Google: to najbliższy standaryzowany odpowiednik tego, kiedy główna treść pojawia się użytkownikowi. Zastąpiło wcześniejsze, bardziej rozmyte metryki, takie jak First Meaningful Paint i Speed Index.

Kilka rzeczy, które od razu sprawiają problemy:

  • To nie jest „czas ładowania strony”. Strona może mieć pobrane wszystkie zasoby i nadal mieć wolny LCP, jeśli renderowanie największego elementu było zablokowane. LCP dotyczy tego jednego elementu, a nie całej strony.
  • To nie to samo co FCP. First Contentful Paint jest wyzwalany, gdy pojawi się jakakolwiek treść; LCP czeka na największy element. Strona może mieć szybki FCP (pasek nawigacji się renderuje) i wolny LCP (obraz hero ładuje się późno).
  • To dynamiczna metryka. Przeglądarka wysyła nowego kandydata LCP za każdym razem, gdy większy element staje się widoczny. Ostatni wpis przed interakcją użytkownika (dotknięcie, przewinięcie, naciśnięcie klawisza) lub zamknięciem strony to wartość, która się liczy — interakcja często zmienia to, co jest widoczne, więc raportowanie kończy się w tym miejscu. Kandydat, który później zostanie usunięty z DOM, nie kasuje swojego wpisu — pozostaje raportowanym elementem, chyba że jeszcze większy element wyrenderuje się przed zakończeniem raportowania.

Progi — i dlaczego 2,5 sekundy

KategoriaLCP
Dobry≤ 2,5 s
Wymaga poprawy2,5 s – 4,0 s
Słaby> 4,0 s

Oceniane na 75. percentylu rzeczywistych ładowań stron przez użytkowników, podzielone według typu urządzenia. Więc trzy z czterech wizyt muszą zmieścić się poniżej 2,5 s, aby dany origin przeszedł test.

Dowód potwierdzający to twierdzenie A good LCP is 2.5 seconds or less at the 75th percentile of page loads, segmented by device type. Zakres: Current web.dev LCP field threshold and assessment method. Poziom ufności: wysoki · Zweryfikowano: web.dev: Largest Contentful Paint

Dlaczego akurat 2,5? Metodologia progów Google opierała się na dwóch rzeczach: badaniach percepcji ludzkiej wskazujących na około 1–3 sekundy jako zakres, który wydaje się „natychmiastowy”, oraz danych o osiągalności w CrUX pokazujących, że 2,5 s było konsekwentnie osiągalne dla dobrze zoptymalizowanych witryn, bez bycia trywialnie łatwym. Bardziej rygorystyczne cele, takie jak 1,5 s czy 2,0 s, nie były konsekwentnie osiągalne w wystarczającej liczbie originów, więc nie przeszły.

Co liczy się jako element LCP

Typy elementów brane pod uwagę przy LCP:

  • elementy <img>
  • elementy <image> wewnątrz <svg>
  • elementy <video> (czas ładowania obrazu plakatu lub pierwsza klatka, w zależności od tego, co nastąpi wcześniej)
  • element z obrazem tła ładowanym przez funkcję CSS url()
  • elementy blokowe zawierające węzły tekstowe lub inne tekstowe elementy podrzędne

Raportowany rozmiar to to, co faktycznie jest widoczne w viewport — części przycięte lub przewinięte poza ekran nie są liczone, a w przypadku obrazów jest to widoczny rozmiar lub rozmiar wewnętrzny, w zależności od tego, który jest mniejszy. Marginesy, padding i obramowania są ignorowane. Kilka elementów jest wykluczanych przez heurystyki: wszystko z opacity: 0, elementy pokrywające cały viewport (traktowane jako tła) oraz obrazy zastępcze o niskiej entropii.

Około trzech czwartych stron ma obraz jako element LCP — więc praca nad obrazami jest zwykle właściwym pierwszym krokiem. Ale nie zawsze i nie zawsze kompresja (więcej o tym dalej). Pozostała część to tekstowe LCP, gdzie dźwignia jest zupełnie inna: to ładowanie czcionek, a nie waga obrazów.

Cztery podczęści — część, którą większość artykułów pomija

To ramy, od których zacząłbym każdą diagnozę LCP. web.dev dzieli LCP na cztery sekwencyjne podczęści:

  1. Time to First Byte (TTFB) — od momentu, gdy użytkownik zaczyna ładować stronę, do momentu, gdy przeglądarka otrzyma pierwszy bajt HTML. Typowy udział: ~40% całkowitego LCP.
  2. Opóźnienie ładowania zasobu — luka między TTFB a momentem, gdy przeglądarka zaczyna ładować zasób LCP. To czas odkrywania. Typowy udział: poniżej 10%.
  3. Czas ładowania zasobu — ile czasu zajmuje pobranie samego zasobu LCP. Typowy udział: ~40%.
  4. Opóźnienie renderowania elementu — od momentu zakończenia ładowania zasobu do momentu, gdy element faktycznie się renderuje. Typowy udział: poniżej 10%.
Część składowa LCPTypowy udział w całkowitym LCP
Czas do pierwszego bajtu~40 %
Opóźnienie ładowania zasobu< 10 %
Czas ładowania zasobu~40 %
Opóźnienie renderowania elementu< 10 %

Zasada stojąca za tabelą: zdecydowana większość czasu LCP powinna być poświęcona na ładowanie dokumentu HTML i zasobu LCP. Każdy odcinek, w którym żaden z nich się nie ładuje, to okazja do poprawy.

web.dev wyraźnie stwierdza, że te wartości procentowe to wytyczne, a nie ścisłe reguły — nie zamieniaj ich na cele w sekundach bezwzględnych i nie zmuszaj każdej strony do dopasowania się do tego podziału. Mają znaczenie tylko względem siebie, a jeśli Twój LCP już teraz mieści się w 2,5 sekundy, proporcje względne nie mają w ogóle znaczenia. Użyj tabeli, aby sprawdzić, która część składowa pochłania nieproporcjonalnie dużo na Twojej stronie, a następnie napraw właśnie tę — a nie dąż do dokładnego podziału 40/10/40/10.

Dowód potwierdzający to twierdzenie An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Zakres: web.dev guidance for image-based LCP elements. Poziom ufności: wysoki · Zweryfikowano: web.dev: Optimize LCP
Podziel LCP na cztery sekwencyjne podczęści, a następnie zoptymalizuj część, która pochłania więcej niż jej zamierzony udział. Źródło: web.dev

Oś czasu zaczyna się od czasu do pierwszego bajtu, docelowo około 40 procent całkowitego LCP. Następnie następuje opóźnienie ładowania zasobu, które powinno pozostać poniżej 10 procent. Czas trwania ładowania zasobu jest docelowo około 40 procent. Opóźnienie renderowania elementu powinno pozostać poniżej 10 procent i kończy się, gdy największy element faktycznie się renderuje.

© Patrick Stox LLC · CC BY 4.0 ·

A oto fragment, który obala powszechne założenie: od lutego 2025 roku te cztery części składowe są dostępne w interfejsie API CrUX dla obrazów LCP, a analiza danych z HTTP Archive przeprowadzona przez zespół Chrome wykazała, że czas pobierania obrazu był często najmniejszą częścią czasu LCP. Innymi słowy, „po prostu skompresuj moje obrazy” często naprawia niewłaściwą część. TTFB i opóźnienie wykrycia są często ważniejszymi dźwigniami.

Jak znaleźć swój element LCP

Zanim cokolwiek zoptymalizujesz, dowiedz się, który element jest Twoim LCP i która część składowa jest wąskim gardłem:

  • PageSpeed Insights — sekcja Diagnostics wskazuje element LCP, a zakładka danych terenowych pokazuje wynik rzeczywistych użytkowników.
  • Chrome DevTools — panel Performance oznacza węzeł LCP na osi czasu.
  • Biblioteka JS web-vitals — rejestruj LCP (i element) z własnego monitorowania rzeczywistych użytkowników.

Jak poprawić LCP

Przypisz każdą poprawkę do części, której dotyczy:

Napraw opóźnienie ładowania zasobu (wykrycie). To najważniejsza i najczęściej psuta część.

  • Nigdy nie ładuj leniwie swojego obrazu LCP. loading="lazy" na elemencie LCP zawsze dodaje niepotrzebne opóźnienie ładowania. Zarezerwuj leniwe ładowanie dla obrazów poniżej linii zagięcia.
  • Dodaj fetchpriority="high" do prawdopodobnego obrazu LCP, aby przeglądarka pobierała go wcześnie z wysokim priorytetem.
  • Wstępnie załaduj go za pomocą <link rel="preload">, gdy obraz nie jest wykrywalny w początkowym HTML — na przykład, gdy jest ładowany przez CSS lub JavaScript. Ładowanie obrazu hero przez JS jest antywzorcem właśnie dlatego, że ukrywa URL przed skanerem wstępnego ładowania przeglądarki.
  • Hostuj krytyczne zasoby w tej samej domenie, aby przeglądarka nie płaciła dodatkowo za konfigurację połączenia.
Dowód potwierdzający to twierdzenie An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Zakres: web.dev guidance for image-based LCP elements. Poziom ufności: wysoki · Zweryfikowano: web.dev: Optimize LCP

Preload i fetchpriority rozwiązują różne problemy, więc nie sięgaj po oba z przyzwyczajenia. Preload ujawnia zasób, który skaner wstępnego ładowania przeglądarki w przeciwnym razie wykryłby późno (na przykład obraz ładowany przez JS lub CSS); fetchpriority zmienia priorytet pobierania zasobu, który przeglądarka już znalazła. Jeśli wykrycie i priorytet są już poprawne — obraz jest zwykłym <img> w początkowym HTML — dodanie któregokolwiek z nich może niewiele zdziałać poza dodatkowymi żądaniami. Sprawdź ślad, zastosuj ten, który odpowiada rzeczywistemu problemowi, i potwierdź, że liczba terenowa się zmieniła.

Napraw opóźnienie renderowania elementu.

  • Zmniejsz lub wbuduj blokujący renderowanie CSS; odrocz niekrytyczne style.
  • Unikaj synchronicznych skryptów w <head>.
  • Preferuj renderowanie po stronie serwera lub generowanie statyczne, aby znaczniki docierały gotowe do malowania, i rozbijaj długie zadania na głównym wątku.

Zmniejsz czas ładowania zasobu.

  • Nowoczesne formaty obrazów (WebP, AVIF), rozsądna kompresja i CDN.
  • Efektywny Cache-Control. I nie ignoruj rywalizacji o sieć — leniwe ładowanie innych obrazów poniżej linii zagięcia może zwolnić przepustowość, aby obraz LCP dotarł szybciej.

Zmniejsz TTFB.

  • Zminimalizuj przekierowania, usuń niepotrzebne unikalne parametry URL i zoptymalizuj czas odpowiedzi serwera. Zauważ, że LCP obejmuje czas rozładowania poprzedniej strony, konfigurację połączenia i czas przekierowania — wszystko to wlicza się do TTFB.

Przypadek szczególny: LCP oparty na tekście. Gdy największym elementem jest tekst, krytyczna ścieżka to ładowanie czcionek, a nie waga obrazu. font-display: optional lub czcionki systemowe eliminują opóźnienie renderowania spowodowane czcionkami; font-display: swap bez wcześniejszego wczytywania pliku czcionki może je wprowadzić.

Laboratorium a pole — to rozróżnienie ma znaczenie

LCP jest zasadniczo metryką polową. Google ocenia ją na prawdziwych użytkownikach za pomocą CrUX, prezentowaną w zakładce pola w PageSpeed Insights oraz w raporcie Core Web Vitals w Search Console. To właśnie te dane polowe zasilają rankingi.

Narzędzia laboratoryjne — Lighthouse, Chrome DevTools, WebPageTest — tylko przybliżają ją w symulowanych warunkach i nie używają nawet tego samego punktowania. Lighthouse stosuje ostrzejsze progi dla komputerów stacjonarnych (dobrze ≤ 1,2 s) niż standard polowy (≤ 2,5 s). Tak więc wynik pozytywny w Lighthouse nie gwarantuje pozytywnego wyniku w CrUX i odwrotnie. Używaj narzędzi laboratoryjnych do debugowania i odtwarzania; ufaj danym polowym w kwestii faktycznej oceny.

Istnieje drugi powód, dla którego liczby laboratoryjne i polowe mogą się różnić, warto go znać, aby dziwny odczyt nie skłonił cię do ścigania widmowego błędu: obecny interfejs API przeglądarki LargestContentfulPaint (nadal szkic roboczy W3C) jest ograniczony do pojedynczego ładowania dokumentu. Sam nie resetuje się przy przywracaniu z pamięci podręcznej wstecz/do przodu (bfcache) ani przy nawigacjach SPA w obrębie tego samego dokumentu, a strony zaczynające poza ekranem — karty w tle, strony wstępnie renderowane — mogą raportować zawyżone wartości, ponieważ czas jest mierzony od załadowania, a nie od momentu, gdy strona faktycznie stała się widoczna. Algorytm raportowania wstrzymuje się również przy kwalifikującym się wejściu użytkownika, więc jeśli użytkownik wejdzie w interakcję przed wyświetleniem głównej treści, LCP tego nie wychwyci. Żadne z tych nie zmienia powyższej tabeli progów; wyjaśnia to, dlaczego liczba z konkretnej sesji może wyglądać na błędną, gdy podstawowa nawigacja nie jest zwykłym pierwszym ładowaniem.

Czy LCP wpływa na rankingi?

Tak, w tym sensie, że Google potwierdza, iż Core Web Vitals zasilają jego systemy rankingowe i zaleca osiąganie dobrych wyników. Ale obecna dokumentacja Search Central nie publikuje dokładnej wagi LCP i nie opisuje jej jako tiebreakera — własne ujęcie Google jest takie, że doświadczenie strony “can contribute to success in Search” (tłumaczenie) „może przyczynić się do sukcesu w wyszukiwarce” w przypadku zapytań, gdzie wiele stron już oferuje porównywalną, istotną treść, a dobry wynik nie gwarantuje wzmocnienia rankingu. Trafność i jakość treści nadal dominują. Optymalizuj LCP, ponieważ strona sprawiająca wrażenie szybszej jest naprawdę lepsza dla użytkowników (i konwersji) — nie dlatego, że mechanizm jest udokumentowany jako tiebreaker rankingów, bo nie jest.

Dowód potwierdzający to twierdzenie Google says Core Web Vitals are used by ranking systems, but current documentation does not specify an LCP weight, tiebreaker rule, or ranking guarantee. Zakres: ranking systems Poziom ufności: wysoki · Zweryfikowano: Understanding page experience in Google Search results

Kilka rzeczywistości z danych: spośród Core Web Vitals, LCP jest tym, który stronom najtrudniej poprawić, i jest zauważalnie trudniejszy na mobile niż na desktopie — wolniejsze procesory i połączenia. Przy 3G i wolniejszych, próg 2,5 s może wydawać się prawie niemożliwy do osiągnięcia.

Gdzie to pasuje

LCP jest jednym z trzech Core Web Vitals, obok Interaction to Next Paint i Cumulative Layout Shift. Jego pierwsza podczęść, Time to First Byte, jest osobną metryką diagnostyczną, a First Contentful Paint znajduje się tuż obok na osi czasu ładowania. Wszystkie te zobaczysz w PageSpeed Insights, Lighthouse i Chrome User Experience Report (CrUX). Każda z nich to osobne szczegółowe omówienie w tym klastrze.

Dodaj notatkę eksperta

Przypnij cytat eksperta

Nowa osoba? Najpierw utwórz jej nieprzejęty profil na /admin/experts/ → Przypnij cytat eksperta .