Введение
По умолчанию WordPress использует виртуальный планировщик WP-Cron. Он не работает как постоянный демон операционной системы, а пытается запуститься при каждом входящем HTTP-запросе посетителя сайта.
- Проблема: при высокой посещаемости частые запуски скрипта
wp-cron.phpперегружают процессор и замедляют отдачу страниц; при низкой посещаемости отложенные публикации, рассылки и бэкапы не выполняются часами из-за отсутствия трафика. - Решение: отключить встроенный виртуальный крон константой в
wp-config.phpи передать управление системному демонуcronоперационной системы или панели управления хостингом. - Результат: строго регулярный запуск фоновых задач по расписанию (например, каждые 5–10 минут) без нагрузки на посетителей и без задержек выполнения.
1. Отключение виртуального WP-Cron
Открываем конфигурационный файл в корне сайта wp-config.php и перед строкой:
/* That's all, stop editing! Happy publishing. */
добавляем директиву отключения:
define( 'DISABLE_WP_CRON', true );
После сохранения файла WordPress прекратит запускать проверку запланированных задач при визитах пользователей.
2. Настройка серверного планировщика cron
Теперь вызываем обработчик wp-cron.php на стороне сервера с фиксированным интервалом (рекомендуется раз в 5–10 минут).
2.1. Панель cPanel
- Перейдите в раздел Задания cron.
- В блоке Общие настройки выберите интервал:
Раз в пять минут (*/5 * * * *). - В поле Команда укажите:
wget -q -O - 'https://example.com/wp-cron.php?doing_wp_cron' >/dev/null 2>&1 - Нажмите кнопку сохранения и проверьте список активных заданий.
2.2. Панель Cloudways
- Перейдите в меню сервера и откройте Cron Job Management.
- Переключитесь на вкладку Advanced и в поле ADVANCED CRON добавьте строку:
*/5 * * * * wget -q -O - 'https://example.com/wp-cron.php?doing_wp_cron' >/dev/null 2>&1 - Сохраните изменения и проверьте статус задания.
2.3. Настройка через Linux Crontab (CLI)
Если сайт работает на чистом VPS/VDS без графической панели, откройте crontab пользователя веб-сервера:
crontab -e
Добавьте вызов через curl или напрямую через PHP CLI (что еще быстрее, так как не расходует веб-воркеры Nginx/Apache):
*/5 * * * * php /var/www/example/wp-cron.php >/dev/null 2>&1
Вывод
Перевод планировщика на уровень сервера — обязательный шаг для любого стабильного сайта на WordPress:
- Мгновенный отклик фронтенда: ни один входящий HTTP-запрос посетителя больше не подвисает в ожидании завершения фоновых задач.
- Пунктуальность очереди: отложенные публикации, чеки WooCommerce, отправка писем и синхронизация складов запускаются строго по расписанию независимо от трафика.
- Эффективность ресурсов: сервер выполняет обработчик ровно раз в 5 минут, а не десятки раз в секунду во время всплесков активности.



