К содержанию

Wiki · Техническая оптимизация

Total Blocking Time

Total Blocking Time (TBT) – это лабораторный показатель Lighthouse, который суммирует, сколько времени при загрузке страницы основной поток браузера был занят длинными задачами и не мог ответить на клик, касание или нажатие клавиши. Хорошим результатом на мобильной проверке считается до 200 мс.

Страница на телефоне вроде бы загрузилась: текст на месте, картинки видны. Вы нажимаете на меню, и ничего. Через секунду оно всё-таки открывается. В эту секунду браузер выполнял JavaScript: виджет чата, слайдер, счётчики, код шаблона. Пока скрипт работает, браузер глух к действиям человека. TBT считает, сколько таких глухих периодов набралось за время загрузки.

Как из длинных задач складывается TBT

Браузер выполняет работу задачами в основном потоке. Задача дольше 50 мс считается длинной. Всё, что сверх 50 мс, и есть время блокировки этой задачи. TBT складывает время блокировки всех длинных задач между первой отрисовкой контента (FCP) и моментом, когда страница стала стабильно отзывчивой.

Условный расчёт для страницы с чатом и счётчиком:

ЗадачаДлительностьВремя блокировки
Код шаблона180 мс130 мс
Счётчик аналитики60 мс10 мс
Скрипт формы40 мс0 мс
Виджет онлайн-чата320 мс270 мс
Итого600 мсTBT 410 мс

Короткие задачи до 50 мс в TBT не попадают совсем, даже если их сотня. А одна задача на 320 мс сразу добавляет 270 мс.

Схема расчёта Total Blocking Time: длинные задачи основного потока, вычитание 50 мс из каждой и сумма времени блокировки
Как Lighthouse считает TBT

Какой TBT нормальный и как он связан с INP

Оценка LighthouseМобильныеКомпьютеры
Быстродо 200 мсдо 150 мс
Средне200–600 мс150–350 мс
Медленнобольше 600 мсбольше 350 мс

В оценке производительности Lighthouse 10 у TBT самый большой вес, 30%. Поэтому именно он чаще всего тянет общий балл PageSpeed Insights вниз, особенно на мобильной проверке, где Lighthouse имитирует медленный процессор. Ориентируйтесь на неё, а не на проверку с компьютера: мобильная ближе к тому, что видят посетители.

Пороги Total Blocking Time в Lighthouse для мобильных: до 200 мс быстро, больше 600 мс медленно, вес показателя 30 процентов
Пороги TBT в Lighthouse

В Core Web Vitals отзывчивость измеряет INP, и считается он по реальным посетителям. В лаборатории никто не кликает, поэтому там смотрят TBT как косвенный признак. Связь не прямая:

  • высокий TBT может не мешать людям, если в момент блокировки они ещё ничего не нажимают;
  • хороший TBT не гарантирует хороший INP: тяжёлый обработчик клика по фильтру сработает уже после загрузки, и TBT его не увидит.

Практическое правило: TBT нужен, чтобы найти и проверить исправления, а итоговую оценку даёт полевой INP.

Как найти, что блокирует поток

  1. Прогоните страницу в PageSpeed Insights в мобильном режиме и включите в диагностике фильтр по TBT. TBT заметно колеблется, так что сравнивайте «до» и «после» по трём-пяти прогонам, а не по одному.
  2. Посмотрите пункты о времени выполнения JavaScript, работе основного потока, длинных задачах и стороннем коде. Там перечислены конкретные файлы и сколько времени они заняли.
  3. Для подробностей откройте в Chrome DevTools вкладку Performance, включите замедление процессора и запишите загрузку. Длинные задачи на дорожке основного потока помечены красной штриховкой.
  4. Разделите виновников на свои скрипты и сторонние. Со своими работает разработчик, по сторонним решают, нужны ли они на этой странице.

Проверяйте сайт в режиме инкогнито. Если вы вошли в админку 1С-Битрикс, на странице подгружается панель управления со своими скриптами, и замер получается хуже, чем у посетителей.

Как снизить TBT, не теряя чат и аналитику

  • Убрать неиспользуемый JavaScript и загружать на странице только нужный ей код. Готовые шаблоны часто грузят везде код слайдеров, галерей и калькуляторов, которых на странице нет.
  • Отложить сторонние виджеты: чат, квиз, отзывы, коллтрекинг загружать после первого действия посетителя или через несколько секунд. Сюда же относятся скрипты из системы тегов: каждый новый пиксель, добавленный без контроля, отнимает время у основного потока.
  • Разбить длинные задачи на части, тяжёлые вычисления вынести из основного потока.
  • Облегчить страницу: огромный DOM требует долгого расчёта стилей и вёрстки, а это тоже работа основного потока.

