Server-Timing Header: Cara Marketer dan Developer Indonesia Membaca Penyebab TTFB Tinggi
TTFB tinggi sering dituduh ke hosting padahal penyebabnya bisa di query database. Server-Timing membongkar rincian itu dalam satu baris header.
TL;DR: Server-Timing adalah HTTP response header yang mengirim metrik performa backend (database, render, cache) ke browser sehingga pemilik website tahu persis komponen mana yang membuat TTFB tinggi. Implementasinya satu baris di middleware Next.js atau Express, dampaknya memotong waktu debugging dari beberapa hari menjadi satu sesi pair-debug.
Dalam beberapa proyek terakhir, saya sering menemukan tim marketing menyalahkan hosting saat halaman terasa lambat. Setelah diaudit, ternyata yang lambat adalah satu query SQL yang tidak terindeks. Hosting jadi kambing hitam karena tidak ada visibilitas ke dalam server. Server-Timing adalah header HTTP standar yang membuka kotak hitam itu.
Artikel ini menjelaskan format header, cara mengaktifkan di Next.js, dan cara membaca hasilnya di DevTools agar diskusi marketer dan developer berhenti pada satu data yang sama.
Format Header dan Apa yang Diukur
Format dasarnya: Server-Timing: db;dur=120, render;dur=45, cache;desc="HIT". Setiap entri terdiri dari nama metrik, durasi dalam milidetik, dan deskripsi opsional. Browser modern menampilkan rincian ini di tab Network DevTools tanpa konfigurasi tambahan. Untuk pengukuran skala besar, nilai ini juga bisa ditarik ke Real User Monitoring lewat Performance API.
Metrik yang umum diukur dalam praktik client kami: query database, render React, fetch ke API eksternal, hit/miss edge cache, dan otorisasi sesi.
Implementasi di Next.js dalam 5 Menit
| Langkah | Detail |
|---|---|
1. Buat helper withTiming | Fungsi yang menerima label dan callback async, mencatat durasi |
2. Bungkus query di app/page.tsx | const data = await withTiming("db", () => sql\...`)` |
| 3. Set header di response | headers().set("Server-Timing", entries.join(", ")) |
| 4. Buka DevTools Network | Klik request HTML, lihat panel Timing |
| 5. Bandingkan rute | Cari rute dengan dur tertinggi, prioritaskan |
Untuk halaman yang dirender pakai Streaming SSR atau SSR, Server-Timing perlu di-flush sebelum chunk pertama dikirim. Kalau pakai edge functions, beberapa platform sudah otomatis menambahkan timing region dan cold start.
Studi Kasus Vetmo: Memburu TTFB 1,4 Detik
Saat membantu Vetmo, halaman daftar layanan punya TTFB 1,4 detik di Indonesia. Setelah memasang Server-Timing, terungkap rincian: database 980 ms, render 220 ms, sisanya jaringan. Sumber masalahnya satu query yang melakukan join tanpa index ke tabel besar. Setelah index ditambahkan, durasi database turun ke 110 ms. TTFB total turun ke 380 ms tanpa pindah hosting.
Tanpa Server-Timing, tim akan menebak antara hosting, region, atau kode aplikasi. Dengan header ini, percakapan langsung pindah ke pertanyaan teknis yang benar dalam satu rapat.
Pertanyaan Umum
Apakah Server-Timing membocorkan informasi sensitif?
Tidak jika label metriknya dibuat generik (db, cache, auth) dan tidak mengandung nama tabel atau service. Praktik standar yang dijelaskan di dokumentasi MDN merekomendasikan label abstrak untuk produksi.
Apa beda Server-Timing dengan tools APM seperti New Relic?
APM memantau dari sisi server lengkap dengan trace dan log. Server-Timing memunculkan ringkasan metrik di sisi browser dan RUM, jadi marketer pun bisa baca tanpa akses ke dashboard APM. Keduanya sebaiknya dipakai bersama.
Apakah Server-Timing memengaruhi Core Web Vitals?
Tidak langsung, tapi Server-Timing membantu mendiagnosis penyebab TTFB tinggi yang berdampak pada LCP. Jadi efek tidak langsungnya besar pada perbaikan skor.
Apakah aman dipakai untuk halaman yang di-cache CDN?
Aman. Banyak CDN bahkan menambahkan timing sendiri di header. Yang perlu diperhatikan: hit cache mengembalikan timing dari cache, bukan rendering ulang.
Penutup: Header Satu Baris yang Mengubah Cara Tim Bicara
Server-Timing bukan tentang teknologi mewah. Header ini cuma teks. Yang berubah adalah komunikasi antara marketer dan developer. Marketer berhenti menebak, developer berhenti defensif, dan keduanya bicara berdasar data yang sama. Untuk tim Indonesia yang sedang menumbuhkan stack web, Server-Timing adalah investasi termurah dengan dampak paling cepat terasa.
Artikel Terkait
Website Bisnis
Edge Functions untuk Personalisasi Website Bisnis: Cara Memilih Konten Berbeda Tanpa Mengorbankan Kecepatan
Personalisasi sering bikin halaman lambat karena dirender ulang. Edge Functions memilih varian konten di pinggir jaringan, dekat pengunjung, dalam puluhan milidetik.
Website Bisnis
SSR vs Static: Panduan Memilih Strategi Render untuk Website Bisnis Indonesia
Pilihan antara SSR, SSG, dan ISR menentukan kecepatan, biaya, dan SEO website bisnis. Panduan praktis menentukan strategi render yang tepat sesuai kebutuhan.
Website Bisnis
Image CDN vs next/image: Strategi Optimasi Gambar untuk Website Bisnis Indonesia
next/image cukup untuk site kecil, tapi traffic besar atau katalog ratusan ribu gambar butuh Image CDN eksternal. Cara memilih dan menggabungkan keduanya.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang