Как отключить автостарт WP-Cron и настроить запуск через системный cron

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

Почему стоит отключить автостарт WP-Cron?

Автостарт WP-Cron запускается при каждом посещении сайта, что неэффективно. На сайтах с большой нагрузкой это может замедлять отклик сервера, а на сайтах с редким трафиком — задачи могут не запускаться своевременно.

Отключение автостарта и перенастройка на системный cron позволяет запускать задачи по расписанию с точностью и без зависимости от посещаемости сайта. Кроме того, это снижает нагрузку на PHP и базу данных.

Как отключить автостарт WP-Cron

Для отключения автостарта WP-Cron нужно в файл wp-config.php добавить следующую строку перед строкой /* That's all, stop editing! Happy blogging. */:

define('DISABLE_WP_CRON', true);

Это полностью отключит автоматический запуск WP-Cron при обращении к сайту.

Настройка системного cron для запуска WP-Cron

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

Шаг 1. Создание cron-задачи

Откройте терминал и выполните команду для редактирования crontab:

crontab -e

Добавьте в файл следующую строку, чтобы запускать WP-Cron каждые 5 минут (можно настроить интервал по необходимости):

*/5 * * * * wget -q -O - https://ваш-сайт.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1
<

Или вместо wget использовать curl:

*/5 * * * * curl -s https://ваш-сайт.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Шаг 2. Проверка работы cron

После добавления задания в crontab, убедитесь, что задачи WP-Cron выполняются корректно. Для этого можно использовать плагины, например, Clearfy Pro, который позволяет мониторить активность cron и оптимизировать задачи.

Пример функции для проверки статуса WP-Cron в WordPress

Чтобы программно проверить, запланированы ли задачи WP-Cron, можно использовать следующий код, который удобно добавить в файл functions.php вашей темы или в отдельный плагин:

function wpfinder_check_wp_cron_events() {
    $crons = _get_cron_array();
    if (empty($crons)) {
        echo 'WP-Cron не содержит запланированных задач.';
        return;
    }
    echo '<ul>';
    foreach ($crons as $timestamp => $cronhooks) {
        foreach ($cronhooks as $hook => $events) {
            foreach ($events as $event) {
                echo '<li>Задача: ' . esc_html($hook) . ' - Запланирована на: ' . date('Y-m-d H:i:s', $timestamp) . '</li>';
            }
        }
    }
    echo '</ul>';
}

Вызовите функцию wpfinder_check_wp_cron_events() для вывода списка запланированных задач.

Рекомендации по оптимизации WP-Cron

Чтобы WP-Cron работал максимально эффективно, учитывайте следующие моменты:

  • Запускайте cron с интервалом не чаще, чем необходимо, например, 5–15 минут.
  • Используйте плагины для мониторинга и управления cron-задачами, например, Clearfy Pro или WPRemark.
  • Проверяйте, нет ли конфликтов между плагинами, которые создают слишком много cron-задач.
  • Очищайте устаревшие или неиспользуемые задачи через админку или программно.

Обработка ошибок и логирование

Для отладки cron-заданий полезно настроить логирование ошибок. Можно добавить в wp-config.php следующие строки:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Логи будут сохраняться в файле wp-content/debug.log, что позволит отслеживать ошибки, связанные с WP-Cron.

Заключение

Отключение автостарта WP-Cron и переход на системный cron — необходимая практика для улучшения производительности и стабильности WordPress-сайтов, особенно на коммерческих и посещаемых ресурсах. Настройка системного cron проста и позволяет точно контролировать выполнение фоновых задач.

Рекомендуется использовать вместе с этой настройкой плагины для мониторинга и оптимизации, такие как Clearfy Pro, чтобы избежать избыточных и конфликтных cron-задач.

Как удалить старые медиа файлы в WordPress автоматически
16.03.2026
Как создать динамическое меню в WordPress с применением хуков
12.03.2026
Как безопасно удалить неиспользуемые таблицы из базы данных WordPress
15.12.2025
Как удалить неиспользуемые таблицы базы данных в WordPress безопасно и быстро
02.03.2026
Как изменить размер изображений в WordPress без создания новых файлов
19.02.2026