Кеширование в интернет-магазине
Кеширование — самый эффективный способ ускорить интернет-магазин без переписывания кода. Оно сохраняет результаты работы и отдаёт их без повторных вычислений. Правильно настроенный кеш снижает нагрузку на сервер в разы, ускоряет загрузку страниц и позволяет магазину выдерживать пиковые нагрузки.
Но кеширование — это не «включил и забыл». Неправильная настройка приводит к тому, что покупатели видят устаревшие цены, пустые корзины или чужие данные. В этой статье — разбор кеширования в интернет-магазине: какие уровни кеша существуют, что кешировать, что нельзя, какие ошибки совершают чаще всего. Если нужно настроить кеширование на сервере — поможем.
Зачем кешировать
Интернет-магазин — система с высокой нагрузкой. Каждая страница каталога, каждая карточка товара вызывает десятки запросов к базе данных. При большом объёме данных и активном трафике база не справляется, страницы начинают тормозить.
Кеширование решает эту проблему: результаты работы сохраняются и отдаются без повторных запросов к БД. При большом объёме базы данных запросы сами по себе быстрые, но их такое количество, что БД начинает выстраивать из них очередь. Кеш разгружает наиболее загруженные места.
Ускорение
Страницы отдаются мгновенно, без обращения к PHP и базе данных. Время отклика снижается в разы.
Разгрузка сервера
CPU и база данных не участвуют в отдаче кешированных страниц. Нагрузка падает на 70–90%.
Пиковые нагрузки
Во время распродаж кеш позволяет магазину выдерживать рост трафика без падения.
Рост конверсии
Быстрый сайт лучше ранжируется в поиске и удерживает покупателей. Конверсия растёт.
Уровни кеширования
Кеширование работает на нескольких уровнях. Каждый уровень решает свою задачу.
| Уровень | Что кеширует | Инструменты |
|---|---|---|
| Браузер | Статика на стороне клиента | Cache-Control, Expires |
| CDN | Статика на edge-серверах | Cloudflare, CloudFront |
| Веб-сервер | Готовые страницы, статика | Nginx FastCGI Cache, Varnish |
| Приложение | Запросы, объекты, страницы | Redis, Memcached |
| База данных | Запросы, результаты | Query Cache, индексы |
| OPcache | Байт-код PHP | OPcache |
Многоуровневое кеширование
В Битрикс Framework применяется многоуровневое кеширование: каждую из технологий можно применять для каждого компонента отдельно, выбирая оптимальный вариант. Если в качестве примера брать интернет-магазин, то для каждого товара будет создан файл в кеше, чтобы при следующем обращении покупателя сервер не напрягался с запросами к БД.
Что кешировать
Не всё нужно кешировать. Вот что даёт максимальный эффект для интернет-магазина.
Каталог товаров
Категории, списки товаров, фильтры. Эти страницы меняются редко, но их посещают чаще всего.
Карточки товаров
Описания, характеристики, изображения. Меняются редко, но нагружают БД.
Статические страницы
Доставка, оплата, о компании, контакты. Меняются очень редко, можно кешировать надолго.
Популярные запросы
Результаты поиска по частым запросам. Снижает нагрузку на поисковый движок.
Что нельзя кешировать
Некоторые данные кешировать нельзя — это приведёт к ошибкам и проблемам с покупателями.
- Корзина: у каждого покупателя своя корзина. Кеширование приведёт к тому, что один увидит товары другого;
- Личный кабинет: персональные данные, история заказов, настройки;
- Checkout: оформление заказа зависит от пользователя;
- Остатки товаров в реальном времени: если показывать устаревшие данные — покупатель закажет то, чего нет;
- Цены с персональными скидками: у разных клиентов разные цены.
⚠️ Важно
Композитный кеш без исключений на проектах с корзиной и личным кабинетом показывает устаревшие данные. Это одна из самых частых ошибок. Настройте исключения для авторизованных пользователей.
Кеш в Битрикс24
Битрикс24 — популярная CMS для интернет-магазинов. Она предоставляет несколько технологий кеширования.
Автокеширование компонентов
Все динамические компоненты имеют встроенную поддержку управления кешированием. Для использования достаточно включить автокеширование одной кнопкой на административной панели. При этом все компоненты создадут кеши и полностью перейдут в режим работы без запросов к базе данных.
Композитный кеш
Композит (Static HTML Cache) — технология, которая разделяет страницу на «быструю» статическую оболочку и отложенные динамические фрагменты. Браузер получает готовый HTML-файл практически мгновенно, а динамика догружается AJAX-ом уже после первого рендера. В результате метрики TTFB/FP/Core Web Vitals улучшаются в разы.
Управляемое и неуправляемое кеширование
- Управляемое: кеш автоматически обновляется при изменении данных. Используется в ядре продукта;
- Неуправляемое: кеш действует указанное время после создания. Подходит для редко меняющихся данных.
Redis и Memcached
Redis и Memcached — это системы кеширования в оперативной памяти. Они работают быстрее файлового кеша и снимают нагрузку с диска.
Что кешировать в Redis
- Сессии: пользовательские сессии вместо файлов;
- Кеш данных: часто запрашиваемые данные;
- Очереди: фоновые задачи (рассылки, импорт);
- Права доступа: кеш прав для CMS.
Настройка
- Установка: redis-server + php-redis;
- Конфигурация: указать Redis как хранилище кеша и сессий;
- Память: выделить достаточный maxmemory;
- Персистентность: RDB или AOF для сохранения кеша.
Redis стоит использовать для хранения сессий и объектного кеширования. Размер выделяемой памяти зависит от фактических потребностей, мониторить можно с помощью redis-cli info memory.
Типичные ошибки
Композит без исключений
Кеширование корзины и личного кабинета. Покупатели видят чужие данные или устаревшие корзины.
Нет автосброса
После обновления каталога посетители видят старую версию. Нужна автоматическая инвалидация.
Игнорирование БД
Менять хостинг до анализа SQL-запросов — деньги на ветер. В большинстве случаев проблема в базе.
Нет мониторинга
Через месяц после оптимизации сайт снова «тяжелеет», а вы об этом не знаете.
Кеш без сжатия
WebP даёт экономию 25–35% по сравнению с JPEG при том же качестве.
Слепое включение
Пока разработчик не определится со стратегией, слепое включение кеширования может не дать ощутимых результатов.
Наши рекомендации
📌 Что вы получаете, заказывая настройку кеша у нас
- Кеш каталога — категории, списки, фильтры
- Композитный кеш — для Битрикс24
- Redis — сессии и объектный кеш
- Nginx FastCGI Cache — кеш страниц
- OPcache — байт-код PHP
- Мониторинг — контроль эффективности кеша
📌 Итоговый вывод
Кеширование — это самый эффективный способ ускорить интернет-магазин.
Что нужно знать:
- Зачем — ускорение, разгрузка сервера, пиковые нагрузки, рост конверсии
- Уровни — браузер, CDN, веб-сервер, приложение, БД, OPcache
- Что кешировать — каталог, карточки, статические страницы, популярные запросы
- Что нельзя — корзина, личный кабинет, checkout, остатки, персональные цены
- Битрикс24 — автокеширование, композит, управляемый и неуправляемый кеш
- Redis — сессии, кеш данных, очереди
- Ошибки — композит без исключений, нет автосброса, игнорирование БД
Хотите быстрый магазин? Закажите консультацию в Lead Hub.
Также рекомендуем: как выбрать хостинг для магазина, пиковые нагрузки, интеграция с 1С, безопасность, ошибки при выборе, хостинг для интернет-магазинов.