Total Blocking Time (TBT) measures the total time between First Contentful Paint (FCP) and Time to Interactive (TTI) where the main thread was blocked long enough to prevent input responsiveness.
How TBT is calculated
TBT sums up the "blocking time" of all long tasks. A long task is any task that runs for more than 50ms. The blocking time is the duration beyond 50ms.
For example, a 70ms task contributes 20ms to TBT (70ms - 50ms = 20ms).
TBT thresholds
- Good: 200 milliseconds or less
- Needs Improvement: Between 200 and 600 milliseconds
- Poor: More than 600 milliseconds
TBT vs INP
TBT is a lab metric (measured in controlled conditions), while INP is a field metric (measured from real users). TBT is a good proxy for predicting INP scores.
Improving TBT
- Reduce JavaScript execution time
- Break up long tasks
- Optimize third-party scripts
- Use code splitting
- Defer non-critical JavaScript
How VitalSentinel tracks TBT
TBT is a lab metric, so VitalSentinel captures it through synthetic monitoring, which runs scheduled Lighthouse audits against your key pages on a fixed cadence. Because the test environment stays consistent, you can isolate JavaScript regressions from network noise and find out in hours when a new bundle pushes TBT past the 200ms threshold - before it shows up as poor INP in the field.
Related Terms
First Input Delay (FID)
A deprecated metric (formerly a Core Web Vital) that measures the time from when a user first interacts with your page to when the browser can respond to that interaction.
Interaction to Next Paint (INP)
A Core Web Vital that assesses page responsiveness by measuring the latency of all user interactions throughout the page lifecycle.
Main Thread
The primary thread in a browser where JavaScript execution, DOM manipulation, and rendering operations occur.
Time to Interactive (TTI)
A lab metric that measures how long it takes a page to become fully interactive, where the user can reliably interact with the page.