Panduan Total Blocking Time (TBT)

Apa TBT measures, 50ms panjang-task math, mengapa ini adalah lab proxy untuk INP (tidak sebuah Core Web Vital), dan cara perbaiki sebuah red score — dari sebuah SEO teknis.

Pertama kali diterbitkan: 26 Jun 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan

Total Blocking Time (TBT) adalah sum dari blocking portion — time di atas 50 ms — dari setiap panjang task antara pertama Contentful Paint dan Time untuk Interactive. ini adalah sebuah lab-hanya metric, single largest weight (30%) di Lighthouse performa score, dan lab proxy untuk Core Web Vital INP (ini digunakan untuk proxy FID). ini adalah Tidak sebuah Core Web Vital dan tidak pernah menampilkan up di Search Console atau CrUX. Lighthouse mobile thresholds: baik ≤200 ms, poor >600 ms. Anda perbaiki ini yang sama cara Anda perbaiki INP — break up panjang JS tasks, code-split, defer atau hapus unused JS, dan cut ketiga-party script cost. My honest take: melakukan ini untuk pengguna dan conversions, tidak untuk sebuah peringkat bump.

TL;DR — TBT adalah total amount dari time, antara pertama Contentful Paint dan Time untuk Interactive, itu main utas adalah blocked panjang cukup untuk mencegah input responsiveness. ini sums blocking portion (duration − 50 ms) dari setiap panjang task (apa pun main-utas task di atas 50 ms). ini adalah sebuah lab metric — single largest weight (30%) di Lighthouse 10 score dan lab proxy untuk INP — tetapi ini adalah tidak sebuah Core Web Vital dan tidak pernah muncul di CrUX atau Search Console. Mobile thresholds: baik ≤200 ms, poor >600 ms. Perbaiki ini like Anda’d perbaiki INP: break up panjang JS tasks, code-split, defer/hapus unused JS, tame ketiga-party scripts. My honest take: perbaiki ini untuk pengguna, tidak untuk sebuah peringkat bump.

Bukti untuk klaim ini Lighthouse classifies mobile TBT at 200 milliseconds or less as good and above 600 milliseconds as poor. Cakupan: Lighthouse mobile TBT scoring guidance; desktop scoring differs. Tingkat keyakinan: tinggi · Diverifikasi: Chrome Developers: Total Blocking Time

Apa TBT sebenarnya measures

Google’s definition adalah place untuk mulai. TBT adalah “itu total amount dari time setelah Pertama Contentful Paint (FCP) di mana itu main utas adalah blocked untuk long cukup untuk cegah input responsiveness.” (terjemahan) “ total amount dari time setelah pertama Contentful Paint (FCP) di mana main utas adalah blocked untuk panjang cukup untuk mencegah input responsiveness.” browser’s main utas memproses satu task di sebuah time; sementara ini adalah busy dengan sebuah panjang chunk dari berfungsi, ini dapat’t react untuk sebuah click, sebuah tap, atau sebuah keypress. TBT quantifies bagaimana banyak dari Anda halaman-muat window adalah spent di itu blocked state.

Dua definitions melakukan semua berfungsi di sini:

  • sebuah panjang task adalah “a task itu berjalan pada itu main utas untuk lebih daripada 50 milliseconds.” (terjemahan) “sebuah task itu berjalan pada main utas untuk lebih daripada 50 milliseconds.”
  • blocking portion dari sebuah task adalah -nya duration minus 50 ms. Tasks di atau di bawah 50 ms contribute persis 0 ms.

TBT adalah sum dari itu blocking portions antara FCP dan Time untuk Interactive (TTI). So pertama Contentful Paint adalah mulai line: tidak ada apa pun sebelum pertama paint counts, karena ada tidak ada apa pun pada screen untuk interact dengan namun.

Bukti untuk klaim ini TBT sums the portion above 50 milliseconds of long main-thread tasks between FCP and Time to Interactive. Cakupan: Lighthouse lab metric definition; not a field Core Web Vital. Tingkat keyakinan: tinggi · Diverifikasi: Chrome Developers: Total Blocking Time

