Der Name kommt vom griechischen chronos, die Zeit. Auf einem Linux-Server liest der Cron-Daemon Aufgabentabellen und startet jeden Befehl zum vorgesehenen Zeitpunkt: das nächtliche Backup, die Verlängerung eines Let’s-Encrypt-Zertifikats, das Aufräumen temporärer Dateien. WordPress braucht denselben Dienst, kann sich aber nicht auf einen Zugriff auf den System-Cron verlassen, den manche Hostings gar nicht bieten. Deshalb hat es einen eigenen Mechanismus: WP-Cron.
Die Syntax einer Crontab
Jede Zeile beginnt mit fünf Feldern: Minute (0 bis 59), Stunde (0 bis 23), Tag des Monats (1 bis 31), Monat (1 bis 12) und Wochentag (0 bis 7, wobei 0 und 7 für Sonntag stehen), gefolgt vom Befehl. Ein Sternchen bedeutet „jede“, und */15 im Minutenfeld startet die Aufgabe zu den Minuten 0, 15, 30 und 45.
*/15 * * * * befehl-alle-15-minuten
0 3 * * * befehl-jede-nacht-um-3-uhr
So funktioniert WP-Cron
Laut WordPress-Dokumentation prüft WP-Cron bei jedem Seitenaufruf die Liste der geplanten Aufgaben und führt die fälligen aus. Standardmäßig stehen die Intervalle hourly, twicedaily, daily und weekly zur Verfügung; Plugins fügen weitere hinzu. Diese Arbeitsweise hat zwei Folgen. Besucht niemand die Website, passiert nichts: Eine Aufgabe für 14 Uhr kann bis 17 Uhr warten, wie die Dokumentation anmerkt. Verloren ist sie deshalb nicht, sie läuft beim nächsten Besuch. Umgekehrt findet die Prüfung auf einer stark besuchten Website praktisch ununterbrochen statt.

Betroffen sind das Veröffentlichen geplanter Beiträge, die Prüfungen und automatischen Updates, die Backups von Plugins, der Versand von Newslettern oder Sicherheitsberichte.
Umstieg auf den System-Cron
Die von der Dokumentation empfohlene Lösung: Du schaltest das Auslösen durch Besuche in der wp-config.php ab:
define( 'DISABLE_WP_CRON', true );
und überlässt den Start dem Cron des Servers, entweder per Aufruf von wp-cron.php oder, wenn dein Hoster WP-CLI bereitstellt, mit einem Befehl, der alle fälligen Aufgaben ausführt und sich überschneidende Läufe vermeidet:
*/5 * * * * cd /pfad/zur/website && wp cron event run --due-now --quiet
Im Shared Hosting bietet das Control Panel meist einen Bereich „Cronjobs“, in dem du diese Zeile ohne Terminal einträgst.
Cron und WordPress in der Praxis
- Wähle ein vernünftiges Intervall von 5 bis 15 Minuten: Ein Lauf pro Minute belastet einen kleinen Server unnötig.
- Prüfe, ob die Systemaufgabe wirklich läuft, bevor du sie vergisst: Ist DISABLE_WP_CRON gesetzt und die Crontab-Zeile fehlerhaft, wird gar nichts mehr ausgeführt.
wp cron event listzeigt die nächsten Termine und deckt verspätete Aufgaben auf. - Vorsicht bei Kopien: Auf einer Staging-Umgebung können geplante Aufgaben E-Mails an echte Kunden schicken oder externe Daten synchronisieren. Deaktiviere sie oder unterbinde den Versand.
- Geplante Backups eines Plugins hängen von WP-Cron ab: Kontrolliere, ob sie tatsächlich stattfinden, damit deine Backup-Strategie aufgeht.
Häufige Fehler
Eine unbekannte Aufgabe in der Liste der geplanten Ereignisse solltest du dir genauer ansehen: Manche Schadcodes installieren sich nach jeder Bereinigung über eine geplante Aufgabe neu.