Gesamte Blockierzeit (Total Blocking Time, TBT)

Philip Walton
Philip Walton
Barry Pollard
Barry Pollard

Was ist TBT?

Der Messwert „Gesamte Blockierungszeit“ (Total Blocking Time, TBT) gibt die Gesamtzeit an, nach dem First Contentful Paint (FCP) der Haupt-Thread lange genug blockiert wurde, um die Reaktionsfähigkeit bei Eingaben zu verhindern.

Standardmäßig beendet Lighthouse die Überwachung der Gesamtblockierzeit nach der Zeit bis zur Interaktivität, ebenso wie einige andere Lab-Tools, die die Seitenladezeit messen. Siehe Wie verhält sich TBT zu TTI?.

Der Haupt-Thread wird als „blockiert“ betrachtet, wenn eine lange Aufgabe ausgeführt wird, also eine Aufgabe, die länger als 50 Millisekunden im Haupt-Thread ausgeführt wird. Wir sagen, der Hauptthread ist „blockiert“, weil der Browser eine laufende Aufgabe nicht unterbrechen kann. Falls ein Nutzer also während einer langen Aufgabe mit der Seite interagiert, muss der Browser warten, bis die Aufgabe abgeschlossen ist, bevor er reagieren kann.

Wenn die Aufgabe lang genug ist, also etwas über 50 Millisekunden, ist es wahrscheinlich, dass der Nutzer die Verzögerung bemerkt und die Seite als langsam oder fehlerhaft empfindet.

Die Blockierungszeit einer bestimmten langen Aufgabe ist ihre Dauer über 50 Millisekunden. Die Gesamtblockierungszeit für eine Seite ist die Summe der Blockierzeit für jede lange Aufgabe, die nach FCP für den gemessenen Zeitraum erfolgt (normalerweise TTI für Tools zum Laden von Seiten oder die gesamte Trace-Zeit für andere Tools).

Sehen Sie sich zum Beispiel das folgende Diagramm mit dem Hauptthread des Browsers während des Seitenaufbaus an:

Eine Aufgabenzeitleiste im Hauptthread
Eine Zeitachse mit Aufgaben im Hauptthread.

Die in der vorherigen Abbildung dargestellte Zeitleiste enthält fünf Aufgaben, von denen drei lange Aufgaben sind, da ihre Dauer 50 Millisekunden überschreitet. Das folgende Diagramm zeigt die Blockierungszeit für jede der langen Aufgaben:

Eine Aufgabenzeitachse im Hauptthread mit der Blockierzeit
Identische Aufgaben mit markierten Blockierzeiten.

Die Gesamtzeit für die Ausführung von Aufgaben im Haupt-Thread beträgt also 560 Millisekunden, davon werden jedoch nur 345 Millisekunden als Blockierungszeit betrachtet.

Aufgabendauer (Millisekunden) Blockierzeit der Aufgabe (Millisekunden)
Aufgabe eins 250 200
Aufgabe zwei 90 40
Aufgabe 3 35 0
Aufgabe vier 30 0
Aufgabe 5 155 105
Total Blocking Time (Gesamtblockierungszeit) 345 Millisekunden

Inwiefern hängt TBT mit INP zusammen?

TBT ist älter als INP und ein nützlicher Indikator für INP-Probleme, insbesondere in der Laborumgebung, wo die Messung des INP schwieriger ist. TBT kann jedoch auch potenzielle Probleme kennzeichnen, wenn es vielleicht keine Probleme für die Nutzenden gibt – wenn sie zu diesem Zeitpunkt nicht interagieren. Außerdem können in der Lab-Umgebung durch Interaktionen verursachte Probleme übersehen werden. Wir empfehlen, den INP vor Ort zu messen, um die tatsächlichen Probleme mit der Reaktionszeit der Nutzer zu messen. TBT kann ein sinnvoller Proxy-Messwert für INP für das Lab sein, ist jedoch kein Ersatz für INP an sich.

