
Cron is a tool used in UNIX systems to run tasks at specific times on a server. WordPress has a built-in version of this tool called WP-Cron. It works similarly by handling tasks, such as checking for the latest updates, publishing scheduled posts, and doing other regular jobs automatically.
If you use WordPress, learning how to schedule tasks with WP-Cron can save you time on site management. This guide shows you how to set up and control WordPress cron jobs using a plugin and the WP-CLI tool. We’ll also discuss how WordPress cron works, how it differs from the standard UNIX cron system, and its pros and cons.
KEY TAKEAWAYS
- WP cron jobs only run when someone visits your website, which can delay tasks if traffic is low.
- Use the WP Crontrol plugin to easily view, add, or manage cron jobs without any coding.
- WP-CLI is a fast tool for developers to manage cron jobs using simple commands.
- Real cron jobs on the server are more accurate and don’t rely on website visits to run.
- You can disable WP-Cron and set up a server cron job using your hosting control panel or SSH.
- Adding cron jobs using cPanel is simple and lets you control when tasks run.
- Using the right method for your site ensures tasks run on time and your site stays healthy.
TABLE OF CONTENTS
WP-Cron vs System Cron vs Server Cron
WP-Cron is not the same as a system cron. While both do the job of running tasks on a schedule, they work differently. WP-Cron works based on time intervals (e.g., every hour or once a day), but it only runs when someone visits your site. That means if no one opens your website, the task may not run on time.
On the other hand, a system cron uses exact times and doesn’t wait for page visits. It runs based on the server clock, making it more reliable for tasks that must run on schedule. WordPress comes with a few default intervals you can use:
- Once an hour.
- Twice a day.
- Once a day.
- Once a week.
Some hosting providers, including Home Page, offer server-level cron jobs. This method doesn’t rely on site visits and is more reliable for running time-sensitive tasks. If your host provides this, you can check their support articles to learn how to set it up.
Benefits & Limitations of WP-Cron
As already mentioned, WP-Cron is used to run scheduled tasks, including checking for updates and more. It’s useful for handling background jobs without needing server tools or coding skills.
One big benefit of WP-Cron is that it’s easy to use. You don’t need to log into your hosting panel or work with complex commands. It runs automatically as part of WordPress, and you can manage it with plugins. This makes it ideal for beginners or site owners who want things to work without additional setup.
But there are some limitations. WP-Cron doesn’t run on its own. It only works when someone visits your website. That means if your Proven Tips On How To Increase Website Traffic, tasks may run late or not at all. On the other hand, if you get a lot of traffic, too many tasks may try to run simultaneously, which can slow down your site.
So, while WP cron job is handy and simple, it may not be the best choice for time-sensitive jobs or high-traffic sites. In those cases, setting up a real cron job on the server might be a better option.
Below is the comparison table to understand the difference quickly:
Feature | WP-Cron | System Cron | Server Cron |
Runs on visits | Yes | No | No |
Needs server access | No | Yes | Yes (control panel) |
Accurate timing | No | Yes | Yes |
Beginner-friendly | Yes (with plugins) | No | Yes |
Ideal for | Basic tasks & low-traffic sites | Large sites & advanced tasks | Most WordPress sites |
Manage WordPress Cron Jobs with WP Crontrol Plugin
The easiest way to handle cron jobs in WordPress is by using a plugin. You don’t need to write code or touch server settings. In this section, we use a free plugin called WP Crontrol. It provides a simple way to manage all your WordPress cron jobs without writing code.
WP Crontrol is a popular plugin that makes it easy to view and control what’s going on in your WordPress cron system. At the time of writing this tutorial, it has over 300,000 active users and a solid 4.5-star rating.

People in the WordPress world like this tool. It displays a list of all the cron jobs scheduled to run. You can trigger any job to run right away, edit them, or even delete the ones you don’t need. You can also create new cron events and change how often they run. It’s a great way to take control without coding.
To use this plugin, you need to install and activate it. Here’s how:
Install WP Crontrol Plugin
First, sign in to the WordPress Admin Dashboard Tips for Accessing and Using WP Admin. Go to Plugins → Add New, and search for WP Crontrol. Click Install Now and then Activate.

After activation, go to Tools → Cron Events. You’ll see a list of all cron jobs currently set up on your website.

IMPORTANT:
Don’t delete any WordPress cron jobs that begin with wp. These are part of WordPress itself and help your site run properly.
Add a New Cron Job in WordPress
Now that you’ve successfully installed and activated the plugin, you can add your own WordPress cron job. In the Cron Events tab, click Add New Cron Event at the top.

