Podział czasu ładowania
Czas ładowania dzieli się na dwie części. Pierwsza to czas pracy serwera, czyli od wysłania żądania do otrzymania pierwszego bajtu odpowiedzi. Za nią odpowiada hosting i aplikacja. Druga to pobranie i wyświetlenie zasobów: obrazów, arkuszy stylów i skryptów. Za nią odpowiada sama strona. Zmiana hostingu poprawia wyłącznie pierwszą część.
Prosty test: jeżeli czas do pierwszego bajtu wynosi poniżej dwustu milisekund, a strona ładuje się trzy sekundy, hosting nie jest problemem i jego zmiana niczego nie da.
Co po stronie hostingu realnie spowalnia
- przeciążenie serwera współdzielonego przez sąsiednie konta
- niski limit jednoczesnych procesów PHP - strona zwalnia przy kilku użytkownikach naraz, mimo wolnych zasobów
- wyłączony lub źle skonfigurowany OPcache
- wolne dyski przy bazie danych o większym rozmiarze
- stara wersja PHP - różnice wydajności między odległymi wersjami bywają dwukrotne
- brak obsługi kompresji odpowiedzi i HTTP/2
Jak to sprawdzić bez zgadywania
Czas do pierwszego bajtu mierzy się prostym zapytaniem do strony z pominięciem zasobów dodatkowych. Pomiar warto powtórzyć o różnych porach doby: hosting przeciążony wieczorem daje wyniki wyraźnie gorsze niż o szóstej rano. Jeżeli ta sama strona na maszynie testowej odpowiada trzy razy szybciej, problem jest po stronie hostingu, a nie kodu.
Kiedy zmiana hostingu ma sens
Gdy pomiar pokazuje długi czas pracy serwera, dostawca nie udostępnia aktualnych wersji oprogramowania, a limity procesów są osiągane przy normalnym ruchu. W pozostałych przypadkach lepszy efekt da optymalizacja samej strony: zmniejszenie obrazów, ograniczenie liczby skryptów i poprawienie zapytań do bazy. Przeniesienie wolnej strony na szybszy serwer daje wolną stronę na szybszym serwerze.