Czas do pierwszego bajtu (TTFB)

Co mierzy TTFB, dlaczego nie jest podstawową metryką internetową, jak ogranicza LCP i FCP, co jest uważane za dobry wynik i jak naprawić powolną odpowiedź serwera.

Opublikowano po raz pierwszy: 26 cze 2026 · Ostatnia aktualizacja: 3 sie 2026 · Advanced
Języki

Czas do pierwszego bajtu to czas od rozpoczęcia żądania do otrzymania pierwszego bajtu odpowiedzi — suma czasu przekierowania, uruchomienia service workera, wyszukiwania DNS, negocjacji połączenia i TLS oraz samego żądania. Nie jest podstawową metryką internetową; to metryka diagnostyczna, fundamentalna i główny wkład w FCP i LCP. web.dev zaleca dążenie do ≤0,8 s (dobrze) i traktuje >1,8 s jako słaby wynik. Jest to zarówno metryka polowa, jak i laboratoryjna. Audyt Lighthouse „Zmniejsz czasy odpowiedzi serwera” jest węższy — sygnalizuje czas serwera powyżej ~600 ms, a nie pełny TTFB, a od Lighthouse 13 znajduje się w ramach wglądu „Opóźnienie żądania dokumentu”. Napraw to za pomocą CDN, buforowania brzegowego/HTML, szybszego hostingu, mniejszej liczby przekierowań, Early Hints i wydajnego TLS. I pamiętaj: wysoki TTFB nie zawsze oznacza wolną witrynę.

TL;DR — TTFB to czas od rozpoczęcia zapytania do momentu, gdy pierwszy bajt odpowiedzi dociera — suma czasu przekierowania, uruchomienia service workera, wyszukiwania DNS, negocjacji połączenia + TLS oraz samego zapytania, aż do tego pierwszego bajtu. Nie jest to Core Web Vital; to podstawowa, diagnostyczna metryka, która zasila FCP i LCP. web.dev: dobry wynik to ≤0,8 s, słaby to >1,8 s (75. percentyl). Jest to zarówno metryka terenowa, jak i laboratoryjna. Audyt Lighthouse „Reduce server response times” jest węższy — wskazuje czas serwera powyżej ~600 ms, a nie pełny TTFB, a od Lighthouse 13 znajduje się w ramach wglądu „Document request latency”. Rozwiąż to za pomocą CDN, cache’owania brzegowego/HTML, szybszego hostingu, mniejszej liczby przekierowań, 103 Early Hints i wydajnego TLS. A wysoki TTFB nie zawsze oznacza wolną witrynę.

Co dokładnie mierzy TTFB

TTFB mierzy czas między rozpoczęciem nawigacji do strony a momentem, gdy pierwszy bajt odpowiedzi zaczyna docierać. Rzeczą, którą ludzie mylą, jest traktowanie go jako czystego czasu przetwarzania backendu. Tak nie jest. To suma wszystkiego, co musi się zakończyć, zanim ten pierwszy bajt może wrócić:

  1. Czas przekierowania
  2. Czas uruchomienia service workera (jeśli ma zastosowanie)
  3. Wyszukiwanie DNS
  4. Negocjacja połączenia i TLS
  5. Zapytanie — aż do momentu, gdy pierwszy bajt odpowiedzi dotrze

Przetwarzanie po stronie serwera jest tam, ale także cały narzut związany z konfiguracją połączenia. To rozróżnienie ma znaczenie, gdy tylko zaczniesz czytać narzędzia, ponieważ nie wszystkie mierzą ten sam wycinek (więcej o tym poniżej).

Evidence for this claim TTFB measures from request start until the first response byte and includes redirect, connection setup, and server-response time. Scope: Current web.dev navigation TTFB definition. Confidence: high · Verified: web.dev: Time to First Byte

To nie jest Core Web Vital

Powiem to wprost, bo to najczęstsze nieporozumienie: TTFB nie jest Core Web Vital. Trzy Core Web Vitals to LCP (ładowanie), INP (interaktywność) i CLS (stabilność wizualna). TTFB to podstawowa, diagnostyczna metryka — według Google jest to “podstawowa metryka do mierzenia czasu konfiguracji połączenia i responsywności serwera zarówno w laboratorium, jak i w terenie.”

Google wyraźnie stwierdza również, że nie musisz ściśle osiągać dobrego progu TTFB: ponieważ nie jest to Core Web Vital, “nie jest absolutnie konieczne, aby witryny spełniały próg ‘dobrego’ TTFB, pod warunkiem że nie utrudnia to ich zdolności do osiągania dobrych wyników w metrykach, które mają znaczenie.” Ten ostatni fragment jest kluczowy — dla większości witryn zły TTFB zdecydowanie utrudnia osiąganie metryk, które mają znaczenie.

Jak ogranicza FCP i LCP