Inwiefern hängt TBT mit TTI zusammen?

Die Gesamtblockierzeit wird über einen bestimmten Zeitraum gemessen. Bei einigen Lab-Tools, mit denen traditionell Seitenladezeiten gemessen werden, einschließlich Lighthouse, wurde die TBT bis zum TTI gemessen, da sie dabei hilft, die Schwere des Nichtinteraktivitätsgrads einer Seite zu quantifizieren, bevor sie zuverlässig interaktiv wird. Allerdings könnte TBT auch nach dem Seitenaufbau und so über den TTI hinaus gemessen werden, z. B. im Lighthouse-Zeitspannenmodus.

Eine Seite wird von TTI als „zuverlässig interaktiv“ eingestuft, wenn der Hauptthread mindestens fünf Sekunden lang keine langen Aufgaben enthält. Das bedeutet, dass drei Aufgaben mit einer Dauer von 51 Millisekunden, die über 10 Sekunden verteilt sind, die TTI genauso verlängern können wie eine einzelne 10 Sekunden lange Aufgabe. Für einen Nutzer, der mit der Seite interagieren möchte, würden sich diese beiden Szenarien jedoch sehr unterschiedlich anfühlen.

Im ersten Fall hätten drei Aufgaben mit einer Dauer von 51 ms eine TBT von 3 Millisekunden. Eine einzelne, 10 Sekunden lange Aufgabe hat dagegen ein TBT von 9.950 Millisekunden. Der größere TBT-Wert im zweiten Fall quantifiziert das schlechtere Erlebnis.

Dieses Beispiel zeigt, warum die TBT oft ein besserer Messwert als die TTI ist, da sie weniger anfällig für Ausreißer ist. Dies ist sogar der Fall, wenn TTI als Endpunkt für TBT verwendet wird.

So messen Sie TBT

Die Gesamtblockierzeit ist ein Messwert, der im Lab gemessen werden sollte. Die beste Möglichkeit, die TBT zu messen, ist eine Lighthouse-Leistungsprüfung Ihrer Website. Weitere Informationen zur Nutzung finden Sie in der Lighthouse-Dokumentation zu TBT.

Es ist möglich, TBT direkt vor Ort zu messen, wir raten jedoch davon ab, da die Nutzerinteraktion die TBT auf Ihrer Seite so beeinflussen kann, dass es zu großen Abweichungen in Ihren Berichten kommt. Wenn du über eine einzelne INP-Interaktion hinausgehen möchtest, empfehlen wir dir stattdessen die neuere Long Animations Frame API.

Lab-Tools

Was ist ein guter TBT-Score?

Für eine gute Nutzerfreundlichkeit sollten Websites eine Blockierungszeit von weniger als 200 Millisekunden haben, wenn sie auf durchschnittlicher mobiler Hardware getestet werden.

Weitere Informationen dazu, wie sich der TBT Ihrer Seite auf die Lighthouse-Leistungsbewertung auswirkt, finden Sie unter So ermittelt Lighthouse den TBT-Wert.

Wie kann ich TBT verbessern?

Im Allgemeinen empfehlen wir die Optimierung für INP über TBT, da wir die Verwendung von TBT empfehlen, ein Proxy-Messwert für INP im Labor, in dem INP normalerweise nicht genau gemessen werden kann. Wenn Sie die TBT-Werte verbessern möchten, lesen Sie unseren Leitfaden zur Optimierung von INP.

Wenn Sie sich speziell auf die Ladezeit konzentrieren, können Sie eine Lighthouse-Leistungsanalyse durchführen und sich die Verbesserungsmöglichkeiten ansehen, die die Analyse vorschlägt.

Im Allgemeinen beinhaltet die Verbesserung von TBT für eine Website die Reduzierung der Anzahl von blockierenden Skripts, d. h. entweder weniger blockierende Skripts oder die Gesamtzahl der Skripts reduzieren. Weitere Informationen finden Sie in den folgenden Leistungsleitfäden: