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>.