Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Co spowalnia witrynę i jak to zmierzyć?

Moduł 6: Szybkość · Czas czytania: 9 minut

Cel lekcji: Po tej lekcji będą Państwo potrafili zmierzyć, gdzie ucieka czas, i rozpoznać różnicę między opóźnieniem po stronie serwera a opóźnieniem w przeglądarce.

Kluczowe pojęcia: TTFB, Core Web Vitals (LCP, INP, CLS), dane laboratoryjne, dane terenowe, PageSpeed Insights, karta sieć, kompresja, zewnętrzne skrypty, limity pakietu hostingowego, 503

Najpierw zmierzyć, potem majstrować

"Strona jest wolna" może mieć dziesięć różnych przyczyn. Kto bez pomiaru instaluje jednocześnie wtyczkę cache, wtyczkę optymalizacji obrazów i większy pakiet hostingowy, ten potem nie wie, co pomogło, a do tego ma trzy rzeczy więcej do pilnowania. Dlatego zawsze proszę zacząć od trzech pytań (takich samych, jak w instrukcji swojego dostawcy hostingu):

  1. Wszystko działa wolno, czy tylko panel administracyjny? Wolny panel administracyjny przy szybkiej części publicznej wskazuje na wtyczki, które dużo robią w panelu, albo na boty atakujące stronę logowania.
  2. Zawsze, czy tylko w określonych momentach? Tylko w godzinach szczytu albo gdy działa zaplanowane zadanie: wtedy pakiet osiąga swoje limity.
  3. U wszystkich, czy tylko u Państwa? Proszę spróbować na telefonie przez 4G lub 5G, albo poprosić kogoś innego o sprawdzenie. Jeśli tylko u Państwa jest wolno, przyczyną jest połączenie internetowe lub VPN.

Dwie połowy: serwer i przeglądarka

Czas, który czeka odwiedzający, składa się z dwóch części (lekcja 1.2):

  1. Serwer tworzy HTML: serwer WWW, PHP, wtyczki, baza danych. Widać to jako TTFB (time to first byte), czyli czas do pierwszego bajtu odpowiedzi. web.dev podaje jako zasadę, że większość witryn powinna dążyć do TTFB wynoszącego 0,8 sekundy lub mniej.
  2. Przeglądarka odczytuje ten HTML, a następnie pobiera wszystko, co się w nim znajduje: arkusze stylów, skrypty, czcionki, obrazy, wideo, kody pomiarowe, widżety czatu. Dopiero gdy wystarczająco dużo z tego zostanie wczytane, odwiedzający coś widzi.

Wysoki TTFB rozwiązuje się po stronie serwera: cache (lekcja 6.2), mniej lub lżejsze wtyczki, nowsza wersja PHP, uporządkowana baza danych (lekcja 6.3) lub więcej mocy obliczeniowej. Niski TTFB przy mimo to wolnej stronie wskazuje na stronę przeglądarki: zbyt duże obrazy, zbyt dużo skryptów, zewnętrzne elementy.

Core Web Vitals

Google mierzy doświadczenie odwiedzających za pomocą trzech wskaźników, Core Web Vitals:

PomiarCo mierzyDobrze, gdy
LCP (Largest Contentful Paint)Jak szybko widoczny jest największy element treści (często duże zdjęcie lub nagłówek)2,5 sekundy lub mniej
INP (Interaction to Next Paint)Jak szybko strona reaguje na kliknięcie, dotknięcie lub wpisywanie tekstu200 milisekund lub mniej
CLS (Cumulative Layout Shift)Jak bardzo strona przesuwa się podczas ładowania0,1 lub mniej

INP zastąpił w marcu 2024 roku starszy wskaźnik FID. Google wykorzystuje te wskaźniki między innymi przy rankingowaniu wyników wyszukiwania, ale najważniejszy powód, by je poprawiać, jest prosty: odwiedzający rezygnują przy wolnej lub przeskakującej stronie.

Dane laboratoryjne i dane terenowe

Istnieją dwa rodzaje pomiarów, które dają różne liczby:

  • Dane laboratoryjne: test w jednym momencie, z jednego miejsca, z symulowanym telefonem i połączeniem. Przydatne do porównań (przed i po zmianie), ale to nie jest prawdziwy odwiedzający.
  • Dane terenowe: pomiary u prawdziwych odwiedzających korzystających z Chrome, z ostatnich 28 dni. To właśnie realnie odczuwają odwiedzający. Małe strony często mają zbyt mało odwiedzających, by uzyskać dane terenowe.

PageSpeed Insights (pagespeed.web.dev) pokazuje oba: u góry dane terenowe (jeśli są dostępne), poniżej test laboratoryjny z wynikiem i konkretnymi zaleceniami. Proszę nie patrzeć bezkrytycznie na wynik od 0 do 100. Proszę przyjrzeć się poszczególnym elementom: czy LCP jest słaby, ponieważ serwer jest wolny (TTFB), czy dlatego, że duże zdjęcie waży 3 MB?

Proszę zawsze testować kilka razy (liczby się zmieniają) i testować też zwykłą podstronę, nie tylko stronę główną.

Samodzielna obserwacja w przeglądarce

