Если сайт на WordPress стал медленнее, первым делом обычно смотрят на кеширование. Но под словом «кеш» скрываются разные вещи: браузер может хранить файлы у посетителя, сервер — готовые версии страниц, а сам WordPress и плагины — промежуточные данные. Из-за этого многие включают «кеш» наугад, а потом получают странные эффекты: не обновляются страницы, ломается корзина, не показываются изменения в шапке или в админке.
Нормальная настройка кеширования начинается не с установки первого попавшегося плагина, а с понимания, что именно нужно ускорить и какой уровень кеша у вас уже работает. Для большинства сайтов достаточно связки из серверного или плагинного кеша страниц, кеша браузера и, при необходимости, объектного кеша. Этого обычно хватает, чтобы заметно снизить нагрузку и ускорить отдачу страниц без сложной инфраструктуры.
Какие виды кеширования бывают в WordPress
Перед настройкой полезно разделить кеш по уровню работы. Это помогает не дублировать одно и то же сразу в нескольких местах и не включать конфликтующие механизмы.
Кеш страниц
Это самый заметный для посетителя вариант. Вместо того чтобы каждый раз собирать страницу из PHP, базы данных и шаблонов, сервер отдает уже готовую HTML-версию. Для обычных записей, страниц, рубрик и главной это самый полезный кеш.
Кеш страниц особенно важен, если сайт на общем хостинге, в каталоге много материалов или тема/конструктор создают тяжелые запросы. Но его нельзя бездумно применять ко всему подряд: страницы с персональными данными, корзина, оформление заказа, личный кабинет и формы с динамическим содержимым обычно нужно исключать.
Кеш браузера
Он отвечает за хранение статических файлов у посетителя: изображений, CSS, JavaScript, шрифтов. Если браузер уже скачал файл, при следующем визите он может не загружать его заново. Это уменьшает количество запросов и ускоряет повторные посещения.
Для WordPress это обычно настраивается через заголовки кеширования на сервере или через плагин. Важно не ставить слишком длинный срок жизни файлов, если вы часто меняете стили и скрипты без смены имени файла. Иначе посетитель будет видеть старую версию оформления.
Объектный кеш
Этот уровень хранит результаты повторяющихся запросов к базе данных и других вычислений. Он полезен на более нагруженных сайтах, в интернет-магазинах, на проектах с большим количеством запросов или сложными плагинами. В WordPress объектный кеш может работать как временный кеш в памяти, а при наличии подходящего окружения — как постоянный кеш через Redis или Memcached.
Если у вас обычный небольшой сайт-визитка, объектный кеш не всегда даст заметный эффект. А вот на каталоге, новостном портале или сайте с высокой посещаемостью он может снизить нагрузку на базу данных.
Кеш на уровне сервера и CDN
Некоторые хостинги и CDN умеют кешировать страницы и статику еще до WordPress. Это удобно, потому что часть нагрузки снимается раньше, чем запрос дойдет до PHP. Но здесь особенно важно понимать, где именно включен кеш, чтобы не получить два слоя одинаковой логики, которые мешают друг другу.
Если у вас уже есть серверный кеш, плагин для кеша страниц может быть не нужен или должен работать в режиме совместимости. Это зависит от хостинга и панели управления.
С чего начать настройку
Самая практичная схема для большинства сайтов выглядит так: сначала проверяют, есть ли кеш на хостинге, затем настраивают кеш страниц и браузера, а уже потом при необходимости добавляют объектный кеш. Такой порядок помогает не перегрузить сайт лишними настройками.
Перед изменениями сделайте резервную копию файлов и базы данных. Это не формальность: при неверной настройке кеша можно на время сломать отображение сайта или получить старые версии страниц в браузере.
1. Проверьте, не включен ли кеш у хостинга
На многих хостингах кеш уже есть в панели управления или включается автоматически. Ищите упоминания о page cache, dynamic cache, varnish, nginx cache, LiteSpeed Cache, Redis. Если хостинг дает собственный кеш страниц, сначала разберитесь с ним, а не ставьте поверх еще один аналогичный плагин.
Если в панели есть только кеш статики или CDN, это не заменяет кеш страниц WordPress. Тогда плагин для кеширования страниц все еще может быть нужен.
2. Выберите один основной инструмент для кеша страниц
Для WordPress обычно используют либо плагин кеширования, либо встроенный кеш хостинга. Не стоит включать сразу несколько плагинов, которые делают одно и то же. Это частая причина конфликтов: один плагин очищает кеш, другой продолжает отдавать старую версию, а третий переписывает правила для браузера.
Если хостинг не предлагает подходящего кеша, можно использовать плагин. Конкретный выбор зависит от сервера и задач сайта:
- на LiteSpeed-серверах обычно удобен плагин, который умеет работать с этим веб-сервером;
- на обычном Apache или Nginx подойдут плагины, которые создают статические HTML-страницы и управляют очисткой кеша;
- если нужен только кеш браузера и минимальные настройки, иногда достаточно плагина для оптимизации, но он не заменяет полноценный кеш страниц.
3. Настройте кеш страниц с исключениями
Включите кеширование для публичных страниц, но исключите все, что зависит от пользователя или быстро меняется. Обычно в исключения попадают:
- корзина и оформление заказа;
- личный кабинет;
- страницы входа и регистрации;
- формы с персональными данными;
- страницы, где содержимое зависит от авторизации или региона пользователя.
Если сайт не интернет-магазин, список исключений будет короче. Но принцип тот же: кешировать можно только то, что безопасно показывать одинаково всем посетителям.
4. Включите кеш браузера для статики
Для изображений, CSS и JavaScript задайте разумный срок хранения. Обычно это делается через заголовки Cache-Control или Expires. Плагин может сделать это автоматически, а на сервере настройка зависит от Apache, Nginx или панели хостинга.
Если вы часто меняете CSS и JS, используйте версионирование файлов. В WordPress это обычно решается сменой версии подключаемого файла в теме или плагине. Тогда браузер поймет, что файл обновился, и загрузит его заново.
5. Подключите объектный кеш, если он действительно нужен
Redis или Memcached имеет смысл включать, когда сайт делает много запросов к базе данных или когда хостинг прямо рекомендует такой вариант. Для этого обычно нужен доступ к серверу или поддержка со стороны хостинга. На обычном shared-хостинге такой кеш может быть недоступен.
Если у вас нет уверенности, что объектный кеш нужен, лучше сначала проверить более простой кеш страниц. В большинстве случаев он дает основной выигрыш по скорости.
Как понять, что кеш настроен правильно
После включения кеша не ограничивайтесь ощущением «сайт вроде стал быстрее». Проверьте несколько вещей вручную.
- Откройте сайт в обычном режиме и в приватном окне. Страницы должны открываться одинаково корректно.
- Измените текст или картинку в записи, очистите кеш и убедитесь, что обновление появилось на фронтенде.
- Проверьте страницы, которые должны быть исключены из кеша: корзину, вход, личный кабинет, формы.
- Если есть доступ к инструментам разработчика в браузере, посмотрите заголовки ответа. Для статических файлов должны быть видны заголовки кеширования, а для HTML — поведение должно соответствовать вашей схеме кеша.
Если изменения не отображаются сразу, сначала очищайте кеш в правильном порядке: кеш плагина или сервера, затем CDN, затем браузер. Иначе можно долго искать проблему там, где ее уже нет.
Типичные ошибки при настройке
Самая распространенная ошибка — включить несколько кеширующих решений одновременно и не понять, какое из них отвечает за результат. Второй частый сценарий — кешировать все страницы без исключений. На сайте это быстро проявляется: пользователь видит чужую корзину, старую цену или нерабочую форму.
Еще одна проблема — слишком агрессивный кеш статики без обновления версий файлов. После правок в теме сайт у владельца уже новый, а у посетителя еще старый CSS из браузера. Внешне это выглядит как «сломалась верстка после обновления», хотя на деле браузер просто не забрал новый файл.
Нельзя забывать и про очистку кеша после изменений. Если вы обновили меню, баннер, виджет или шаблон, но не сбросили кеш, посетители будут видеть старую версию до истечения срока хранения.
Что выбрать, если сайт простой, а что — если он нагруженный
| Ситуация | Что включать в первую очередь | Что обычно не нужно сразу |
|---|---|---|
| Небольшой сайт-визитка или блог | Кеш страниц и кеш браузера | Redis/Memcached, сложные серверные схемы |
| Сайт с большим количеством записей и трафика | Кеш страниц, кеш браузера, при необходимости объектный кеш | Несколько плагинов кеша одновременно |
| Интернет-магазин или сайт с личным кабинетом | Кеш страниц с исключениями, кеш статики, иногда объектный кеш | Полный кеш всех страниц без исключений |
Если хостинг уже дает хороший серверный кеш, не дублируйте его плагином без необходимости. Если серверного кеша нет, тогда плагин для кеширования страниц — нормальный и часто самый простой путь.
Когда кеш может мешать
Кеширование полезно не всегда и не везде. Оно мешает, если сайт часто показывает персональные данные, если контент меняется каждую минуту или если вы активно тестируете шаблон и стили. В таких случаях кеш нужно либо сокращать по времени, либо точечно отключать для отдельных разделов.
Если вы настраиваете сайт для клиента, объясните ему простое правило: после изменений в шаблоне, меню, виджетах и стилях сначала очищается кеш, а уже потом проверяется результат. Это экономит массу времени и избавляет от ложных «ошибок».
Для большинства WordPress-сайтов рабочая схема выглядит так: один основной кеш страниц, кеш браузера для статики и, при необходимости, объектный кеш на подходящем сервере. Этого достаточно, чтобы сайт открывался быстрее и не ломался из-за лишних слоев оптимизации.