Tinklaraščio įrašas
15/5/2025

Pirmojo baito gavimo laikas: daugiau nei serverio atsako laikas

Interneto našumo optimizavimas reiškia žvelgti giliau nei paviršutiniškos metrikos. Pirmojo baito gavimo laikas (TTFB) yra labai svarbus, tačiau norint jį pagerinti, neužtenka vien koreguoti serverio atsako laiką. Matt Zeunert išsamiai paaiškina, kas yra TTFB, kas lemia prastą jo balą ir kodėl vien serverio atsako laiko mažinimas nėra pakankamas optimizavimui ir dažnai nebus pats paveikiausias pakeitimas, kurį galite padaryti savo svetainėje.

Greitas jūsų svetainės HTML įkėlimas turi didelę įtaką lankytojų patirčiai. Galų gale, joks puslapio turinys negali būti rodomas, kol neįkelta pirmoji HTML dalis. Štai kodėl Pirmojo baito gavimo laiko (angl. Time to First Byte, TTFB) metrika yra svarbi: ji matuoja, kaip greitai po navigacijos pradžios naršyklė pradeda gauti HTML atsaką.

Greitas HTML dokumento generavimas vaidina didelį vaidmenį mažinant TTFB vėlavimus. Bet iš tikrųjų, šios metrikos optimizavimas apima daug daugiau. Šiame straipsnyje apžvelgsime, kas dar gali sukelti prastą TTFB ir ką galite padaryti, kad tai ištaisytumėte.

Iš kokių komponentų susideda Pirmojo baito gavimo laiko metrika?

TTFB reiškia laiką iki pirmojo baito. Bet nuo kur matuojama?

Skirtingi įrankiai tai traktuoja skirtingai. Kai kurie skaičiuoja tik laiką, praleistą siunčiant HTTP užklausą ir gaunant atsakymą, ignoruodami visa kita, kas turi įvykti prieš pradedant krauti išteklių. Tačiau, kalbant apie „Google“ Pagrindinius interneto rodiklius (angl. Core Web Vitals), TTFB prasideda nuo to momento, kai vartotojai pradeda naršyti naują puslapį. Tai reiškia, kad TTFB apima:

  • Kitos kilmės (angl. cross-origin) peradresavimus,
  • Laiką, praleistą jungiantis prie serverio,
  • Tos pačios kilmės (angl. same-origin) peradresavimus, ir
  • Pačią HTML dokumento užklausą.

To pavyzdį galime matyti šioje užklausų krioklio vizualizacijoje.

Prašyti vizualizuoti krioklį

Serverio atsako laikas čia yra tik 183 milisekundės, arba apie 12 % viso TTFB. Pusė laiko vietoj to praleidžiama kitos kilmės peradresavimui – atskirai HTTP užklausai, kuri grąžina peradresavimo atsakymą, prieš mums net spėjus pateikti užklausą, grąžinančią svetainės HTML kodą. O kai pateikiame tą užklausą, didžioji laiko dalis praleidžiama užmezgant ryšį su serveriu.

Prisijungimas prie serverio internete paprastai reikalauja trijų perdavimų pirmyn ir atgal (angl. round trips) tinkle:

  1. DNS: Serverio IP adreso paieška.
  2. TCP: Patikimo ryšio su serveriu užmezgimas.
  3. TLS: Saugaus šifruoto ryšio sukūrimas.

Ką tinklo delsa reiškia Pirmojo baito gavimo laikui?

Suskaičiuokime visus tinklo perdavimus pirmyn ir atgal aukščiau pateiktame pavyzdyje:

  • 2 serverio prisijungimai: 6 perdavimai pirmyn ir atgal.
  • 2 HTTP užklausos: 2 perdavimai pirmyn ir atgal.

Tai reiškia, kad prieš gaudami pirmąjį mūsų puslapio atsako baitą, iš tikrųjų turime siųsti duomenis pirmyn ir atgal tarp naršyklės ir serverio aštuonis kartus!

Štai kur atsiranda tinklo delsa, arba perdavimo pirmyn ir atgal laikas (angl. Round Trip Time, RTT), jei žiūrime į laiką, per kurį duomenys nusiunčiami į serverį ir gaunamas atsakymas naršyklėje. Esant didelės delsos ryšiui su 150 milisekundžių RTT, atlikti tuos aštuonis perdavimus užtruks 1,2 sekundės. Taigi, net jei serveris visada atsako akimirksniu, negalime gauti mažesnio nei šis skaičius TTFB.

Tinklo delsa labai priklauso nuo geografinio atstumo tarp lankytojo įrenginio ir serverio, prie kurio jungiasi naršyklė. To poveikį praktiškai galite pamatyti atlikę pasaulinį TTFB testą svetainėje. Čia išbandėme svetainę, kuri talpinama Brazilijoje. Gauname gerus TTFB balus testuojant iš Brazilijos ir JAV rytinės pakrantės. Tačiau lankytojai iš Europos, Azijos ar Australijos laukia ilgiau, kol svetainė įsikels.

