hostprofi.ru
Подобрать хостинг
Термин·буква I

INP

краткое определение

INP (Interaction to Next Paint) — метрика Core Web Vitals, измеряющая отзывчивость страницы: время от любого взаимодействия пользователя (клик, касание, нажатие клавиши) до следующего визуального обновления браузера. Норма: ≤200 мс.

INP (Interaction to Next Paint) — метрика производительности, введённая Google в состав Core Web Vitals 12 марта 2024 года, заменив устаревший FID (First Input Delay). Она фиксирует наихудшую задержку взаимодействия за всю сессию пользователя на странице, а не только первое нажатие.

Как работает

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

  1. Input delay — время ожидания, пока браузер освободит основной поток для обработки события.
  2. Processing time — время выполнения обработчиков JavaScript.
  3. 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.
  • Синхронные запросы к БД в обработчиках событий блокируют рендеринг.

Другие термины