Core Web Vitals: LCP, INP i CLS oraz 25 poprawek

Core Web Vitals: LCP, INP i CLS w praktyce

Core Web Vitals w praktyce: LCP, INP, CLS i 25 poprawek z kodem | We.Inc

Co mierzą LCP, INP i CLS, progi dobrych i słabych wyników, dane terenowe a laboratoryjne, miernik na żywo dla tej strony i 25 przepisów na poprawki z kodem, pogrupowanych według przyczyny, oraz uwagi dla platform.

Core Web Vitals to trzy pomiary prawdziwych wizyt: Largest Contentful Paint (ładowanie, dobry wynik to 2.5 sekundy lub mniej), Interaction to Next Paint (responsywność, dobry wynik to 200 milisekund lub mniej) i Cumulative Layout Shift (stabilność, dobry wynik to 0.1 lub mniej). Strona zalicza test, gdy co najmniej 75% wizyt spełnia wszystkie trzy.

Dobre wyniki

Poniższy miernik mierzy tę stronę w Twojej przeglądarce, gdy z niej korzystasz. Następnie znajdź wskaźnik, którego nie zaliczasz, i przejdź przez przepisy dla niego; każdy wskazuje przyczynę, którą naprawia, i podaje kod.

Najczęściej zadawane pytania

Co zastąpiło First Input Delay?

Interaction to Next Paint zastąpił First Input Delay jako Core Web Vital w marcu 2024. INP uwzględnia wszystkie interakcje na stronie, nie tylko pierwszą, i obejmuje czas potrzebny na wyrenderowanie wyniku.

Dlaczego mój wynik Lighthouse jest dobry, a Core Web Vitals nie są zaliczone?

Lighthouse to jeden test na jednym symulowanym urządzeniu. Core Web Vitals opierają się na prawdziwych odwiedzających z 28 dni, na wolniejszych telefonach i sieciach, i obejmują INP, którego Lighthouse nie potrafi zmierzyć.

Czy Core Web Vitals wpływają na pozycje w Google?

Są częścią sygnałów page experience w Google. Google opisuje trafność i jakość treści jako znacznie ważniejsze, więc dobre wskaźniki pomagają najbardziej wtedy, gdy strony są poza tym podobne.

Po jakim czasie widać efekty poprawek?

Dane terenowe obejmują poprzednie 28 dni, więc poprawa pojawia się stopniowo przez około cztery tygodnie od wdrożenia.

Czym to się różni od wyniku szybkości

Trzy wskaźniki

Progi (oceniane na 75. percentylu prawdziwych wizyt)

Dane terenowe a dane laboratoryjne

Dane terenowe a dane laboratoryjne

Poprawa LCP (przepisy od 1 do 9)

1. Pobieraj obraz hero jako pierwszy

fetchpriority="high" mówi przeglądarce, że ten obraz jest najważniejszy. Nigdy nie stosuj lazy loadingu dla obrazu LCP.

2. Preloaduj obraz LCP ustawiony w CSS

Obrazy tła są wykrywane późno, po załadowaniu CSS. Preload w head od razu rozpoczyna pobieranie.

3. Serwuj właściwy rozmiar

srcset i sizes pozwalają telefonowi pobrać mały plik zamiast wersji na komputer.

4. Używaj nowoczesnego formatu obrazu

AVIF i WebP są zwykle znacznie mniejsze niż JPEG przy tej samej jakości. picture pozwala starszym przeglądarkom użyć wersji zapasowej.

5. Nie ukrywaj tekstu podczas ładowania fontów

font-display: swap od razu pokazuje tekst fontem zapasowym, więc nagłówek będący elementem LCP nie czeka na pobranie fontu.

6. Połącz się wcześniej z CDN obrazów

preconnect wykonuje z wyprzedzeniem DNS, TCP i uzgadnianie TLS dla zewnętrznego źródła, którego będziesz potrzebować.

7. Odrocz skrypty, które nie są potrzebne do wyświetlenia strony

Skrypty w head bez defer lub async blokują renderowanie. defer zachowuje kolejność, ale czeka, aż HTML zostanie sparsowany.

8. Wysyłaj prawdziwy HTML, a nie pustą powłokę