Вернёмся к условному расчёту. Если виджет чата загружать после первого действия посетителя, его 270 мс уходят за пределы загрузки. Остаются 130 мс от кода шаблона и 10 мс от счётчика, итого 140 мс, и страница попадает в зелёную зону. Чат при этом никуда не делся.

Атрибуты async и defer у тега script помогают не всегда. Они не дают скрипту задерживать разбор HTML, и первая отрисовка наступает раньше. Но когда скрипт всё-таки выполняется, он занимает основной поток так же, как раньше. Если файл тяжёлый, длинная задача никуда не исчезнет, она просто сдвинется по времени.

Скрипты, которые тормозят сайт, мы находим в техническом аудите, а убираем или откладываем при доработке сайта.

Чужие скрипты, время JavaScript и мобильная проверка: вопросы о TBT

Чем TBT отличается от времени выполнения JavaScript в диагностике PageSpeed Insights?

Время выполнения JavaScript складывает работу всех скриптов, включая короткие задачи. TBT берёт только длинные задачи между FCP и моментом стабильной отзывчивости, причём лишь их часть сверх 50 мс. Две секунды кода, раздробленные на мелкие куски, TBT почти не испортят, а один тяжёлый файл испортит.

Откуда высокий TBT, если своих скриптов на сайте почти нет?

Чаще всего от чужого кода: счётчиков, рекламных пикселей, чата и виджетов, которые маркетологи добавили через систему тегов. Второй источник: огромный DOM, ведь расчёт стилей и вёрстки для тысяч элементов тоже идёт в основном потоке. И убедитесь, что замер сделан не из-под админки CMS, её панель добавляет свои скрипты.

Почему на мобильной проверке TBT в разы больше, чем на компьютерной?

Мобильный тест Lighthouse замедляет процессор примерно в четыре раза, и каждая задача растягивается, а порог в 50 мс остаётся прежним. Задача на 40 мс на компьютере в TBT не попадает, а на мобильной проверке длится около 160 мс и добавляет 110. Так несколько средних скриптов, безобидных на ноутбуке, дают сотни миллисекунд блокировки на телефоне.

Документация Lighthouse и web.dev по TBT

См. также: Core Web Vitals, PageSpeed Insights, Скорость сайта, Speed Index.

Остались вопросы по теме «Total Blocking Time»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ПимкинОтвечает по темеСергей ПимкинВедущий SEO-специалист

Тарифы

Тарифы по теме

Все тарифы →
от 70 000 ₽/мес при оплате за 3 месяца, помесячно 80 000 ₽

Стартовый тариф для небольшого бизнеса: наводим порядок на сайте и получаем первые заявки из Яндекса и Google.

  • Техническая оптимизация сайта
  • Контентная оптимизация
  • Семантическое ядро под город или регион
  • Настройка Яндекс Вебмастера и Google Search Console
  • Цели в Яндекс Метрике
  • Ежемесячный отчёт по позициям, трафику и заявкам
  • Оптимизация поведенческих факторов
  • Оптимизация коммерческих факторов и E-A-T
SEO ProХит
от 90 000 ₽/мес при оплате за 3 месяца, помесячно 99 000 ₽

Тариф для растущего бизнеса. Работаем на количество заявок: считаем звонки через коллтрекинг и дорабатываем сайт под конверсию.

  • Техническая оптимизация сайта
  • Контентная оптимизация
  • Семантическое ядро под город или регион
  • Настройка Яндекс Вебмастера и Google Search Console
  • Цели в Яндекс Метрике
  • Ежемесячный отчёт по позициям, трафику и заявкам
  • Оптимизация поведенческих факторов
  • Оптимизация коммерческих факторов и E-A-T
от 135 000 ₽/мес при оплате за 3 месяца, помесячно 149 000 ₽

Для масштабирования бизнеса: SEO, A/B-тесты, карточки в Яндекс.Бизнесе и 2ГИС, техподдержка сайта. Нейросети берут на себя рутину, итог проверяют специалисты.

  • Техническая оптимизация сайта
  • Контентная оптимизация
  • Семантическое ядро под город или регион
  • Настройка Яндекс Вебмастера и Google Search Console
  • Цели в Яндекс Метрике
  • Ежемесячный отчёт по позициям, трафику и заявкам
  • Оптимизация поведенческих факторов
  • Оптимизация коммерческих факторов и E-A-T

Проверим ваш сайт бесплатно

Экспресс-аудит за 24 часа: скорость, индексация, мета-теги, коммерческие факторы и цели Метрики.