worked contoh

Google’s own table adalah clearest illustration. Imagine five tasks jalankan pada main utas antara FCP dan TTI:

Task durationBlocking time (duration − 50 ms)
Task satu: 250 ms200 ms
Task dua: 90 ms40 ms
Task three: 35 ms0 ms
Task four: 30 ms0 ms
Task five: 155 ms105 ms
Total Blocking Time345 ms

Tasks three dan four adalah di bawah 50 ms line, so mereka contribute tidak ada apa pun. Task satu blocks untuk 250 − 50 = 200 ms, task five untuk 155 − 50 = 105 ms. tambahkan blocking portions — 200 + 40 + 0 + 0 + 105 — dan Anda mendapatkan 345 ms dari TBT. itu’s sebuah “memerlukan improvement” (terjemahan) “perlu improvement” score, driven hampir entirely oleh dua berat tasks.

ini adalah counter-intuitive bagian worth internalizing: “A small number dari tasks pada itu main utas tidak niscaya berarti low blocking time. Conversely, a large number dari tasks tidak niscaya lead untuk tons dari blocking time.” (terjemahan) “sebuah kecil angka dari tasks pada main utas tidak niscaya berarti rendah blocking time. Conversely, sebuah besar angka dari tasks tidak niscaya lead untuk tons dari blocking time.” (itu framing adalah NitroPack’s, relayed di sini — reverified terhadap langsung sumber 2026-07-18.) Apa penting adalah apakah individual tasks cross 50 ms, tidak bagaimana banyak tasks ada.

pengukuran window: FCP untuk TTI

window ends di Time untuk Interactive — “itu time dari ketika itu halaman dimulai loading untuk ketika its main sub-resources memiliki loaded dan it adalah capable dari reliably responding untuk user input quickly.” (terjemahan) “ time dari ketika halaman dimulai memuat untuk ketika -nya main sub-resources memiliki dimuat dan ini adalah capable dari reliably responding untuk pengguna input quickly.” di Lighthouse, TTI adalah ditemukan oleh searching forward untuk sebuah five-kedua “tenang window” (terjemahan) “tenang window” dengan Tidak panjang tasks dan Tidak lebih daripada dua di-flight network permintaan.

Worth noting: TTI itself adalah dihapus dari Lighthouse 10 karena ini proved overly sensitive untuk outlier network permintaan dan panjang tasks, producing tinggi variability. TBT survived dan menjadi utama interactivity metric. sebagai Philip Walton put ini, “Newer, alternative, metrics like Largest Contentful Paint (LCP), Total Blocking Time (TBT), dan Interaction untuk Berikutnya Paint (INP) adalah biasanya better metrics untuk gunakan di place dari TTI.” (terjemahan) “Newer, alternative, metrics like Largest Contentful Paint (LCP), Total Blocking Time (TBT), dan Interaction untuk Berikutnya Paint (INP) adalah biasanya better metrics untuk gunakan di place dari TTI.” TBT tidak replace TTI sebagai window’s endpoint — ini adalah sebuah better single angka untuk yang sama underlying masalah. dan TTI’s disappearance dari Lighthouse report UI tidak yang sama claim sebagai TTI Tidak lebih lama bounding Lighthouse’s default navigation window — window itself adalah masih diukur itu cara di bawah hood.

Bukti untuk klaim ini TTI being removed as a displayed Lighthouse metric does not by itself mean TTI stopped bounding the default Lighthouse navigation TBT window. Cakupan: lab recommended Tingkat keyakinan: tinggi · Diverifikasi: Total Blocking Time (TBT)

Satu lebih scoping note: “FCP untuk TTI” (terjemahan) “FCP untuk TTI” mendeskripsikan Lighthouse’s default navigation audit secara khusus. lainnya alat, atau Lighthouse itself berjalan sebuah timespan trace alih-alih sebuah penuh halaman-muat navigation, dapat total sebuah berbeda diukur window — 50 ms panjang-task math tidak perubahan, tetapi mulai dan end poin dari apa mendapatkan summed adalah alat- dan trace-mode-spesifik, tidak sebuah universal law dari metric.

Bukti untuk klaim ini TBT begins after FCP, but the endpoint is tool and trace-mode specific: page-load tools commonly use TTI, Lighthouse navigation audits default to stopping at TTI, and other tools or timespan traces may total a different measured window. Cakupan: navigation audits Tingkat keyakinan: tinggi · Diverifikasi: Total Blocking Time

adalah TBT sebuah Core Web Vital? Tidak.

ini adalah paling umum misconception, so let’s menjadi blunt tentang ini. three Core Web Vitals adalah LCP, INP, dan CLS. TBT adalah tidak satu dari them. Google’s own wording: “Total Blocking Time (TBT) adalah a lab metrics adalah vital di catching dan diagnosing potential interactivity issues itu dapat impact INP. Namun, it adalah tidak part dari itu Core Web Vitals set karena they adalah tidak field-measurable, nor lakukan they reflect a user-centric outcome.” (terjemahan) “Total Blocking Time (TBT) adalah sebuah lab metrics adalah vital di catching dan diagnosing potential interactivity issues itu dapat impact INP. Namun, ini adalah tidak bagian dari Core Web Vitals set karena mereka adalah tidak field-measurable, nor melakukan mereka reflect sebuah pengguna-centric outcome.” ( grammar di itu kalimat adalah theirs, tidak mine.)

So di mana melakukan TBT tampilkan up, dan di mana tidak ini?

  • Di mana Anda see ini: Lighthouse, PageSpeed Insights’ lab tab, dan Chrome DevTools — semua simulated/lab environments.
  • Di mana Anda tidak: Google Search Console’s Core Web Vitals report, CrUX, atau apa pun data lapangan. itu hanya carry LCP, INP, dan CLS.

jika seseorang tells Anda mereka’re “watching TBT di Search Console,” (terjemahan) “watching TBT di Search Console,” mereka’re mistaken — GSC reports data lapangan, dan TBT tidak sebuah field metric.

«One correction worth being precise about: TBT being lab-recommended isn’t the same as TBT being field-impossible. You can technically compute a TBT-style total in the field with the Long Tasks API — Google says so directly: “It is possible to measure TBT in the field, but we don’t recommend this as user interaction can affect your page’s TBT in ways that lead to lots of variance in your reports.” That’s a recommendation against it, not a technical wall. What’s actually true without exception is narrower: CrUX and Search Console’s Core Web Vitals report never carry TBT, full stop — those pipelines only ever collect LCP, INP, and CLS. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian tiga puluh delapan, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

TBT adalah lab proxy untuk INP

Di sini’s mengapa TBT ada di semua. Lab alat muat sebuah halaman di sebuah simulated environment dengan Tidak nyata pengguna, so mereka dapat’t mengukur Interaction untuk Berikutnya Paint — INP perlu sebenarnya clicks dan taps. TBT fills itu kesenjangan: “itu Total Blocking Time (TBT) metric adalah lab-measurable dan adalah a proxy untuk INP.” (terjemahan) “ Total Blocking Time (TBT) metric adalah lab-measurable dan adalah sebuah proxy untuk INP.”

dua adalah mechanically related: “Although INP dan TBT adalah calculated differently, they adalah keduanya reflections dari a blocked main utas during itu bootstrap proses. Ketika itu main utas adalah blocked, itu browser adalah delayed di responding untuk user interactions.” (terjemahan) “Although INP dan TBT adalah calculated differently, mereka adalah keduanya reflections dari sebuah blocked main utas selama bootstrap proses. Ketika main utas adalah blocked, browser adalah delayed di responding untuk pengguna interactions.” dan empirically, “A low TBT sering correlates dengan a low Interaction untuk Berikutnya Paint (INP).” (terjemahan) “sebuah rendah TBT sering correlates dengan sebuah rendah Interaction untuk Berikutnya Paint (INP).”