Jeśli element LCP tworzy JavaScript, nic nie może się wyrenderować, dopóki paczka się nie pobierze i nie uruchomi. Renderowanie po stronie serwera lub prerendering umieszcza go w pierwszej odpowiedzi. Możliwości opisujemy w naszym przewodniku SEO dla aplikacji single page.

9. Cache'uj HTML na krawędzi sieci

Wolna odpowiedź serwera opóźnia wszystko. Cache'uj statyczne strony w CDN i ustaw rozsądny Cache-Control.

Poprawa INP (przepisy od 10 do 17)

10. Dziel długie zadania

Zadanie dłuższe niż 50 ms blokuje wprowadzanie danych. Oddawaj sterowanie wątkowi głównemu między fragmentami, by kliknięcie mogło zostać obsłużone pomiędzy nimi. scheduler.yield jest nowszy; wersja zapasowa z setTimeout działa wszędzie.

11. Najpierw pokaż reakcję, potem wykonuj pracę

Od razu zaktualizuj przycisk, a ciężką pracę wykonaj, gdy przeglądarka zdąży wyrenderować zmianę.

12. Stosuj debounce do pracy związanej z pisaniem

Filtrowanie długiej listy przy każdym naciśnięciu klawisza sprawia, że pisanie się opóźnia. Poczekaj na krótką przerwę.

13. Oznaczaj wolne aktualizacje Reacta jako transitions

startTransition pozwala Reactowi zachować responsywność pola i wyrenderować kosztowny wynik, gdy będzie to możliwe.

14. Opóźniaj skrypty zewnętrzne

Widżety czatu i menedżery tagów często uruchamiają ciężki kod przy ładowaniu. Ładuj je, gdy strona jest bezczynna, lub przy pierwszej interakcji.

15. Utrzymuj mały DOM

Ogromne strony spowalniają każdą aktualizację stylów i układu. content-visibility pomija renderowanie sekcji poza ekranem, dopóki nie znajdą się blisko.

16. Nie odczytuj układu w pętli zapisu

Odczyt offsetHeight po każdej zmianie stylu za każdym razem wymusza przeliczenie układu. Najpierw odczytaj wszystko, potem zapisuj.

17. Przenieś ciężkie obliczenia do Web Workera

Parsowanie dużego pliku lub sortowanie tysięcy wierszy może działać w workerze, nie blokując kliknięć.

Poprawa CLS (przepisy od 18 do 25)

18. Nadaj obrazom i wideo rozmiar

width i height pozwalają przeglądarce zarezerwować miejsce, zanim plik dotrze. CSS nadal może uczynić je responsywnymi.

19. Rezerwuj miejsce na osadzenia

Mapy, filmy i iframe'y często ładują się późno. aspect-ratio utrzymuje ich pole otwarte.

20. Rezerwuj miejsce na banery i reklamy

Treść wstawiona nad tym, co czytają ludzie, przesuwa ją w dół. Nadaj miejscu z wyprzedzeniem minimalną wysokość.

21. Dopasuj rozmiar fontu zapasowego

Gdy podmienia się font webowy, tekst może się inaczej zawijać. size-adjust na lokalnym foncie zapasowym zbliża szerokość obu.

22. Animuj za pomocą transform, a nie top czy height

Przesuwanie elementów za pomocą transform nie przesuwa innych elementów, więc nie liczy się jako przesunięcie układu.

23. Nakładaj paski cookie zamiast przesuwać treść

Pasek przypięty do dołu ekranu nie przesuwa strony; pasek wstawiony na górze tak.

24. Używaj szkieletów tej samej wielkości co treść

Placeholder ładowania powinien zajmować tyle samo miejsca, co to, co go zastąpi.

25. Dbaj o działanie back/forward cache

Strony przywracane z back/forward cache pojawiają się natychmiast, bez nowych przesunięć. Handler unload to uniemożliwia; zamiast niego używaj pagehide.

Uwagi dla platform

Uwagi dla platform

Najczęstszym winowajcą LCP są obrazy; zmniejsz je za pomocą narzędzia

konwerter WebP

Miernik na żywo dla tej strony

Mierzy LCP, CLS i INP dla tej strony w Twojej przeglądarce, jeśli są obsługiwane.

Dobry

Wymaga poprawy

Słaby

Nieobsługiwane w tej przeglądarce

INP (najwolniejszy do tej pory)

Czekam na największe wyrenderowanie

Kliknij lub pisz w dowolnym miejscu, by zmierzyć

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony