Być może słyszałeś to zdanie Czas na pierwszy bajt ale jakoś koncepcja wydaje się uciekać niektórym ludziom. Czy to dlatego, że wydaje się niesamowicie zorientowany technologicznie, czy dlatego, że wydaje się abstrakcyjną koncepcją, nie tak ważną w codziennym użytkowaniu. Nic nie może być dalej od prawdy.


Czas na pierwszy bajt nie jest tak naprawdę koncepcją ani pomysłem, który powinni zrozumieć tylko technicy. Każdy powinien być w stanie zrozumieć jego znaczenie i zastosować go w praktyce.

W tym artykule wyjaśnię ci w kilku słowach: jaki jest czas do pierwszego bajtu, jak wpływa to na twoją stronę i dlaczego powinieneś zwracać na to uwagę jeśli chcesz zapewnić swoim czytelnikom jak najlepsze wrażenia podczas przeglądania witryny.

Jaki jest czas na pierwszy bajt?

Czas do pierwszego bajtu (TTFB) jest miarą stosowaną jako wskaźnik reakcji serwera WWW lub innego zasobu sieciowego.

TTFB mierzy czas od wysłania żądania przez użytkownika lub klienta do pierwszego bajtu strony odebranej przez przeglądarkę klienta. Czas ten składa się z czasu połączenia z gniazdem, czasu potrzebnego na wysłanie żądania HTTP oraz czasu potrzebnego na pobranie pierwszego bajtu strony. Chociaż czasami źle rozumiane jako obliczenie po DNS, pierwotne obliczenie TTFB w sieci zawsze obejmuje opóźnienie sieci w pomiarze czasu potrzebnego do załadowania zasobu.

To jest wyjaśnienie „techniczne” zaczerpnięte bezpośrednio z Wikipedia. Przetłumaczmy to teraz na prostszy, który służy wszystkim.

Czas do pierwszego bajtu to czas potrzebny na naciśnięcie tego przycisku, aby załadować stronę internetową do momentu, w którym zacznie się renderować. Jeśli mówisz o tym w kategoriach gier, czas do pierwszego bajtu byłby podobny do „opóźnienia” lub „opóźnienia”, które masz podczas gry. Opóźnienie to bezpośrednia reprezentacja tego, jak bardzo postrzegana jest Twoja witryna.

Jakie czynniki wpływają na czas do pierwszego bajtu?

Czas do pierwszego bajtu może być reprezentowany przez kilka czynników, ale ponieważ jest to artykuł WordPress, zamierzamy zredukować wszystko do tego, na co wpływ ma WordPress.

  • Czas odpowiedzi DNS
  • Konfiguracja i wydajność serwera (PHP i serwer WWW)
  • Wtyczki / motyw WordPress
  • Buforowanie HTML włączone / wyłączone

Każdy z tych czynników dodaje dodatkowe opóźnienie do czasu potrzebnego do renderowania witryny. Oznacza to, że to wszystko się sumuje. To nie to trochę tych czynników może wpływać na opóźnienie, wszystko tych czynników przyczynia się do większego opóźnienia! Możesz więc zgadywać, że dla idealnego scenariusza wszystko powinno być szybkie, aby uzyskać bardzo dobry czas do pierwszego bajtu, a jeśli coś w tym łańcuchu zajmuje więcej czasu, przetworzony zostanie ostatni bajt czasu do pierwszego bajtu.

Jest to ważne, ponieważ Czas do pierwszego bajtu wpływa na wszystko, co Ty lub Twoi czytelnicy robicie w witrynie. Za każdym razem, gdy czytelnik kliknie link, zdjęcie, post na blogu lub stronę, brany jest pod uwagę czas do pierwszego bajtu. Widać, że zły czas do pierwszego bajtu oznacza, że ​​czytelnik będzie miał sytuację podobną do gracza podłączonego do słabego serwera. Każde kliknięcie będzie wiązało się ze znacznym opóźnieniem, co wpłynie na wrażenia.

