Skip to content
All articles

What is Total Blocking Time (TBT), and why does it matter for SEO?

guide // , 5 min read, by Darthwares

Total Blocking Time (TBT) is a performance metric measuring how long the main thread is blocked between First Contentful Paint and Time to Interactive, preventing fast responses to user input. It matters for SEO because Google ranking systems seek to reward pages with strong user experience, and TBT acts as an essential lab proxy for catching interactivity issues that affect Interaction to Next Paint.

A technical diagram illustrating main thread long tasks exceeding 50 milliseconds and their combined blocking time between FCP and TTI.
On this page // 5 sections
  1. 01How is Total Blocking Time calculated?
  2. 02Why does Total Blocking Time matter for SEO and search results?
  3. 03What is a good score for Total Blocking Time?
  4. 04How do you diagnose and fix high Total Blocking Time?
  5. 05Common questions

The short version

  • Total Blocking Time measures the total duration after First Contentful Paint where long tasks block the main thread from responding to user input.
  • Any task executing on the main thread for over 50 milliseconds is a long task, and the execution time past 50 milliseconds is its blocking period.
  • TBT is a lab-measurable proxy for Interaction to Next Paint (INP), helping developers identify responsiveness issues before real users encounter them.
  • Websites should aim for a Total Blocking Time of under 200 milliseconds when tested on average mobile hardware.

How is Total Blocking Time calculated?

Total Blocking Time is calculated by adding the blocking portions of all long tasks that run between First Contentful Paint (FCP) and Time to Interactive (TTI). The main thread in the browser is where most tasks execute, including almost all JavaScript. When a task runs on the main thread for more than 50 milliseconds, Chrome for Developers defines it as a long task.

The blocking portion of a long task is the exact duration that exceeds 50 milliseconds. web.dev explains that if Lighthouse detects a long task running for 70 milliseconds, the task blocking portion is 20 milliseconds. Tasks that complete within 50 milliseconds do not produce any blocking time.

The overall Total Blocking Time for a page is the sum of these blocking periods recorded during the test timeframe. By measuring this cumulative delay, lab tools evaluate how long a page is blocked from responding to input events such as screen taps, mouse clicks, or keyboard presses.

Why does Total Blocking Time matter for SEO and search results?

Total Blocking Time matters for search optimization because it allows developers to catch and fix interactivity bottlenecks that impact user experience. Google Search Central documents that Core Web Vitals measure real-world performance for loading, visual stability, and interactivity. Google highly recommends achieving good Core Web Vitals for success in search results because core ranking systems seek to reward pages with great user experience.

Core Web Vitals apply to all web pages and are measured across real-user field data, with Interaction to Next Paint (INP) assessing overall responsiveness. Good responsiveness means a page responds quickly to clicks, taps, and keyboard inputs throughout a visit, requiring an INP of 200 milliseconds or less. web.dev notes that Total Blocking Time is a lab-measurable proxy metric for INP.

While TBT is a reasonable proxy metric in lab tests, it is not a direct substitute for field INP data. Lab metrics like TBT are vital for catching potential interactivity problems during development. Optimizing TBT ensures that main thread tasks are kept short, helping improve responsiveness across Google performance tools.

What is a good score for Total Blocking Time?

Sites should strive to achieve a Total Blocking Time of less than 200 milliseconds when tested on average mobile hardware. web.dev sets this threshold to ensure that main thread execution does not block early user interactions. Keeping TBT under this target provides a responsive user experience during page loading.

Chrome for Developers explains that TBT is one of the performance metrics tracked in the Lighthouse report. A page TBT score compares its measured time against the TBT distributions of millions of real websites loaded on mobile devices. In Lighthouse scoring, only metrics contribute directly to the Performance score, while diagnostic items do not.

The Lighthouse Performance score is calculated as a weighted average of metric scores, meaning heavily weighted metrics have a larger impact on the overall result. Sites should aim for a good score between 90 and 100. When evaluating Core Web Vitals for field performance, site owners should measure the 75th percentile of page loads across mobile and desktop devices.

How do you diagnose and fix high Total Blocking Time?

Diagnosing and fixing high Total Blocking Time involves finding main thread tasks that block user input and reducing their execution time. When a user interacts with a page in the middle of a long task, the browser must wait for that task to finish before responding. web.dev notes that if the main thread is blocked for long periods, the user interface will feel unresponsive or even broken.

Improving TBT generally requires reducing blocking scripts by optimizing them or reducing the overall script volume on the page. You can prevent main thread blocking by breaking up long tasks into several smaller ones. When tasks are split up, the browser can pause execution to handle higher-priority work much sooner, including user interactions.

  1. 01Run a lab audit using mobile settings to capture main thread tasks executing between First Contentful Paint and Time to Interactive.
  2. 02Identify JavaScript tasks that take longer than 50 milliseconds to run on the main thread.
  3. 03Break long tasks into smaller code blocks or optimize blocking scripts so the browser can process user inputs without delay.
Troubleshooting high Total Blocking Time
SymptomDiagnostic CheckRecommended Fix
User interface feels unresponsive to clicks or tapsCheck main thread trace logs for tasks exceeding 50 millisecondsBreak up long tasks into smaller executions to free the main thread sooner
High TBT value reported in mobile lab testsAudit total script load between First Contentful Paint and Time to InteractiveReduce overall script volume or optimize blocking scripts to be less blocking

Common questions

What is Total Blocking Time (TBT)?

Total Blocking Time is a performance metric that measures the total amount of time after First Contentful Paint where the main thread was blocked from responding to user input.

What is considered a long task in browser performance?

A long task is any task that executes on the browser main thread for more than 50 milliseconds.

Can Total Blocking Time replace Interaction to Next Paint?

No. While Total Blocking Time serves as a reasonable lab proxy metric for Interaction to Next Paint (INP), web.dev documents that it is not a substitute for INP itself.

What Total Blocking Time threshold should site owners target?

Site owners should strive for a Total Blocking Time of less than 200 milliseconds when tested on average mobile hardware.

Primary sources and further reading

This article was researched and written by an AI model and published automatically. It was written from sentences that were checked to appear on the pages below, but a person has not reviewed the text. If something is wrong, tell us at chibivikramathithan@darthwares.com and we will correct it.