БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»

Interaction to Next Paint: отзывчивость интерфейса магазина

Метрика INP и отзывчивость интерфейса интернет-магазина на 1С-Битрикс

Покупатель нажимает «Добавить в корзину», а кнопка отзывается через полсекунды — за это время он успевает нажать ещё раз, подумать, что сайт завис, и начать раздражаться. Такие микрозадержки на каждом клике незаметны в отчётах о загрузке, но именно они формируют ощущение «тормозного» магазина. Метрика INP как раз измеряет эту сторону скорости — не «как быстро загрузилось», а «как быстро реагирует».

В этой статье разберём Interaction to Next Paint (INP): что это за метрика, почему она заменила FID в Core Web Vitals, какие значения считать хорошими и как улучшить отзывчивость интерфейса интернет-магазина на 1С-Битрикс. Тема тесно связана с качеством фронтенда, поэтому её удобно решать в рамках готового быстрого решения — разработки на Aspro Next, где производительность заложена в шаблон.

Коротко

  • INP измеряет отзывчивость на взаимодействия (клики, тапы, ввод), а не скорость загрузки страницы.
  • С 2024 года INP заменил FID в Core Web Vitals как более честная метрика: он учитывает все взаимодействия, а не только первое.
  • Хорошо — до 200 мс, требует улучшения — 200–500 мс, плохо — выше 500 мс по 75-му перцентилю.
  • Главная причина плохого INP — длинные задачи JavaScript и сторонние скрипты, блокирующие основной поток.

Что такое INP и зачем он магазину

INP расшифровывается как Interaction to Next Paint — «взаимодействие до следующей отрисовки». Метрика измеряет, сколько времени проходит между действием пользователя (клик, тап, нажатие клавиши) и моментом, когда браузер визуально отражает результат этого действия на экране. По сути это мера того, насколько живо интерфейс реагирует на человека.

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

Чем INP отличается от FID

До INP отзывчивость в Core Web Vitals измеряла метрика FID (First Input Delay). Разница между ними принципиальна и объясняет, почему произошла замена.

КритерийFID (старая)INP (новая)
Что измеряетЗадержку только первого взаимодействияОтзывчивость всех взаимодействий за визит
Что учитываетТолько входную задержку до обработкиПолный путь до отрисовки отклика
КартинаОптимистичная, по одному кликуРеалистичная, по худшим взаимодействиям
СтатусУстарелаДействующая метрика Core Web Vitals

FID смотрел только на первый клик и только на задержку до начала обработки — это давало слишком радужную картину. Первое взаимодействие могло быть быстрым, а весь остальной сеанс — тормозным, и FID этого не замечал. INP охватывает все взаимодействия за визит и меряет полный путь до отрисовки, поэтому честнее отражает реальный опыт. Именно поэтому с 2024 года INP официально заменил FID.

Отзывы и рейтинг: от покупки к доверию Покупкаклиент получил товарЗапрос отзываписьмо после доставкиМодерацияпроверкаПубликацияотзыв + рейтингсредний рейтинг товара
Схема: после доставки покупателю приходит запрос отзыва; пройдя модерацию, отзыв публикуется и формирует средний рейтинг — социальное доказательство для новых клиентов.

Пороговые значения метрики

Чтобы понимать, где вы находитесь, нужны ориентиры. Для INP приняты такие пороги:

Важно, что оценка берётся по 75-му перцентилю реальных пользователей. Это значит, что метрика учитывает не идеальные условия разработчика с мощным ноутбуком, а типичный опыт, включая недорогие смартфоны и слабые сети. Для магазина это критично: большая доля покупателей заходит именно с бюджетных телефонов, где тяжёлый JavaScript особенно сильно бьёт по отзывчивости. Ориентироваться нужно на этот реальный опыт, а не на замеры на «идеальном» устройстве.

Почему магазины тормозят на кликах

Интернет-магазины особенно подвержены проблемам с INP, и причина в природе торговой витрины. В ней очень много интерактива, и за каждым элементом стоит JavaScript.

Когда всего этого много, а код написан неаккуратно, каждое взаимодействие вынуждено ждать освобождения основного потока браузера. На каталогах с фильтром и корзиной нагрузка на главный поток особенно велика, поэтому INP там регулярно выходит за границы нормы. Хорошая новость: это чинится адресно, потому что проблемные взаимодействия почти всегда локализованы в нескольких местах.

