Menu
Wróć do listy

Optymalizacja Time To First Byte (TTFB)

Wszystko zaczyna się od pierwszego bajtu i od niego jest zależne. Jeżeli czas odpowiedzi serwera jest zbyt długi, to wdrażanie jakichkolwiek innych usprawnień na stronie nie będzie efektywne.

Jakie zatem możesz podjąć czynności, aby poprawić metrykę TTFB? Oto kilka sposobów:

  • Zmiana sprzętu serwera na wydajniejszy
    Małe strony internetowe z niedużym ruchem nie wymagają od razu dedykowanych serwerów VPS, które możesz samodzielnie konfigurować i modyfikować (choć niewątpliwie zapewniają one największą wydajność). Warto jednak sprawdzić parametry serwera u hostingodawcy i wziąć pod uwagę jego zmianę na nieco szybszy.
  • Zmiana lokalizacji serwera
    Jeżeli Twoimi użytkownicy są z Polski, wówczas warto, aby serwer fizycznie też znajdował się w kraju.
  • Wykorzystanie sieci CDN
    Dla ładowania wielu zasobów i mediów na stronie warto wykorzystać tzw. Content Delivery Network (CDN), czyli rozproszony system danych i punktów wymiany ruchu w Internecie. CDN ma szeroką siatkę punktów i automatycznie będą one przesyłać media z najbliższego dla użytkownika miejsca. Warto wziąć pod uwagę CDN, gdy odbiorcami Twojej strony są użytkownicy z różnych zakątków świata. Nawet darmowy pakiet Cloudflare może bardzo zwiększyć wydajność strony.
  • Pojemność i wydajność dysku
    Warto zwrócić uwagę, czy nie kończy się miejsce na dysku serwera. Jeśli tak, może to być powodem jego wolniejszego ładowania. Zdecydowanie w obecnych czasach standard szybkości wyznaczają już dyski SSD, dlatego warto z nich korzystać, aby usprawnić czas odpowiedzi serwera.
  • Lokalizacja serwerów DNS
    Usługi DNS służą przeglądarce do tłumaczenia domeny Twojej strony na adres IP, do którego odbywa się cały ruch. Zbyt odległa lokalizacja serwera DNS może obniżać TTFB. Zmiana dostawcy serwera DNS może nie tylko przyspieszyć stronę, ale i zwiększyć jej bezpieczeństwo oraz prywatność.
  • Cache
    Używanie pamięci podręcznej wpływa na czas ładowania się strony oraz na TTFB, gdyż statyczne pliki osadzane są na serwerze, dzięki czemu mogą być szybciej przesłane.
  • Certyfikat SSL
    Szyfrowany ruch po protokole HTTPS to standard i jeden z czynników rankingowych Google. Warto jednak wiedzieć, że jego połączenie również zajmuje nieco czasu (serwer szyfruje, a przeglądarka odszyfrowuje). Często można zauważyć, iż po instalacji SSL prędkość ładowania się strony zmalała. Dzieje się tak w przypadku certyfikatów, które posiadają znacznie wyższy poziom szyfrowania, a ich hosting jest oddalony od użytkownika. Najczęściej jednak SSL ma minimalny wpływ na prędkość ładowania strony.
  • HTTP/3 + QUIC
    Protokół HTTP w wersji 1 towarzyszył nam od 1997 roku aż do 2015 roku, kiedy to wyszła nowsza wersja HTTP/2. Obecnie najnowszym standardem jest HTTP/3 i w przeciwieństwie do wcześniejszych wersji jest oparty o protokół UDP. Protokół TCP, na którym oparte były wcześniejsze wersje, jest znacznie wolniejszy, ponieważ po każdym transferze danych wymagane było przesłanie potwierdzenia. Protokół UDP (User Datagram Protocol) już nie wymaga tego potwierdzenia, więc nie musi czekać na kolejny krok w przesyłaniu danych, które wysyłane są strumieniowo. Możesz także spotkać się z protokołem QUIC (Quick UDP Internet Connections), który idealne współgra z HTTP/3, zapewnia bardzo wysoką wydajność i zmniejsza opóźnienia transmisji danych między serwerem a przeglądarką. Zdecydowanie warto sprawdzić, czy Twój hostingodawca udostępnia nowe rozwiązania lub zmienić usługodawcę.
  • Waga dokumentu HTML
    Pierwszym elementem, jaki jest wysyłany do serwera, jest przeważnie kod HTML. Jeżeli Twój kod będzie bardzo chaotyczny i będzie miał wiele niepotrzebnych elementów, to nie tylko wydłuży się generowanie drzewa DOM, ale i czas na przesłanie dokumentu.
  • Czas działania skryptów
    Jeżeli Twoja strona oparta jest o skrypty, system CMS czy frameworki, to zanim powstanie kod HTML wysyłany do przeglądarki, strona musi go stworzyć za pomocą własnych skryptów. Szybkość działania silnika witryny zależny jest w dużej mierze od jej implementacji i logiki, ale też od wersji języka, w którym jest napisana (np. PHP). Jeżeli zatem nie możesz optymalizować silnika strony, zmiany zacznij od aktualizacji wersji PHP na serwerze.

