TBT (Total Blocking Time) adds up the "blocking" part of every long task on the main thread between First Contentful Paint and Time to Interactive. For each task, only the time over 50 ms counts.
Why it matters
TBT is a lab metric that correlates with real-world responsiveness, which makes it a useful stand-in for INP and the retired FID when no real users are available. In Lighthouse it carries a large share of the performance score. Under 200 ms is generally good on mobile test settings; over 600 ms is poor.
Example
Tasks on the main thread during load:
Task A 45 ms -> blocking 0
Task B 120 ms -> blocking 70
Task C 300 ms -> blocking 250
TBT = 0 + 70 + 250 = 320 ms
Splitting Task C into three 100 ms pieces would leave only 150 ms of blocking time (3 x 50), even though the total work is the same.
Common mistakes
- Expecting TBT to equal what users experience. It is simulated, on throttled hardware.
- Reducing bytes downloaded while ignoring JavaScript execution cost.
- Ignoring third-party tags, which are frequent contributors.
Related
Get notified when this term updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.