Дизайн — статьи о сайтах
Разбираем, из-за чего тормозят категории и карточки в продуктовом интернет-магазине, и что менять в первую очередь: изображения, скрипты, кэш и запросы к базе.
Покупатель продуктов обычно торопится: открывает сайт с телефона, ищет молоко, хлеб и воду, добавляет в корзину и уходит. Если категория грузится долго, он может закрыть вкладку и вернуться к привычному магазину. Для владельца важно понимать, из чего складывается задержка и какие правки дают наибольший эффект при разумных затратах.
Не меняйте ничего, пока не посмотрите на страницу со стороны. Откройте категорию в браузере, включите инструменты разработчика и на вкладке Network замедлите соединение до уровня мобильного. Обновите страницу и отсортируйте файлы по размеру и времени загрузки. Дополнительно можно проверить страницу в Google PageSpeed Insights или WebPageTest. Сохраните результаты для главной, категории, карточки товара и корзины: после правок их можно будет сравнить.
Представим типичную картину. В категории 48 карточек. Фото загружены из учётной системы в исходном размере, около 2000 пикселей по длинной стороне, а на странице показываются в блоках шириной 200 пикселей. В шапке подключено больше десятка отдельных файлов CSS и JS. Вверху стоят чат с оператором, два счётчика посещаемости и виджет обратного звонка. Цена и наличие каждой карточки догружаются отдельным запросом. Что здесь можно сделать:
В продуктовом каталоге изображения обычно составляют основную часть веса страницы. Загружайте не оригинал с камеры, а копии нужных размеров: миниатюра для списка, средняя для карточки, крупная для увеличения. Для фотографий подходит JPEG с умеренным сжатием, PNG лучше оставить логотипам и значкам вроде «Акция» или «Новинка». Мелкие значки можно объединить в один спрайт.
Фото ниже первого экрана можно подгружать при прокрутке. Заранее задайте блоку размеры, иначе страница будет «прыгать», и покупатель нажмёт не на тот товар. Формат WebP допустим только как дополнение для браузеров, которые его поддерживают, с обычным JPEG про запас. Если фото приходят из 1С или другой системы, настройте уменьшение при импорте, а не вручную.
Скрипты в шапке блокируют отображение страницы: браузер ждёт их, прежде чем показать товары. Подключайте их в конце страницы или с атрибутами async и defer. Уберите плагины, которыми никто не пользуется: слайдер на главной часто тянет за собой библиотеку, нужную только ему. С веб-шрифтами тоже стоит быть аккуратнее: оставьте только нужные начертания и кириллический набор. Пока шрифт грузится, текст с ценой всё равно должен быть виден.
Страницы категорий меняются реже, чем кажется, поэтому их удобно кэшировать на несколько минут. Персональные данные, такие как корзина, выбранный адрес доставки и цены для конкретного магазина, нужно отделить от общего кэша и загружать отдельно. Проверьте сжатие текстовых файлов (gzip) и заголовки кэширования для картинок, стилей и скриптов, чтобы повторные визиты шли быстрее. Если сайт работает по HTTPS и хостинг поддерживает HTTP/2, включите его: много мелких файлов будет грузиться эффективнее.
Отдельно посмотрите на фильтры по бренду, цене и составу. Если при каждом выборе база перебирает весь каталог, нужны индексы по этим полям. Попросите разработчика показать журнал самых долгих запросов.
Двигайтесь по порядку: сначала изображения и сторонние виджеты, затем скрипты, а к серверным настройкам переходите, когда страница уже стала легче. После каждого шага повторяйте замер, чтобы видеть, какая правка действительно дала результат.
Читайте также
Дизайн — статьи о сайтах
Дизайн
Бизнес — статьи о сайтах
Дизайн — статьи о сайтах
Заявка
Свяжемся в течение рабочего дня, зададим уточняющие вопросы и предложим варианты. Без навязчивых звонков.
Форма обратной связи