Total Blocking Time (TBT): Cara Mengukur dan Menguranginya

Total Blocking Time (TBT)

Performa website bukan hanya soal tampilan yang menarik atau konten yang lengkap. Dalam dunia pengembangan web modern, kecepatan dan responsivitas menjadi faktor utama yang menentukan apakah pengunjung akan bertahan atau langsung menutup halaman. Google sendiri telah menegaskan bahwa pengalaman pengguna atau User Experience (UX) menjadi salah satu komponen penting dalam sistem peringkat mesin pencari. Itulah sebabnya berbagai metrik performa website mulai diperkenalkan, salah satunya adalah Total Blocking Time (TBT).

Bagi programmer atau developer yang sering melakukan audit performa website menggunakan Google Lighthouse atau PageSpeed Insights, metrik TBT pasti sering muncul dalam laporan analisis. Nilai TBT yang tinggi biasanya menandakan adanya proses JavaScript yang memblokir interaksi pengguna dalam waktu tertentu. Artikel ini akan membahas secara lengkap mengenai apa itu Total Blocking Time, cara mengukurnya, penyebab nilainya tinggi, serta strategi optimasi yang bisa dilakukan untuk menguranginya sehingga performa website menjadi lebih cepat dan responsif.

Apa Itu Total Blocking Time (TBT)?

Total Blocking Time (TBT) adalah metrik performa website yang mengukur total waktu di mana thread utama browser (main thread) terblokir sehingga tidak dapat merespons interaksi pengguna. Dalam konteks pengujian performa website, TBT dihitung selama periode antara First Contentful Paint (FCP) hingga Time to Interactive (TTI).

Untuk memahami konsep ini dengan lebih sederhana, bayangkan browser seperti sebuah kasir di sebuah toko. Ketika kasir sedang memproses transaksi yang sangat lama, pelanggan lain harus menunggu sebelum dilayani. Hal yang sama terjadi pada browser ketika menjalankan JavaScript yang berat. Jika sebuah script membutuhkan waktu lebih dari 50 milidetik, maka proses tersebut disebut sebagai long task. Long task inilah yang menyebabkan browser tidak bisa merespons klik, scroll, atau input pengguna.

Baca Juga: Largest Contentful Paint (LCP): Dampak dan Solusi

Cara Kerja Total Blocking Time (TBT)

Untuk memahami bagaimana Total Blocking Time terjadi, penting memahami bagaimana browser memproses sebuah halaman web. Browser bekerja menggunakan sebuah komponen utama yang disebut main thread. Thread ini bertanggung jawab untuk menjalankan berbagai tugas penting seperti parsing HTML, rendering layout, menjalankan JavaScript, serta memproses interaksi pengguna.

Proses kerja TBT dapat dijelaskan melalui beberapa tahapan berikut:

1. Main Thread pada Browser

Main thread adalah jalur utama tempat semua proses utama browser dijalankan. Ketika halaman dimuat, browser akan membaca HTML, membangun DOM, memproses CSS, dan menjalankan JavaScript. Jika salah satu proses tersebut terlalu berat, main thread akan menjadi sibuk dan tidak bisa menangani tugas lain.

2. Long Tasks pada JavaScript

Dalam standar performa web, sebuah tugas disebut long task ketika eksekusinya memakan waktu lebih dari 50 milidetik. Script JavaScript yang kompleks atau terlalu besar sering menjadi penyebab munculnya long task ini.

3. Blocking Time yang Terjadi

Ketika long task terjadi, browser tidak dapat merespons interaksi pengguna sampai tugas tersebut selesai. Waktu di atas 50 ms inilah yang dianggap sebagai blocking time.

4. Interaksi Pengguna yang Tertunda

Jika pengguna mencoba melakukan klik atau input saat blocking terjadi, browser harus menunggu hingga task selesai. Akibatnya muncul delay yang terasa oleh pengguna.

Semua blocking time dari berbagai long task kemudian dijumlahkan untuk menghasilkan nilai Total Blocking Time. Semakin banyak script berat yang berjalan selama proses loading, semakin besar pula nilai TBT yang dihasilkan.

Baca Juga: Cumulative Layout Shift (CLS): Dampak dan Solusinya

Rumus Perhitungan Total Blocking Time (TBT)

Secara konsep, perhitungan Total Blocking Time sebenarnya cukup sederhana. Metrik ini hanya menjumlahkan waktu blocking yang terjadi pada setiap long task selama periode antara First Contentful Paint (FCP) dan Time to Interactive (TTI).

Rumus sederhananya dapat dituliskan seperti berikut:

TBT=Σ(DurasiLongTask50ms)TBT = Σ (Durasi Long Task – 50 ms)

Artinya, hanya bagian waktu yang melebihi 50 milidetik yang dihitung sebagai blocking time. Jika sebuah task berjalan kurang dari 50 ms, maka task tersebut tidak dihitung sebagai blocking.

Cara Mengurangi Total Blocking Time

Sebagai contoh sederhana, bayangkan sebuah halaman memiliki tiga long task seperti berikut:

TaskDurasi TaskBlocking Time
Task 1120 ms70 ms
Task 280 ms30 ms
Task 3200 ms150 ms

Total Blocking Time dihitung dengan menjumlahkan semua blocking time:

TBT=70+30+150=250msTBT = 70 + 30 + 150 = 250 ms

Dalam laporan Google Lighthouse, nilai TBT biasanya dikategorikan sebagai berikut:

Nilai TBTKategori
0 – 200 msBaik
200 – 600 msPerlu perbaikan
> 600 msBuruk

Semakin kecil nilai TBT, semakin responsif halaman tersebut saat dimuat. Developer biasanya berusaha menjaga TBT di bawah 200 ms agar interaksi pengguna tetap terasa cepat dan natural.

Perbedaan Total Blocking Time dan First Input Delay (FID)

Banyak developer sering bingung membedakan Total Blocking Time (TBT) dengan First Input Delay (FID). Kedua metrik ini memang sama-sama mengukur responsivitas halaman, tetapi cara pengukurannya berbeda.

AspekTotal Blocking Time (TBT)First Input Delay (FID)
FungsiMengukur total waktu blocking selama loadingMengukur delay pada interaksi pertama pengguna
Jenis DataLab data (pengujian simulasi)Field data (data pengguna nyata)
Digunakan olehGoogle LighthouseCore Web Vitals
Waktu PengukuranAntara FCP dan TTISaat pengguna melakukan input pertama

Perbedaan utama antara keduanya terletak pada sumber datanya. TBT diukur dalam lingkungan pengujian seperti Lighthouse yang mensimulasikan kondisi loading halaman. Sementara itu, FID diukur dari data pengguna nyata melalui Chrome User Experience Report.

Baca Juga: Cara Optimasi LCP pada Website Banyak Gambar

Penyebab Nilai Total Blocking Time Tinggi (TBT)

Beberapa penyebab umum nilai TBT tinggi antara lain sebagai berikut:

1. JavaScript Berukuran Terlalu Besar

Banyak website modern menggunakan framework JavaScript seperti React, Vue, atau Angular yang menghasilkan bundle file cukup besar. Jika file JavaScript tidak dipecah menjadi bagian kecil atau tidak menggunakan teknik seperti code splitting, browser harus memproses seluruh script sekaligus. Hal ini membuat eksekusi script membutuhkan waktu lama dan menghasilkan long tasks.

2. Terlalu Banyak Script Pihak Ketiga

Script pihak ketiga seperti Google Analytics, Facebook Pixel, iklan, live chat, atau tracking tools lainnya sering kali menambah beban pada halaman. Setiap script tambahan harus diunduh, diparsing, dan dieksekusi oleh browser. Jika jumlahnya terlalu banyak, main thread akan dipenuhi oleh berbagai tugas yang menyebabkan blocking time meningkat.

3. Rendering JavaScript yang Berat

Beberapa aplikasi web melakukan proses rendering komponen secara kompleks menggunakan JavaScript. Misalnya pada aplikasi Single Page Application (SPA) yang membangun DOM secara dinamis. Jika proses rendering terlalu berat, browser membutuhkan waktu lebih lama untuk menyelesaikan eksekusi script sebelum halaman bisa merespons interaksi pengguna.

4. Proses Parsing JavaScript yang Lambat

Sebelum script dijalankan, browser harus melakukan parsing terlebih dahulu. File JavaScript yang sangat besar membutuhkan waktu parsing lebih lama. Dalam situasi tertentu, parsing saja sudah cukup untuk menciptakan long task yang memblokir main thread.

5. Struktur DOM yang Terlalu Kompleks

Meskipun JavaScript sering menjadi penyebab utama TBT tinggi, struktur Document Object Model (DOM) yang terlalu besar juga dapat memperburuk situasi. DOM dengan ribuan elemen membuat proses rendering dan manipulasi elemen menjadi lebih berat bagi browser.

Baca Juga: Cara Mudah Mengetahui Website Terindeks Google atau Belum

Cara Mengukur Total Blocking Time (TBT)

Untuk mengetahui apakah sebuah website memiliki masalah pada Total Blocking Time, developer perlu menggunakan beberapa tools analisis performa. Tools ini biasanya memberikan laporan lengkap mengenai berbagai metrik kecepatan halaman, termasuk TBT. Beberapa tools populer yang sering digunakan antara lain:

1. Google Lighthouse

Google Lighthouse adalah salah satu tools audit performa yang paling sering digunakan oleh developer. Lighthouse dapat dijalankan langsung melalui Chrome DevTools atau melalui command line.

Cara menggunakannya cukup sederhana:

  • Buka website menggunakan Google Chrome
  • Tekan F12 untuk membuka DevTools
  • Pilih tab Lighthouse
  • Jalankan audit performa

Setelah proses analisis selesai, Lighthouse akan menampilkan berbagai metrik performa termasuk Total Blocking Time lengkap dengan rekomendasi optimasinya.

2. Google PageSpeed Insights

PageSpeed Insights merupakan tools online yang disediakan Google untuk menganalisis performa website. Tools ini menggunakan Lighthouse sebagai engine utamanya sehingga hasil analisisnya hampir sama.

