PERFORMANCE · SEO GLOSSARY

Total Blocking Time (TBT)

A Lighthouse lab metric measuring the total time the main thread is blocked by long tasks between First Contentful Paint and Time to Interactive — a proxy for interactivity that correlates with INP in the field.

Definition

Total Blocking Time (TBT) measures the cumulative duration of "long tasks" (JavaScript tasks that take longer than 50ms) on the main thread between First Contentful Paint (FCP) and Time to Interactive (TTI). Only the portion of each long task beyond 50ms counts toward TBT — a 90ms task contributes 40ms to TBT; a 200ms task contributes 150ms. TBT is a Lighthouse lab metric and a Core Web Vitals surrogate: it's not one of the three Core Web Vitals (LCP, INP, CLS), but it is included in Lighthouse's overall performance score as a significant weighted component (30% in Lighthouse 10). Good TBT (per Lighthouse): ≤200ms; Needs Improvement: 200–600ms; Poor: >600ms. TBT correlates strongly with Interaction to Next Paint (INP) — pages with high TBT typically also have poor INP field data, because long tasks block the main thread and delay response to user interactions. Fixing TBT fixes the root causes of poor INP.

Why it matters for SEO

TBT is one of the more actionable Lighthouse metrics because it has a clear root cause: JavaScript long tasks. Every long task exceeding 50ms blocks user interactions during that window. The most common causes: large third-party scripts executing synchronously, heavy framework JavaScript hydration (React, Vue, Angular rendering large component trees on load), unoptimised event handlers that trigger expensive DOM operations, and synchronous API calls in script loading. Fixes: code-splitting (load only the JavaScript needed for the current route), deferring non-critical third-party scripts (use `defer` or `async`, or load via `setTimeout`), removing unused JavaScript (Lighthouse's "Unused JavaScript" audit shows the biggest opportunities), and breaking up long synchronous tasks with `setTimeout` or `requestIdleCallback` to yield to the browser between them.

How DeepSEOAnalysis checks this

TBT is measured during Lighthouse lab runs executed by the audit engine — it's a simulated lab metric, not field data. The audit surfaces TBT per page alongside FCP, LCP, and CLS. Pages with TBT >600ms are flagged as critical performance issues with a breakdown of which JavaScript files are responsible for the longest blocking tasks. Since TBT is a lab metric, the field-data equivalent (INP from CrUX) is shown alongside it — high lab TBT with high field INP confirms a real-world interactivity problem; high lab TBT with acceptable field INP may indicate the lab conditions don't reflect real user traffic patterns.

Useful tools and resources

See how your site scores on Total Blocking Time (TBT).

The free DeepSEOAnalysis audit checks total blocking time (tbt) and 100+ other signals. Full report, no signup.

Run a free audit →