Choose Standard cron event. Enter a Hook Name for your task. Ensure it follows PHP naming conventions. Use only letters, numbers, and underscores. Then, choose when the event should take place and how frequently it should occur. Leave the Arguments box empty.
After that, click Add Event.

If it works, your new cron job will show up in the list.

Now tell WordPress what to do when that cron job runs. Go to WordPress Dashboard → Appearance → Theme File Editor and open functions.php.
Next, add this code to the bottom of the file:
add_action( 'custom_cron_hosted_website', 'hosted_custom_cron_func' );
function hosted_custom_cron_func() {
wp_mail( 'you@yourwebsite.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
This code sets up a scheduled email. When your custom cron event (custom_cron_hosted_website) runs, WordPress will send an email to the address you provided.
Inside the function, it uses wp_mail(), the WordPress built-in method for sending emails. The email is delivered to you@example.com, has the subject Automatic email and includes the message Automatic scheduled email from WordPress to test cron.
Use this setup to test if your WordPress cron job is working. If you get the email, it means everything is running properly. Just ensure use your real email address to replace the example:
you@example.com
Then, click Update File to save the file and reload your website.

If you receive the email, WordPress cron job is working.

Schedule WordPress Cron Jobs
To schedule your cron tasks in WordPress, you need to create custom hooks. This is quite advanced and usually involves writing code. If you want to learn this method, the official WordPress plugin handbook has a detailed guide that shows how to do it.
But if you’re not a developer, don’t worry. The WP Crontrol plugin includes some built-in time intervals, but you can also create your own.
Improve your website’s speed, security, and performance with Hosted.com’s powerful WordPress Hosting.
You’ll benefit from intuitive management tools and dedicated support whenever you need help.
To do this, go to Tools → Cron Events in your dashboard. Switch to Cron Schedules. Fill in the form under Add Cron Schedule. For example, if you want the job to run every 10 minutes, set the interval to 600 (this means 600 seconds).
Specify the Display Name. Ensure you use a simple PHP-style naming convention to write Interval Name; for example:
EXAMPLE: every_10_minutes
Then, click Add Cron Schedule. Your new interval will now appear in the list of available schedules on the right.

Edit an Existing Cron Event
You can now use the new interval in your custom cron jobs. To do this, return to Tools → Cron Events and find the event you created earlier.
Hover over your WordPress cron job and click Edit.

Open the Schedule dropdown and select your custom interval (e.g., 10 Minutes). Then click Update Event.

Now, your WordPress cron jobs will run according to the new timing you set.
Use WP-CLI to Manage WordPress Cron Jobs
If you’re comfortable using the command line, WP-CLI is a powerful way to manage WordPress cron jobs. WP-CLI stands for WordPress Command Line Interface. It allows you to control your site using simple text commands instead of navigating through the dashboard.
Also, using WP-CLI can save time and provide more control, especially if you manage several WP cron jobs or work on a large site. If you’re using WordPress Hosting, WP-CLI is already set up for you. So, you can connect to your hosting account through SSH.
Once connected, navigate to the root directory using:
cd public_html
Then, you can run the commands given below in this section:
List Scheduled Cron Events
To see all the WordPress cron jobs that are currently set up, use this command:
wp cron event list
This will show a table with the hook name, next run time, recurrence, and other details. It helps you check what tasks are scheduled and when they’ll run.

Add a New Cron Event
To schedule new WordPress cron jobs, you can run this command:
wp cron event schedule <hook> <next_run> --interval=<interval>
Here’s what each placeholder means:
- <hook> is the name of the function you want to run.
- <next_run> is the date and time when it should first run.
- –interval sets how often it runs. So, for the <interval> placeholder, you can use hourly, daily, or a custom interval value you’ve created.
For example:
wp cron event schedule custom_hook "2025-06-01 12:00:00" --interval=hourly
This command schedules custom_hook to start at noon on June 1, 2025, and run every hour after that.

Delete a Cron Event
If you want to remove a cron job, use this command:
wp cron event delete <hook>
Don’t forget to replace <hook> with the original hook name.

This deletes all scheduled events using that hook name. Be careful not to delete important system events. Also, if you want to explore more commands, execute the following command to see a list of available WP-CLI commands:
wp help
Setup Real WordPress Cron Jobs on the Server
WP-Cron is helpful, but it isn’t always the best choice for time-sensitive tasks. That’s because it only runs when someone visits your site. For better control and more accurate timing, set up a real cron job on your server.
However, before you set up a server-side cron job, you’ll need to turn off WP-Cron. To do that, open the wp-config.php file, found in your WordPress root folder. You can access this file:
Once the wp-config.php file is opened, add the following line of code anywhere above the line that says /* That’s all, stop editing! Happy publishing. */:
define('DISABLE_WP_CRON', true);
Then, click Save Changes if editing via File Manager. However, you need to How To Upload Files Using FileZillaHow To Upload Files Using FileZillaHow To Upload Files Using FileZilla.

This tells WordPress to stop using its built-in cron system, so your server’s cron job can take over.
Now it’s time to create the actual cron job on your server. You can do this from your Navigating WordPress Hosting Control Panels: A Primer or by using SSH if you’re comfortable with command-line tools.
Here’s how to set up a new cron job using SSH:
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Here’s what this command does:
- It visits your site’s wp-cron.php file located in the root directory.
- That file triggers WordPress to run any scheduled tasks.
- The extra part >/dev/null 2>&1 keeps the server from saving output or showing errors.
When setting up the WordPress cron job, decide how often it should run. Most people set it to every 5 or 10 minutes. That’s usually enough to keep WordPress tasks running on time without using too many server resources.
If How to Host a Website with Hosted.com, you can create WordPress cron jobs using cPanel. Here’s how:
How To Login To cPanel. Once you’re in, scroll down and click Cron Jobs under Advanced. This is where you’ll set up everything.

Inside the Cron Jobs settings page, you’ll find 2 main areas:
- For setting notifications.
- For adding new WordPress cron jobs.
Scroll down to the section named Add New Cron Job. Here, you’ll decide how often your WordPress cron job should run. You’ll see a dropdown menu called Common Settings. This menu offers ready-made options, such as once every minute, once an hour, or once a day. Select which fits your needs.
If you want more control, you can manually type the time fields below the dropdown. This is helpful if you need the task to run on a custom schedule.
After setting the time, you’ll need to tell the cron job what to do. In the Command field, type in the command that should run. This could involve triggering a script or visiting a specific URL.
We write the following command to send an automatic email for testing WordPress cron jobs:
echo "This is a test email sent by a cron job." | mail -s "Cron Job Email Test" you@example.com
Don’t forget to replace you@example.com with your email address.
Once everything is set up, click Add New Cron Job.

Now, your new cron job will appear under Current Cron Jobs on the same page. From here, you can see what’s running, edit the settings, or delete jobs you don’t need anymore.

If everything is set up correctly, you should receive an email.

NOTE:
All the Hosted.com servers operate on Coordinated Universal Time (UTC). To schedule a cron job for a specific time in your local time zone, you’ll need to convert that time to UTC. For instance, if you’re in Chicago (Central Time Zone) and want the task to run at 9 AM local time, you would need to add 5 hours and set it to run at 2 PM UTC.
![Simplify site management with WordPress Hosting from Hosted.com Strip Banner Text - Simplify site management with WordPress Hosting from Hosted.com. [Get started]](https://www.hosted.com/articles/wp-content/uploads/2025/06/wordpress-cron-job-02-1024x229.webp)
FAQS
Is it safe to delete WordPress cron jobs?
Only delete custom cron jobs you created or understand. Don’t delete default WordPress cron events (those with a wp_ prefix) because they’re necessary for your site to work properly.
How often should I run a real server cron job to trigger wp-cron.php?
Most site owners run it every 5 or 10 minutes. This keeps your tasks running smoothly without putting too much load on your server.
Can I manually run a WordPress cron job?
Yes. You can use the WP Crontrol plugin to manually run scheduled tasks. Developers can also trigger cron events using WP-CLI commands.
What’s the difference between scheduled and recurring WordPress cron jobs?
A scheduled WordPress cron job runs only once at a set time. However, a recurring cron job runs repeatedly at regular intervals, for instance, every hour or every day.
Can I use WP-Cron on a staging site?
Yes, but keep in mind that it won’t work unless someone visits the staging site. For accurate testing, trigger WP-Cron manually or use the WP Crontrol plugin.
Other Related Tutorials
– How to Reinstall WordPress: Troubleshooting Guide
– WordPress Recovery Mode: Everything You Need to Know
– 403 Forbidden Error Explained: Easy Fixes for Your Website
– How to Backup Your WordPress Site: A Comprehensive Guide
– How to Fix the WordPress 500 Internal Server Error