Cukup masukkan URL website, kemudian PageSpeed Insights akan menampilkan laporan performa yang mencakup:

  • Core Web Vitals
  • Total Blocking Time
  • Largest Contentful Paint
  • Cumulative Layout Shift

Tools ini juga memberikan saran teknis seperti mengurangi JavaScript yang tidak digunakan atau menunda eksekusi script tertentu.

3. Chrome DevTools Performance Panel

Chrome DevTools juga memiliki Performance Panel yang sangat berguna untuk menganalisis aktivitas main thread secara detail. Developer dapat merekam aktivitas halaman dan melihat bagian mana yang menyebabkan long task.

Dengan menggunakan panel ini, developer bisa mengetahui:

  • Script mana yang menyebabkan blocking
  • Berapa lama eksekusi setiap task
  • Bagian mana dari kode yang perlu dioptimasi

4. WebPageTest

WebPageTest adalah tools analisis performa website yang menyediakan laporan lebih mendalam dibanding PageSpeed Insights. Tools ini memungkinkan pengujian dari berbagai lokasi server dan perangkat yang berbeda.

Laporan WebPageTest biasanya mencakup waterfall chart yang menunjukkan proses loading setiap resource pada halaman. Dengan data ini, developer dapat mengidentifikasi script yang menyebabkan blocking time terbesar.

Baca Juga: Bounce Rate pada Website dan Dampaknya ke SEO

Cara Mengurangi Total Blocking Time (TBT)

Setelah mengetahui penyebab nilai TBT tinggi, langkah berikutnya adalah melakukan optimasi untuk menguranginya. Ada beberapa teknik yang sering digunakan oleh developer untuk memperbaiki masalah ini.

1. Mengurangi JavaScript yang Tidak Digunakan

Banyak website memuat library JavaScript yang sebenarnya tidak digunakan sepenuhnya. File JavaScript yang besar akan meningkatkan waktu parsing dan eksekusi. Developer dapat menggunakan teknik tree shaking atau menghapus library yang tidak diperlukan untuk mengurangi ukuran bundle.

2. Memecah Long Tasks

Long task yang berjalan lebih dari 50 ms dapat dipecah menjadi beberapa task kecil. Teknik ini sering disebut sebagai task splitting atau chunking. Dengan membagi tugas besar menjadi bagian kecil, browser memiliki kesempatan untuk memproses interaksi pengguna di sela-sela eksekusi script.

3. Menggunakan Code Splitting

Code splitting adalah teknik membagi bundle JavaScript menjadi beberapa file kecil yang dimuat secara dinamis. Framework modern seperti React atau Vue sudah mendukung teknik ini secara bawaan.

Dengan code splitting, hanya script yang benar-benar dibutuhkan yang akan dimuat pada halaman awal. Script lainnya dapat dimuat ketika pengguna benar-benar membutuhkannya.

4. Meminimalkan Script Pihak Ketiga

Script pihak ketiga sering menjadi penyebab utama TBT tinggi. Sebaiknya hanya gunakan script yang benar-benar penting. Tools seperti Tag Manager juga dapat membantu mengontrol kapan script tertentu dijalankan.

5. Menggunakan Web Workers

Web Workers memungkinkan JavaScript dijalankan di thread terpisah sehingga tidak membebani main thread browser. Proses komputasi berat seperti pengolahan data dapat dipindahkan ke worker thread agar tidak memblokir interaksi pengguna.

6. Menggunakan Lazy Loading untuk Script

Script yang tidak diperlukan pada saat awal halaman dimuat dapat ditunda menggunakan teknik lazy loading. Dengan cara ini, browser hanya memuat script penting terlebih dahulu sehingga halaman dapat menjadi interaktif lebih cepat.

Baca Juga: Cara Optimasi Lazy Load Gambar Website Tanpa JS

Kesimpulan

Pada pembahasan kita di atas dapat kita simpulkan bahwa Total Blocking Time (TBT) merupakan salah satu metrik penting dalam analisis performa website modern. Metrik ini mengukur total waktu ketika main thread browser terblokir oleh tugas-tugas berat sehingga tidak dapat merespons interaksi pengguna. Nilai TBT yang tinggi biasanya disebabkan oleh JavaScript yang terlalu besar, script pihak ketiga yang berlebihan, atau proses rendering yang kompleks.

Dalam praktiknya, TBT sering digunakan oleh developer sebagai indikator untuk memperkirakan kualitas responsivitas halaman selama proses loading. Meskipun metrik ini bukan bagian langsung dari Core Web Vitals, TBT memiliki hubungan erat dengan First Input Delay (FID) yang merupakan salah satu metrik resmi Google dalam mengukur pengalaman pengguna. Oleh karena itu, menjaga nilai TBT tetap rendah menjadi langkah penting dalam optimasi performa website.

Artikel ini merupakan bagian dari seri WordPress KantinIT.com. Jika artikel ini bermanfaat, jangan lupa bagikan ke media sosial atau ke teman kamu.

Write a Comment

Leave a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