Total Blocking Time measures how much time, between First Contentful Paint and the point a page becomes reliably interactive, the browser's main thread is blocked long enough to delay responses to input. For every task longer than 50 milliseconds, the time beyond 50 ms counts as blocking. TBT is a lab metric reported by Lighthouse; because it needs no user interaction, it is a useful proxy for the field metric Interaction to Next Paint.
How it is calculated
The browser runs JavaScript, layout and painting on one main thread. A task over 50 ms is a long task. Only the excess counts: a 70 ms task adds 20 ms of blocking time, a 250 ms task adds 200 ms. TBT is the sum across all long tasks in the measurement window.
Tasks: 30 ms, 70 ms, 250 ms, 45 ms
Blocking portions: 0 + 20 + 200 + 0
TBT = 220 msWhat good looks like
web.dev suggests aiming for a TBT under 200 milliseconds when tested on average mobile hardware. Lighthouse runs on simulated mobile conditions by default, so desktop machines can show much lower numbers than real phones experience.
Reducing TBT
The fix is almost always less JavaScript, or JavaScript broken into smaller pieces. Look at the Lighthouse diagnostics for main-thread work and long tasks, then target the biggest scripts.
- Remove or delay third-party tags that are not needed at load
- Split bundles so each page loads only what it uses
- Reduce hydration cost by hydrating only interactive components
- Break up long tasks by yielding to the main thread
Example
Chat widget, analytics and A/B testing
Lighthouse reports high TBT on Saltmarsh's homepage. The performance panel shows three third-party scripts, a chat widget, an A/B testing tool and a session recorder, each running long tasks at load. Loading the chat widget only when a user clicks the chat button and moving the recorder to load after interaction cuts TBT substantially in repeat lab tests.
Common mistakes
Testing only on a fast laptop
TBT depends on CPU speed. Use Lighthouse's mobile throttling or a mid-range device.
Treating TBT as a ranking metric
Google uses field data, including INP, for Core Web Vitals. TBT is a diagnostic to guide fixes.
Questions
No. TBT only measures loading. INP covers every interaction during a visit, including ones long after load.