Как настроить системный cron вместо встроенного WP‑Cron

Разберём пошагово, как это сделать. Это решит проблемы с тайм‑аутами и петлевыми запросами.

Вариант 1. Через панель хостинга (cPanel, ISPmanager и т. п.)

Для cPanel

  1. Войдите в cPanel → найдите раздел Cron Jobs.
  2. В поле Common Settings выберите:
    Every 15 minutes (каждые 15 мин).
  3. В поле Command вставьте:
    wget -q -O - https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    

    Замените ВАШ-САЙТ.RU на домен вашего сайта.

  4. Нажмите Add New Cron Job.

Для ISPmanager

  1. Перейдите: Планировщик CRONСоздать.
  2. В поле Команда укажите:
    curl -s https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    
  3. В расписании выберите:
    • Минуты: */15
    • Остальные поля: * (звёздочка).
  4. Сохраните.

Вариант 2. Через консоль (SSH)

Если у вас есть доступ к серверу по SSH:

  1. Откройте терминал и выполните:
    crontab -e
    
  2. В редакторе (обычно vi или nano) добавьте строку:
    */15 * * * * curl -s https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    
  3. Сохраните и выйдите:
    • В nano: Ctrl + O → Enter → Ctrl + X.
    • В vi: нажмите Esc, введите :wq, нажмите Enter.

Что означают параметры

  • */15 * * * * — запускать каждые 15 минут;
  • curl -s — тихо выполнить HTTP‑запрос (без вывода в консоль);
  • https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron — URL для запуска WP‑Cron;
  • >/dev/null 2>&1 — скрыть вывод и ошибки (чтобы не засорять почту).

Какие команды использовать

Выбирайте одну из этих команд (все работают, но curl предпочтительнее):

  1. Через curl (рекомендуется):
    curl -s https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    
  2. Через wget:
    wget -q -O - https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron >/dev/null 2>&1
    
  3. Через PHP‑интерпретатор (если нужен полный контроль):
    php /путь/к/сайту/wp-cron.php
    

    (укажите полный путь к файлу wp-cron.php на сервере).

Как проверить работу

  1. Через лог cron (если есть доступ):
    grep CRON /var/log/syslog
    

    (ищите строки с wp-cron).

  2. Через плагин (например, WP Control):
    • Установите плагин → перейдите: Инструменты → Cron Events.
    • Проверьте, что задачи выполняются по расписанию.
  3. Вручную — откройте в браузере:
    https://ВАШ-САЙТ.RU/wp-cron.php?doing_wp_cron
    

    Если страница пустая (без ошибок) — скрипт работает.

Важные нюансы

  1. HTTPS vs HTTP
    Используйте https://, если сайт работает через SSL. Иначе запрос может не пройти.
  2. Путь к файлу
    Если сайт в подкаталоге (например, example.com/blog/), укажите полный путь:

    https://example.com/blog/wp-cron.php?doing_wp_cron
    
  3. Ограничения хостинга
    Некоторые хостинги:

    • блокируют внешние запросы к wp-cron.php;
    • требуют использовать только php‑команды.
      Уточните у поддержки, если cron не запускается.
  4. Тестирование
    После настройки:

    • подождите 15–30 минут;
    • проверьте, выполняются ли запланированные задачи (например, отложенные посты).

Итог

  1. Отключите WP‑Cron в wp-config.php:
    define('DISABLE_WP_CRON', true);
    
  2. Настройте системный cron одним из способов выше (каждые 15 мин).
  3. Проверьте работу через плагин или вручную.

Результат:

  • исчезнут ошибки REST API (cURL error 28);
  • стабилизируется кеширование;
  • снизится нагрузка на сервер.

 

Буду рада, если мои наработки помогут вам в ваших задачах.

Всех обняла, Alla❤️WP

Пишите вопросы в комментариях или в группе в тг: https://t.me/wordpress71/8

Готово!
Есть вопросы?

Вы не можете скопировать содержимое этой страницы

Я — дизайнер и веб-разработчик с обширным опытом.

Создаю для клиентов всё, что нужно для успешного бизнеса: от логотипа и визитной карточки до сайта и страниц в соцсетях.