Running WP-Cron Properly on a Kinsta WordPress Multisite
February 21, 2026 • Bojan
February 21, 2026 • Bojan

On Kinsta, scheduled WordPress tasks are normally triggered by a server level cron that calls wp-cron.php at fixed intervals.
That works well for single site installations.
For WordPress Multisite, applications that depend on reliable background processing often need a different approach. A single wp-cron.php request does not always execute scheduled events for every subsite in a predictable way.
For systems that run queues, scheduled integrations, or time sensitive jobs, the correct method is to use WP-CLI and explicitly run cron for each site in the network.
This guide describes a production safe configuration for Kinsta.
Each WordPress environment runs inside a container. You have:
By default Kinsta registers a cron that periodically requests:
https://localhost/wp-cron.php
This triggers WordPress cron for the primary site.
For multisite networks, this does not guarantee consistent execution for every subsite.
You should replace the default trigger if:
In wp-config.php:
define('DISABLE_WP_CRON', true);
This prevents cron from running during frontend requests and avoids unnecessary PHP worker usage.
Create a shell script inside the container, outside the public web directory.
Example:
#!/bin/bash
export PATH="/usr/local/bin:/usr/bin:/bin"
cd /path/to/wordpress/root || exit 1
wp site list --field=url | while read -r url; do
wp cron event run --due-now --url="$url" --quiet || true
done
Make the script executable:
chmod +x /path/to/run-multisite-cron.sh
Edit the crontab:
crontab -e
Add:
MAILTO=""
*/5 * * * * /path/to/run-multisite-cron.sh >/dev/null 2>&1
Disable or comment out the default Kinsta cron that calls wp-cron.php. Only one cron trigger should exist.
Running both will cause duplicate execution.
For verification:
*/5 * * * * /path/to/run-multisite-cron.sh >> /path/to/cron.log 2>&1
Then inspect:
tail -f /path/to/cron.log
After confirming correct execution, output can be redirected to /dev/null.
You can manually execute the script through SSH. A correct setup will:
This confirms that the server cron is functioning.
If output shows database errors related to missing custom tables, the cron system is working.
This indicates an application level issue such as:
Cron is only the trigger.
For most production multisite systems on Kinsta:
Every five minutes is appropriate.
More frequent execution should only be used for real queue processing.
define('DISABLE_WP_CRON', true);
MAILTO=""
*/5 * * * * /path/to/run-multisite-cron.sh >/dev/null 2>&1
A WP-CLI script that loops through subsites and runs due events.
With this configuration:
This is the correct approach for running WordPress Multisite with application style workloads on Kinsta.

I’m Bojan Josifoski - Co-Founder and the creator of SampleHQ, a multi-tenant SaaS platform for packaging and label manufacturers.