Ускорение мобильной версии интернет-магазина: практическое руководство 2026

Схема ускорения мобильной версии интернет-магазина: экран, медиа, скрипты и замер
Содержание 11 разделов

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

Цель работы — сделать категорию, карточку товара и оформление быстрее для реальных посетителей, сохранив корректные цены, варианты, остатки и аналитику.

Начать с мобильной воронки

До технических изменений выбирают несколько ключевых сценариев:

  1. переход из поиска или рекламы на категорию;
  2. применение фильтра и сортировки;
  3. открытие карточки и смена варианта товара;
  4. добавление в корзину;
  5. изменение состава заказа;
  6. ввод контактов, выбор доставки и оплата.

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

Полевые и лабораторные данные

Полевые данные показывают опыт реальных устройств и сетей. Core Web Vitals оценивают LCP, INP и CLS по 75-му процентилю просмотров [1]. Если сайт представлен в CrUX, данные можно увидеть в PageSpeed Insights и Search Console. Собственная RUM-аналитика дополнительно позволяет разделить посетителей по шаблону, браузеру, региону и источнику.

Лабораторный тест нужен для причины: сетевого водопада, главного потока, размеров ресурсов и сдвигов. Его запускают несколько раз в одинаковых условиях с мобильным ограничением сети и CPU. Один Lighthouse-балл не описывает весь магазин.

Изображения: самый заметный мобильный резерв

Отдать подходящий размер

Изображение в карточке шириной 400 CSS-пикселей не должно без необходимости скачивать многомегапиксельный оригинал. srcset и sizes позволяют браузеру выбрать файл под экран и плотность пикселей. Формат WebP или AVIF обычно уменьшает передачу, но качество проверяют на товарных деталях и тексте внутри изображения.

Рано загрузить главное изображение

Изображение, которое становится LCP, размещают в исходном HTML и не загружают лениво. Если браузер обнаруживает его поздно, можно обоснованно применить fetchpriority="high" или preload. Web.dev рекомендует сокращать задержку обнаружения LCP-ресурса, но высокий приоритет нельзя выдавать всем фотографиям одновременно [2].

Отложить изображения ниже экрана

Фото в длинном описании, рекомендациях и отзывах можно помечать loading="lazy". Нативная ленивая загрузка уменьшает конкуренцию за сеть и расход трафика [3]. У каждого изображения задают размеры или соотношение сторон, чтобы карточки не прыгали во время загрузки.

JavaScript и отзывчивость интерфейса

Мобильный CPU дольше выполняет один и тот же скрипт. Наиболее тяжёлыми бывают фильтры, слайдеры, маски полей, пересчёт вариантов, карты и сторонние виджеты. В профиле записывают конкретное действие и смотрят, какой обработчик блокирует основной поток.

Приоритетные меры:

  • удалить неиспользуемый код и дубли библиотек;
  • загружать функциональность тогда, когда пользователь приблизился к ней;
  • разделить длинные задачи и не перерисовывать весь каталог при локальном изменении;
  • не инициализировать скрытые мобильные и десктопные виджеты одновременно;
  • проверить вклад каждого внешнего скрипта и оставить только необходимый.

Оптимизация не должна ломать цели аналитики. После изменения порядка загрузки проверяют отправку просмотра товара, добавления в корзину и покупки без дублей.

CSS и шрифты

Для первого экрана важны стили, без которых он не может отрисоваться. Большой общий CSS-файл с правилами всех разделов задерживает обработку, а цепочка @import откладывает обнаружение зависимостей. Стили сокращают и разделяют с учётом архитектуры проекта, не копируя критический CSS вручную на сотни страниц [4].

Шрифты ограничивают нужными начертаниями и символами, предпочтительно в WOFF2. font-display управляет поведением до загрузки файла, а preload применяют только к действительно используемому на первом экране шрифту. Избыточный preload конкурирует с изображением товара.

Сервер и HTML приходят раньше всех ресурсов

Пока браузер не получил HTML, он не может начать обычное обнаружение CSS, JavaScript и изображений. Высокий TTFB ухудшает последующие этапы. Проверяют редиректы, серверный кеш, PHP, SQL, внешние API и очередь процессов. Web.dev рекомендует оценивать TTFB в полевых данных и отдельно сравнивать кешируемые и некешируемые ответы [5].

Для каталога полезно кешировать общие данные, но цена, остаток, регион и содержимое корзины должны обновляться по правилам бизнеса. Быстрая страница со старой информацией создаёт больше проблем, чем экономит времени.

Сторонние сервисы

Чат, коллтрекинг, рекомендации, отзывы и рекламные пиксели оценивают по пользе и стоимости загрузки. У каждого сервиса проверяют:

  • размер и время выполнения скрипта;
  • блокирует ли он первый экран;
  • загружается ли на страницах, где нужен;
  • что происходит при таймауте или ошибке;
  • не создаёт ли блок неожиданный сдвиг.

Часть виджетов можно запускать после согласованного события или первого взаимодействия, если это не нарушает их назначение и требования аналитики.

Проверка функций магазина после ускорения

Технический тест дополняют функциональным:

  • все варианты товара меняют изображение, цену и остаток;
  • фильтр сохраняет URL и возвращает ожидаемый набор;
  • кнопка добавления не срабатывает дважды;
  • корзина совпадает после перехода между страницами;
  • купон, доставка и итоговая сумма пересчитываются;
  • формы показывают ошибки рядом с нужным полем;
  • аналитика фиксирует события один раз.

Тестируют реальные Android- и iOS-устройства, а не только узкое окно браузера. Особенно важны бюджетный Android, Safari на iPhone и нестабильная сеть.

Порядок работ по влиянию

  1. Устранить многосекундный ответ сервера и лишние редиректы.
  2. Сделать главное изображение ранним и подходящим по размеру.
  3. Убрать блокирующую работу JavaScript в ключевых действиях.
  4. Задать размеры медиа и зарезервировать динамические блоки.
  5. Сократить сторонние скрипты, CSS и шрифты.
  6. Настроить ленивую загрузку содержимого ниже экрана.
  7. Проверить воронку и продолжить полевой мониторинг.

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

Как принять результат

До и после сравнивают одинаковые URL, устройства и условия. В отчёте должны быть результаты по главным шаблонам, перечень изменений и функциональная проверка. Лабораторное улучшение видно сразу, а агрегированные полевые данные обновляются постепенно. Поэтому после выпуска продолжают наблюдать показатели и ошибки, особенно после обновления шаблона, аналитики или каталога.

Источники

[1] web.dev — пороговые значения Core Web Vitals: web.dev/articles/defining-core-web-vitals-thresholds

[2] web.dev — Optimize Largest Contentful Paint: web.dev/articles/optimize-lcp

[3] MDN — Lazy loading: developer.mozilla.org/en-US/docs/Web/Performance/Guides/Lazy_loading

[4] MDN — HTML performance optimization: developer.mozilla.org/.../Performance/HTML

[5] web.dev — Optimize Time to First Byte: web.dev/articles/optimize-ttfb

Нужна помощь по этой задаче?
На странице услуги «Спринт мобильной скорости и Core Web Vitals» указаны состав работ, результат и фиксированная цена.