Oczywiście to tylko część zaleceń. Zanim podejmiesz decyzję odnośnie jakiejkolwiek zmiany, wykonaj testy, aby upewnić się, co dokładnie jest tym „wąskim gardłem” przy pierwszej komunikacji z serwerem.

Większość serwisów w sieci oparta jest na znanych systemach CMS, które doczekały się uniwersalnych rozwiązań. Poniżej znajdziesz zalecenia dla niektórych z nich, które dodatkowo mogą poprawić czasy TTFB:

  • Drupal
    Zalecane jest znalezienie optymalnego szablonu serwisu, selektywne wybieranie modułów optymalizacji oraz aktualizowanie serwera. Dodatkowo skorzystanie z pamięci podręcznej i skrócenie czasu zapytań do bazy danych.
  • PrestaShop
    PrestaShop często posiada wiele modułów i wtyczek, które nie są wymagane do prawidłowego działania sklepu. Ich wyłączenie może poprawić czas TTFB. Dodatkowe zalecenia dla usprawnienia pracy silnika PrestaShop to wyłączenie funkcji wariantów (oczywiście, gdy ich nie wykorzystujesz), uruchomienie wbudowanej pamięci podręcznej, zmiany ustawień biblioteki SMARTY oraz skorzystanie z zestawu narzędzi CCC (combine, compress and cache).
  • Magento
    Magento jest potężną platformą dla e-commerce, dedykowaną bardzo dużym sklepom. Dla Magento zalecane jest wykorzystanie procesu „cachowania” przy użyciu technologii Varnish i dedykowanego serwera. Więcej informacji znajdziesz tutaj:
    https://devdocs.magento.com/guides/v2.3/config-guide/varnish/config-varnish.html
  • React
    W przypadku renderowania jakichkolwiek elementów po stronie serwera, zalecane jest użycie funkcji renderToNodeStream lub renderToStaticNodeStream. Pomogą one przesyłać wybrane znaczniki w odpowiedniej kolejności i czasie.
  • WordPress
    Odnośnie systemu WordPress w sieci można spotkać się z wieloma poradnikami i gotowymi wtyczkami. Mogą one zdziałać cuda na stronie, ale ich nieumiejętne wykorzystanie może także zaszkodzić. W WordPressie największą bolączką często są same szablony (zwłaszcza te darmowe) oraz masa wtyczek, których łatwość instalacji sprawia, że wiele osób przestaje myśleć o wydajności strony.
    Zalecam przede wszystkim instalowanie tylko tych niezbędnych i unikanie upiększania serwisu różnymi „fajerwerkami” na stronie.
    Wtyczki warto wybierać rozważnie i opierać się na opiniach innych użytkowników. Jeżeli zdecydujesz się na instalację wtyczki dedykowanej do optymalizacji wydajności strony, zrób to z głową. Wartymi rozważenia wtyczkami są: WP Rocket, NitroPack, Asset CleanUp Pro, Smush, WP-Optimize.
    Musisz jednak pamiętać, że wtyczka nie jest lekarstwem na każdy problem. Przede wszystkim powinieneś wykonać analizę serwisu, aby postawić odpowiednią diagnozę. Dopiero po weryfikacji, które elementy wymagają poprawy oraz poznaniu specyfikacji wtyczek, możesz wybrać tę, która rozwiąże problem.
    Odpowiednie wykorzystanie wtyczki jest również kluczowe. Nie powinieneś automatycznie włączać od razu wszystkich funkcji — jedynie te, które dotyczą problemu.
    Po każdej zmianie ponów testy i podejmuj kolejne próby. W innym przypadku trudno będzie Ci wykorzystać pełny potencjał opcji, jakie oferuje wtyczka. W skrajnych przypadkach może nawet zaszkodzić.