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
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.