Разбор уровней кэширования в Битрикс, настройки сервера и порядок действий, если сайт тормозит. Плюс как правильно очистить кэш.
«Битрикс тормозит» — один из самых частых запросов к разработчикам. Почти всегда дело не в платформе, а в том, что кэш выключен, не используется в своём коде или сервер не настроен.
Уровни кэширования
| Уровень | Что делает | Где включить |
|---|---|---|
| Кэш компонентов | Сохраняет результат работы компонента | Настройки продукта → Автокэширование |
| Управляемый (тегированный) кэш | Сбрасывает кэш при изменении данных | Там же, «Управляемый кэш» |
| Композитный сайт | Отдаёт страницу целиком как HTML | Настройки → Композитный сайт |
| Кэш запросов ORM | Кэширует отдельные запросы D7 | В коде, параметр cache |
| OPcache | Кэш скомпилированного PHP | Настройки PHP на сервере |
Порядок действий, если сайт медленный
- Монитор производительности (Настройки → Производительность): оценка конфигурации и узких мест.
- Панель отладки на медленной странице: сколько SQL-запросов, какие компоненты работают без кэша, сколько времени на каждый.
- Включите автокэширование и управляемый кэш, проверьте, что у ключевых компонентов CACHE_TYPE не выключен.
- Найдите свой код без кэша: запросы в header.php, result_modifier.php, init.php. Перенесите в компоненты с кэшем — см. как написать компонент.
- Перенесите хранение кэша из файлов в Redis или memcached на нагруженных проектах.
- Настройте сервер: актуальный PHP, OPcache с достаточной памятью, настройки MySQL под объём базы.
- Фронтенд: сжатие картинок, WebP, отложенная загрузка, объединение и минификация CSS/JS.
Кэш хранится в Redis
Настраивается в /bitrix/.settings.php в секции cache: тип redis или memcache и параметры подключения. Файловый кэш на медленных дисках и при десятках тысяч файлов становится узким местом — Redis решает это.
Как правильно очистить кэш
- Админка: «Настройки → Настройки продукта → Автокэширование → Очистка файлов кэша», выберите «Все».
- Консоль: удалить содержимое
/bitrix/cache,/bitrix/managed_cache,/bitrix/stack_cache. - Если кэш в Redis — сбросить соответствующую базу или префикс.
Если приходится чистить кэш после каждого изменения контента — у вас не работает тегированный кэш. Это лечится в коде, а не ручной очисткой.
Быстрые признаки проблем
- Сотни SQL-запросов на странице каталога.
- Время генерации страницы больше секунды при включённом кэше.
- Папка кэша занимает десятки гигабайт — кэш создаётся с уникальными ключами на каждый запрос.
- Агенты выполняются на хитах, а не через cron.
Делаем аудит производительности сайтов на Битриксе и ускоряем их без переписывания. Пришлите адрес сайта — посмотрим.
Частые вопросы
Как очистить кэш в Битрикс?
В админке: «Настройки → Настройки продукта → Автокэширование», вкладка «Очистка файлов кэша». Или удалите содержимое папок /bitrix/cache и /bitrix/managed_cache. Если кэш хранится в Redis или memcached — очистите его там.
Почему после очистки кэша сайт стал медленнее?
Первые запросы заново строят кэш. Если сайт медленный постоянно, значит кэш не работает: он выключен, не используется в компонентах или постоянно сбрасывается.
Что такое композитный сайт?
Технология Битрикса, которая отдаёт страницу как статический HTML, а динамические блоки (корзина, имя пользователя) подгружает отдельно. Даёт очень быстрый первый ответ.