Как использовать WP-Cron для решения проблем с задержкой запусков задач в WordPress

Что такое WP-Cron и почему возникают задержки в запуске задач

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

Диагностика задержек WP-Cron

Чтобы проверить, работает ли WP-Cron корректно, можно воспользоваться следующими методами:

  • Проверить логи ошибок сервера на наличие ошибок при запуске wp-cron.php.
  • Использовать плагин WP Crontrol для просмотра запланированных задач и их статусов.
  • Отправить запрос к URL https://ваш_сайт/wp-cron.php?doing_wp_cron и проверить ответ сервера.

Пошаговое решение: настройка системного cron вместо WP-Cron

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

Шаг 1. Отключаем встроенный WP-Cron

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

define('DISABLE_WP_CRON', true);

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

Подключитесь к серверу по SSH и откройте crontab для редактирования:

crontab -e

Добавьте задачу запуска wp-cron.php каждые 5 минут (укажите путь к PHP и корню сайта):

*/5 * * * * /usr/bin/php /var/www/your-site-folder/wp-cron.php > /dev/null 2>&1
<

Если доступа к crontab нет, можно настроить cron через панель управления хостингом.

Шаг 3. Проверяем работу системного cron

Для проверки:

  • Убедитесь, что в WP Crontrol запланированные задачи имеют ожидаемое время запуска.
  • Проверьте логи сервера и убедитесь, что cron-задачи выполняются без ошибок.
  • Отложите публикацию записи и проверьте, что она опубликовалась в назначенное время.

Пример кода: программный запуск WP-Cron

Если нужно запустить все запланированные задачи вручную из кода, используйте:

if (function_exists('wp_cron')) {
    wp_cron();
}

Или вызовете запуск конкретного события через WP Crontrol или аналогичные функции.

Частые ошибки и как их исправить

  • Задачи не запускаются после отключения WP-Cron: проверьте правильность пути к PHP и скрипту в cron-задаче.
  • Ошибка 500 при запуске wp-cron.php: проверьте права доступа к файлам, расширения PHP и логи сервера.
  • Задержки при низком трафике: используйте системный cron вместо встроенного WP-Cron.

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

  • Ограничьте доступ к wp-cron.php, если используете системный cron, чтобы исключить внешние запуски (например, через .htaccess).
  • Не устанавливайте слишком частый запуск cron (частее 1 раза в 5 минут) — это нагрузит сервер.
  • Используйте плагин Clearfy Pro для оптимизации работы WP-Cron и отключения ненужных задач (подробнее на wpshop.ru).

Сравнение вариантов запуска WP-Cron

Метод запускаПлюсыМинусы
Встроенный WP-CronНе требует настроек, запускается автоматически при посещении сайтаЗадержки при низком трафике, нестабильность
Системный cronСтабильный и точный запуск по расписаниюТребует доступа к серверу и настройки
Внешние сервисы (например, EasyCron)Подходит для хостингов без доступа к cronДополнительные расходы, зависимость от сервиса
Как использовать WP-Cron для решения проблем с задержкой запусков задач в WordPress
18.04.2026
Как использовать REST API для создания кастомных эндпоинтов в WordPress
06.12.2025
Как сделать уникальный meta description в WordPress автоматически
02.02.2026
Как отладить и исправить ошибку 500 в WordPress
03.04.2026
Как создать уникальные ссылки для автоматического редиректа в WordPress
19.02.2026