TTFB - czas odpowiedzi serwera. Jak go skrócić?

TTFB to czas do pierwszego bajtu odpowiedzi serwera - dobry wynik to do 0,8 s. Jak zmierzyć TTFB, skąd się bierze wolny serwer i jak skrócić czas odpowiedzi.

Autor: McProdukt · Opublikowano: · Aktualizacja:

TTFB (Time to First Byte) to czas od wysłania żądania przez przeglądarkę do otrzymania pierwszego bajtu odpowiedzi serwera. Dobry wynik według web.dev to 0,8 sekundy lub mniej, a powyżej 1,8 sekundy - słaby. Typowe przyczyny wysokiego TTFB to brak cache strony, ciężkie wtyczki, wolna baza danych, stara wersja PHP i przeciążony serwer. Poniżej wyjaśniamy, z czego składa się TTFB, jak go zmierzyć i jak go skrócić.

Co to jest TTFB i z czego się składa?

TTFB mierzy, jak długo przeglądarka czeka, zanim serwer zacznie wysyłać stronę. Według web.dev to suma kilku etapów żądania:

  • Przekierowania - np. z http na https albo z adresu bez www na adres z www. Każde przekierowanie to kolejne żądanie.
  • Uruchomienie service workera - tylko jeśli strona go używa.
  • Wyszukanie DNS - zamiana nazwy domeny na adres IP serwera.
  • Połączenie i negocjacja TLS - zestawienie szyfrowanego połączenia HTTPS.
  • Żądanie - aż do chwili, gdy dotrze pierwszy bajt odpowiedzi. W tym czasie serwer uruchamia PHP, odpytuje bazę danych i składa stronę.

Ostatni etap zależy głównie od hostingu i samej strony, poprzednie - także od odległości od serwera, DNS i konfiguracji adresów. TTFB nie należy do Core Web Vitals, ale poprzedza wskaźniki FCP i LCP: dopóki serwer nie odpowie, przeglądarka nie wyświetli treści. Jak poprawić same wskaźniki, opisujemy w poradniku Core Web Vitals: LCP, INP i CLS.

Jaki TTFB jest dobry?

TTFBOcena według web.devCo zrobić
do 0,8 sdobrynic pilnego - pilnuj, żeby tak zostało po zmianach na stronie
0,8-1,8 swymaga poprawysprawdź cache strony, wtyczki i wersję PHP
powyżej 1,8 ssłabyszukaj przyczyny w tabeli poniżej; jeśli strona jest zoptymalizowana, problemem może być serwer

Próg 0,8 s dotyczy całego TTFB, razem z DNS i przekierowaniami. Lighthouse, którego wyniki widzisz w PageSpeed Insights, ma ostrzejsze kryterium dla samego serwera: zgłasza problem, gdy odpowiedź na żądanie dokumentu trwa dłużej niż 600 ms. Oba progi nie są sprzeczne - 600 ms dotyczy tylko czasu odpowiedzi serwera, bez DNS i przekierowań.

Jak zmierzyć TTFB?

  • Test szybkości - wpisz adres w teście szybkości strony. Zobaczysz TTFB, a osobno czasy DNS, połączenia i TLS oraz liczbę przekierowań, więc od razu widać, który etap jest wolny.
  • DevTools w Chrome - naciśnij F12, przejdź do zakładki Network, zaznacz „Disable cache" i odśwież stronę. Kliknij pierwszy wiersz (dokument HTML) i otwórz zakładkę Timing. Pozycja zaczynająca się od „Waiting" (w dokumentacji Chrome: Waiting, TTFB) to czas oczekiwania na pierwszy bajt - obejmuje jedną podróż danych do serwera i z powrotem oraz czas przygotowania odpowiedzi.
  • PageSpeed Insights - w danych od rzeczywistych użytkowników Chrome z ostatnich 28 dni pokazuje TTFB jako metrykę eksperymentalną. Gdy strona ma za mało ruchu, zobaczysz dane dla całej domeny albo brak danych.

Mierz kilka razy i o różnych porach. Pierwsze wejście po zmianach na stronie bywa wolniejsze, bo cache jest pusty. Na serwerze LiteSpeed sprawdzisz to w nagłówkach odpowiedzi (DevTools, zakładka Headers): X-LiteSpeed-Cache: miss oznacza, że strony nie było w cache i właśnie została zapisana, a X-LiteSpeed-Cache: hit - że przyszła z cache. Jeśli na stronie z wtyczką LiteSpeed Cache nie widzisz żadnego z tych nagłówków, cache jest źle skonfigurowany.

Dlaczego serwer wolno odpowiada?

Wysoki TTFB może wynikać zarówno ze strony, jak i z serwera. Tabela pomoże ustalić, z czym masz do czynienia:

PrzyczynaJak rozpoznaćCo zrobić
Brak cache stronykażde wejście jest tak samo wolne, brak nagłówka X-LiteSpeed-Cache: hitwłącz cache strony (na serwerze LiteSpeed - wtyczką LiteSpeed Cache)
Ciężkie wtyczki lub motywwolny jest też panel WordPressa; TTFB spada po wyłączeniu wtyczki na kopii testowejusuń zbędne wtyczki, najcięższe zamień na lżejsze
Wolna baza danychwolne są głównie strony dynamiczne: wyszukiwarka, koszyk, filtrycache obiektowy (Redis), porządek w bazie
Stara wersja PHPpanel hostingu pokazuje wersję, która nie ma już wsparciaprzejdź na nowszą, wspieraną wersję po teście na kopii strony
Przeciążony serwer lub limity kontaTTFB mocno waha się w ciągu dnia, pojawiają się błędy 503 lub 508zapytaj dostawcę o zużycie zasobów, rozważ większy pakiet lub zmianę hostingu
Daleki serwer bez CDNdługie czasy połączenia i TLS, wolniej u odwiedzających z innych krajówserwer bliżej klientów albo CDN
Łańcuch przekierowańtest pokazuje kilka przekierowań przed stroną docelowąlinkuj do adresu docelowego, zostaw jedno przekierowanie

