CloudFlare для WordPress: полная настройка CDN, кэш и безопасность

1. Регистрация и базовая настройка зоны

Первый шаг – создать аккаунт на CloudFlare и добавить ваш домен. После подтверждения DNS‑записей переключите NS‑серверы вашего регистратора на те, что предоставил CloudFlare. На этом этапе убедитесь, что записи A и CNAME указывают на ваш текущий хостинг.

Создание зоны и изменение DNS

В CloudFlare откройте вкладку DNS. Для WordPress‑сайта обычно достаточно оставить только записи A (основной сайт) и CNAME (www). Включите облачную иконку (оранжевый облачок) – это активирует проксирование трафика через сеть CloudFlare.

2. Включение CDN и оптимизация статических файлов

CloudFlare автоматически кэширует статические ресурсы (CSS, JS, изображения). Чтобы точнее контролировать правила кэширования, используйте Page Rules.

Настройка Page Rules для кэширования

  • Создайте правило example.com/wp-content/uploads/* с параметром Cache Level: Cache Everything и сроком жизни Edge Cache TTL: 1 month.
  • Для динамических страниц (example.com/*) лучше оставить Cache Level: Standard, чтобы не кэшировать HTML.

Эти правила позволяют ускорить загрузку медиа‑файлов в разы, не затрагивая генерацию контента WordPress.

3. Защита WordPress с помощью WAF и правил брандмауэра

Встроенный Web Application Firewall (WAF) в CloudFlare имеет предустановленные правила для WordPress, но их стоит доработать.

Блокировка wp‑login и защита от брутфорса

Создайте правило Firewall Rule:

(http.request.uri.path eq "/wp-login.php" and cf.threat_score gt 0) or (http.request.uri.path contains "xmlrpc.php" and cf.threat_score gt 0)

Это ограничит доступ к wp-login.php и xmlrpc.php только для проверенных IP. Для более глубокого уровня защиты читайте статью Защита wp-login wordpress от брутфорса: 5 проверенных методов.

4. Argo Tunnel: безопасный доступ без открытых портов

Argo Tunnel позволяет скрыть ваш сервер от прямого доступа, создавая защищённый туннель от CloudFlare к вашему веб‑приложению.

Установка cloudflared и запуск туннеля

# Добавляем репозиторий CloudFlare
curl -L https://pkg.cloudflare.com/cloudflared.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

# Авторизуемся (получаем токен в панели CloudFlare → Zero Trust → Access → Tunnels)
cloudflared tunnel login

# Создаём туннель и привязываем к домену
cloudflared tunnel create wp-site
cloudflared tunnel route dns wp-site example.com

# Запускаем в режиме сервиса
cloudflared service install wp-site

После старта ваш сайт будет доступен только через CloudFlare, а реальный IP‑адрес останется скрытым.

5. Rocket Loader и автоперепаковка скриптов

Rocket Loader ускоряет рендеринг страниц, отложенно загружая JavaScript. Включить его можно в панели CloudFlare → Speed → Optimization → Rocket Loader. При включении рекомендуется проверить совместимость с вашими плагинами, особенно теми, которые используют собственные скрипты в head.

Тонкая настройка

Если некоторые скрипты ломаются, добавьте к ним атрибут data-cfasync="false". Пример:

<script src="/wp-content/plugins/contact-form-7/includes/js/scripts.js" data-cfasync="false"></script>

6. Тестирование и мониторинг производительности

После всех правок проверьте, что кэш‑заголовки действительно отдаются от CloudFlare.

Проверка заголовков кэша

curl -I https://example.com/wp-content/uploads/image.jpg | grep -i "cache-control"
# Ожидаемый результат: Cache-Control: public, max-age=2592000

Для более глубокой диагностики используйте Оптимизацию базы данных WordPress и Оптимизацию изображений WordPress. Если ваш сервер работает на Nginx, не забудьте посмотреть настройку Nginx для WordPress – совместное кэширование Nginx и CloudFlare дает максимум скорости.

❓ Часто задаваемые вопросы

Как включить CloudFlare CDN только для медиа‑файлов?

Создайте Page Rule с шаблоном /wp-content/uploads/* и установите «Cache Level: Cache Everything» + «Edge Cache TTL: 1 month». Это кэширует изображения, CSS и JS, не трогая HTML.

Можно ли использовать CloudFlare WAF без платного плана?

Да, базовый набор правил доступен в бесплатном тарифе, но для полного набора «WordPress» и «Threat Management» потребуется план Pro или Business.

Влияет ли Argo Tunnel на SEO?

Нет, Argo Tunnel лишь скрывает реальный IP и ускоряет доставку через сеть CloudFlare. Поисковые боты видят обычный URL и получают те же заголовки, что и пользователи.

Почему после включения Rocket Loader часть скриптов перестала работать?

Rocket Loader откладывает выполнение JavaScript. Чтобы исключить скрипт из отложенной загрузки, добавьте атрибут data-cfasync="false" к его тегу <script>.