Τα Cron Jobs είναι αυτοματοποιημένες εργασίες που εκτελούνται σε προκαθορισμένα χρονικά διαστήματα στον διακομιστή (server). Στο WordPress και σε άλλες πλατφόρμες, είναι απαραίτητα για εργασίες όπως η δημοσίευση προγραμματισμένων άρθρων, η λήψη backups και η αποστολή newsletters.
1. Οδηγός Cron Jobs στο WordPress
Το WordPress διαθέτει ένα “ψευδο-cron” σύστημα που ονομάζεται WP-Cron.
Πώς λειτουργεί το WP-Cron;
Αντί να τρέχει συνεχώς στο παρασκήνιο, το WP-Cron ενεργοποιείται μόνο όταν κάποιος επισκέπτεται τη σελίδα σας.
- Πρόβλημα: Αν το site σας δεν έχει κίνηση, οι προγραμματισμένες εργασίες (π.χ. ένα backup) δεν θα εκτελεστούν στην ώρα τους.
- Πρόβλημα 2: Σε site με τεράστια κίνηση, το WP-Cron μπορεί να επιβαρύνει τον server.
Πώς να ρυθμίσετε “Πραγματικό” Cron Job (Προτεινόμενο)
Για μέγιστη αξιοπιστία, απενεργοποιούμε το WP-Cron και χρησιμοποιούμε το σύστημα του server (Linux Crontab):
- Ανοίξτε το αρχείο
wp-config.phpκαι προσθέστε:define('DISABLE_WP_CRON', true); - Στο πάνελ του hosting σας (cPanel/Plesk), δημιουργήστε ένα Cron Job που να τρέχει κάθε 5-15 λεπτά με την εντολή:
wget -q -O - http://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
2. Cron Jobs σε Άλλες Πλατφόρμες
- Laravel: Χρησιμοποιεί το “Task Scheduler”. Χρειάζεται μόνο μία εγγραφή στο server cron:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1. - Node.js: Χρησιμοποιούνται βιβλιοθήκες όπως η
node-cron. - Python: Συχνά χρησιμοποιείται το
Celeryή απευθείας το Linux crontab.
3. Σύγκριση Top 10 Online Cron Services (2026)
Αν δεν έχετε πρόσβαση στον server ή θέλετε εξωτερικό έλεγχο, αυτές οι υπηρεσίες “χτυπούν” το URL σας την ώρα που θέλετε.
| Υπηρεσία | Δωρεάν Πλάνο | Premium (Starting) | Κύριο Χαρακτηριστικό | Link |
| 1. Cron-job.org | Απεριόριστα | Δωρεές | Εντελώς δωρεάν, εξαιρετικά αξιόπιστο. | Link |
| 2. UptimeRobot | 50 monitors | $7/μήνα | Συνδυάζει uptime monitoring & cron. | Link |
| 3. Cronitor | 5 jobs | $25/μήνα | Εστίαση σε analytics και alerts. | Link |
| 4. FastCron | 7 ημέρες trial | $1/μήνα | Πολύ φθηνό, εξειδικευμένο για WP. | Link |
| 5. EasyCron | Περιορισμένο | $8/έτος | Υποστηρίζει execution logs & hooks. | Link |
| 6. Healthchecks.io | 20 jobs | $20/μήνα | “Silent” monitoring (περιμένει σήμα από εσάς). | Link |
| 7. Google Cloud Scheduler | 3 jobs/μήνα | $0.10/job | Enterprise λύση για developers. | Link |
| 8. SetCronJob | Όχι | $10/έτος | Απλό, παλιό και δοκιμασμένο. | Link |
| 9. Pipedream | 100 events/μέρα | $19/μήνα | Για σύνθετα workflows (low-code). | Link |
| 10. Cronhub | 2 jobs | $19/μήνα | Όμορφο UI, ιδανικό για ομάδες. | Link |
Ποιο να επιλέξετε;
- Για WordPress Blog: Το Cron-job.org είναι η καλύτερη δωρεάν λύση.
- Για E-commerce / Σοβαρά Project: Το FastCron ή το EasyCron προσφέρουν καλύτερο logging (ιστορικό) για να ξέρετε αν κάτι απέτυχε.
- Για Developers: Το Cronitor ή το Healthchecks.io προσφέρουν τα καλύτερα εργαλεία εντοπισμού σφαλμάτων.
Αφού είδαμε τις υπηρεσίες και τη βασική θεωρία, ας περάσουμε στο τεχνικό κομμάτι της υλοποίησης, γιατί εκεί συνήθως γίνεται το μπέρδεμα με τους χρόνους και τα logs.
4. Πώς να ρυθμίσετε σωστά έναν Cron Job (Syntax)
Αν αποφασίσετε να χρησιμοποιήσετε το πάνελ του server σας (cPanel) ή το τερματικό (Linux), η σύνταξη ακολουθεί πάντα το πρότυπο των 5 αστεριών:
* * * * * [command]
| Αστεράκι | Σημασία | Τιμές |
| 1ο | Λεπτά | 0 – 59 |
| 2ο | Ώρες | 0 – 23 |
| 3ο | Ημέρα Μήνα | 1 – 31 |
| 4ο | Μήνας | 1 – 12 |
| 5ο | Ημέρα Εβδομάδας | 0 – 6 (0 = Κυριακή) |
Παραδείγματα:
0 * * * *: Τρέχει κάθε ώρα ακριβώς.0 0 * * *: Τρέχει κάθε μεσάνυχτα.*/15 * * * *: Τρέχει κάθε 15 λεπτά.
5. Debugging: Γιατί δεν τρέχει το Cron μου;
Αν ρυθμίσατε μια εργασία αλλά δεν βλέπετε αποτέλεσμα, ελέγξτε τα εξής:
- Email Notifications: Στο cPanel, μπορείτε να ορίσετε ένα email για να λαμβάνετε το “output” της εντολής. Αν υπάρχει σφάλμα PHP, θα το δείτε εκεί.
- Absolute Paths: Ο server δεν ξέρει πού είναι το
phpή τοwp-cron.php. Χρησιμοποιείτε πάντα πλήρη paths, π.χ.:/usr/local/bin/php /home/username/public_html/wp-cron.php - Permissions: Βεβαιωθείτε ότι το αρχείο που καλείτε έχει δικαιώματα εκτέλεσης (συνήθως 644 ή 755).
- Memory Limits: Συχνά τα cron jobs απαιτούν περισσότερη μνήμη από μια απλή επίσκεψη σελίδας. Ίσως χρειαστεί να αυξήσετε το
memory_limitστοphp.ini.
6. Plugins για το WordPress (Αν δεν θέλετε κώδικα)
Αν η διαχείριση μέσω server σας φαίνεται “βουνό”, υπάρχουν plugins που κάνουν τη ζωή σας εύκολη μέσα από το dashboard του WordPress:
- WP Control (Το κορυφαίο): Σας επιτρέπει να δείτε όλα τα ενεργά cron jobs του WordPress, να τα επεξεργαστείτε, να τα διαγράψετε ή να τρέξετε ένα χειροκίνητα εκείνη τη στιγμή για δοκιμή.
- Advanced Cron Manager: Παρόμοιο με το WP Control, με πολύ καθαρό UI και δυνατότητα για “logs” (στην pro έκδοση).
7. Pro Tip: Ασφάλεια (Security)
Όταν καλείτε το wp-cron.php από μια εξωτερική υπηρεσία (όπως το Cron-job.org), το αρχείο είναι “εκτεθειμένο”. Αν και το WordPress έχει εσωτερικές δικλείδες ασφαλείας, μια καλή πρακτική είναι να περιορίσετε την πρόσβαση στο αρχείο αυτό μόνο για την IP της υπηρεσίας που χρησιμοποιείτε μέσω του αρχείου .htaccess.
Σύνοψη: > Αν θέλετε το κεφάλι σας ήσυχο και το site σας γρήγορο:
Απενεργοποιήστε το WP-Cron -> Γραφτείτε στο Cron-job.org (δωρεάν) -> Βάλτε το να “χτυπάει” το URL σας κάθε 15 λεπτά.
Θα θέλατε να δούμε συγκεκριμένα πώς γίνεται η ρύθμιση σε κάποιο συγκεκριμένο control panel όπως το cPanel ή το Plesk;
Σωστά, ας προχωρήσουμε στο πρακτικό κομμάτι της παραμετροποίησης στα πιο δημοφιλή περιβάλλοντα διαχείρισης (Control Panels), καθώς εκεί γίνονται οι περισσότερες ρυθμίσεις στην πράξη.
8. Ρύθμιση Cron Job στο cPanel (Βήμα-Βήμα)
Το cPanel είναι το πιο διαδεδομένο πάνελ παγκοσμίως. Η διαδικασία είναι η εξής:
- Συνδεθείτε στο cPanel σας.
- Στην αναζήτηση γράψτε “Cron Jobs” και επιλέξτε το.
- Στην ενότητα “Add New Cron Job”, επιλέξτε από το μενού “Common Settings” το “Once Per hour” ή “Every 15 minutes”.
- Στο πεδίο Command, εισάγετε την εντολή:
/usr/local/bin/php /home/username/public_html/wp-cron.php >/dev/null 2>&1(Προσοχή: Αντικαταστήστε το “username” με το δικό σας όνομα χρήστη). - Πατήστε “Add New Cron Job”.
9. Ρύθμιση στο Plesk
Στο Plesk η διαδικασία είναι ελαφρώς πιο σύγχρονη:
- Πηγαίνετε στο Websites & Domains.
- Βρείτε το εικονίδιο Scheduled Tasks (στη δεξιά στήλη ή κάτω από το domain).
- Πατήστε Add Task.
- Επιλέξτε Run a PHP script.
- Στο “Script path”, βρείτε το αρχείο
wp-cron.php. - Στο “Run”, επιλέξτε Cron style και βάλτε
*/15 * * * *για κάθε 15 λεπτά.
10. Cron Jobs και Server Resources (Πότε να προσέχετε)
Ένα συχνό λάθος είναι ο υπερβολικός προγραμματισμός. Αν έχετε ένα βαρύ plugin (π.χ. XML Import ή βαρύ Backup) και το βάλετε να τρέχει κάθε 1 λεπτό, μπορεί να “γονατίσετε” τον επεξεργαστή του server σας.
Συμβουλές Βελτιστοποίησης:
- Staggering (Κλιμάκωση): Μην βάζετε όλα τα jobs να τρέχουν την ίδια στιγμή (π.χ. όλα στις 00:00). Βάλτε το backup στις 03:00, το καθάρισμα της cache στις 04:00 κ.ο.κ.
- Log Management: Αν η εντολή σας παράγει πολύ output, το αρχείο log μπορεί να μεγαλώσει υπερβολικά. Χρησιμοποιείτε το
>/dev/null 2>&1στο τέλος της εντολής για να “πετάτε” το output, εκτός αν κάνετε debugging.
11. Χρήσιμα εργαλεία για δοκιμές (Tools)
Αν γράφετε δικά σας cron expressions (τα αστεράκια που είδαμε πριν) και θέλετε να βεβαιωθείτε ότι είναι σωστά, χρησιμοποιήστε αυτά:
- Crontab.guru: Το καλύτερο εργαλείο για να μεταφράζετε τα αστεράκια σε ανθρώπινη γλώσσα.
- CronHub Checker: Σας δείχνει πότε θα είναι οι επόμενες 10 εκτελέσεις του job σας.
Τι άλλο πρέπει να προσέξετε;
Αν χρησιμοποιείτε Cloudflare, μερικές φορές μπορεί να μπλοκάρει τα “χτυπήματα” από εξωτερικές υπηρεσίες cron (όπως το EasyCron). Σε αυτή την περίπτωση, θα πρέπει να προσθέσετε την IP της υπηρεσίας στη λίστα εξαιρέσεων (WAF Allowlist) του Cloudflare.
Χρειάζεσαι βοήθεια με τον κώδικα για να φτιάξεις ένα δικό σου custom cron job μέσα στο αρχείο functions.php του WordPress;
Ας ολοκληρώσουμε τον οδηγό με το τεχνικό κομμάτι του κώδικα, για την περίπτωση που θέλετε να δημιουργήσετε μια δική σας, εξατομικευμένη εργασία (Custom Cron Job) μέσα στο WordPress.
12. Δημιουργία Custom Cron Job (Για Προγραμματιστές)
Αν θέλετε το WordPress να εκτελεί μια δική σας λειτουργία (π.χ. να στέλνει ένα email αναφοράς κάθε πρωί), πρέπει να ακολουθήσετε τρία βήματα στο αρχείο functions.php του θέματός σας ή σε ένα custom plugin.
Βήμα 1: Δημιουργία του προγράμματος (Schedule)
Πρέπει να “πούμε” στο WordPress πότε να τρέχει την εργασία.
PHP
if ( ! wp_next_scheduled( 'my_custom_daily_report' ) ) {
wp_schedule_event( time(), 'daily', 'my_custom_daily_report' );
}
Βήμα 2: Σύνδεση με τη λειτουργία (Hook)
Συνδέουμε το όνομα του event με μια συνάρτηση PHP.
PHP
add_action( 'my_custom_daily_report', 'execute_my_report' );
function execute_my_report() {
// Εδώ βάζετε τον κώδικα που θέλετε να εκτελεστεί
wp_mail( 'admin@example.com', 'Daily Report', 'Η εργασία ολοκληρώθηκε επιτυχώς!' );
}
13. WP-CLI: Η επαγγελματική λύση
Αν έχετε πρόσβαση σε τερματικό (SSH), ο πιο αποδοτικός τρόπος να τρέχετε cron jobs είναι μέσω του WP-CLI. Είναι πολύ πιο γρήγορο και δεν καταναλώνει πόρους από τον Web Server (Apache/Nginx).
Η εντολή στο crontab θα μοιάζει κάπως έτσι:
*/5 * * * * cd /var/www/html && wp cron event run --due-now > /dev/null 2>&1
14. Σύγκριση: Πότε να χρησιμοποιήσετε τι;
| Σενάριο | Προτεινόμενη Λύση |
| Απλό Blog / Μικρό Site | Plugin (WP Control) + Cron-job.org |
| E-shop (WooCommerce) | Server Side Cron (cPanel/Plesk) |
| SaaS / Custom Apps | Εξωτερική Υπηρεσία (Cronitor / EasyCron) |
| High Traffic Sites | WP-CLI μέσω SSH |
15. Checklist Τελικού Ελέγχου
Πριν κλείσετε τις ρυθμίσεις σας, βεβαιωθείτε για τα εξής:
- Timezone: Είναι η ώρα του server ίδια με την ώρα που νομίζετε; (Ελέγξτε το
Settings > Generalστο WP). - HTTPS: Αν χρησιμοποιείτε εξωτερική υπηρεσία, βεβαιωθείτε ότι το URL ξεκινά με
https://για να μην υπάρχουν ανακατευθύνσεις (redirects) που μπορεί να αποτύχουν. - Timeout: Αν η εργασία σας παίρνει πάνω από 30 δευτερόλεπτα, βεβαιωθείτε ότι το
max_execution_timeστην PHP είναι επαρκές.
Συμπέρασμα:
Τα Cron Jobs είναι η “καρδιά” της αυτοματοποίησης. Ξεκινήστε με το Cron-job.org για κάτι δωρεάν και αξιόπιστο, και αν οι ανάγκες σας μεγαλώσουν, μετακινηθείτε σε λύσεις όπως το EasyCron ή το Cronitor για καλύτερο έλεγχο και ειδοποιήσεις σε περίπτωση αποτυχίας.
Ολοκληρώνοντας αυτόν τον αναλυτικό οδηγό, θα κλείσουμε με μερικές προηγμένες στρατηγικές (Advanced Tips) και το τελικό συμπέρασμα για να διασφαλίσετε ότι οι αυτοματισμοί σας δεν θα αποτύχουν ποτέ.
16. Προηγμένες Στρατηγικές για Cron Jobs
Α. Χρήση “Secret Keys” για το wp-cron.php
Αν απενεργοποιήσετε το WP-Cron και χρησιμοποιείτε εξωτερική υπηρεσία, μπορείτε να κλειδώσετε το αρχείο ώστε να μην μπορεί να το “χτυπήσει” κανένας τρίτος (προστασία από DDoS).
Στο .htaccess μπορείτε να επιτρέψετε μόνο την IP της υπηρεσίας:
Apache
<Files "wp-cron.php">
Order Deny,Allow
Deny from all
Allow from 1.2.3.4 # Η IP της υπηρεσίας σας
</Files>
Β. Παρακολούθηση Αποτυχίας (Dead Man’s Snitch)
Αντί να ελέγχετε αν μια εργασία έτρεξε, μερικές υπηρεσίες (όπως το Healthchecks.io) λειτουργούν ανάποδα: περιμένουν ένα “σήμα” από τον server σας. Αν ο server δεν στείλει το σήμα στην προκαθορισμένη ώρα, τότε η υπηρεσία σας στέλνει ειδοποίηση ότι ο server “έπεσε” ή το cron κόλλησε.
17. Σύνοψη: Το “Χρυσό” Setup
Αν θέλετε το απόλυτο setup το 2026, ακολουθήστε αυτά τα 4 βήματα:
- Απενεργοποίηση:
define('DISABLE_WP_CRON', true);στοwp-config.php. - Plugin: Εγκατάσταση του WP Control για να βλέπετε τι γίνεται “κάτω από το καπό”.
- Εκτέλεση: Ρύθμιση ενός “Real Cron” μέσω του hosting panel σας (κάθε 5-10 λεπτά).
- Uptime Monitoring: Χρήση του Cron-job.org ή του UptimeRobot ως “δικλείδα ασφαλείας” για να καλεί το URL σε περίπτωση που ο εσωτερικός scheduler αποτύχει.
Τελική Σύγκριση (Quick Reference)
| Ανάγκη | Προτεινόμενη Λύση | Κόστος |
| Θέλω απλά να δουλεύει | Cron-job.org | Δωρεάν |
| Θέλω logs & ειδοποιήσεις | EasyCron | $ |
| Επαγγελματικό Monitoring | Cronitor | $$ |
| Enterprise / Υψηλή Ασφάλεια | Google Cloud Scheduler | Pay-as-you-go |
Επίλογος
Τα Cron jobs είναι η αθόρυβη μηχανή πίσω από κάθε πετυχημένο WordPress site. Είτε επιλέξετε μια δωρεάν λύση είτε μια premium, το κλειδί είναι η συνέπεια. Μην αφήνετε τις εργασίες σας στην τύχη (δηλαδή στους τυχαίους επισκέπτες του site), αλλά πάρτε τον έλεγχο χρησιμοποιώντας έναν εξωτερικό ή εσωτερικό “πραγματικό” scheduler.
Καλή επιτυχία με τις αυτοματοποιήσεις σας!

