Preskoči na sadržaj
SEO i brzina sajta

TTFB, brzina servera i keširanje: zašto sajt kasni pre prvog piksela

Pre nego što se na ekranu pojavi bilo šta, pregledač mora da sačeka prvi odgovor servera, a to vreme se meri kao TTFB. Objašnjavamo šta ga usporava i kako ga smanjiti keširanjem stranica, CDN mrežom i pravilnim zaglavljima za keš u pregledaču.

Ivan Petković 4 min čitanja
Sadržaj članka
  1. Šta je TTFB i šta tačno meri
  2. Kako izmeriti TTFB
  3. Šta najčešće usporava server
  4. Keširanje stranica na serveru
  5. CDN i keš u pregledaču
  6. Zaključak

Kada se govori o brzini sajta, najčešće se misli na slike, skripte i fontove. Ali pre nego što pregledač uopšte počne da preuzima bilo šta od toga, mora da dobije prvi odgovor servera. To vreme čekanja zove se TTFB (Time to First Byte, vreme do prvog bajta). Ako server razmišlja sekundu ili dve, nijedna optimizacija slika neće to nadoknaditi. U ovom tekstu objašnjavamo šta TTFB meri, šta ga usporava i kako ga smanjiti keširanjem na serveru, CDN mrežom i pravilnim zaglavljima za keš u pregledaču.

Šta je TTFB i šta tačno meri

TTFB je vreme od trenutka kada pregledač zatraži stranicu do trenutka kada stigne prvi bajt odgovora. U to vreme ulaze:

  • eventualna preusmerenja (na primer sa http na https ili sa verzije bez www),
  • DNS upit i uspostavljanje veze, uključujući TLS za HTTPS,
  • putovanje zahteva do servera i nazad, koje zavisi od udaljenosti,
  • vreme koje server troši da pripremi stranicu: izvršavanje PHP koda, upiti ka bazi, pozivi ka drugim servisima.

Google na web.dev kao okvirnu smernicu navodi da je TTFB do 0,8 sekundi dobar za većinu sajtova, mereno kod 75 posto posetilaca. TTFB nije među Core Web Vitals metrikama, ali direktno utiče na LCP, jer se glavni sadržaj ne može prikazati pre nego što HTML stigne. O ostalim metrikama pisali smo u tekstu o Core Web Vitals.

Kako izmeriti TTFB

  • PageSpeed Insights prikazuje TTFB iz stvarne upotrebe kada postoji dovoljno podataka, a u laboratorijskom delu savet „smanjite početno vreme odgovora servera“. Kako čitati izveštaj, objasnili smo u tekstu o PageSpeed Insights rezultatima.
  • Alati za programere u pregledaču: na kartici Network izaberite HTML dokument i u delu Timing pogledajte stavku „Waiting for server response“.
  • Komandna linija, za brzu proveru sa sopstvenog računara:
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" https://www.vasdomen.rs/

Merite više puta i više različitih stranica. Prvi zahtev često je sporiji jer stranica nije u kešu, a početna stranica može biti keširana dok stranice proizvoda nisu.

Šta najčešće usporava server

UzrokKako se prepoznajeRešenje
Nema keša stranicaSvaka stranica je podjednako spora, i pri ponovnom otvaranjuUključiti keširanje stranica na serveru ili kroz dodatak
Preopterećen deljeni hostingTTFB jako varira tokom danaBolji paket ili drugi hosting
Spori upiti ka baziSpore su pretraga, filteri i korpaOptimizacija baze, objektni keš (Redis)
Previše dodatakaPad brzine posle instalacije novog dodatkaUkloniti nepotrebne, zameniti teške
Stara verzija PHP-aHosting nudi noviju verziju koja nije uključenaPreći na podržanu verziju PHP-a
Server daleko od posetilacaSporo za domaće posetioce i kod keširanih stranicaServer u regionu ili CDN
Lanci preusmerenjaViše 301 odgovora pre prave straniceJedno direktno preusmerenje

Mnogi od ovih problema počinju izborom hostinga. Na šta obratiti pažnju pri izboru, opisali smo u tekstu koji hosting izabrati.

Keširanje stranica na serveru

