Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Транслит для загранпаспорта ГОСТ 7.79 ISO 9 Блог Вопросы и ответы Создать URL
Разбор

INP: отзывчивость интерфейса

Третья метрика Core Web Vitals — INP — оценивает отзывчивость страницы на действия пользователя. Разберём, как она устроена.

Что измеряет INP

INP — время от действия пользователя (клик, касание, нажатие клавиши) до момента, когда страница показывает результат. Показатель учитывает все взаимодействия за время визита и отражает одно из самых медленных. Хорошим считается результат до 200 миллисекунд. Метрика пришла на смену прежней, которая оценивала только первое действие.

Из чего складывается задержка

ДействиепользователяОжидание(занятосновной поток)ОбработкаобработчикомОтрисовкарезультата
ДействиепользователяОжидание(занятосновной поток)ОбработкаобработчикомОтрисовкарезультата
Три части задержки реакции страницы

Что вызывает медленный отклик

Причины плохого INP
ПричинаКак проявляетсяЧто сделать
Длинные задачи JavaScriptОсновной поток занят, клик ждёт своей очередиРазбивать длинные задачи на короткие
Тяжёлый обработчик событияСлишком много вычислений сразу после кликаВыполнять только необходимое, остальное — отложить
Огромный DOMЛюбое изменение перестраивает много элементовСокращать число элементов, разбивать длинные списки
Сторонние скриптыЧужой код занимает поток в неподходящий моментЗагружать отложенно, оценить необходимость каждого
Тяжёлые стили и анимацииДолгая отрисовка после действияУпрощать эффекты, использовать преобразования

Как улучшить

  1. Найдите в лабораторном тесте самые долгие задачи и взаимодействия.
  2. Разбейте тяжёлую работу на части и уступайте основной поток между ними.
  3. Сократите объём JavaScript на странице: отложите и удалите неиспользуемое.
  4. Проверьте сторонние скрипты: аналитику, чаты, виджеты — часто они главный источник проблем.
  5. Проверяйте показатель на реальных устройствах: на медленных телефонах проблемы заметнее.

Простые улучшения с быстрым эффектом

  • Показывать мгновенную реакцию (смену вида кнопки), а тяжёлую работу выполнять после.
  • Не подключать скрипты «на всякий случай» на страницах, где они не нужны.
  • Использовать для обработки событий типичные приёмы ограничения частоты.

Связь с индексацией: чем больше на странице JavaScript, тем сложнее её обработка и роботом: об этом — в статье про индексацию страниц, созданных JavaScript. Общий обзор метрик — в статье про Core Web Vitals.

Что учитывать на практике

Взаимодействия, для которых важна отзывчивость
ВзаимодействиеОжидание пользователя
Нажатие на кнопку добавления в корзинуНемедленная визуальная реакция
Открытие меню или фильтраПоявление без заметной задержки
Ввод текста в полеСимволы появляются сразу, без «залипания»
Переключение вкладокМгновенный переход к содержимому

Пример разбиения тяжёлой задачи

async function processItems(items) {
  for (const item of items) {
    handle(item);
    // уступаем основной поток, чтобы страница могла отреагировать
    await new Promise(resolve => setTimeout(resolve));
  }
}

Такая обработка не блокирует страницу надолго: между шагами браузер успевает ответить на действия пользователя.

Частые вопросы

Что измеряет INP?

Время от действия пользователя до момента, когда страница показывает результат; учитываются все взаимодействия за визит, а оценка отражает одно из самых медленных.

Какой INP считается хорошим?

До 200 миллисекунд; значения от 200 до 500 требуют улучшения, а выше 500 — плохой результат.

Что чаще всего вызывает плохой INP?

Длинные задачи JavaScript, тяжёлые обработчики событий, огромный DOM и сторонние скрипты, занимающие основной поток.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также