Dwa z tych punktów wprost potwierdza web.dev: wydajność WordPressa zależy od liczby i jakości wtyczek oraz od motywu, a kolejne wersje języków programowania i baz danych z czasem działają wydajniej - dlatego liczy się, czy hosting aktualizuje oprogramowanie serwera.

Jak skrócić TTFB krok po kroku?

  1. Włącz cache strony. Zamiast składać stronę przy każdym wejściu, serwer oddaje zapisaną wcześniej kopię, bez uruchamiania PHP i bazy. W WordPressie na serwerze LiteSpeed cache strony włączasz wtyczką LiteSpeed Cache - samo buforowanie wykonuje serwer, dlatego funkcje cache tej wtyczki działają tylko na serwerze LiteSpeed albo przez CDN QUIC.cloud. Konfigurację opisujemy w poradniku LiteSpeed Cache - konfiguracja krok po kroku, a zasadę działania - w tekście cache - co to jest i jak przyspiesza stronę.
  2. Dodaj cache obiektowy. Stron dynamicznych, takich jak koszyk czy konto klienta, nie da się w całości zbuforować. Tu pomaga cache obiektowy, np. Redis - szczegóły w poradniku Redis object cache w WordPressie.
  3. Zaktualizuj PHP. Przejdź na nowszą, wspieraną wersję, ale najpierw sprawdź zgodność wtyczek na kopii strony. Jak zrobić to bezpiecznie, opisujemy w tekście jak zmienić wersję PHP na hostingu.
  4. Odchudź wtyczki. Wyłącz te, których nie używasz. Na kopii strony wyłączaj kolejne wtyczki i mierz TTFB - tak znajdziesz tę, która najbardziej spowalnia generowanie strony.
  5. Usuń zbędne przekierowania. Linkuj od razu do docelowego adresu (z https i właściwą wersją www) i nie twórz łańcuchów przekierowań. Po wdrożeniu HTTPS pomaga nagłówek HSTS: przeglądarka przy kolejnych wizytach od razu łączy się przez https, bez przekierowania.
  6. Rozważ CDN, jeśli klienci są daleko. CDN trzyma kopie zasobów na serwerach bliżej odwiedzających. Gdy klienci i serwer są w tym samym regionie, zacznij od cache na serwerze - kiedy CDN naprawdę się opłaca, piszemy w tekście CDN - co to jest i kiedy się opłaca.
  7. Sprawdź serwer. Jeśli po tych krokach TTFB nadal skacze w ciągu dnia, a pojawiają się błędy 503 lub 508 Resource Limit Is Reached, konto może dochodzić do limitów albo serwer jest przeciążony.

Jaki hosting pomaga utrzymać niski TTFB?

Po stronie serwera liczą się szybkie dyski, serwer WWW z cache strony i aktualne wersje PHP. Na hostingu McProdukt strony działają na dyskach NVMe i serwerze LiteSpeed (OpenLiteSpeed) z LSCache, a do cache obiektowego dostępny jest Redis. Wersję PHP ustawiasz osobno dla każdej domeny - do wyboru są 5.6, 7.2, 7.3, 7.4 oraz 8.1-8.5.

Jeśli prowadzisz stronę na WordPressie, zobacz hosting WordPress. Każdy pakiet możesz przez 14 dni przetestować za darmo i zmierzyć TTFB na kopii własnej strony, zanim przeniesiesz domenę.

Najczęściej zadawane pytania

Co to jest TTFB?

TTFB (Time to First Byte) to czas od wysłania żądania do otrzymania pierwszego bajtu odpowiedzi serwera. Obejmuje przekierowania, DNS, połączenie z TLS i czas, w którym serwer przygotowuje stronę.

Jaki TTFB jest dobry?

Według web.dev dobry TTFB to 0,8 sekundy lub mniej. Wynik od 0,8 do 1,8 sekundy wymaga poprawy, a powyżej 1,8 sekundy jest słaby.

Czy TTFB należy do Core Web Vitals?

Nie, TTFB jest metryką pomocniczą. Ponieważ poprzedza wyświetlenie treści (FCP i LCP), wolny serwer utrudnia jednak uzyskanie dobrych wyników w tych wskaźnikach.

Dlaczego każdy pomiar TTFB daje inny wynik?

Na wynik wpływa to, czy strona była w cache, chwilowe obciążenie serwera, odległość od miejsca pomiaru i szybkość DNS. Dlatego mierz kilka razy, o różnych porach, i porównuj średnie, a nie pojedyncze wyniki.

Czy CDN zawsze skraca TTFB?

Nie zawsze. CDN skraca drogę do odwiedzających, ale jeśli strony nie ma w cache CDN, żądanie i tak trafia do Twojego serwera. Najpierw włącz cache strony na serwerze, potem rozważ CDN.

Powiązane poradniki

Wszystkie poradniki z kategorii: Szybkość i wydajność

Powiązane usługi McProdukt

Zobacz również