Kod sajtova na WordPress-u svaka poseta bez keša pokreće PHP i niz upita ka bazi. Keš stranica čuva gotov HTML i sledećem posetiocu ga vraća odmah, bez ponovnog generisanja. To je obično najveće pojedinačno poboljšanje TTFB-a.

  • Keš na nivou servera, poput LiteSpeed Cache, Nginx FastCGI keša ili Varnish-a, najbrži je jer zahtev ne stiže ni do PHP-a.
  • Dodaci za keširanje rade na većini hostinga i dobar su izbor kada serverski keš nije dostupan.
  • Objektni keš (Redis ili Memcached) čuva rezultate upita ka bazi i pomaže stranicama koje se ne mogu keširati u celini, kao što su korpa i nalog kupca.

Pazite na izuzetke: korpa, plaćanje, nalog korisnika i stranice sa ličnim podacima ne smeju se keširati kao javne stranice. Dobri dodaci to podrazumevano isključuju, ali posle podešavanja uvek testirajte kupovinu. Širi pregled optimizacije dat je u vodiču kako ubrzati WordPress sajt.

CDN i keš u pregledaču

CDN (content delivery network) čuva kopije fajlova na serverima širom sveta i isporučuje ih sa lokacije najbliže posetiocu. Uvek pomaže kod statičkih fajlova, a ako je podešen da kešira i HTML, može znatno smanjiti TTFB za udaljene posetioce. Za sajt čiji su posetioci uglavnom iz Srbije, a server u regionu, efekat na TTFB je obično manji.

Keš u pregledaču ne utiče na prvu posetu, ali ubrzava svaku sledeću jer se fajlovi ne preuzimaju ponovo. Njime upravlja zaglavlje Cache-Control. Uobičajena podela izgleda ovako:

# Slike, CSS i JS sa verzijom u nazivu fajla
Cache-Control: public, max-age=31536000, immutable

# HTML stranice
Cache-Control: no-cache

Dug rok važenja bezbedan je samo za fajlove čiji se naziv menja kada se promeni sadržaj, na primer style.3f9a.css. HTML stranice treba ostaviti sa kratkim rokom ili vrednošću no-cache, koja znači da pregledač sme da čuva kopiju, ali pre upotrebe mora da proveri sa serverom da li je i dalje aktuelna. Na Apache serveru rokovi se mogu podesiti i u .htaccess fajlu:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType application/javascript "access plus 1 year"
</IfModule>

Zaključak

TTFB je temelj brzine sajta: dok server ne odgovori, sve ostalo čeka. Najveći dobitak obično donosi keširanje stranica, zatim kvalitetan hosting blizu posetilaca, uklanjanje nepotrebnih dodataka i preusmerenja, a CDN i pravilna Cache-Control zaglavlja dopunjuju sliku. Ako vam PageSpeed Insights prijavljuje sporo vreme odgovora servera, a ne znate odakle da počnete, pošaljite nam upit i izmerićemo gde tačno vaš sajt gubi vreme.

Česta pitanja

Koliki TTFB je dobar?

Google u svojim smernicama na web.dev navodi da je TTFB od 0,8 sekundi ili manje dobar za većinu sajtova, mereno kod 75 posto posetilaca. To je okvirna vrednost, a ne zvanična Core Web Vitals metrika. Kod keširanih stranica na dobrom hostingu vrednosti su obično znatno niže.

Da li TTFB direktno utiče na pozicije na Google-u?

TTFB nije jedna od Core Web Vitals metrika, ali utiče na njih, posebno na LCP, jer se ništa ne može prikazati pre nego što stigne prvi odgovor servera. Brzina je samo jedan od mnogih signala, pa brži server ne garantuje bolje pozicije, ali poboljšava iskustvo posetilaca.

Zašto je TTFB u PageSpeed Insights različit pri svakom testu?

Laboratorijski test meri jedan zahtev sa jedne lokacije, pa rezultat zavisi od toga da li je stranica bila u kešu, koliko je server bio opterećen i koliko je udaljen test server. Pouzdaniji su podaci iz stvarne upotrebe, prikazani u gornjem delu izveštaja kada ih ima dovoljno.

Da li mi treba CDN ako su svi posetioci iz Srbije?

Ne mora. Ako je server u regionu i stranice su keširane, CDN često ne donosi veliku razliku za domaće posetioce. Koristan je kada imate posetioce iz više zemalja, mnogo statičkih fajlova ili potrebu za dodatnom zaštitom. Ako je server daleko, na primer u SAD, razlika može biti primetna.

#TTFB#brzina servera#keširanje#CDN#Cache-Control

Podelite: Facebook LinkedIn WhatsApp