TTFB (Time to First Byte)
TTFB adalah waktu dari permintaan sampai byte pertama diterima browser. Angka ini mencakup DNS, koneksi TLS, antrean server, eksekusi aplikasi, dan query database. TTFB bukan ukuran ukuran file atau kecepatan gambar.
Apa yang terjadi sebelum byte pertama
Browser harus menemukan alamat IP, membuka koneksi, dan menyelesaikan TLS sebelum request diproses. Setelah itu server menjalankan aplikasi, membaca cache, atau menunggu database. Byte pertama baru dikirim setelah sebagian output siap.
Karena itu, TTFB tinggi bisa berasal dari DNS yang lambat, TLS yang berat, worker PHP yang penuh, query tanpa index, atau cache yang tidak aktif. CDN yang tidak punya salinan cache juga bisa meneruskan permintaan ke origin dan menambah waktu.
Cara mengukur
curl -o /dev/null -s -w 'dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer}\n' https://contoh.com memecah waktu menjadi beberapa bagian. Di DevTools, buka Network, pilih request dokumen, lalu lihat tab Timing.
Uji dari beberapa lokasi. TTFB dari Jakarta bisa berbeda jauh dari TTFB dari Frankfurt. Kalau Anda memakai CDN, bandingkan x-cache: HIT dan MISS. HIT biasanya jauh lebih cepat daripada MISS.
Penyebab yang sering
| Gejala | Penyebab umum |
|---|---|
| DNS lookup tinggi | Resolver lambat atau nameserver jauh |
| TLS tinggi | Handshake berat, OCSP, atau jaringan |
| Waiting tinggi | PHP, database, atau aplikasi lambat |
| Semua request lambat | Worker penuh atau cache mati |
Untuk WordPress, plugin cache dan object cache bisa menurunkan TTFB secara signifikan. Kalau angka tetap tinggi setelah cache, periksa query database dan batas CPU akun. Lihat PHP-FPM untuk worker, OPcache untuk kompilasi PHP, dan Web Cache untuk cache halaman.
Yang perlu diperhatikan
TTFB bukan satu-satunya metrik. Halaman dengan TTFB rendah tetap bisa terasa lambat kalau gambar dan JavaScript besar. Sebaliknya, TTFB tinggi pada halaman yang jarang diakses mungkin bukan prioritas.
Jangan mengoptimasi TTFB hanya dari satu pengukuran. Ulangi setelah cache aktif dan setelah perubahan database. Untuk dampak ke pengalaman halaman, lihat Core Web Vitals. Kalau query database mencurigakan, lihat Index MySQL.
Bedakan waktu server dan waktu jaringan. Kalau time_starttransfer tinggi tetapi time_connect rendah, masalahnya mungkin ada di aplikasi atau database. Header Server-Timing bisa menunjukkan waktu PHP, cache, atau database jika aplikasi mengirimkannya. Tanpa data itu, perbaikan hanya menebak.
FAQ
Berapa TTFB yang dianggap baik?
Di bawah 800 ms sering dianggap wajar untuk halaman dinamis, tetapi konteksnya penting. Halaman yang dilayani cache seharusnya jauh lebih cepat.
Apakah CDN selalu menurunkan TTFB?
Untuk aset yang sudah di-cache, biasanya ya. Untuk request yang selalu MISS, CDN bisa menambah satu lapisan perjalanan.
Apakah TTFB termasuk waktu render?
Tidak. TTFB berhenti saat byte pertama diterima. Render, gambar, dan JavaScript diukur setelahnya.
Disclaimer: Artikel WikiHosting disusun untuk tujuan edukasi dan referensi. Teknologi hosting terus berkembang, sehingga beberapa informasi teknis mungkin berubah seiring waktu.
