How to automate routine WordPress tasks with scheduled tasks

By Noiz / 19th October 2026 | 5 min

WordPress already has a scheduler, and Plesk has another, so most routine WordPress work can run on its own without an automation plugin. This guide shows you how to run WordPress's own scheduled jobs on a fixed timetable, no more often than every two hours, instead of whenever someone visits. It is written for a Noiz client on sLegacy or sPremium.

Last reviewed: 19 October 2026, against the current WordPress release and Plesk Obsidian. This guide is written for Noiz hosting and is kept current against WordPress and Plesk. It complements, and does not replace, the official documentation linked below.

Official Documentation Reference

How WordPress Runs Its Own Jobs

WordPress keeps a list of jobs with a time for each: publish a scheduled post, check for updates, delete old drafts, send a plugin's daily email. This is WP-Cron. It has no clock of its own. Every time a page is loaded, WordPress checks the list and runs whatever is due.

That causes two problems:

  • On a quiet site, jobs run late. A post scheduled for 07:00 goes out when the first visitor of the day arrives.
  • On a busy site, the check adds work to page loads, and a slow job can hold up the visitor who happened to trigger it.

The fix is to switch off the on-visit check and let Plesk run WP-Cron on a timetable.

How Often Scheduled Tasks May Run on Noiz Shared Hosting

Our Acceptable Use Policy says a scheduled task on shared hosting must not run more often than every two hours, and asks you to keep heavy jobs gentle. Every timetable in this guide runs once every two hours. It means a scheduled post can go out up to two hours after its set time. If exact timing matters more than the saving, for example an announcement that must appear at a set minute, leave WP-Cron on its normal on-visit check and skip Steps 1 and 2.

Before You Start

  • You can log in to Plesk and to WordPress as an Administrator.
  • Your WordPress site runs over HTTPS and loads normally.

Step 1: Switch Off the On-Visit Check

On sPremium, with WP Toolkit

  1. In Plesk, go to WordPress and find your site's card.
  2. Turn on Take over wp-cron.php. WP Toolkit switches off the on-visit check and creates a Plesk scheduled task to run WP-Cron instead.
  3. WP Toolkit's task runs every 30 minutes by default. Select the tune icon next to Create a replacement task when takeover is initiated, which opens Scheduled Tasks, and change the task to run every two hours.

On sLegacy, by hand

  1. In Plesk, open Files and edit your site's wp-config.php.
  2. Above the line that says to stop editing, add:
define( 'DISABLE_WP_CRON', true );
  1. Save the file, then go on to Step 2.

Step 2: Run WP-Cron From Plesk (sLegacy)

On sPremium, WP Toolkit has already done this step for you, so go on to the check at the end of this step.

  1. In Plesk, go to Websites & Domains > Scheduled Tasks and select Add Task.
  2. Choose Run a PHP script.
  3. In the script path, enter your site's folder followed by /wp-cron.php, for example httpdocs/wp-cron.php. The path starts from your subscription's home folder. Your site's folder is often httpdocs or public_html; Files in Plesk shows which.
  4. Choose the same PHP version your site uses.
  5. Set the task to run every two hours, for example with the cron-style schedule 0 */2 * * *.
  6. Set notifications to errors only, so you hear about failures and nothing else.
  7. Select Run Now to test it, then OK to save.

Check the next morning that a scheduled post went out and that Dashboard > Updates shows a recent check.

Automation Beyond Your Own Site

Workflows that join WordPress to other services (a new order to a spreadsheet, a form entry to a chat channel) are the job of an automation tool rather than a scheduled task. Self-hosted tools such as n8n run as their own program all day, which shared hosting does not allow, so they need a server of their own. n8n is source-available under its own licence rather than open source, and its WordPress connection covers posts, pages and users. If you are at that point, get in touch.

Troubleshooting

  • Scheduled posts show "Missed schedule": WP-Cron is switched off and no task is running it. Check the task exists, is active, and that Run Now succeeds.
  • The task emails "Could not open input file": the script path is wrong. It starts from your subscription's home folder, so it begins with your site's folder name, such as httpdocs/ or public_html/.
  • The Take over wp-cron.php switch is missing: your site is not on sPremium. Use the sLegacy steps.

Let Noiz Do the Upkeep

WordPress Care covers the routine work: weekly updates of core, plugins and themes with a restore point first, and checks after each cycle.