{"id":409,"date":"2021-12-06T09:07:53","date_gmt":"2021-12-06T09:07:53","guid":{"rendered":"https:\/\/affiv.com\/?p=409"},"modified":"2021-12-23T04:22:05","modified_gmt":"2021-12-23T04:22:05","slug":"how-to-speed-up-time-to-first-byte-ttfb","status":"publish","type":"post","link":"https:\/\/affiv.com\/pl\/jak-przyspieszyc-czas-do-pierwszego-bajtu-ttfb\/","title":{"rendered":"Jak przyspieszy\u0107 czas do pierwszego bajtu (TTFB)"},"content":{"rendered":"<p>Osoby, kt\u00f3re s\u0105 zaniepokojone wydajno\u015bci\u0105 frontonu internetowego, napotkaj\u0105 problem d\u0142ugiego czasu oczekiwania na czas do pierwszego bajtu (TTFB) podczas optymalizacji wydajno\u015bci sieciowej. W przypadku witryn WordPress, kt\u00f3re nie s\u0105 zoptymalizowane, czas TTFB cz\u0119sto przekracza czas pobierania tre\u015bci strony, powoduj\u0105c niepotrzebny czas oczekiwania dla u\u017cytkownik\u00f3w. G\u0142\u00f3wny pow\u00f3d tego problemu le\u017cy po stronie serwera, poniewa\u017c ci, kt\u00f3rzy nie s\u0105 zaznajomieni z obs\u0142ug\u0105 i utrzymaniem serwera, mog\u0105 nie wiedzie\u0107, od czego zacz\u0105\u0107, dzisiaj przeanalizujemy r\u00f3\u017cne aspekty przyczyn i rozwi\u0105za\u0144 TTFB.<\/p>\n\n\n\n<div class=\"wp-block-ht-block-toc is-style-outline htoc htoc--position-wide toc-list-style-plain\" data-htoc-state=\"expanded\"><span class=\"htoc__title\"><span class=\"ht_toc_title\">Spis tre\u015bci<\/span><span class=\"htoc__toggle\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\"><g fill=\"#444\"><path d=\"M15 7H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1z\"><\/path><path d=\"M15 1H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1zM15 13H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1z\"><\/path><\/g><\/svg><\/span><\/span><div class=\"htoc__itemswrap\"><ul class=\"ht_toc_list\"><li class=\"\"><a href=\"#what-is-time-to-first-byte-ttfb\">Jaki jest czas na pierwszy bajt (TTFB)<\/a><\/li><li class=\"\"><a href=\"#how-long-is-ttfb-time-considered-long\">Jak d\u0142ugi jest czas TTFB?<\/a><\/li><li class=\"\"><a href=\"#static-webpage-waiting-time-ttfb\">Czas oczekiwania na statyczn\u0105 stron\u0119 internetow\u0105 (TTFB)<\/a><\/li><li class=\"\"><a href=\"#dynamic-webpage-waiting-time-ttfb\">Dynamiczny czas oczekiwania na stron\u0119 internetow\u0105 (TTFB)<\/a><\/li><li class=\"\"><a href=\"#reasons-for-long-ttfb\">Powody d\u0142ugiego TTFB<\/a><\/li><li class=\"\"><a href=\"#the-solution-for-long-ttfb\">Rozwi\u0105zanie dla d\u0142ugiego TTFB<\/a><\/li><\/ul><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-time-to-first-byte-ttfb\">Jaki jest czas na pierwszy bajt (TTFB)<\/h2>\n\n\n\n<p>TTFB to skr\u00f3t od Time to First Byte, kt\u00f3ry odnosi si\u0119 do czasu, w kt\u00f3rym przegl\u0105darka zaczyna otrzymywa\u0107 dane odpowiedzi z serwera (czas przetwarzania w tle + czas przekierowania) i jest wa\u017cnym wska\u017anikiem szybko\u015bci odpowiedzi serwera. Na przyk\u0142ad, je\u015bli zadasz przyjacielowi pytanie, im kr\u00f3cej my\u015bli, tym m\u0105drzejszy jest tw\u00f3j przyjaciel lub bardziej zaznajomiony z twoim problemem. W przypadku serwera im kr\u00f3tszy czas TTFB, tym szybsza odpowied\u017a serwera.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-long-is-ttfb-time-considered-long\">Jak d\u0142ugi jest czas TTFB?<\/h2>\n\n\n\n<p>Poniewa\u017c sprz\u0119t i \u015brodowisko sieciowe ka\u017cdego serwera s\u0105 inne, czas TTFB ka\u017cdego serwera jest r\u00f3wnie\u017c inny. Je\u015bli chcesz wiedzie\u0107, w jakim stopniu Tw\u00f3j serwer mo\u017ce zosta\u0107 zoptymalizowany, mo\u017cesz przes\u0142a\u0107 na serwer niekt\u00f3re statyczne strony HTML, a nast\u0119pnie otworzy\u0107 te strony statyczne, aby zobaczy\u0107 czas TTFB niekt\u00f3rych z tych stron, wi\u0119kszo\u015b\u0107 serwer\u00f3w ma czas TTFB mniejszy ni\u017c 50 ms, tym razem mo\u017cemy zaj\u0105\u0107 si\u0119 optymalizacj\u0105. Czasy TTFB na poni\u017cszych dw\u00f3ch rysunkach to czasy oczekiwania TTFB stron statycznych i dynamicznych na serwerze, na kt\u00f3rym hostowana jest ta witryna.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"static-webpage-waiting-time-ttfb\">Czas oczekiwania na statyczn\u0105 stron\u0119 internetow\u0105 (TTFB)<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png\" alt=\"Przyspiesz TTFB\" class=\"wp-image-410 lazyload\"\/><noscript><img decoding=\"async\" width=\"857\" height=\"336\" src=\"https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png?resize=857%2C336&#038;ssl=1\" alt=\"Przyspiesz TTFB\" class=\"wp-image-410 lazyload\" srcset=\"https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png?w=857&amp;ssl=1 857w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png?resize=300%2C118&amp;ssl=1 300w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png?resize=768%2C301&amp;ssl=1 768w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-static.png?resize=18%2C7&amp;ssl=1 18w\" sizes=\"(max-width: 857px) 100vw, 857px\" data-recalc-dims=\"1\" \/><\/noscript><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dynamic-webpage-waiting-time-ttfb\">Dynamiczny czas oczekiwania na stron\u0119 internetow\u0105 (TTFB)<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png\" alt=\"Przyspiesz TTFB\" class=\"wp-image-411 lazyload\"\/><noscript><img decoding=\"async\" width=\"860\" height=\"336\" src=\"https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?resize=860%2C336&#038;ssl=1\" alt=\"Przyspiesz TTFB\" class=\"wp-image-411 lazyload\" srcset=\"https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?w=860&amp;ssl=1 860w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?resize=300%2C117&amp;ssl=1 300w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?resize=768%2C300&amp;ssl=1 768w, https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?resize=18%2C7&amp;ssl=1 18w\" sizes=\"(max-width: 860px) 100vw, 860px\" data-recalc-dims=\"1\" \/><\/noscript><\/figure>\n\n\n\n<p>Wed\u0142ug naszych test\u00f3w, je\u015bli czas TTFB przekroczy 500 ms, u\u017cytkownicy odczuj\u0105 znaczne oczekiwanie podczas otwierania strony internetowej. Mo\u017cemy uzna\u0107, \u017ce 500 ms jest punktem odniesienia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"reasons-for-long-ttfb\">Powody d\u0142ugiego TTFB<\/h2>\n\n\n\n<p>Jak wiemy, w przypadku dynamicznych stron internetowych, gdy serwer otrzyma \u017c\u0105danie od u\u017cytkownika otwarcia strony, najpierw odczytuje dane potrzebne dla strony z bazy danych, a nast\u0119pnie przekazuje dane do szablonu, kt\u00f3ry jest renderowany, a nast\u0119pnie zwracany do u\u017cytkownika. Poniewa\u017c zapytanie o dane i renderowanie szablonu zajmuje troch\u0119 czasu, przegl\u0105darka stale czeka na odpowied\u017a z serwera, dop\u00f3ki ten proces nie zostanie zako\u0144czony. Niekt\u00f3re us\u0142ugi maj\u0105 ni\u017csz\u0105 wydajno\u015b\u0107 lub nie s\u0105 dobrze zoptymalizowane, a ten czas b\u0119dzie d\u0142u\u017cszy.<\/p>\n\n\n\n<p>Oczywi\u015bcie, je\u015bli sie\u0107 mi\u0119dzy serwerem a u\u017cytkownikiem nie jest dobra (na przyk\u0142ad, je\u015bli serwer znajduje si\u0119 w Europie, a u\u017cytkownik jest w Azji, gdy u\u017cytkownik otwiera stron\u0119, \u017c\u0105danie musi przeby\u0107 tysi\u0105ce mil, aby dotrze\u0107 serwer), serwer odbiera \u017c\u0105danie u\u017cytkownika zbyt d\u0142ugo, co jest r\u00f3wnie\u017c przyczyn\u0105 d\u0142ugiego czasu TTFB.<\/p>\n\n\n\n<p>Czasami strona zapisuje zbyt wiele ciasteczek w przegl\u0105darce u\u017cytkownika, a za ka\u017cdym razem, gdy pojawia si\u0119 \u017c\u0105danie, te ciasteczka musz\u0105 zosta\u0107 wys\u0142ane do serwera, a serwer musi je przetworzy\u0107, co jest r\u00f3wnie\u017c jednym z powod\u00f3w d\u0142ugiego TTFB czas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-solution-for-long-ttfb\">Rozwi\u0105zanie dla d\u0142ugiego TTFB<\/h2>\n\n\n\n<p>Znaj\u0105c przyczyn\u0119, rozwi\u0105zanie jest oczywiste i polega na skr\u00f3ceniu czasu odpowiedzi serwera. Po za\u0142adowaniu strony internetowej jest to r\u00f3wnoznaczne z pobraniem strony statycznej bezpo\u015brednio z serwera.<\/p>\n\n\n\n<p>Je\u015bli przyczyn\u0105 takiego problemu jest sie\u0107, zmiana serwera jest bardziej bezpo\u015brednim rozwi\u0105zaniem. Je\u015bli z jakiego\u015b powodu nie mo\u017cesz zmieni\u0107 serwera, mo\u017cesz u\u017cy\u0107 CDN do synchronizacji stron z w\u0119z\u0142em CDN bli\u017cszym u\u017cytkownikowi, co r\u00f3wnie\u017c jest dobrym rozwi\u0105zaniem.<\/p>\n\n\n\n<p>Je\u017celi przyczyn\u0105 s\u0105 pliki cookies mo\u017cesz usun\u0105\u0107 niekt\u00f3re niepotrzebne pliki cookies poprzez modyfikacj\u0119 aplikacji lub usprawni\u0107 zawarto\u015b\u0107 plik\u00f3w cookies, skr\u00f3ci\u0107 okres wa\u017cno\u015bci plik\u00f3w cookies itp.,<\/p>","protected":false},"excerpt":{"rendered":"<p>Osoby, kt\u00f3re s\u0105 zaniepokojone wydajno\u015bci\u0105 frontonu internetowego, napotkaj\u0105 problem d\u0142ugiego czasu oczekiwania na czas do pierwszego bajtu (TTFB) podczas optymalizacji wydajno\u015bci sieciowej. W przypadku witryn WordPress, kt\u00f3re nie s\u0105 zoptymalizowane, czas TTFB cz\u0119sto przekracza czas pobierania tre\u015bci strony, powoduj\u0105c niepotrzebny czas oczekiwania dla u\u017cytkownik\u00f3w<\/p>","protected":false},"author":1,"featured_media":411,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[112],"tags":[137],"class_list":["post-409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website","tag-ttfb"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/affiv.com\/wp-content\/uploads\/2021\/12\/ttfb-dynamic.png?fit=860%2C336&ssl=1","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":2,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":498,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/posts\/409\/revisions\/498"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/media\/411"}],"wp:attachment":[{"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affiv.com\/pl\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}