tetapi “proxy” (terjemahan) “proxy” adalah tidak “substitute.” (terjemahan) “substitute.” Google adalah jelas: “Total Blocking Time (TBT) mungkin menjadi a reasonable proxy metric untuk INP, tetapi ini tidak a substitute untuk INP di dan dari itself.” (terjemahan) “Total Blocking Time (TBT) dapat menjadi sebuah reasonable proxy metric untuk INP, tetapi ini adalah tidak sebuah substitute untuk INP di dan dari itself.” mereka diverge di nyata cara:

  • tinggi TBT, fine INP. TBT measures blocking selama muat. jika Anda pengguna jangan sebenarnya try untuk interact selama itu blocked window — mereka tunggu untuk halaman untuk look finished pertama — mereka INP dapat menjadi fine bahkan dengan sebuah ugly TBT.
  • Fine TBT, poor INP. INP juga covers slow event handlers dan rendering berfungsi itu fire setelah muat, plus hal like browser’s 300 ms tap delay pada non-mobile-dioptimalkan halaman — none dari yang TBT sees.

Ketika lab dan field disagree, trust field. INP ( nyata-pengguna angka) takes priority di atas TBT ( lab estimate).

Satu historical note itu trips orang up: TBT digunakan untuk menjadi lab proxy untuk pertama Input Delay (FID). INP replaced FID sebagai sebuah Core Web Vital pada March 12, 2024, so TBT adalah now INP’s proxy. underlying mechanism tidak pernah changed — ini adalah selalu telah tentang sebuah blocked main utas selama muat — tetapi apa pun older artikel calling TBT “FID’s proxy” (terjemahan) “FID’s proxy” lebih lama dari itu switch.

Mengapa TBT dominates Lighthouse score

TBT carries largest single weight di Lighthouse performa score — 30%, sebuah weighting introduced di Lighthouse 10 dan, verified langsung terhadap Chrome’s scoring docs pada 2026-07-18, masih unchanged melalui saat ini Lighthouse 13:

MetricWeight
pertama Contentful Paint10%
Speed indeks10%
Largest Contentful Paint25%
Total Blocking Time30%
Cumulative Layout Shift25%

Treat itu table sebagai versi-dan-date-scoped, tidak sebuah permanent constant — Lighthouse memiliki changed -nya weights sebelum dan dapat again. Re-verify terhadap Lighthouse performa scoring sebelum quoting ini di sebuah audit deck.

ini adalah practical alasan TBT penting untuk SEO audits bahkan though ini tidak sebuah sinyal peringkat: sebuah poor TBT memiliki sebuah outsized effect pada itu big Lighthouse angka everyone screenshots. Addy Osmani’s worked contoh membuat ini concrete — menghapus satu Intersection Observer polyfill cut TBT dari 400 ms untuk 300 ms dan lifted Lighthouse performa score dari 63 untuk 70. Satu perbaiki, seven poin, karena 30% weight.

Satu lebih nuance: “Good ≤200 ms” (terjemahan) “baik ≤200 ms” category threshold dan Lighthouse score adalah berbeda scales. untuk score 90+ pada TBT subscore Anda perlu roughly ≤300 ms pada mobile, dan untuk hit 100 Anda perlu ≤100 ms. (itu subscore figures adalah DebugBear’s documentation dari scoring curve, reverified terhadap langsung sumber 2026-07-18.) “Good” (terjemahan) “baik” dan “100” (terjemahan) “100” adalah tidak yang sama bar.

melakukan TBT memengaruhi SEO rankings?

Tidak secara langsung — dan I’ll menjadi straighter tentang ini daripada sebagian besar.

TBT adalah tidak sebuah sinyal peringkat. Google’s interactivity peringkat input adalah INP, sebuah field metric. TBT adalah sebuah diagnostic itu helps Anda temukan dan perbaiki panjang tasks itu hurt INP. Improving TBT dapat meningkatkan INP, yang mungkin marginally help halaman Experience side dari rankings — tetapi itu’s dua tautan dari “mungkin” (terjemahan) “dapat” away dari Anda positions.