TTFB poprzedza każdą metrykę ładowania skoncentrowaną na użytkowniku. Zarówno First Contentful Paint, jak i Largest Contentful Paint zawierają TTFB w swoim pomiarze — zegar dla tych metryk już działa, gdy czekasz na pierwszy bajt. web.dev dzieli LCP na podczęści, a TTFB jest pierwszą z nich, dlatego nie możesz mieć szybkiego LCP opartego na wolnym TTFB.

To również miejsce, gdzie wskazują dane ze świata rzeczywistego. Web Almanac z HTTP Archive wykazał, że na stronach ze słabym LCP sam TTFB pochłaniał około 2,27 sekundy — prawie cały budżet 2,5 sekundy na “dobre LCP” — zanim jakikolwiek obraz lub tekst zaczął się renderować. Jeśli Twoje LCP jest złe, a treść na stronie wygląda na zoptymalizowaną, TTFB to pierwsze miejsce, na które bym spojrzał.

Więc historia z rankingiem jest pośrednia, ale realna: TTFB nie jest sygnałem rankingowym Google (sygnały rankingowe to LCP, INP i CLS — TTFB nie jest w tym zestawie wymieniony). Ale jest wbudowany w LCP, które jest sygnałem rankingowym. Ścieżka prowadzi przez LCP, a nie bezpośrednio przez TTFB.

Progi: dobry, wymaga poprawy, słaby

Wytyczne web.dev, mierzone na 75. percentylu rzeczywistych obciążeń użytkowników:

  • Dobry: ≤ 0,8 s
  • Słaby: > 1,8 s
Evidence for this claim web.dev recommends a TTFB of 0.8 seconds or less; above 1.8 seconds is poor at the 75th percentile. Scope: Current web.dev TTFB guidance; TTFB is diagnostic, not a Core Web Vital. Confidence: high · Verified: web.dev: Time to First Byte

“Większość witryn powinna dążyć do TTFB wynoszącego 0,8 sekundy lub mniej.” Warto znać historię: Google przesunął linię “dobrego” z 500 ms na 800 ms w 2022 roku, a starsze dane zostały przeliczone według nowego standardu — więc nie porównuj surowych historycznych wartości TTFB bez sprawdzenia, którego progu użyto.

Zamieszanie 600 ms vs 800 ms

To myli wiele osób, więc warto być precyzyjnym. Istnieją dwie różne liczby, które się pojawiają:

  • Próg TTFB w CrUX / web.dev: 800 ms. To próg terenowy dla pełnego TTFB (DNS + połączenie + TLS + przekierowania + czas serwera).
  • Audyt Lighthouse “Zmniejsz czasy odpowiedzi serwera”: ~600 ms. To audyt laboratoryjny, który flaguje, gdy przeglądarka czeka ponad około 600 ms na odpowiedź serwera na żądanie głównego dokumentu. Co kluczowe, mierzy tylko czas odpowiedzi serwera — nie obejmuje DNS, konfiguracji połączenia ani TLS.

Więc liczba Lighthouse wygląda na bardziej rygorystyczną, ale mierzy węższy wycinek. Jak mówi dokumentacja, “czas odpowiedzi serwera to tylko część pełnego Time to First Byte (TTFB).” Nie traktuj pozytywnego audytu Lighthouse jako dowodu na dobry terenowy TTFB i nie panikuj, że 600 < 800 oznacza, że progi są ze sobą sprzeczne — mierzą różne rzeczy.

Jedna uwaga dotycząca wersji: od Lighthouse 13 ten audyt nie jest już samodzielny — został włączony do szerszego wglądu “Opóźnienie żądania dokumentu”. Podstawowa kontrola odpowiedzi serwera ~600 ms jest taka sama; jest tylko inaczej prezentowana w zależności od wersji Lighthouse, która wygenerowała Twój raport.

Teren i laboratorium — oba

TTFB to jedna z metryk, które możesz odczytać w obu światach. W polu pochodzi z CrUX (prawdziwi użytkownicy Chrome), widoczna w PageSpeed Insights i Search Console. W laboratorium Chrome DevTools oznacza ją jako „Waiting (TTFB)” w panelu Network („przeglądarka czeka na pierwszy bajt odpowiedzi”), a narzędzia takie jak WebPageTest i Lighthouse również ją raportują. Jedna uwaga dotycząca pola: w CrUX TTFB jest nadal traktowana jako nieco eksperymentalna — wyklucza niektóre zaawansowane typy nawigacji, takie jak prerenderowane i nawigacje z pamięci podręcznej wstecz/do przodu, więc średnie z pola mogą być odczytywane jako nieco pesymistyczne w porównaniu z tym, co użytkownicy faktycznie odczuwają.

Wysoki TTFB nie zawsze oznacza wolno działającą witrynę

