Инструмент Google Lighthouse пропускает метрику INP. Адвокат разработчиков Web Performance из команды Google Chrome объясняет почему.
- Lighthouse не может напрямую измерить INP из-за отсутствия взаимодействия с пользователем.
- Общее время блокировки служит прокси для INP в тестах Lighthouse.
- Пользовательские потоки пользователей позволяют измерять INP для известных путей пользователя.
Google’s Lighthouse’не использует показатель Interaction to Next Paint (INP) в своих стандартных тестах, несмотря на то, что INP является одним из основных веб-показателей.
Барри Поллард, защитник веб-разработчиков производительности в Google Chrome, объяснил причину этого и предложил представление об измерениях INP.
Lighthouse измеряет загрузку страниц, а не взаимодействия
Lighthouse измеряет простую загрузку страницы и фиксирует различные характеристики во время этого процесса.
Он может оценить наибольшее рисование содержимого (LCP) и совокупное смещение макета CLS) при определенных условиях нагрузки, выявить проблемы и посоветовать по улучшению этих показателей.
Однако INP отличается, поскольку зависит от взаимодействия пользователя.
Поллард объяснил:
“Проблема заключается в том, что Lighthouse, опять же, как и многие инструменты веб-перформанса, обычно просто загружает страницу и не взаимодействует с ней. Нет взаимодействия = нет INP для измерения!”
Пользователи пользователя Включить измерения INP
Хотя Lighthouse не может измерить INP, зная типичные пути пользователей, вы можете использовать “потоки пользователей” для измерения INP.
Поллард добавил:
<цитата>
“Если вы как владелец сайта знаете свои обычные пути пользователей, вы можете измерить их в Lighthouse с помощью ‘потоков пользователей’ который затем БУДЕТ измерять INP.”
Эти обычные пути пользователя можно автоматизировать в среде непрерывной интеграции, позволяя разработчикам тестировать INP на каждом комите и выявлять потенциальные регрессии.
Общее время блокировки как прокси INP
Хотя Lighthouse не может измерить INP без взаимодействия, он может измерить вероятные причины, особенно длинные, блокировка задач JavaScript.
Здесь вступает в действие показатель Общее время блокировки (TBT).
По Полларду:
“TBT (общее время блокировки) измеряет суммарное время всех заданий свыше 50 мс. Теория:
- Много длинных, блокирующих задач = высокий риск INP!
- Несколько длинных блокирующих задач = низкий риск INP!”
Ограничение TBT как заменителя INP
TBT имеет ограничение как заменитель INP.
Поллард отметил:
“Если вы не’не взаимодействуете во время длительных задач, возможно, у вас не будет никаких проблем с INP. Также взаимодействия могут загружать БОЛЬШЕ JavaScript, который не измеряется Lighthouse.&~~~~~~~~~~~~~~~~~
Он добавляет:
“Итак, это подсказка, но не замена фактического измерения INP.”
Оптимизация для баллов Lighthouse против взаимодействия с пользователем
Некоторые разработчики оптимизируют оценки Lighthouse, не учитывая влияние на пользователей.
Поллард предостерегает от этого, заявляя:
“Распространенной схемой, которую я вижу, является задержка ВСЕХ JS, пока пользователь не взаимодействует со страницей: отлично для балов Lighthouse! Часто ужасно для пользователей:
- Иногда ничего не загружается, пока вы не переместите мышь.
- Часто ваше первое взаимодействие имеет большую задержку.”
Полное сообщение Полларда
Почему это важно
Понимание отношений Lighthouse, INP и TBT необходимо для оптимизации взаимодействия с пользователем.
Признание ограничений в измерении INP помогает избежать ошибочной оптимизации.
Совет Полларда по измерению INP состоит в том, чтобы сосредоточиться на реальном взаимодействии с пользователем, чтобы гарантировать, что улучшение производительности улучшает UX.
Поскольку INP остается Core Web Vital, понимание его нюансов имеет важное значение для того, чтобы поддерживать его в пределах приемлемого порога.
Практические применения
Для мониторинга производительности сайта и INP:
<ол>
Использование “потоков пользователей”Lighthouse’ для измерения INP в обычных поездках. Автоматизируйте потоки пользователей в CI для мониторинга INP и выявления регрессий. Используйте TBT как прокси INP, но поймите его ограничения. Предоставьте приоритет полевым измерением для получения точных данных INP. Сбалансируйте оптимизацию производительности с учетом UX. ол>