Uwaga: od tego momentu będę używać akronimu TTFB w celu oznaczenia czasu do pierwszego bajtu, aby trochę przyspieszyć.

1. Czas odpowiedzi DNS

Rozdzielczość DNS jest pierwszym czynnikiem w równaniu. Zawsze upewnij się, że korzystasz z dobrych serwerów DNS i że mają one rozproszone węzły na całym świecie, aby uzyskać najlepszą możliwą rozdzielczość. Dobrym sposobem na zmniejszenie TTFB na tym etapie jest skorzystanie z dobrej usługi globalnej, takiej jak CloudFlare jak wdraża się tego rodzaju usługa Globalne buforowanie DNS. Ta metoda jest wyjątkowo dobra do zmniejszania TTFB poprzez buforowanie kolejnych rozdzielczości.

2. Konfiguracja serwera

Drugim krokiem opóźnienia TTFB jest rzeczywisty serwer. Tutaj właśnie zaczyna się Twój hosting. Rodzaj zastosowanej konfiguracji serwera WWW i techniki buforowania znacznie zmniejszyć TTFB. Na przykład, jeśli twój serwer implementuje stary interpreter PHP 5.4, uzyskasz bardzo wysoką wartość TTFB, natomiast użycie nowoczesnej konfiguracji PHP 7.1 skróci ten czas o współczynnik 2 lub więcej.

Wynika to z faktu, że interpreter PHP odgrywa ważną rolę w tym procesie. Za każdym razem, gdy poprosisz o stronę internetową lub post na blogu bez pamięci, serwer będzie musiał przetwarzać dane pliki PHP przekonwertować je w formacie HTML z powrotem do przeglądarki. Im bardziej złożone są pliki PHP, tym więcej czasu zajmie ich wstępne przetworzenie i odesłanie z powrotem do przeglądarki.

Widać, że wydajność serwera będzie również odgrywać ważną rolę w całym procesie. Im szybszy procesor i więcej zasobów przydzielonych przez hosting, tym szybciej będzie przetwarzał te pliki, a zatem TTFB będzie mniejszy.

Ponadto, jeśli twój hosting implementuje buforowanie PHP, zostanie to jeszcze bardziej zmniejszone na drugim żądaniu, ponieważ zapewni buforowaną wersję tego pliku zamiast konieczności ponownego przetwarzania pliku PHP.

Widać teraz, że istnieją 2 rodzaje firm hostingowych, ogólne (niebuforowane) usługi i ekskluzywne usługi hostingowe WordPress, które zwykle implementują mechanizm buforowania dla PHP, redukując TTFB w tym procesie.

3. Wtyczki i motyw WordPress

Trzecim krokiem w równaniu TTFB jest Twoja rzeczywista strona. To jest najważniejszy czynnik i pokażę ci dlaczego.

Zwykle WordPress daje Twojemu hostingowi kilka plików PHP do przetworzenia, a im są bardziej złożone, tym więcej czasu zajmie przetworzenie. WordPress jest obsługiwany przez wtyczki i te wtyczki dodaje dodatkowy kod do końcowego przetwarzania PHP, więc mając to na uwadze, możesz to wyraźnie zobaczyć im więcej zainstalowanych wtyczek, tym więcej czasu zajmie ich przetworzenie przez hosting a zatem twój TTFB wzrośnie.

Im mniej tym lepiej

Z reguły mniej wtyczek jest zwykle lepsze. Oczywiście jedna źle zakodowana wtyczka może być znacznie gorsza niż 10 fachowo zakodowanych wtyczek lub można zainstalować dwie wtyczki, które są w konflikcie. Ale ogólnie rzecz biorąc, zmniejszenie liczby wtyczek ułatwia zarządzanie aktualizacjami i przyspiesza działanie witryny. Oto przykład rozsądnej liczby wtyczek do instalacji.

Czas do pierwszego bajtu: mniej wtyczek

Ten następny przykład może być problematyczny (znowu – zależy częściowo od tego, co zainstalowałeś).

Czas na pierwszy bajt: więcej wtyczek

I oczywiście wszystko, co przekroczy barierę 30 wtyczek, prawdopodobnie nie sprzyja opóźnieniu. Możesz być pewien, że witryna z ponad 40 wtyczkami będzie miała bardzo wysoki TTFB, nawet jeśli będzie hostowana w spektakularnej usłudze hostingowej, a ja pokażę ci, dlaczego.

4. Buforowanie HTML

Ostatni czynnik jest najważniejszy i jest związany z mechanizm buforowania zdecydujesz się wdrożyć podczas instalacji WordPress. Chociaż w WordPress istnieje kilka rodzajów mechanizmów buforowania, najbardziej skuteczny z nich jest Buforowanie HTML.

Mając dobrą wtyczkę jak KeyCDN Cache Enabler będzie miało ogromny wpływ na Twój TTFB, nawet bardziej niż sam hosting. Konwertuje wszystkie te pliki na HTML, więc gdy pamięć podręczna jest aktywna, czytelnicy nie będą musieli przechodzić przez preprocesor PHP na twoim hoście i będzie to tylko sam serwer WWW odpowiedzialny za dostarczanie treści. Możesz nawet przyspieszyć ten proces, jeśli zdecydujesz się na korzystanie z hostingu, który obejmuje nginx zamiast apache jako głównego serwera, jak wyjaśnię w tym artykule.

Czas na pierwsze bajty Case Studies: Dlaczego to ważne?

Teraz pokażę ci, o czym mówimy. Poniższe studia przypadków są przykładami rzeczywistych konfiguracji stron internetowych na różnych serwerach, z przydatnym podsumowaniem testu porównawczego na końcu.

Wolna strona na wolnym serwerze

Powolna strona może być uciążliwa dla TTFB, a jeśli nie zależy ci na dobrej usłudze hostingowej, musisz być przygotowany na najgorsze możliwe wyniki.

Czas do pierwszego bajtu: powolna strona, powolna wydajność serwera

Przeanalizujmy tę stronę szczegółowo. W tym celu zamierzam użyć narzędzi Pingdom, ponieważ jest to doskonałe narzędzie do wyświetlania TTFB. Sztuką jest otwarcie Szczegół na pierwsze żądanie wykonane na stronie.

Czas do pierwszego bajtu: powolna strona, powolna reakcja serwera

Jak widać, strona ma TTFB nie mniej niż 4,2 sekundy! Oznacza to, że upłyną 4 pełne sekundy, aż pojawi się informacja, że ​​witryna jest faktycznie dostępna.

Teraz pomnóż ten czas przez wszystkie kliknięcia, które wykonasz na stronie, a zobaczysz, ile bólu może to przysporzyć czytelnikowi. Oczywiście TTFB należy dodać do całkowitego czasu renderowania witryny. Wynik będzie katastrofalny pod względem wydajności ponieważ strona zajmie tyle samo 7 sekund do renderowania czasami właściwie.

Prowadzi to kombinacja kilku czynników. Słabo zoptymalizowana witryna bez mechanizmu buforowania, bardzo powolna usługa hostingu i całkowicie przestarzały interpreter PHP, który wciąż działa w PHP 5.4. Nawet jeśli witryna korzysta z cloudflare jako zewnętrznego mechanizmu buforowania, nic nie można zrobić, aby poprawić sytuację, jeśli witryna i hosting nie współpracują.

Szybka witryna na przeciętnym serwerze

Zobaczmy, co się stanie, gdy umieścimy bardzo szybką stronę na przeciętnym serwerze, który używa Apache i PHP 7.1

Czas do pierwszego bajtu: szybka witryna, średnia odpowiedź serwera

W przypadku witryny zawierającej mniej niż 10 wtyczek bez pamięci podręcznej wynik jest co najmniej 5 razy lepszy niż poprzedni. Widać, że TTFB jest teraz ustawiony na 521 ms. Oznacza to, że strona zacznie renderować się w przeglądarce w ciągu 0,5 sekundy, od momentu przejścia z serwera do momentu dotarcia do komputera.

Czas do pierwszego bajtu: szybka witryna, średnia odpowiedź serwera 2

Co się stanie, gdy aktywujemy pamięć podręczną na tej stronie? Magia się dzieje. Ogólnie przeciętny serwer działający na Apache może dać doskonałe wyniki przy zaledwie 152 ms TTFB. Możesz zobaczyć ile dobre buforowanie WordPress mechanizm wpływa na wyniki.

Bardzo wolna strona na szybkim serwerze

Zobaczmy teraz coś przeciwnego. Co się stanie, jeśli umieścimy bardzo wolną stronę na bardzo szybkim serwerze.

Czas do pierwszego bajtu: powolna strona, szybka reakcja serwera

Zoptymalizowany serwer, na którym działa Plesk z nginx i PHP 7.1.11, zajmie 1,29 sekundy, aby strona została wypełniona wtyczkami (ponad 27).

Czas do pierwszego bajtu: powolna strona, szybka odpowiedź serwera 2

Ale kiedy aktywujemy buforowanie w WordPressie za pomocą uroczego narzędzia KeyCDN Cache Enabler, wynik jest niesamowity. Bardzo wolna strona ma TTFB zredukowane do zaledwie 400 ms.

Szybka strona internetowa na szybkim serwerze

Zobaczmy teraz optymalną sytuację. Szybka strona internetowa działająca na szybkim serwerze.

Czas do pierwszego bajtu: szybka witryna, szybka odpowiedź serwera

Ten sam serwer, który dawał 1,29 sekundy TTFB w wolnej witrynie, odpowiada w mniej niż 500 ms w szybkiej witrynie bez pamięci podręcznej.

Czas do pierwszego bajtu: szybka witryna, szybka odpowiedź serwera 2

Jeśli włączymy pamięć podręczną, wyniki są po prostu niesamowite. Szybki serwer w połączeniu z szybką witryną z włączonym buforowaniem daje mniej niż 150 ms TTFB!

Wyniki testu

Zobaczmy wyniki na jednym dużym wykresie dla miłośników testów porównawczych.

Czas do testów pierwszego bajtu

Widać, że hosting odgrywa ważną rolę w zmniejszaniu TTFB i poprawie opóźnień oraz postrzeganej wydajności witryny, ale to, co robisz z witryną, ma największy wpływ na wydajność.

Podsumowanie

Posiadanie dobrego wskaźnika TTFB zagwarantuje, że będziesz mieć szybką i elastyczną witrynę, skróci Twój ogólny czas renderowania i posłuży jako doskonały wskaźnik do określenia wydajności. Zwykle im wyższy TTFB, tym wolniejsza będzie Twoja witryna. Pamiętając o TTFB, gdy porównujesz swoją witrynę, jest to najważniejsze, ponieważ czas ten można również wykorzystać do określenia wąskich gardeł w instalacji WordPress. Możesz wykonać proste ćwiczenie, po prostu wyłączając wszystkie wtyczki i przełączając się na podstawowy motyw, a następnie ponownie mierz TTFB. Będziesz zaskoczony wynikami.

Chcę zakończyć ten artykuł stwierdzeniem, że nie jest to w żadnym razie „jedna miara rządząca nimi wszystkimi”, ponieważ należy wziąć pod uwagę inne czynniki, w tym wydajność bazy danych, dostępną przepustowość i szybkość sieci. Ale ponieważ na wszystkie te czynniki wpływają również TTFB, jest to dobry wskaźnik wąskich gardeł w innych obszarach.

Mamy nadzieję, że zechcesz eksperymentować z TTFB. Zostaw swoje komentarze poniżej. Chcielibyśmy usłyszeć o twoich testach lub pomóc w razie jakichkolwiek pytań.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me