INP (Interaction to Next Paint) — метрика производительности, введённая Google в состав Core Web Vitals 12 марта 2024 года, заменив устаревший FID (First Input Delay). Она фиксирует наихудшую задержку взаимодействия за всю сессию пользователя на странице, а не только первое нажатие.
Как работает
INP отслеживает три типа взаимодействий: клики мышью, касания на тачскрине, нажатия клавиш. Для каждого взаимодействия браузер измеряет три фазы:
- Input delay — время ожидания, пока браузер освободит основной поток для обработки события.
- Processing time — время выполнения обработчиков JavaScript.
- Presentation delay — время до отрисовки следующего кадра после завершения обработчиков.
INP страницы = наихудший результат среди всех взаимодействий (с небольшой поправкой: для страниц с 50+ взаимодействиями берётся 98-й процентиль, чтобы исключить единичные выбросы).
Пороговые значения:
- Хорошо: ≤200 мс
- Требует улучшения: 200–500 мс
- Плохо: >500 мс
Чтобы страница прошла Core Web Vitals Assessment, 75% измерений INP в CrUX за последние 28 дней должны быть ≤200 мс.
Почему INP лучше FID
FID измерял только задержку первого взаимодействия и только фазу input delay — игнорируя время выполнения JS и отрисовку. Сайт мог иметь отличный FID (первый клик обработан за 10 мс), но ужасный отклик на последующие действия (кнопки корзины, фильтры, формы). INP охватывает весь жизненный цикл взаимодействий и все три фазы задержки.
История
INP представлен Google как экспериментальная метрика в мае 2022 года. В мае 2023-го объявлено о включении в Core Web Vitals с марта 2024-го. 12 марта 2024 года INP официально заменил FID в составе Core Web Vitals. Инструменты — PageSpeed Insights, Chrome DevTools, Search Console, CrUX — обновили отображение. Разработчикам дали шесть месяцев переходного периода: FID был удалён из Search Console сразу, из остальных инструментов — к сентябрю 2024 года.
На что обращать внимание
Основные причины плохого INP: длинные задачи JavaScript (Long Tasks >50 мс), блокирующие основной поток; тяжёлые обработчики событий (рендеринг React/Vue при каждом клике); медленные HTTP-запросы внутри обработчиков. Для диагностики используйте Chrome DevTools → Performance → Interactions. Связь с хостингом: INP зависит от JavaScript на стороне браузера, а не от TTFB сервера — но медленный ответ сервера задерживает загрузку JS, что косвенно ухудшает INP. CDN и кэширование статики снижают время загрузки JS-бандлов.
История метрики INP
INP (Interaction to Next Paint) заменил FID (First Input Delay) как Core Web Vital в марте 2024 года. FID измерял только первую задержку взаимодействия, INP — все взаимодействия за время сессии (95-й перцентиль). Разработан командой Chrome в 2022 году. Статус «pending CWV» с 2022 года, официальный CWV с 12 марта 2024 года. Пороговые значения: хорошо <200 мс, требует улучшения 200-500 мс, плохо >500 мс.
Как INP влияет на хостинг
INP измеряется только в браузере реального пользователя (CrUX), не в лабораторных условиях (PageSpeed Insights лабораторный тест не покажет реальный INP). Основные причины плохого INP: тяжёлый JavaScript, блокировка основного потока, медленные AJAX-запросы к серверу. Для сайтов на WordPress: минимизируйте JavaScript плагинов, используйте асинхронную загрузку. Ответ сервера (TTFB) влияет на INP при AJAX-запросах — быстрый VPS с хорошим кешированием снижает задержки API.
INP vs FID vs TBT
| Метрика | Что измеряет | Тип |
|---|---|---|
| FID (устарел) | задержка первого взаимодействия | полевая |
| INP (актуальная) | все взаимодействия, 95-й перцентиль | полевая |
| TBT (Total Blocking Time) | блокировка основного потока | лабораторная |
Типичные ошибки
- Игнорирование INP из-за хорошего лабораторного Score — реальные пользователи могут испытывать задержки.
- Не разделены «тяжёлые» задачи на более мелкие через
scheduler.postTask()или setTimeout. - Синхронные запросы к БД в обработчиках событий блокируют рендеринг.