Oto niuans, który kryje się za liczbami progów. Strona renderowana po stronie serwera może mieć wyższy TTFB niż strona renderowana po stronie klienta i nadal zapewniać lepsze FCP i LCP — ponieważ gdy w końcu nadejdzie pierwszy bajt, jest to kompletny HTML, który przeglądarka może natychmiast wyrenderować, a nie cienka powłoka, która musi najpierw pobrać i uruchomić pakiet JavaScript, zanim cokolwiek się pojawi. Google mówi to wprost: „a server-rendered site that does not require as much client-side work could have a higher TTFB, but better FCP and LCP values than an entirely client-rendered experience.” (tłumaczenie) „witryna renderowana po stronie serwera, która nie wymaga tak dużej pracy po stronie klienta, może mieć wyższy TTFB, ale lepsze wartości FCP i LCP niż doświadczenie w całości renderowane po stronie klienta.”

Odwrotna strona: w przypadku aplikacji jednostronicowej renderowanej po stronie klienta TTFB decyduje o tym, kiedy pakiet JavaScript w ogóle zacznie się ładować, więc niski TTFB ma tam większe znaczenie, a nie mniejsze. Nie optymalizuj TTFB w próżni — optymalizuj cały łańcuch ładowania i oceniaj TTFB na podstawie tego, co robi dla FCP i LCP.

Jak poprawić TTFB

Z grubsza w kolejności priorytetów:

  • Zacznij od hostingu. Wolne backend lub zapytanie do bazy danych to podatek od każdego żądania i żadna praca po stronie frontendu go nie usunie. To pierwsza rzecz, którą należy wziąć pod uwagę.
  • Użyj CDN. CDN rozwiązuje problem bliskości — rozproszona sieć serwerów brzegowych buforuje zasoby fizycznie bliżej Twoich użytkowników, skracając koszt prędkości światła połączenia i uzgadniania TLS. To naprawa o najwyższym ROI dla większości witryn, ponieważ odległość geograficzna od Twojego origin to strukturalny podatek, którego żaden backend nie wymaże. Zastrzeżenie: w przypadku w pełni dynamicznych, spersonalizowanych treści, których nie można buforować, CDN dodaje przeskok bez zysku z trafienia w pamięć podręczną — tam odpowiedzią jest optymalizacja backendu, przetwarzanie brzegowe lub strumieniowanie.
  • Buforuj swój HTML, nawet na krótko. Nawet krótki czas buforowania pomaga ruchliwej witrynie zauważalnie: tylko pierwszy odwiedzający w tym oknie płaci pełne opóźnienie z powrotem do origin; wszyscy inni otrzymują skopiowaną wersję.
  • Wyeliminuj przekierowania. Przekierowania są częstym czynnikiem wysokiego TTFB — każde z nich to podróż w obie strony, zanim zacznie się prawdziwa odpowiedź. Wytnij te, które masz pod kontrolą.
  • Strumieniuj znaczniki do przeglądarki. Przeglądarki wydajnie przetwarzają znaczniki, gdy są strumieniowane w fragmentach w miarę ich docierania. Wiele frameworków SSR obsługuje strumieniowanie, ale jest ono wyłączone; włączenie go może obniżyć TTFB na dynamicznych stronach bez żadnych zmian w infrastrukturze.
  • Użyj 103 Early Hints. Kod statusu 103 to wstępna odpowiedź, którą serwer może wysłać gdy backend wciąż przygotowuje znaczniki, sugerując przeglądarce wcześniejsze rozpoczęcie pobierania zasobów krytycznych dla renderowania. Nie obniża samego TTFB — w rzeczywistości 103 może liczyć się jako „pierwszy bajt” — ale zmniejsza wpływ wysokiego TTFB. Shopify i Cloudflare zgłosiły poprawę LCP o kilkaset milisekund dzięki temu, w niektórych przypadkach blisko sekundy.
  • Negocjuj TLS efektywnie i optymalizuj uruchamianie service workera. Service worker, który jeszcze nie wystartował, dodaje swój czas uruchamiania do TTFB; gdy już działa, jego pamięć podręczna (stale-while-revalidate lub model app-shell dla SPA) może dramatycznie zmniejszyć TTFB.

Gdzie faktycznie stoją witryny

Powód, dla którego warto zwrócić na to uwagę: to uporczywy problem w całej sieci. Wskaźnik dobrego TTFB dla urządzeń mobilnych według Web Almanac ledwo się zmienił w ciągu pięciu lat – oscylując wokół 41–42 % – co oznacza, że większość mobilnych witryn nadal nie ma „dobrego” TTFB. Ta stagnacja jest, szczerze mówiąc, okazją. W przypadku witryny o dużym obciążeniu serwera, która nie zdaje LCP, TTFB jest zwykle poprawką o największym wpływie.

Ta strona jest częścią klastra web-performance, który znajduje się pod Core Web Vitals. Aby poznać metryki, na które wpływa TTFB, zobacz Largest Contentful Paint i First Contentful Paint; aby zmierzyć go na prawdziwych użytkownikach i w laboratorium, zobacz CrUX, PageSpeed Insights i Lighthouse.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.