Кэширование сайта - это сохранение готовых результатов работы (страниц, картинок, запросов к базе), чтобы не вычислять их заново для каждого посетителя. Кэшей несколько уровней: браузерный хранит статику на устройстве посетителя, серверный и кэш CMS избавляют сервер от повторной генерации страниц, кэш базы данных ускоряет запросы, а CDN приближает файлы к пользователю географически. Быстрый сайт использует все уровни сразу - каждый закрывает свой участок пути.

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

Какие бывают кэши: карта уровней

УровеньЧто хранитЧто даёт
Браузерный кэшКартинки, стили, скрипты на устройстве посетителяПовторные визиты грузятся почти мгновенно
CDNКопии статики на серверах ближе к посетителюБыстрая доставка файлов, разгрузка хостинга
Кэш веб-сервераГотовые ответы nginx на частые запросыОтдача без запуска PHP вообще
Кэш CMS и композитСобранные компоненты и HTML-слепки страницОтвет сервера за десятки миллисекунд
Кэш PHP (opcache)Скомпилированный код скриптовPHP не перечитывает исходники на каждый хит
Кэш базы данныхРезультаты частых SQL-запросов в памятиКаталог и фильтры перестают дёргать диск

Что включать в первую очередь: порядок по отдаче

  1. Браузерный кэшЗаголовки Cache-Control и Expires для статики: настраивается в конфигурации сервера или .htaccess за полчаса. Самый дешёвый шаг с заметным эффектом для постоянных посетителей.
  2. OpcacheПроверьте, что он включён на хостинге: без него PHP работает в разы медленнее. На нормальных площадках включён по умолчанию, но встречаются сюрпризы.
  3. Автокэширование CMSВ Битрикс - автокэширование компонентов: меню, каталог, списки перестают собираться из базы на каждый хит.
  4. Композитный режимHTML-слепки страниц целиком: главный рычаг времени ответа. Как включить его правильно, мы разобрали в статье про композитный сайт.
  5. Кэш в памяти (Redis или memcached)Для нагруженных проектов: кэш переезжает с диска в оперативную память и перестаёт упираться в файловую систему.
  6. CDNПоследний штрих для сайтов с географически разбросанной аудиторией и тяжёлой статикой.
Важно. Кэширование не лечит кривой код - оно его маскирует. Если страница собирается 4 секунды, кэш сделает быстрыми повторные визиты, но каждый сброс кэша будет возвращать тормоза. Сначала стоит понять, почему генерация медленная (начните с разбора TTFB), потом накрывать кэшем.

Настроим кэширование на всех уровнях

Проведём аудит: какие кэши включены, какие простаивают, что сбрасывает их раньше времени. Настроим браузерный кэш, автокэширование, композит и Redis - с замерами до и после.

Настроить кэширование

Почему кэш иногда вредит и как этого избежать

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

Совет. Заведите правило для редакторов: кнопка «сбросить весь кэш» - не средство от всех проблем. Каждый полный сброс - это часы медленной работы, пока кэш прогревается заново. Если изменения не появляются на сайте, чаще всего достаточно сбросить кэш конкретного компонента или страницы.

Кэш и обновление контента: как жить вместе

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

Как проверить, что кэширование реально работает

Кэш - технология, которая любит числиться включённой и не работать. Проверка занимает десять минут. Откройте страницу дважды и сравните время ответа во вкладке Network: второй запрос закэшированной страницы должен быть в разы быстрее. Посмотрите заголовки ответа: для статики - Cache-Control со сроком жизни, для страниц Битрикс - пометка композита. В админке Битрикс загляните в панель производительности и статистику композитного кэша: процент попаданий ниже 60-70 - повод разбираться, кто сбрасывает слепки.

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

Частые вопросы про кэширование сайта

Внёс правки на сайт, а изменений не видно. Это кэш?
Скорее всего. Проверьте по цепочке: обновите страницу с Ctrl+F5 (браузерный кэш), сбросьте кэш компонента в CMS, проверьте композитный слепок. Если правили CSS или JS - виноват почти всегда браузерный кэш и отсутствие версионирования файлов стилей.
Какой срок жизни кэша ставить для картинок и стилей?
Для картинок, шрифтов и библиотек - месяцы (они меняются редко), для CSS и JS - тоже долго, но с версионированием в имени файла: обновили стили - изменилась версия, браузер скачал новый файл. Так вы получаете и скорость, и мгновенные обновления.
Нужен ли Redis обычному корпоративному сайту?
Обычно нет: файлового кэша и композита хватает с запасом. Redis оправдан на интернет-магазинах с большим каталогом, высокой посещаемостью и частыми обменами - там файловый кэш начинает упираться в диск.
Сколько стоит настройка кэширования сайта на Битрикс?
Аудит и базовая настройка (браузерный кэш, автокэширование, композит) - 200-500 BYN. Продвинутая схема с Redis, точечной инвалидацией и прогревом после обменов - от 500 BYN. Смету считаем по результатам бесплатного экспресс-аудита.

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