# Total Blocking Time (TBT)

Category: [Performance & Core Web Vitals](https://seo-geo-glossary.com/en/glossary/category/performance-core-web-vitals/) › [Core Web Vitals & metrics](https://seo-geo-glossary.com/en/glossary/category/performance-core-web-vitals/core-web-vitals-metrics/) · Also known as: TBT

**Total Blocking Time (TBT)** is a lab metric. It adds up how long the main thread of a page was blocked after First Contentful Paint. Lighthouse measures until Time to Interactive, while other modes such as Timespan can run beyond that. During that time the page reacts late to clicks, taps and key presses.

## How is it calculated?

Any task on the main thread that runs longer than 50 milliseconds is a long task. The part beyond 50 ms counts as blocking time, and TBT is the sum of these parts. Tasks of 70, 120 and 90 ms give 20 + 70 + 40 = 130 ms.

## Thresholds

Lighthouse rates TBT on mobile as good up to 200 ms, moderate up to 600 ms and slow above that. On desktop the limits are 150 and 350 ms. web.dev recommends under 200 ms on average mobile hardware.

## How does TBT relate to INP?

TBT is not a Core Web Vital. web.dev describes it as a lab proxy for Interaction to Next Paint (INP), which is measured in the field. It also says TBT can flag problems where users may notice nothing, for example if they do not interact at that moment.

## Typical causes

Large amounts of JavaScript, third-party scripts and long tasks. Typical countermeasures are less code, code splitting and breaking up long tasks.

## At a glance

- **Measures:** Time after FCP during which the main thread was blocked long enough to prevent input responsiveness
- **Assessment:** Lighthouse mobile green up to 200 ms, orange up to 600 ms, red above
- **“Good” threshold:** less than 200 ms on average mobile hardware
- **Data source:** Lab; web.dev does not recommend field measurement
- **Core Web Vital:** no, lab proxy for INP
- **Docs:** [web.dev: Total Blocking Time (TBT)](https://web.dev/articles/tbt)

Last checked: October 8, 2026

## Web Vitals metrics compared

| Metric | Measures | Core Web Vital? | Field or lab | “Good” per web.dev |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | Render time of the largest image, text block or video visible in the viewport, from the start of navigation | yes (loading) | field and lab | 2.5 s or less |
| INP (Interaction to Next Paint) | Latency of interactions across the whole visit until the next paint; one value that all (or nearly all) interactions fall below | yes (interactivity), since 2024-03-12 | field; in the lab only with simulated interactions, Lighthouse does not measure INP | 200 ms or less |
| CLS (Cumulative Layout Shift) | Largest burst of unexpected layout shifts during the entire lifecycle of the page | yes (visual stability) | field and lab | 0.1 or less |
| TTFB (Time to First Byte) | Time from the start of navigation until the first byte of the response arrives | no (helps diagnose LCP) | field and lab | 0.8 s or less |
| FCP (First Contentful Paint) | Time from the start of navigation until any part of the page's content is rendered | no (helps diagnose LCP) | field and lab | 1.8 s or less |
| TBT (Total Blocking Time) | Total time after FCP during which the main thread was blocked long enough to prevent input responsiveness | no (lab proxy for INP) | lab; web.dev does not recommend field measurement | less than 200 ms on average mobile hardware |
| Speed Index | How quickly content is visually displayed during page load (from a video of the load) | no | lab (Lighthouse) | Threshold according to Lighthouse: mobile up to 3.4 s “fast” (web.dev gives no value) |
| FID (First Input Delay), historical | Time from the first interaction until the browser can begin processing event handlers | until 2024-03-12, replaced by INP | field only | 100 ms or less |

Sources: [web.dev: Web Vitals](https://web.dev/articles/vitals); [web.dev: Largest Contentful Paint (LCP)](https://web.dev/articles/lcp); [web.dev: Interaction to Next Paint (INP)](https://web.dev/articles/inp); [web.dev: Cumulative Layout Shift (CLS)](https://web.dev/articles/cls); [web.dev: Time to First Byte (TTFB)](https://web.dev/articles/ttfb); [web.dev: First Contentful Paint (FCP)](https://web.dev/articles/fcp); [web.dev: Total Blocking Time (TBT)](https://web.dev/articles/tbt); [web.dev: First Input Delay (FID)](https://web.dev/articles/fid); [web.dev Blog: Interaction to Next Paint is officially a Core Web Vital (2024-03-12)](https://web.dev/blog/inp-cwv-launch); [Chrome for Developers: Lighthouse – Speed Index](https://developer.chrome.com/docs/lighthouse/performance/speed-index). Last checked: October 8, 2026

*Diagram: The three phases of an interaction.* Every interaction consists of input delay, processing duration and presentation delay. Long tasks on the main thread extend the input delay. According to web.dev, INP is the slowest interaction of a visit for most sites.

## Related terms

- [Interaction to Next Paint (INP)](https://seo-geo-glossary.com/en/glossary/interaction-to-next-paint/index.md)
- [First Input Delay (FID)](https://seo-geo-glossary.com/en/glossary/first-input-delay/index.md)
- [Time to First Byte (TTFB)](https://seo-geo-glossary.com/en/glossary/time-to-first-byte/index.md)
- [Render-blocking resources](https://seo-geo-glossary.com/en/glossary/render-blocking-resources/index.md)
- [Lighthouse](https://seo-geo-glossary.com/en/glossary/lighthouse/index.md)
- [Core Web Vitals](https://seo-geo-glossary.com/en/glossary/core-web-vitals/index.md)

## Sources

- [Total Blocking Time (TBT) – web.dev](https://web.dev/articles/tbt)
- [Total Blocking Time – Lighthouse, Chrome for Developers](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time)

---

Last updated: October 8, 2026
URL: https://seo-geo-glossary.com/en/glossary/total-blocking-time/