Длинные задачи и основной поток

Чтобы понять, как улучшать INP, надо знать, как устроен браузер. JavaScript выполняется в одном основном потоке, и в нём же браузер обрабатывает взаимодействия и отрисовывает кадры. Пока в потоке идёт длинная задача, всё остальное ждёт.

Представим: пользователь кликает по фильтру, а в этот момент выполняется обработчик, который работает 300 миллисекунд без перерыва. Браузер не может ни обработать клик, ни отрисовать отклик, пока задача не завершится, — взаимодействие «повисает» на эти 300 мс. Отсюда главный принцип улучшения INP: не блокировать основной поток. Длинные задачи разбивают на короткие, уступают управление браузеру между кусками работы, тяжёлые вычисления выносят или откладывают. Тогда браузер успевает вклиниться и отрисовать отклик на действие пользователя быстро, даже если общей работы много.

Ключевой принцип: отзывчивость — это не «мало кода», а «код не держит основной поток надолго». Даже сложная логика может ощущаться быстрой, если она разбита на короткие задачи и регулярно уступает управление браузеру.

Сторонние скрипты и виджеты

Отдельный и часто главный виновник плохого INP — сторонние скрипты. Счётчики аналитики, онлайн-чаты, виджеты отзывов, рекламные и маркетинговые теги выполняются в том же основном потоке и могут надолго его занимать, а магазин над ними почти не властен по коду.

Работа со сторонними скриптами обычно даёт самый лёгкий выигрыш:

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

Как улучшить INP на практике

Улучшение INP — это адресная работа по конкретным узким местам, а не абстрактная «оптимизация». Последовательность обычно такая:

  1. Измерьте реальные данные. Найдите взаимодействия с худшим откликом — обычно фильтр, корзина или конкретный виджет.
  2. Разберитесь в причине. Что блокирует поток: длинный обработчик, лишние перерисовки, сторонний скрипт.
  3. Отложите лишнее при загрузке. Второстепенные скрипты — после взаимодействия или по мере необходимости.
  4. Разбейте длинные задачи. Тяжёлые обработчики делите на части, уступая управление браузеру.
  5. Оптимизируйте обработчики. Уберите лишнюю работу на каждый клик, кэшируйте вычисления.
  6. Дайте мгновенный визуальный отклик. Показывайте реакцию сразу, а тяжёлое доделывайте следом.
  7. Проверьте на слабом устройстве. Замерьте результат на бюджетном смартфоне, а не только на мощной машине.

Мгновенный визуальный отклик — недооценённый приём: даже если полная обработка занимает время, показать пользователю, что клик принят (изменить состояние кнопки, показать индикатор), можно сразу. Это резко улучшает воспринимаемую отзывчивость. Общая инженерная культура фронтенда, при которой такие вещи делаются по умолчанию, обычно приходит вместе с качественной кодовой базой — об этом мы пишем в материале про D7 и ORM в Битрикс, где аккуратность на бэкенде поддерживает и фронтенд.

Особенности 1С-Битрикс

На 1С-Битрикс есть своя специфика работы с отзывчивостью. Стандартные компоненты каталога, фильтра и корзины несут собственный JavaScript, а типовые шаблоны нередко подключают много скриптов сразу. Отсюда несколько практических соображений:

Часто самый устойчивый путь к хорошей отзывчивости на Битриксе — стартовать с решения, где производительность фронтенда уже заложена. Именно поэтому мы предлагаем разработку на Aspro Next: современный шаблон с аккуратным JavaScript даёт хорошую базу по Core Web Vitals, включая INP, без долгой борьбы с наследием тяжёлых типовых шаблонов.

Как измерять и следить

INP нельзя улучшить, не измеряя. При этом важно различать два вида данных:

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

Частые ошибки

Чек-лист внедрения

  1. Полевые данные собираются, реальный INP по 75-му перцентилю виден.
  2. Худшие взаимодействия найдены — фильтр, корзина, конкретные виджеты.
  3. Сторонние скрипты отложены и подключаются по мере необходимости.
  4. Длинные задачи разбиты, тяжёлые обработчики уступают управление браузеру.
  5. Мгновенный визуальный отклик есть на всех ключевых действиях.
  6. Проверено на слабом устройстве, а не только на мощной машине.
  7. Шаблон и модули не тянут лишний интерактив.
  8. Метрика под наблюдением — INP проверяется после каждого релиза.

