Tiempo de bloqueo total (TBT)

¿Qué es TBT?

La métrica Tiempo de bloqueo total (TBT) mide la cantidad total de tiempo después del Primer procesamiento de imagen con contenido (FCP) durante el cual el subproceso principal se bloqueó durante el tiempo suficiente para evitar la capacidad de respuesta de la entrada.

De forma predeterminada, Lighthouse deja de supervisar TBT después del tiempo de carga (TTI), al igual que otras herramientas del lab que miden la carga de página. Consulta ¿Cómo se relaciona la TBT con la TTI?.

El subproceso principal se considera "bloqueado" cada vez que hay una Tarea larga (Long Task) una tarea que se ejecuta en el subproceso principal durante más de 50 milisegundos. Decimos que el subproceso principal está "bloqueado" porque el navegador no puede interrumpir una tarea en curso. Por lo tanto, en caso de que un usuario interactúe con la página en medio de una tarea larga, el navegador debe esperar a que esta finalice para poder responder.

Si la tarea es lo suficientemente larga (superior a 50 milisegundos), es probable que el usuario note la demora y perciba la página como lenta o dañada.

El tiempo de bloqueo de una tarea larga determinada es su duración superior a 50 milisegundos. Además, el tiempo de bloqueo total de una página es la suma del tiempo de bloqueo de cada tarea larga que ocurre después del FCP durante el período medido (por lo general, TTI para herramientas de carga de páginas o el tiempo de seguimiento total para otras herramientas).

Por ejemplo, observa el siguiente diagrama del subproceso principal del navegador durante la carga de la página:

Un cronograma de tareas en el subproceso principal
Un cronograma de tareas en el subproceso principal.

La línea de tiempo representada en la imagen anterior tiene cinco tareas, tres de las cuales son tareas largas porque su duración supera los 50 milisegundos. En el siguiente diagrama, se muestra el tiempo de bloqueo para cada una de las tareas largas:

Un cronograma de tareas en el subproceso principal que muestra el tiempo de bloqueo
Las mismas tareas, con tiempos de bloqueo marcados.

Entonces, si bien el tiempo total dedicado a ejecutar tareas en el subproceso principal es de 560 milisegundos, solo 345 milisegundos de ese tiempo se consideran tiempo de bloqueo.

Duración de la tarea (milisegundos) Tiempo de bloqueo de tareas (milisegundos)
Tarea uno 250 200
Tarea dos 90 40
Tarea tres 35 0
Tarea cuatro 30 0
Tarea cinco 155 105
Tiempo de bloqueo total 345 milisegundos

¿Cómo se relaciona la TBT con el TTI?

La TBT se mide durante un período. En el caso de algunas herramientas de lab que tradicionalmente miden las cargas de páginas, como Lighthouse, se midió la TBT hasta la TTI porque ayuda a cuantificar la gravedad del grado de no interactividad de una página antes de volverse interactiva de forma confiable. Sin embargo, la TBT también se podría seguir midiendo después de la carga de la página y más allá de la TTI, por ejemplo, en el modo Lighthouse Timespan.

TTI considera que una página es "confiablemente interactiva" si el subproceso principal no tiene tareas largas durante al menos cinco segundos. Esto significa que tres tareas de 51 ms distribuidas en 10 segundos pueden retrasar el TTI solo en una sola tarea de 10 segundos, pero esas dos situaciones se sentirían muy diferentes para un usuario que intenta interactuar con la página.

En el primer caso, tres tareas de 51 ms tendrían un TBT de 3 milisegundos. En cambio, una tarea de una sola duración de 10 segundos tendría un TBT de 9,950 milisegundos. En el segundo caso, el valor más alto de la TBT cuantifica la peor experiencia.

En este ejemplo, se muestra por qué la TBT suele ser una mejor métrica que la TTI, ya que tiene menos probabilidades de generar valores atípicos. Este es incluso el caso cuando TTI se usa como el extremo para TBT.

Cómo medir la TBT

La TBT es una métrica que se debe medir en el lab. La mejor manera de medir la TBT es realizar una auditoría de rendimiento de Lighthouse en tu sitio. Consulta la documentación de Lighthouse sobre TBT para obtener detalles de uso.

Herramientas del lab

¿Qué es una buena puntuación TBT?

Para proporcionar una buena experiencia del usuario, los sitios deben esforzarse por tener un tiempo de bloqueo total inferior a 200 milisegundos cuando se prueban en hardware móvil promedio.

Para obtener detalles sobre cómo la TBT de tu página afecta la puntuación de rendimiento de Lighthouse, consulta Cómo Lighthouse determina tu puntuación de TBT.

Cómo mejorar TBT

Si quieres obtener información sobre cómo mejorar la TBT para un sitio específico, puedes ejecutar una auditoría de rendimiento de Lighthouse y prestar atención a cualquier oportunidad específica que la auditoría sugiera.

Si quieres obtener más información para mejorar TBT en general (para cualquier sitio), consulta las siguientes guías de rendimiento: