WP: автоматизация кэша и прогрева для Cloudflare и Yandex CDN
WP: автоматизация кэша и прогрева для Cloudflare и Yandex CDN
Утро, понедельник, редактор жмёт «Опубликовать» в WordPress, а вы смотрите на графики, как на прогретую плиту: всё шипит, скакнул TTFB, пользователи из регионов видят сайт через секунды три, а кто-то вообще словил пустую страницу. На кухне остывает кофе, в чате маркетолог пишет «ну что там по скорости?», а сервер делает вид, что его это не касается. Если узнаёте себя, вам пора подружить сайт с CDN и научить автоматику двигаться быстрей вас. Кэш не обязан греться руками, особенно когда у вас редакционный конвейер, акции в магазине и сезонность, как у тюльпанов 8 марта.
Секрет скучен, но полезен: правильно настроенный кэш плюс автоматический прогрев и очистка решают 80% проблем с дерганой скоростью. Cloudflare и Yandex CDN берут на себя тяжёлую работу, а сценарии в make.com шевелят кэш в нужные моменты. По цифрам это совсем не мелочь: Cloudflare APO для WordPress умеет кэшировать даже HTML и сокращает время до первого байта примерно на 72% и ускоряет первое «существенное» отрисованное изображение на 23%. А если не греть кэш заранее, то посетители первые минуты после публикации фактически бета-тестируют ваш бэкенд. Зачем так жить, если можно нажать пару галочек, собрать сценарий и спокойно допить кофе.

Что именно мы автоматизируем и почему это важно
В WordPress есть несколько слоёв кэширования, но для фронта решают два: страницы и статика на краю сети. Аппаратная память CDN ближе к пользователю, чем ваш сервер в Москве или Питере, и именно отсюда берётся ощущение «летает». Проблема в том, что сразу после обновления контента CDN ещё не знает про новые страницы, а значит первые заходы летят на ваш origin. Если публикаций много или одновременно меняете тему, меню, кастомные блоки, то любая минута без прогретого кэша превращается в лотерею. Автоматика нужна, чтобы между событием в WP и состоянием CDN не было дырки: чистим строго то, что изменилось, и тут же прогреваем маршрут из критичных URL, без фанатизма и без DDoS своего же сайта.
Cloudflare хорош как универсальный щит и ускоритель, у него много точек присутствия, умные правила и APO для WordPress, которое кэширует HTML аккуратно и умеет подчищать его при малейшем обновлении. Yandex Cloud CDN нравится тем, что держит контент ближе к российской аудитории, поддерживает экранирование источников, сегментацию, гибкие HTTP-настройки и адекватную аналитику. Комбинации бывают разные, но главное помнить простую вещь: один хостнейм — один CDN. Не пытайтесь посадить две CDN последовательно на один и тот же домен, закончится чёрной магией заголовков и потерей кеш-хитов, это не тот трюк, который хочется дебажить в пятницу вечером.
Cloudflare APO для WordPress без танцев с бубном
Если у вас Cloudflare, берегите пару часов жизни и сразу включайте APO через официальный плагин WordPress. Получите HTML-кэширование на краю, и это ощущается моментально, особенно на мобильном интернете и в регионах. Дальше настраиваем разумные правила: не кэшируем wp-admin и всё, где есть личные кабинеты, корзина и оформление заказа в WooCommerce, обходимся без кэширования запросов с авторизационными cookie типа wordpress_logged_in и woocommerce_cart_hash. TTL для HTML можно держать около часа, а для статики смело выставлять сутки и больше, CDN всё равно умеет обновлять её по версии файла. На уровне API нас интересует точечная очистка: при изменении записи чистим URL самой записи, главную, пагинации и соответствующую рубрику. На худой конец, когда меняется тема или глобальный элемент, выполняем глубокую очистку и после этого обязательно прогреваем маршрут, чтобы не поднимать сервер на колени.
Yandex Cloud CDN: когда ближе — значит быстрее
Если основная аудитория в России и СНГ, Yandex Cloud CDN отдаёт контент быстро и стабильно, а экранирование источника помогает не сжечь бэкенд при всплесках. Полезные штуки вроде правил перезаписи, безопасного доступа и компрессии включаются один раз и дальше не требуют внимания, а вот инвалидировать кэш при изменениях надо обязательно. Через API можно чистить по путям или маскам, а через CLI запускать очистку в автоматических задачах. Одна ремарка, которая экономит нервы: не забывайте перед прогревом отправлять запросы с правильным Host той витрины, для которой настраивалась CDN, иначе кэш прогреется не там, где вы думали. И да, если вы используете Cloudflare как чистый DNS, а CDN отдаёт Yandex, то в Cloudflare у записи должен быть серый облачок — режим DNS only, чтобы не возникали двойные заголовки и неожиданные обходы кэша.
Автоматизация в make.com: три ситуации, где сценарии тащат
Сценарий первый, самый частый: публикуется или обновляется запись в WordPress, а вы хотите, чтобы уже через минуту пользователи в регионах видели прогретую версию. В make.com подключаем модуль WordPress Watch Posts или ловим вебхук из плагина WP Webhooks, забираем пермалинк и собираем список связных адресов. Минимальный набор обычно включает сам пост, главную, первую страницу рубрики и, если есть, страницу автора. Далее отправляем запрос на очистку кэша в Cloudflare по API с телом наподобие {«files»:[«https://example.com/novost-1″,»https://example.com/»]} и тут же проходимся HTTP-запросами по этим ссылкам с паузой в 200-400 мс, чтобы не долбить исходник до полусмерти. По окончании шлём тихое уведомление в Telegram, мол, кэш прогрелся, хитов в ответах достаточно, живём.
Сценарий второй — ночной прогрев. Берём sitemap.xml, парсим его в make.com, отбираем верхние страницы по трафику или свежести, прогреваем отдельно мобильным и десктопным юзер-агентом, чтобы CDN не ленился и держал оба варианта. По опыту, 200-400 адресов за ночь более чем, сверх этого эффект на пользователя уже убывающий, а вот нагрузка на origin растёт вполне себе. Ошибки складываем в таблицу и повторяем попытку через 10-15 минут, не чаще. Этот сценарий особенно спасает после обновления плагинов или когда дизайнер внезапно переименовал половину меню, выждав ночь, утром всё уже на горячем кэше и никто не видит «холодных» страниц.

Сценарий третий — редкие, но болезненные события. Вы сменили тему, затронули шаблон header.php, подкрутили глобальные блоки или перевезли виджеты. Тут точечная чистка не поможет, нужен purge всего HTML и мягкий, ступенчатый прогрев. Сценарий в make.com дергается вручную через специальную кнопку или триггерится вебхуком «Theme switched», делает полную очистку HTML-кэша и затем прогревает маршрут партиями по 20-30 адресов с короткими паузами, постепенно проходя по всем важным страницам. Если у вас Yandex Cloud CDN, аналогично инвалидируем маской вроде /* или пачкой путей, а дальше тот же степенный прогрев, без излишних героических нагрузок. И не забываем про ограничитель параллельности в сценарии, тут жадность точно не к месту.
Детали, которые решают больше, чем кажется
Распределите роли: один и тот же домен — один CDN, какое бы искушение ни было «ускорить ещё чуть-чуть». В Cloudflare включите Cache Everything там, где у вас чистый статический HTML, а для WordPress с авторизованными пользователями поставьте правила Bypass по cookie wordpress_logged_in и woo*. В Yandex Cloud CDN заведите понятные правила TTL: для HTML 30-60 минут, для статики сутки и больше, плюс включите сжатие на уровне CDN, даже если сервер уже сжимает, не повредит. Прогрев делайте только кэшируемыми GET-запросами без лишних параметров, и не забывайте, что избыточные хитрые заголовки могут увести кэш в сторону, лучше меньше, но точнее. По оповещениям — простая нотификация в Telegram помогает держать руку на пульсе, особенно если написать в неё, сколько из прогретых URL вернули cache-hit, а сколько промахов, и дать ссылку на лог.
С цифрами всё приземлённо: минус одна секунда к загрузке страницы может стоить около 7% конверсии и примерно 11% просмотров, это не страшилка, а аккуратная математика. Поэтому целимся в стабильный TTFB и предсказуемый FCP, а для этого кэш должен быть горячим в момент, когда маркетолог нажимает «Запланировать публикацию». Если хотите точности, сравнивайте графики до и после сценариев и смотрите, как ведёт себя коэффициент cache-hit в аналитике CDN. Кстати, не гонитесь за 100% хитами, это мираж, важнее, чтобы в пиковые моменты у вас не слипся бэкенд, а пользователи не читали страницу по слогам.

Как подружить это с ежедневной рутиной
Начните с малого: один сценарий на публикацию и один ночной прогрев. В WordPress ставим плагин для вебхуков или используем встроенную интеграцию make.com, в Cloudflare создаём API-токен с правами на зону, в Yandex Cloud — сервисный аккаунт для вызовов purge. Для Cloudflare очистка по API банально проста: POST на адрес zones/{zone_id}/purge_cache, а в теле либо {«purge_everything»:true} для редких случаев, либо список файлов, так живёт ваш сервер подольше. Для Yandex Cloud CDN используйте их API метод для инвалидирования кэша по путям или CLI-команду, и храните в переменных окружения ключи, а не впрямую в модуле HTTP, это банальная безопасность, но часто про неё вспоминают после. В сценарии добавьте защёлки от циклов, например не реагируйте на автосохранения и не трогайте черновики, иначе можно красиво застрелить себе ноги частыми вызовами.
Мониторинг и оповещения не для галочки. Пара проверок в минуту через внешний пингер плюс телеграм-уведомление о резком падении cache-hit спасают от неприятных сюрпризов прямо во время рекламной закупки. Если видите, что после публикации более 30% критичных URL остаются без хита, проблема в прогреве или в правилах кэширования, сценарий стоит перепроверить. Иногда дело вообще в том, что на стороне темы внезапно добавили приватный заголовок или выставили no-cache, и тогда хоть обпрогревайся, CDN будет делать вид, что не слышит.
Частые грабли и короткие обходные тропы
Самая нелепая ошибка — прогревать URL с параметрами предпросмотра и надеяться на чудо, такие страницы никогда не лягут в публичный кэш. Второе место делят бездумные purge_everything и слишком агрессивная параллельность в сценариях, от этого сервер быстро делает «ой» и уходит в глубокую задумчивость. Третье — смешные конфликты плагинов кэширования в самом WordPress, когда один пишет заголовки одно, а другой отменяет их через миллисекунду, тут или выключаем один, или синхронизируем правила. Наконец, проверьте, что CDN действительно стоит на том домене, который вы прогреваете: если оставить оранжевое облако в Cloudflare и одновременно включить Yandex Cloud CDN, дальше начинается театр теней, где у каждого своя правда, а у пользователя пустой экран. Простая проверка заголовков через curl экономит пару часов жизни, не пренебрегайте.
Хочется готовые сценарии и понятные видео
Если хочется сесть и поехать, без изучения всей матчасти за раз, у нас есть готовые наработки. Подробные уроки про автопрогрев, очистку и уведомления, аккуратные пресеты под Cloudflare и Yandex Cloud, и набор шаблонов сценариев, которые можно поставить за вечер. С растановкой пауз, обработкой ошибок и аккуратной работой с sitemap, чтобы сервер не хрипел. Загляните сюда — Обучение по make.com, а за готовыми шаблонами и обновлениями приходите сюда — Блюпринты по make.com. Если только начинаете и хотите быстро понять, как собрать сценарии под свой стек и не застрять, регистрируйтесь в make.com, там всё запускается из браузера, без серверной магии и танцев. Ну и живое общение, примеры, адекватные советы мы собираем здесь: Хотите научиться автоматизации рабочих процессов с помощью сервиса make.com и нейросетей ? Подпишитесь на наш Telegram-канал. Старайтесь не откладывать, скорость сайта любит тех, кто ей помогает, а не мешает.
FAQ
Что такое прогрев кэша и зачем он вообще нужен
Прогрев — это преднамеренный заход на нужные страницы, чтобы CDN положил их в кэш до того, как туда придут живые пользователи. Он нужен для того, чтобы TTFB и FCP не плясали в первые минуты после публикаций, релизов и больших правок. Без прогрева первые посетители расплачиваются своим временем за ваше обновление, что обычно плохо конвертируется в продажи и удержание. Сценарии в make.com делают это без суеты и в правильном темпе, чтобы не перегружать origin. Один раз настроили — дальше работает само.
Можно ли использовать Cloudflare и Yandex Cloud CDN одновременно
На одном хостнейме — нет, это плохая идея. Либо Cloudflare как CDN, либо Yandex Cloud CDN, а второй сервис максимум остаётся как DNS или на другом поддомене. Иначе запутаетесь в заголовках, потеряете хиты и получите непредсказуемое поведение. Если хочется совместить, вынесите часть статики на поддомен с отдельной CDN, а основной HTML оставьте на другом — так будет корректно.
Как не убить сервер прогревом
Простой рецепт: ограничьте параллельность, добавьте паузы в 200-400 мс, грейте партиями по 20-30 адресов и избегайте «purge всего, а потом штурм». Прогревать стоит только то, во что реально пойдут пользователи, остальное догреется естественным трафиком. И, пожалуйста, не грейте страницы с параметрами админки или предпросмотра, это не ложится в публичный кэш и просто тратит ресурсы.
Как понять, что кэш действительно тёплый
Посмотрите заголовки ответа — CDN обычно возвращает отметку cache-hit. В аналитике Cloudflare или Yandex Cloud видно долю хитов, и если после публикации она быстро растёт, значит всё работает. Можно добавить в сценарий make.com быстрый чек нескольких URL после прогрева и присылать результат в Telegram. Если хитов нет — ищите запреты на кэширование в заголовках и метатегах, они коварны.
Что делать с WooCommerce и личными кабинетами
Эти разделы кэшировать нельзя. В Cloudflare и Yandex Cloud ставим правила Bypass по путям типа /cart, /checkout, /my-account и по соответствующим cookie. Категории и карточки товаров при этом кэшируются отлично, если у вас нет персонализированных блоков на уровне HTML. При изменении цен или акций удобнее делать точечную очистку по URL плюс лёгкий прогрев этих страниц.
Нужен ли APO, если я на Yandex Cloud CDN
APO — фишка Cloudflare для HTML WordPress, она не применима в Yandex Cloud. Если у вас Yandex Cloud CDN, используйте его кэширование страниц по правилам, это работает не хуже, просто настраивается иначе. APO хорош, когда вы полностью на Cloudflare и хотите получить максимум из экосистемы Cloudflare.
Как подключить make.com к WordPress без лишних плагинов
Можно использовать встроенное приложение WordPress в make.com, либо завести небольшой webhook посредством functions.php и Rest API, но большинству проще и безопасней поставить легковесный плагин для вебхуков. Плагин даёт удобные события вроде «запись опубликована» и фильтры, что сильно ускоряет настройку. Главное — не ловить автосохранения, они плодят ненужные триггеры.
Почему очистка кэша в Cloudflare не сработала
Проверьте права токена, зону и точные URL, включая протокол и домен. Если включили purge по списку, а страница доступна по www и без него, чистите оба варианта или держите единый канонический адрес. И обязательно убедитесь, что в этот момент у вас не стоит правило, которое запрещает кэширование этого HTML, иначе будет вечный miss, и прогрев просто некуда складывать.
Сколько URL прогревать после публикации
Обычно хватает 5-10 адресов: сама запись, главная, первая рубрика, возможно связанные теги и первая страница пагинации. Для крупных порталов список растёт, но лучше держать его компактным и добавлять ночной сценарий, который пройдётся по большему набору. Качество важнее количества, особенно когда важен первый час после публикации.