dan di sini’s my sebenarnya position pada seluruh Core Web Vitals pertanyaan, yang I’ve ditulis sebelum di my kecepatan halaman guide: I jangan think Core Web Vitals memiliki banyak impact pada SEO, dan unless Anda’re extremely slow I umumnya tidak akan prioritize them. melakukan them untuk pengguna dan conversions, tidak untuk sebuah peringkat bump. itu applies doubly untuk TBT, yang adalah sebuah lab proxy untuk sebuah field metric untuk sebuah kecil peringkat input. Perbaiki ini karena sebuah frozen halaman loses Anda customers — tidak karena Anda’re chasing sebuah position.

Apa penyebab tinggi TBT

ini adalah hampir selalu JavaScript:

  • Unnecessary JavaScript memuat, parsing, atau execution — Lighthouse audit’s own kata. Shipping sebuah big bundle halaman tidak perlu di muat adalah classic penyebab.
  • Inefficient JavaScript statements — berat synchronous berfungsi itu monopolizes main utas.
  • ketiga-party scripts — tag managers, chat widgets, analytics, ad scripts. sering single biggest contributor, dan satu Anda control least.
  • Berat kerangka kerja bootstrap — React hydration dan similar dapat jalankan panjang tasks selama startup.
  • Style/layout recalculation dan garbage collection — forced synchronous layout, besar style recalcs, dan GC pauses tampilkan up sebagai main-utas tasks too; jangan assume setiap panjang task di trace adalah JavaScript execution.

jangan assume bundle transfer size adalah seluruh story, either. Trace attribution memiliki nyata gaps: cross-origin frames dan worker threads memiliki privacy dan security limits pada apa sebuah panjang-task observer dapat report tentang them (see Troubleshooting), so sebuah unattributed task di Anda trace tidak proof Tidak ketiga party adalah involved — ini dapat hanya berarti attribution API tidak diizinkan untuk tell Anda.

cara perbaiki tinggi TBT

memperbaiki adalah yang sama family sebagai INP memperbaiki — keduanya come down untuk sebuah blocked main utas.

  1. temukan panjang tasks. Open Chrome DevTools performa panel dan cari tasks di atas 50 ms (mereka’re flagged dengan red corners), atau jalankan Lighthouse “Avoid long main-thread tasks” (terjemahan) “hindari panjang main-utas tasks” audit.
  2. Audit ketiga-party scripts pertama. mereka’re biasanya easiest wins. gunakan DevTools Coverage dan Network tabs untuk see apa setiap script costs, dan lazy-muat berat embeds (YouTube, maps, chat) behind sebuah facade.
  3. Break up panjang tasks. Yield untuk main utas so browser dapat tangani input antara chunks — “when tasks are broken up, the browser can respond to higher-priority work much sooner—including user interactions.” (terjemahan) “ketika tasks adalah rusak up, browser dapat respond untuk lebih tinggi-priority berfungsi banyak sooner—including pengguna interactions.” modern API adalah scheduler.yield(), dengan sebuah setTimeout(resolve, 0) fallback (see Cheat Sheets tab untuk pattern). Note itu Google Tidak lebih lama recommends isInputPending() — yield regardless dari apakah input adalah pending.
  4. Reduce JavaScript. Code-split besar bundles so lebih sedikit parses dan evaluates di muat, hapus unused JS (DevTools Coverage tab menampilkan Anda apa), dan defer non-critical scripts.
  5. Move berat computation off main utas. Web Workers jalankan CPU-berat berfungsi pada sebuah terpisah utas, leaving main utas free untuk respond.

sebuah berguna side effect: panjang tasks itu block main utas dapat juga delay Largest Contentful Paint rendering, so memperbaiki TBT sometimes improves LCP too — terutama ketika render-blocking JS adalah involved.

Di mana untuk go berikutnya

TBT lives di Core Web Vitals family alongside -nya field padanan Interaction untuk Berikutnya Paint, memuat metrics Largest Contentful Paint dan pertama Contentful Paint, dan lab alat Lighthouse, PageSpeed Insights, dan Speed indeks itu report them. jika Anda hanya remember satu hal: TBT adalah lab warning light untuk field responsiveness — chase panjang tasks, tidak angka.

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.