Webhosting

Cron (und WP-Cron)

Definition

Cron ist der Aufgabenplaner von Unix- und Linux-Systemen: Er startet Befehle zu festen Zeiten nach einer Tabelle namens Crontab. WP-Cron ist der interne Mechanismus von WordPress für geplante Aufgaben (Veröffentlichungen, Updates, Backups, E-Mails); er hat keine eigene Uhr und läuft nur, wenn eine Seite geladen wird.

Cron (und WP-Cron), Webhosting

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.

Vergleich zwischen WP-Cron und System-Cron. WP-Cron: wird beim Laden einer Seite ausgelöst, eine Aufgabe für 14 Uhr kann auf den nächsten Besuch warten, eine wenig besuchte Website sammelt Verspätung an, eine stark besuchte prüft bei jeder Seite, standardmäßig aktiv ohne Einrichtung. System-Cron: wird von der Uhr des Servers ausgelöst, in festem Takt und unabhängig vom Traffic, aktiviert durch DISABLE_WP_CRON in der wp-config.php und eine Crontab-Zeile, die wp cron event run --due-now startet oder wp-cron.php aufruft.
WP-Cron hängt von den Besuchen ab, der System-Cron folgt der Uhr.

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.

Video: „Cronjobs: im Plesk. Wie du deine Website-Performance durch die Deaktivierung des WP-Cron erhöhst.“ (webhosting)

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 list zeigt 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.

Quellen

  1. Plugin Handbook: Cron (externer Link, öffnet in neuem Tab)
  2. Plugin Handbook: Hooking WP-Cron Into the System Task Scheduler (externer Link, öffnet in neuem Tab)
  3. WP-CLI Commands: wp cron event run (externer Link, öffnet in neuem Tab)
  4. Linux manual page: crontab(5) (externer Link, öffnet in neuem Tab)

Alle Definitionen

WordPress-Sicherheit ohne Lärm

Eine E-Mail, wenn es wichtig ist: neu beobachtete Angriffe, Updates des Plugins und praktische Anleitungen. Kein Spam, Abmeldung mit einem Klick.

Starte kostenlos und wechsle zu Pro, wenn du so weit bist

Die kostenlose Version versteckt WordPress bereits und verschiebt die Anmeldeseite. Pro ergänzt Aliasse, Zwei-Faktor-Authentifizierung und Überwachung.