Cron Job Limit Exceeded – Quick Fixes That Actually Work
Hit the max cron job count on your hosting account? Here's how to clear the error fast, consolidate jobs, and raise the limit without waiting on support.
The 30-Second Fix: Check Your Current Cron Job Count
Before you do anything else, log into your hosting control panel and count your active cron jobs. The culprit here is almost always someone (or you) forgot about old jobs that are still running. In cPanel, go to Cron Jobs and look at the list. In Plesk, it's under Scheduled Tasks. If you're on a VPS, run crontab -l from the command line to see what's scheduled.
Most shared hosting plans cap cron jobs at 5 to 10. If you're over that, you will get the error. The fix? Delete anything that's no longer needed. Old backup scripts, abandoned maintenance tasks, test jobs—get rid of them. A quick crontab -r blows away everything for the current user, but be careful: that nukes all jobs, not just the junk.
Real-world trigger: I've seen this happen when a client set up a cron job for a plugin update check, then switched plugins. The old job kept running, eating up the limit. One delete, error gone.
The 5-Minute Fix: Consolidate Multiple Jobs Into One Script
If you're not over the limit but still getting the error, your host might enforce a run-time limit per job, not just a count. Some hosts limit the number of cron jobs that can execute simultaneously. If you have 10 jobs all set to run at the same minute, the server may reject them as a group.
Consolidate by combining related tasks into a single shell script. For example, instead of separate cron jobs for /usr/bin/php /home/user/backup_db.php and /usr/bin/php /home/user/cleanup_logs.php, create one script:
#!/bin/bash
php /home/user/backup_db.php
php /home/user/cleanup_logs.phpMake it executable with chmod +x /home/user/combined_jobs.sh. Then set one cron job to run that script. This cuts your cron job count in half instantly. You can consolidate more aggressively—I've compressed 12 jobs into 2 this way.
Pro tip: If your jobs need different schedules (e.g., backup daily, cleanup hourly), you can't always combine them. In that case, use the next fix.
The 15+ Minute Fix: Raise the Cron Job Limit
If you've cleaned up and consolidated and still need more room, you have to raise the limit. This depends on your hosting setup:
Shared Hosting (cPanel/Plesk)
Contact support. But don't just say “my cron limit is exceeded.” Give them a reason. I've had luck saying: “I need to run 15 monitoring scripts for client sites. Can you increase the cron job limit to 20?” Most hosts will bump it to 20 or even 50 if you ask politely and explain the use case. Some won't budge—then you're stuck or need to upgrade to a VPS.
If you have root access (VPS or dedicated), you can change the limit yourself.
VPS with cPanel/WHM
Log into WHM as root. Go to Server Configuration -> Tweak Settings -> System. Find Maximum number of cron jobs per user. Default is usually 10. Bump it to 50. Save. Repeat for any reseller accounts if needed.
For direct crontab limits on Linux, check /etc/security/limits.conf. Add a line like:
username hard maxjobs 100This sets a system-wide process limit, not just cron. Be careful—too high can kill performance. I keep it under 50 per user on general web servers.
Plesk (VPS)
In Plesk, the cron job limit is set per subscription. Go to Tools & Settings -> Service Plans -> pick your plan -> Permissions tab. Look for Maximum number of scheduled tasks. Increase it. Apply.
If you can't find it, run this command via SSH:
plesk bin subscription --update -limit-description scheduled-tasks -new-value 20 -domain yourdomain.comReplace 20 with whatever you need.
One more thing: Some hosts limit cron job frequency not count. If you see “Too many cron jobs in a short period,” that's a different error. For that, spread your jobs out—don't run 10 jobs all at * * * * *. Use different minutes or hours.
Bottom line: Start with the simple clean-up. It works 80% of the time. If not, consolidate. As a last resort, raise the limit. I've fixed this for dozens of clients, and I rarely need to go beyond step 2.
Was this solution helpful?