Вывод

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

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

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

Что такое INP простыми словами?

INP (Interaction to Next Paint) — это метрика, которая измеряет, как быстро интерфейс визуально откликается на действия пользователя: клики, тапы, ввод с клавиатуры. Она смотрит на задержку между взаимодействием и следующей отрисовкой кадра и берёт по сути худшие взаимодействия за визит. Проще говоря, INP отвечает на вопрос «насколько сайт ощущается тормозящим, когда по нему кликаешь». Чем меньше значение, тем отзывчивее интерфейс.

Чем INP отличается от FID и почему заменил его?

FID (First Input Delay) измерял только задержку самого первого взаимодействия и только его входную часть — до начала обработки. Это давало слишком оптимистичную картину: первый клик мог быть быстрым, а остальная сессия — тормозной. INP охватывает все взаимодействия за визит и учитывает полный путь до отрисовки отклика, а не только начальную задержку. Поэтому с 2024 года INP заменил FID в Core Web Vitals как более честная мера отзывчивости.

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

Ориентиры такие: до 200 миллисекунд — хорошо, от 200 до 500 — требует улучшения, выше 500 — плохо. Оценка берётся по 75-му перцентилю реальных пользователей, то есть учитывает не идеальные условия, а типичный опыт, включая слабые устройства и медленные сети. Для магазина это важно: значительная часть покупателей заходит с недорогих смартфонов, где тяжёлый JavaScript особенно бьёт по отзывчивости.

Почему именно магазины часто страдают от плохого INP?

В интернет-магазине много интерактива: добавление в корзину, умный фильтр, переключение вариантов товара, сортировки, всплывающие окна. За всем этим стоит JavaScript, и если его много и он выполняется большими неразрывными кусками, каждое взаимодействие ждёт, пока основной поток освободится. На каталогах с фильтрами и корзиной нагрузка на главный поток особенно велика, поэтому INP там нередко выходит за пределы нормы.

Как длинные задачи JavaScript влияют на отзывчивость?

Браузер выполняет JavaScript в одном основном потоке, и пока идёт длинная задача, он не может обработать клик и отрисовать отклик. Если обработчик события или сторонний скрипт выполняется, скажем, 300 миллисекунд, любое взаимодействие в этот момент «повисает» на это время. Поэтому главный приём улучшения INP — разбивать длинные задачи на короткие, уступать управление браузеру и не блокировать основной поток тяжёлыми вычислениями.

Влияют ли сторонние скрипты (аналитика, чаты, виджеты) на INP?

Да, и часто сильно. Счётчики аналитики, онлайн-чаты, виджеты отзывов и рекламные скрипты выполняются в том же основном потоке и способны надолго его занимать. Их подключают отложенно, по мере необходимости или после взаимодействия, а не все сразу при загрузке. Аудит сторонних скриптов — почти всегда первый шаг в улучшении отзывчивости, потому что там скрыт самый лёгкий выигрыш.

Помогает ли композитный сайт Битрикс улучшить INP?

Композитный сайт ускоряет прежде всего первую отрисовку и загрузку, а INP — про отзывчивость на взаимодействия, то есть про JavaScript. Прямо INP композит не «чинит», но косвенно помогает: страница становится интерактивной раньше, и общая нагрузка распределяется лучше. Однако если проблема в тяжёлых обработчиках и длинных задачах, композит её не уберёт — нужно работать именно с JavaScript и структурой интерактива.

С чего начать улучшение INP на действующем магазине?

Сначала измерьте реальные данные пользователей и найдите взаимодействия с худшим откликом — обычно это фильтр, корзина или конкретный виджет. Затем разберитесь, что блокирует основной поток: длинные обработчики, лишние перерисовки, сторонние скрипты. Дальше действуйте точечно: отложите ненужное при загрузке, разбейте длинные задачи, оптимизируйте тяжёлые обработчики. Улучшение INP — это адресная работа по конкретным узким местам, а не абстрактная «оптимизация вообще».

Поделиться:

Магазин быстро грузится, но тормозит на кликах?

Найдём взаимодействия с худшим откликом, освободим основной поток и улучшим INP. Или запустим витрину на быстром решении с нуля.

Разработка на Aspro Next

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: оптимизируем фронтенд, Core Web Vitals и отзывчивость интерфейса для среднего и крупного бизнеса.

← Все статьи блога