Как улучшить INP и отзывчивость интерфейса
Interaction to Next Paint измеряет задержку от действия пользователя до следующего визуального обновления. Улучшение INP требует найти конкретное медленное взаимодействие, а не просто уменьшить общий размер JavaScript.
Чеклист диагностики
Отметьте пункты, которые уже проверили.
Диагностика INP: long tasks, event handlers, rendering, third-party scripts, code splitting, yield, DOM и проверка реальных взаимодействий.
Найдите плохое взаимодействие
CrUX показывает p75 по реальным пользователям, но не называет конкретную кнопку. Добавьте RUM-диагностику или используйте DevTools Performance, чтобы проверить меню, фильтры, формы, корзину и другие частые действия.
Разложите задержку на input delay, обработчик события и presentation delay. Эти части требуют разных исправлений: освободить main thread, ускорить код обработчика или уменьшить стоимость layout/paint.
Разбейте длинные задачи
Long task блокирует главный поток и откладывает обработку ввода. Разделяйте большую работу на меньшие части, отдавайте управление браузеру и переносите вычисления в worker, если данные и архитектура это позволяют.
Не запускайте тяжёлую инициализацию всех виджетов на старте. Загружайте код по маршруту или по намерению пользователя, но не откладывайте критичную реакцию так, чтобы первый клик сам тянул огромный chunk.
Мониторинг покажет, когда состояние изменится
Добавьте сайт или сервер один раз — perfMon будет проверять его автоматически, сохранит историю и сообщит о сбое и восстановлении.
Сократите обработчик и рендеринг
Обработчик должен быстро обновить минимальное состояние. Избегайте синхронных циклов по большому DOM, повторных layout reads/writes и полного перерендера списка при локальном изменении.
Виртуализируйте длинные списки, ограничьте глубину компонентов и группируйте измерения DOM. CSS-эффекты и сложные тени тоже могут увеличивать presentation delay на слабом устройстве.
Контролируйте сторонний JavaScript
Чаты, аналитика, A/B и рекламные скрипты конкурируют за главный поток. Измерьте вклад каждого поставщика и загружайте его по согласию, после первого экрана или только на нужных страницах.
После оптимизации проверьте функциональность и бизнес-метрики. Удаление скрипта может улучшить INP, но сломать аналитику или поддержку — изменение должно быть контролируемым.
Автоматизируйте проверку, описанную в статье
Разовая диагностика помогает сейчас. Регулярный мониторинг нужен, чтобы не пропустить повторение проблемы.
Настроить бесплатноПрименить на практике
Частые вопросы
Короткие ответы на вопросы, которые обычно возникают при диагностике.
Какой INP хороший?
Хороший p75 INP — до 200 мс; 200–500 мс требует улучшения, выше 500 мс считается слабым.
TBT и INP — одно и то же?
Нет. TBT — лабораторный показатель блокировки во время загрузки, INP — полевая отзывчивость на реальные взаимодействия. TBT может быть диагностическим ориентиром, но не заменяет INP.
Почему у статичной страницы слабый INP?
Причиной могут быть меню, consent-баннер, аналитика, чат или другой сторонний код, который блокирует главный поток при взаимодействии.
Не ждите следующего сообщения «сайт не работает»
Добавьте первый сайт или сервер: perfMon будет проверять состояние автоматически, сохранит историю и уведомит ответственных.