Cronjob.de › Guides › WooCommerce
Setting up a WooCommerce cronjob: the Action Scheduler on a fixed interval
To make WooCommerce handle its background tasks on time, disable WP-Cron in wp-config.php and have https://your-shop.com/wp-cron.php called from outside every minute. The Action Scheduler then processes pending actions every minute, even at night when nobody is in the shop. You need neither a command line nor code.
Updated:
Why at all
The Action Scheduler waits for visitors
WooCommerce and many extensions put background tasks into the Action Scheduler as scheduled actions. WooCommerce Subscriptions, for example, processes its scheduled events such as renewals this way, according to its own documentation. According to the Action Scheduler FAQ, the queue is started by WP-Cron by default, and also on requests in the admin area.
WP-Cron in turn only starts when somebody opens a page. If nobody visits the shop at night and nobody works in the admin area, due actions are left waiting until the next visit. The WooCommerce Subscriptions documentation names several past-due actions older than a day as a possible sign of a WP-Cron problem.
On top of that, the Action Scheduler processes batches of 25 actions by default per run and stops after 30 seconds. A backlog therefore takes many runs, and without a fixed interval each of them needs another visitor. A call from outside every minute breaks that cycle, without a different hosting package and without writing plugin code.
- URL to call
https://ihr-shop.de/wp-cron.php- Recommended interval
- every minute
- Tested with
- WooCommerce 8.x bis 11.x
- Sufficient Cronjob.de plan
- For a shop the one-minute interval from Cronjob.de Plus is the right choice. The free plan with five minutes works, but background tasks may then be delayed by up to five minutes.
Setup
Step by step
The AI does it faster
You do not have to transfer any of this by hand. Paste this guide – or the one for your own system – into the assistant, and Cronjob.de fills in address, method, schedule and headers. Where something is unclear it asks instead of guessing. At the end you see what was entered and create the job with one click.
Included in the free plan at no extra cost. You will find it after signing in under "Cronjobs" → "Create with AI".
-
Disable WP-Cron in wp-config.php
Add the following line to
wp-config.phpabove the comment/* That’s all, stop editing! */. WordPress then no longer kicks off WP-Cron on page views. From now on the call from outside alone sets the pace.define( 'DISABLE_WP_CRON', true );
-
Look at the backlog in the shop
Open
WooCommerce › Status › Scheduled Actions. The "Pending" and "Past-due" filters show how many actions are waiting. According to WooCommerce, a few past-due actions are not unusual. Many that are older than a day suggest that WP-Cron is not running regularly. -
Check the address
Open
https://your-shop.com/wp-cron.phpin a browser once. A blank white page is correct. An error or a password prompt usually means a security plugin, directory protection or a rule in .htaccess is blocking it. -
Create an account at Cronjob.de
Registration takes a minute and is free. The first 14 days run on the Unlimited plan, with the one-minute interval and the call log. So you see right away whether the backlog is shrinking.
Start for free 14 days of Unlimited included, no payment details
-
Create a cronjob on a one-minute interval
Enter the address and choose every minute, by clicking or as a sentence for the AI assistant. Keep the method on GET. Every minute is exactly right: the Action Scheduler schedules its own WP-Cron run every minute, and WordPress locks a running WP-Cron against a second start for 60 seconds by default.
* * * * *
You can enter this expression at Cronjob.de exactly as it is – the schedule field understands crontab notation. But you do not have to know it: simply click the schedule together instead.
-
Switch on notifications
Enter an email address under Notifications. For a shop this is the most important step: if the Action Scheduler stalls, you often only find out from customers. Failure notifications by email are included from the Plus plan, and free during the first 14 days.
What the five fields of an expression like */5 * * * * mean is explained in the crontab reference – with examples and the most common pitfalls. You can build the expression in the crontab generator. Whether you need an outside service at all is shown in the comparison of the three ways.
Verification
Is it actually running?
The check is in WooCommerce › Status › Scheduled Actions: the "Past-due" number has to fall, and "Complete" shows fresh timestamps. The Cronjob.de call log shows the same minutes with status 200. A very short runtime is normal, because on many servers wp-cron.php closes the connection right away and keeps working afterwards.
FAQ
Common questions about WooCommerce
- Why are WooCommerce subscriptions not renewed on time?
- WooCommerce Subscriptions processes renewals as scheduled actions in the Action Scheduler, which starts through WP-Cron by default. Without visitors and without a fixed interval these actions are left waiting. Check under WooCommerce › Status › Scheduled Actions whether renewals show as "Past-due", and set up a call to wp-cron.php every minute.
- Is the free plan enough for a shop?
- It works, but delays due actions by up to five minutes. For a shop with a few orders a day that is often bearable. As soon as subscriptions or extensions with many scheduled actions are involved, we recommend the one-minute interval from the Plus plan.
- I have thousands of pending actions. What now?
- Set up the fixed interval first, then watch. By default the Action Scheduler processes batches of 25 actions per run, for at most 30 seconds, and clears the backlog step by step. If the number does not fall, look under "Failed" and in the log column of the actions to see which one reports an error.
- Do I also need the WordPress guide?
- No, this one covers everything. The difference is the interval: WordPress on its own usually copes well with five minutes, for a shop we recommend every minute.
- Does this work with caching plugins?
- Yes.
wp-cron.phpitself sends headers that forbid caching (Cache-Control: no-cache). Just make sure a security plugin or firewall is not blocking the file. That is a common cause of error 403. - What about maintenance mode?
- In maintenance mode many plugins intercept every request, including this one. Exempt
wp-cron.phpthere, otherwise everything piles up during maintenance.
Cronjob.de
in the user agent. Ask your host for an exception for it; that is more reliable than allowing IP addresses, because ours can change. Addresses and details in the FAQ.
Other errors such as 401, 404 or 500 are explained in the troubleshooting guide.
Create your cronjob now
Create an account, enter the address, click the schedule. Five cronjobs are free forever, the first 14 days run on the Unlimited plan.
Start for free See pricingMore guides
- Webspace
- Windows
- WordPress
- Nextcloud
- Contao
- Drupal
- Joomla
- All-Inkl (KAS)
- STRATO
- IONOS
- Matomo
- Dolibarr
- phpList
- SuperWebMailer
- Firefly III
- Host Europe
- Hetzner Webhosting
- Gambio
- Shopware
- JTL-Shop
- PrestaShop
- Moodle
- WP All Import
- Doofinder
- GitHub Actions
- MySQLDumper
Official documentation of WooCommerce
The details about WooCommerce come from their own documentation, as of October 2026. Please check there whether anything has changed since. WooCommerce is a trademark of its respective owner. This guide comes from Cronjob.de and has no business relationship with that provider.
By Joscha Schultze, operator of Cronjob.de · Written with AI assistance, provider details checked against their official pages.