Как избежать проблем с отключением WP-Cron в WordPress

Что такое WP-Cron и зачем его отключают

В WordPress WP-Cron отвечает за запуск запланированных задач: публикацию отложенных постов, очистку временных данных, обновления и многое другое. Однако у WP-Cron есть ограничение — он запускается только при обращении к сайту, из-за чего на сайтах с низкой посещаемостью задачи могут не выполняться вовремя. Поэтому иногда WP-Cron отключают в wp-config.php и заменяют системным cron'ом для надежности.

Диагностика проблем после отключения WP-Cron

После добавления в wp-config.php строки define('DISABLE_WP_CRON', true); некоторые задачи могут перестать выполняться. Чтобы проверить, работает ли система планировщика, выполните следующие шаги:

  • Проверьте наличие запланированных задач через плагин WP Crontrol.
  • Запустите вручную системный cron (если настроен) и проверьте логи сервера.
  • Проверьте запланированные задачи в базе данных в таблице wp_options с ключом cron.

Пример проверки задач через WP-CLI

wp cron event list

Если список пуст или задачи не запускаются, причина в отключении WP-Cron без настройки системного cron.

Пошаговое решение: как правильно отключить WP-Cron и настроить системный cron

1. Отключаем WP-Cron

define('DISABLE_WP_CRON', true); // В файле wp-config.php перед строкой /* That's all, stop editing! */

2. Настраиваем системный cron на сервере

Выполните команду для редактирования crontab (на Unix-серверах):

crontab -e

Добавьте задачу, которая будет запускать WP-Cron каждые 5 минут:

*/5 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Или используйте curl:

*/5 * * * * curl --silent https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Замените https://example.com на URL вашего сайта.

3. Проверяем работу

  • Через WP-CLI проверяем список запланированных задач.
  • Имитируем запуск cron вручную:
    wp cron event run --due-now
  • Проверяем логи сервера на наличие ошибок.

Как проверить, что решение сработало

  • Отложенные публикации выходят в запланированное время.
  • Плагины, зависящие от cron-задач (например, Clearfy Pro для очистки), выполняют свои функции.
  • Время последнего запуска cron в базе данных обновляется (можно проверить через WP Crontrol).

Частые ошибки при отключении WP-Cron и их исправление

  • Ошибка: Добавлена строка define('DISABLE_WP_CRON', true);, но системный cron не настроен.
    Решение: Настроить системный cron, как описано выше.
  • Ошибка: Использование HTTP вместо HTTPS в cron-запросе, если сайт работает на HTTPS.
    Решение: Используйте корректный протокол в URL.
  • Ошибка: Сервер блокирует запросы к wp-cron.php (например, firewall или правила .htaccess).
    Решение: Проверьте настройки firewall и .htaccess, добавьте исключения для wp-cron.php.
  • Ошибка: Cron-запрос выполняется с ошибками из-за необходимости аутентификации или редиректов.
    Решение: Убедитесь, что запросы к wp-cron.php доступны без авторизации и корректно обрабатываются сервером.

Практические советы по безопасности и производительности

  • Используйте системный cron вместо WP-Cron на продакшен-сайтах с высокой нагрузкой.
  • Не ставьте cron с интервалом менее 5 минут, чтобы не создавать лишнюю нагрузку.
  • Если на сайте много задач, рассмотрите использование плагинов для управления очередью cron (например, WP Crontrol).
  • Отключайте WP-Cron только после тщательной проверки и настройки системного cron.

Сравнение вариантов запуска cron в WordPress

МетодПлюсыМинусы
WP-Cron (по умолчанию)Простая настройка, работает сразуЗависит от посещаемости сайта, нерегулярные запуски
Отключение WP-Cron + системный cronНадежный запуск, подходит для сайтов с низкой посещаемостьюТребует доступа к серверу и навыков настройки cron
Плагины для управления cronУдобный интерфейс, контроль задачДополнительная нагрузка, возможные конфликты
Автоматическое добавление атрибутов alt к изображениям WordPress
27.01.2026
Как использовать REST API WordPress для автоматизации задач
15.12.2025
Автоматическое создание категорий и подкатегорий в WordPress с примером кода
31.01.2026
WooCommerce: как автоматически изменять статус заказа по условиям
29.05.2026
Как автоматизировать удаление старого контента в WordPress с помощью Cron и плагинов
02.03.2026