FID (First Input Delay, задержка первого ввода) — метрика из набора Core Web Vitals, измерявшая отзывчивость страницы при первом взаимодействии пользователя. Метрика фиксировала разрыв между моментом события (click, keydown, touchstart) и моментом, когда браузер начал выполнять обработчик события. Высокий FID означал, что браузер был занят другой задачей — парсингом JavaScript, выполнением тяжёлого скрипта — и не мог немедленно откликнуться на действие пользователя.
Как работает
Браузер — однопоточное окружение. JavaScript-движок выполняет задачи последовательно. Если во время загрузки страницы выполняется тяжёлый JS-скрипт (например, инициализация аналитики или сборки рекламных слотов), браузер не может прервать его выполнение и обработать клик пользователя. Этот период называется Long Task — задача длиннее 50 мс на главном потоке.
FID измерял только задержку до начала обработки, но не время выполнения обработчика и не время визуального обновления страницы. Именно это стало причиной замены метрики: FID не отражал полную интерактивность. Пользователь мог нажать кнопку, браузер сразу начал выполнять обработчик (FID = 5 мс), но визуальный отклик появился через 2 секунды — и это FID не фиксировал.
Хорошее значение FID: не более 100 мс на 75-м перцентиле реальных пользователей. Значение 100–300 мс требует улучшения, свыше 300 мс — критическая проблема. Метрика измерялась только в реальных условиях (Field data) через Chrome User Experience Report, PageSpeed Insights, Search Console. Синтетические инструменты типа Lighthouse не могли измерить FID, поскольку для этого требовалось реальное взаимодействие.
История
Google представил FID в 2018 году как часть инициативы Web Vitals. В мае 2020-го вошёл в Core Web Vitals — набор из трёх ключевых метрик (LCP, FID, CLS). С июня 2021 года Core Web Vitals стали официальным фактором ранжирования Google. В мае 2023 года Google объявил замену: INP (Interaction to Next Paint). С 12 марта 2024 года INP официально заменил FID в Core Web Vitals. Поддержка FID в Chrome и инструментах Google прекратилась 9 сентября 2024 года.
FID vs INP: в чём разница
| Параметр | FID | INP |
|---|---|---|
| Что измеряет | Задержка до начала обработки первого события | Полная задержка всех взаимодействий: от события до визуального обновления |
| Охват | Только первое взаимодействие | Все взаимодействия за сессию (наихудшее) |
| Порог «хорошо» | не более 100 мс | не более 200 мс |
| Синтетические инструменты | Нет | Lighthouse 10+, WebPageTest |
| Статус | Упразднён (сент. 2024) | Core Web Vital с марта 2024 |
На что обращать внимание
Для новых проектов FID не актуален — оптимизируйте INP. Для исторических данных Search Console до марта 2024 года данные FID можно использовать для анализа трендов. Причины плохого FID и INP схожи: тяжёлый JavaScript на главном потоке, избыточные сторонние скрипты, отсутствие code splitting. Решения: разбивка Long Tasks на части, web workers для тяжёлых вычислений, отложенная загрузка скриптов (defer, async).
Связь с хостингом косвенная: VPS с достаточным CPU снижает TTFB и время отдачи JS-бандла. Но FID и INP — преимущественно фронтенд-метрики, зависящие от качества JavaScript-кода, а не от мощности сервера.
FID (First Input Delay) — метрика Core Web Vitals для измерения интерактивности. Зависит от нагрузки JavaScript на SEO-ранжирование. Улучшается через минификацию JS и отложенную загрузку. CDN снижает время загрузки ресурсов. Метрика заменена на INP в 2024 году.