Narzędzia deweloperskie w przeglądarce (F12) pokazują, co naprawdę się dzieje:

  • Karta Sieć: proszę odświeżyć stronę z wyłączonym cache (zaznaczyć opcję "Wyłącz pamięć podręczną"). Widać każdy wczytywany plik, jego rozmiar i czas pobierania. Proszę posortować według rozmiaru: największe pliki to zwykle obrazy. Proszę posortować według domeny: ile pochodzi od innych podmiotów (czcionki, kody pomiarowe, filmy)?
  • Pierwsze żądanie (sam HTML): proszę kliknąć na nie, karta Czas. "Waiting for server response" to TTFB.
  • Nagłówki tego pierwszego żądania: czy jest kompresja (content-encoding: br lub gzip), i czy strona pochodziła z cache (lekcja 6.2)?

Typowi winowajcy

W praktyce opóźnienia w WordPressie wynikają zazwyczaj z jednej z tych przyczyn:

  1. Brak cache stron: każda strona jest tworzona od nowa przy każdej wizycie (lekcja 6.2).
  2. Zbyt wiele lub zbyt ciężkich wtyczek, zwłaszcza takich, które przy każdym żądaniu wywołują usługi zewnętrzne lub wykonują ciężkie zapytania (lekcja 5.3).
  3. Duże obrazy: zdjęcie 5 MB prosto z telefonu na stronie głównej (lekcje 4.4 i 6.3).
  4. Ciężki motyw lub kreator stron, który na każdej stronie wczytuje wiele skryptów i arkuszy stylów (lekcja 5.1).
  5. Elementy zewnętrzne: czcionki, filmy, widżety czatu, kody pomiarowe, przyciski mediów społecznościowych od innych podmiotów. Każdy z nich to połączenie z innym serwerem, który może być wolny.
  6. Stara wersja PHP (lekcja 8.4).
  7. Nieuporządkowana baza danych: tysiące wersji roboczych, spam, tabele logów wtyczek (lekcja 6.3).
  8. Boty: roboty indeksujące, roboty AI i próby logowania obciążają pakiet (lekcja 7.3).
  9. Pakiet osiąga swoje limity: za mało mocy obliczeniowej (CPU), procesów lub pamięci w stosunku do ruchu.

Limity Państwa pakietu

Przy hostingu współdzielonym każdy pakiet otrzymuje ustaloną część zasobów serwera: moc obliczeniową, pamięć, szybkość dysku oraz liczbę jednoczesnych procesów. Jeśli strona zużywa więcej, zostaje spowolniona albo odwiedzający otrzymują komunikat błędu 503 (Service Unavailable, u niektórych dostawców hostingu "Resource Limit Is Reached"). W DirectAdmin z CloudLinux widać to w sekcji Resource Usage (z "faults", jeśli strona została spowolniona), a dzięki X-Ray widać, która wtyczka lub które zapytanie zajmuje czas na danej stronie. Inni dostawcy hostingu mają podobne zestawienia, czasem dostępne tylko na żądanie.

Większy pakiet pomaga, jeśli strona rzeczywiście potrzebuje więcej zasobów (ruchliwy sklep internetowy). Nie rozwiązuje on źle skonfigurowanej strony: problem wtedy wraca później. Proszę najpierw znaleźć przyczynę.

Podsumowanie

  • Proszę najpierw zmierzyć: wszystko czy tylko panel administracyjny, zawsze czy czasami, u wszystkich czy tylko u Państwa.
  • TTFB to strona serwera (cel to 0,8 sekundy lub mniej); reszta to to, co ładuje przeglądarka.
  • Core Web Vitals: LCP (2,5 s), INP (200 ms) i CLS (0,1); INP zastąpił FID w 2024 roku.
  • PageSpeed Insights pokazuje dane terenowe i dane laboratoryjne; karta sieć pokazuje, co naprawdę się ładuje.
  • Większość opóźnień wynika z braku cache, ciężkich wtyczek, dużych obrazów i elementów zewnętrznych; większy pakiet to dopiero ostatni krok.

Quiz

1. TTFB Państwa strony głównej wynosi 3 sekundy. Gdzie szukać przyczyny?



2. Co mierzy INP?



3. PageSpeed Insights przy każdym teście podaje nieco inny wynik. Jakie jest tego wytłumaczenie?



4. Strona wyświetla błąd 503 w godzinach szczytu. Jaki jest najlepszy pierwszy krok?



Zadanie

Zadanie A6.1: Zmierzenie TTFB i kompresji. Proszę wpisać adres swojej strony oraz, jeśli Państwo chcą, jedną zwykłą podstronę (na przykład stronę kontaktową). Program trzykrotnie pobierze każdą stronę bez plików cookie i poda środkowy wynik TTFB, rozmiar HTML oraz informację, czy serwer wysyła HTML w formie skompresowanej (content-encoding gzip lub br). Proszę porównać wynik z testem w PageSpeed Insights i zanotować, co zwraca uwagę.

Zadanie A6.1: Pomiar czasu TTFB i kompresji



Wprowadzone dane i wyniki sprawdzania nie są zapisywane. Przeglądarka zapamiętuje udzielone odpowiedzi oraz informację, czy zadanie zostało zaliczone. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało zaliczone (lub prawie zaliczone); tam można ją również usunąć.

Więcej informacji

Poniższe artykuły opisują kroki w panelach WebOké; w innych panelach działają one w podobny sposób.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…