Vizualizacija su pasaulinio TTFB testo žemėlapiu

Ką Turinio pristatymo tinklai (CDN) reiškia Pirmojo baito gavimo laikui?

Vienas būdas paspartinti jūsų svetainę yra naudoti Turinio pristatymo tinklą (angl. Content Delivery Network, CDN). Šios paslaugos suteikia pasauliniu mastu paskirstytų serverių vietų tinklą. Užuot kiekvienam perdavimui keliavus iki pat jūsų interneto programos talpinimo vietos, naršyklės jungiasi prie artimiausio CDN serverio (vadinamo kraštiniu mazgu). Tai labai sumažina laiką, praleistą užmezgant ryšį su serveriu, ir pagerina bendrą TTFB metriką.

Pagal numatytuosius nustatymus, pati HTML užklausa vis tiek turi būti nusiųsta į jūsų interneto programą. Tačiau, jei jūsų turinys nėra dinamiškas, galite taip pat talpinti atsakymus CDN kraštiniame mazge. Tokiu būdu užklausa gali būti aptarnauta visiškai per CDN, o duomenys nekeliaus per visą pasaulį.

Jei atliksime TTFB testą svetainėje, kuri naudoja CDN, matysime, kad kiekvienas serverio atsakymas ateina iš regioninio duomenų centro, esančio arti užklausos pateikimo vietos. Daugeliu atvejų gauname mažesnį nei 200 milisekundžių TTFB, dėka to, kad atsakymas jau yra talpinamas kraštiniame mazge.

Išplėsta TTFB testo versija su testavimo vietų sąrašu ir jų serverių atsakymais

Kaip pagerinti Pirmojo baito gavimo laiką?

Ką reikia daryti norint pagerinti jūsų svetainės TTFB balą, priklauso nuo to, kuris komponentas prie jo prisideda labiausiai.

  • Daug laiko praleidžiama užmezgant ryšį: Naudokite pasaulinį CDN.
  • Serverio atsakymas yra lėtas: Optimizuokite savo programos kodą arba talpinkite atsakymą.
  • Peradresavimai vėlina TTFB: Venkite grandininių peradresavimų ir optimizuokite serverį, grąžinantį peradresavimo atsakymą.
TTFB duomenys, įskaitant nukreipimą, DNS paiešką, TCP ryšį, SSL rankos paspaudimą, atsakymą

Atminkite, kad TTFB priklauso nuo to, kaip lankytojai pasiekia jūsų svetainę. Pavyzdžiui, jei jie yra prisijungę prie jūsų programos, puslapio turinys tikriausiai negali būti patiektas iš talpyklos. Taip pat galite pamatyti TTFB šuolį vykdydami reklaminę kampaniją, nes lankytojai yra peradresuojami per paspaudimų sekimo serverį.

Stebėkite realių vartotojų Pirmojo baito gavimo laiką

Jei norite gauti išsamesnį vaizdą, kaip TTFB atrodo skirtingiems jūsų svetainės lankytojams, jums reikia realių vartotojų stebėsenos (angl. Real User Monitoring, RUM). Tokiu būdu galite išanalizuoti, kaip lankytojo vieta, prisijungimo būsena ar nukreipiančiojo domeno poveikis realiai vartotojo patirčiai.

DebugBear gali padėti jums rinkti realių vartotojų metrikas Pirmojo baito gavimo laikui, „Google“ Pagrindiniams interneto rodikliams ir kitoms puslapio greičio metrikoms. Galite sekti individualius TTFB komponentus, tokius kaip TCP trukmė ar peradresavimo laikas, ir analizuoti svetainės našumą pagal šalį, reklaminę kampaniją ir kt.

Pirmojo baitų laiko žemėlapis

Išvada

Išnagrinėję viską, kas susiję su pirmojo svetainės baito pateikimu lankytojui, pamatėme, kad vien serverio atsako laiko mažinimas nėra pakankamas ir dažnai net nebus pats paveikiausias pakeitimas, kurį galite padaryti savo svetainėje.

Tai, kad jūsų svetainė yra greita vienoje vietoje, nereiškia, kad ji greita visiems, nes svetainės greitis skiriasi priklausomai nuo to, iš kur lankytojas ją pasiekia.

Turinio pristatymo tinklai yra neįtikėtinai galingas būdas pagerinti TTFB. Net jei nenaudojate jokių jų pažangių funkcijų, vien jų pasaulinio serverių tinklo naudojimas sutaupo daug laiko užmezgant ryšį su serveriu.