Learn the difference between free and premium WordPress themes. Find out which one is right for your website with pros, cons, and tips.
Difference Between WordPress Cron Jobs and Server Cron Jobs

Confused Between WordPress Cron and Server Cron?
Learn their key differences, with real-world examples, pros, cons, and expert tips for better scheduling.
Table of Contents
- Introduction
- What is a WordPress Cron Job?
- What is a Server Cron Job?
- Key Differences Between WordPress and Server Cron Jobs
- Comparison Table
- Pros and Cons of WordPress Cron Jobs
- Pros and Cons of Server Cron Jobs
- PHP Example: WordPress Cron Job (Daily Email)
- PHP Example 2: Server Cron Job (Using PHP Script + SCP or Local Path)
- FAQ
Introduction
Cron jobs are tasks that run automatically at scheduled times. Both WordPress and your hosting server can schedule these jobs, but they work in different ways. This guide will help you understand the key differences and choose the best solution for your site.
What is a WordPress Cron Job?
A WordPress Cron Job (called wp-cron
) is a built-in system that runs scheduled tasks only when someone visits your site.
Example:
You schedule a blog post to publish at 2 PM. WordPress will only publish it when someone visits the site after 2 PM.
What is a Server Cron Job?
A Server Cron Job is managed by your hosting server. It runs tasks at fixed times, whether or not someone visits your website.
Example:
A server cron can back up your database at 2 AM—even if there’s no traffic on your site.
Key Differences Between WordPress and Server Cron Jobs
- WordPress cron depends on site visits
- Server cron uses server time and runs exactly when scheduled
- WordPress cron is easier to set up
- Server cron is more reliable and better for time-sensitive or heavy tasks
Comparison Table
Feature | WordPress Cron | Server Cron |
---|---|---|
Trigger Method | Site visits | Server time |
Accuracy | May delay | Runs exactly as scheduled |
Ease of Setup | Easy for beginners | Requires server access |
Hosting Type | Any hosting | VPS/Dedicated preferred |
Affects Page Load | Yes | No |
Best For | Light, low-impact tasks | Time-sensitive, heavy tasks |
Pros and Cons of WordPress Cron Jobs
✅ Advantages
- Easy Setup: No technical skills or cPanel access needed.
- Hosting Compatibility: Works on all shared hosting.
- Good for Low-Impact Tasks: Ideal for post scheduling, email alerts, etc.
❌ Disadvantages
- Traffic Dependent: No visitors = no task execution.
- Unreliable Timing: Can delay important actions.
- May Slow Pages: Tasks run during a page visit.
Pros and Cons of Server Cron Jobs
✅ Advantages
- Runs on Time: Executes exactly on schedule.
- Independent of WordPress: Doesn’t load WordPress.
- Precise Control: Can run every minute.
- No Impact on Speed: Doesn’t slow down your site.
❌ Disadvantages
- Needs Server Access: Requires cPanel or SSH.
- Error Risk: A small mistake can stop tasks.
- Limited on Shared Hosting: May be restricted to 15-minute intervals.
PHP Example 1: WordPress Cron Job (Daily Email)
This example sends a daily email to the site admin using WordPress’s built-in Cron system (wp-cron
).
// 1. Schedule a daily cron job
add_action( 'init', 'setup_daily_summary_cron' );
function setup_daily_summary_cron() {
if ( ! wp_next_scheduled( 'send_daily_summary_email' ) ) {
wp_schedule_event( time(), 'daily', 'send_daily_summary_email' );
}
}
// 2. Define the task
add_action( 'send_daily_summary_email', 'send_summary_email_to_admin' );
function send_summary_email_to_admin() {
$admin_email = get_option( 'admin_email' );
$subject = 'Daily Summary from Your WordPress Site';
$message = 'Hello Admin, this is your daily summary report.';
wp_mail( $admin_email, $subject, $message );
}
// 3. Unschedule the cron on theme switch
add_action( 'switch_theme', 'remove_daily_summary_cron' );
function remove_daily_summary_cron() {
$timestamp = wp_next_scheduled( 'send_daily_summary_email' );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, 'send_daily_summary_email' );
}
}
Tip: Use a server-side cron to call wp-cron.php
for better accuracy:
*/5 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
PHP Example 2: Server Cron Job (Using PHP Script + SCP or Local Path)
This is a server-side cron job that runs a custom PHP script every day at midnight, which can also transfer files via scp
.
Step 1: Your PHP Script (backup_and_send.php
)
<?php
// Local backup
$backup_file = '/var/www/html/backups/db-backup-' . date('Y-m-d') . '.sql';
exec("mysqldump -u root -pYourPassword your_database > $backup_file");
// Optional: Transfer via SCP
$remote_user = 'remoteuser';
$remote_host = 'your.server.com';
$remote_path = '/home/remoteuser/backups/';
exec("scp $backup_file $remote_user@$remote_host:$remote_path");
echo "Backup complete.";
Note: Make sure mysqldump
, scp
, and correct permissions are set.
Step 2: Create the Cron Job (on your server)
Add this line to your crontab (crontab -e
):
0 0 * * * /usr/bin/php /var/www/html/backup_and_send.php >/dev/null 2>&1
This will:
- Run the script every day at midnight
- Export a database backup
- Transfer it via SCP to another server
FAQ
Can I disable WordPress cron and use server cron instead?
Yes! Add define('DISABLE_WP_CRON', true);
to wp-config.php
, then trigger wp-cron.php
manually using server cron.
Which is better for backups – WordPress or server cron?
Server cron is better for backups because it’s not traffic-dependent.
Can I use both WordPress and server cron together?
Yes. Use WordPress cron for plugin tasks and server cron for critical timed scripts.
This Post Has 0 Comments