Wiesz już, co jest celem optymalizacji pod kątem Web Vitals, znasz jej główne założenia i narzędzia oraz sposób, w jaki przeglądarka renderuje obraz. Dlatego możesz rozpocząć planowanie zmian na stronie i wykonywanie testów.
Wrzuciłeś swoją stronę w PSI i widzisz sporo czerwonego koloru. Czas więc zacząć analizę. Planowanie zmian warto zacząć od najprostszych, najszybszych i najtańszych rozwiązań, jakie możesz zastosować.
W pierwszej kolejności warto przeanalizować całą oś czasu (tzw. waterfall) i zwrócić szczególną uwagę na niżej wymienione czynniki.
Pierwszy element, od którego warto zacząć analizę, to sprawdzenie czasu reakcji serwera poprzez metrykę TTFB, która oznacza czas, jaki upłynął do pierwszego bajtu.
Pierwsza pozycja na osi będzie dotyczyła głównego dokumentu HTML. Przykładowo w narzędziu DevTools możesz przejść do zakładki „Network” i sprawdzić szczegóły czasów odpowiedzi naszego serwera:
Jeżeli przeglądarka czeka dłużej niż 600 ms na odpowiedź serwera, wówczas metryka wymaga optymalizacji. Optymalny czas odpowiedzi według Google to mniej niż 200 ms. Jak widać na powyższym zrzucie, jest to możliwe do osiągnięcia, ale niewątpliwie trudne, dlatego rekomenduję przyjąć jako górną granicę 600 ms.
Na czas określony jako TTFB składają się:
Na TTFB wpływają także:
Często główną przyczyną długiego czasu TTFB jest hostingodawca i słabej wydajności serwer. Aby upewnić się, co dokładnie jest tego powodem, wykonaj poniższe testy:
Kolejnymi ważnymi aspektami do sprawdzenia przy analizie osi czasu, są wszystkie zasoby ułożone w kolejności ich ładowania się.
Przeważnie na liście pojawia się bardzo duża liczba plików. Jeżeli kluczowe dla prawidłowego wyrenderowania się strony pliki typu CSS, fonty, JS i biblioteki jQuery nie są ładowane na początku, to jest to kolejny element do poprawy. Dobrą praktyką jest priorytetyzowanie wszystkich plików, które muszą zostać załadowane do wyświetlania się strony i obszaru Above The Fold.
Lighthouse w swoich rekomendacjach przedstawia dwa typy tagów, które blokują renderowanie. Są to:
Kolejny punkt, który może Ci się mocno rzucać w oczy, to obrazki. Ich pliki posiadają bardzo wiele danych, dlatego często ich załadowanie trwa najdłużej.
Na pewno pamiętasz początki szeroko dostępnego internetu, kiedy po wyświetleniu się strony czekało się, aż od góry do dołu załadują się wszystkie grafiki. Najlepiej było wówczas pójść po coś do picia, by po powrocie z kuchni móc korzystać ze strony.
Obecnie przepustowość połączeń Internetowych całkowicie wyeliminowała ten problem, ale nie zmieniła jednego – zdjęcia najczęściej nadal są tym zasobem, który ładuje się najdłużej.
Analiza waterfall pokaże Ci przede wszystkim:
Często w kodzie serwisu są odniesienia do zewnętrznych skryptów i usług, którą muszą się załadować. Analiza waterfall pokaże Ci, ile posiadasz takich odniesień i jaki jest czas ich ładowania i wykonywania. Wszystkie pliki, których nie musisz ładować z zewnętrznych źródeł, przenieś lub zastanów się, czy są Ci koniecznie potrzebne.
Przykładami takich zewnętrznych źródeł mogą być: Google Fonts, Google Tag Manager, bramki płatności e-commerce, mapy, czaty, opinie, dodatkowe wtyczki łączone przez API z social mediami, reklamy i wiele innych.
Jeżeli nie możesz pozbyć się danych modułów lub przenieść ich zasobów na swój serwer, skup się na odpowiedniej lokalizacji w kodzie serwisu, aby nie utrudniały wyrenderowania się najważniejszych elementów. Wtyczki powinny być ładowane na żądanie.
Częstym zjawiskiem na stronach internetowych jest duża liczba plików CSS, JS, fontów, które nie muszą być ładowane na każdej podstronie lub w każdym momencie jej użytkowania.
Konkatenacja, czyli łączenie kilku plików w jeden, może znacznie skrócić czas ładowania się strony.
Pojawianie się różnych plików CSS i JS często związane jest z dokładaniem do strony różnych modułów lub instalowaniem do niej wtyczek, które dokładają swoje skrypty i arkusze stylów w osobnych plikach.
Często też możesz odkryć mocno zagłębione pliki, które są ładowane, a o których nie miałeś pojęcia, że istnieją — i wykonują niepożądane działania!
Tabela wszystkich zasobów umożliwi Ci również wykrycie ewentualnych błędów, takich jak niewłaściwy kod odpowiedzi serwera (np. 404, gdy danego zasobu brakuje) lub 50X, który może świadczyć o błędzie serwera lub w składni skryptu.
W przypadku autorskich rozwiązań długi czas wykonywania danego skryptu może wskazywać na zapętlenie się pewnych funkcji lub tzw. timeout.
Często nieprzemyślane używanie takich parametrów jak np. „setInterval” oraz „setTimeout” przy wykonywanych skryptach może być efektem tego, iż strona została w całości wyrenderowana, ale nie można z niej korzystać, ponieważ skrypty nie zakończyły działań.
Analiza całego procesu ładowania się strony na wykresie Waterfall jest bardzo ważnym elementem, od którego powinieneś rozpocząć szukanie przyczyn wolnego ładowania się witryny i wysokich czasów metryk Web Vitals.
Podsumowując, najczęstsze spotykane problemy z front-endem, które możesz przy pomocy Waterfalla wychwycić, to:
TTFB (zbyt długi czas odpowiedzi serwera),