Ein Content Management System wie WordPress muss manche Dinge auch regelmäßig im Hintergrund erledigen. Zum Beispiel zeitgesteuert Backups anfertigen oder neue Beiträge zu einem bestimmten Zeitpunkt veröffentlichen. Auf UNIX-artigen Systemen wird für solche Aufgaben gerne ein Dienst namens cron verwendet. Ganz einfach gesagt ist das ein kleines Programm, das im Hintergrund des Systems darauf wartet Aufgaben zu erledigen, die per Konfiguration für bestimmte Zeitpunkte geplant sind. Der Name leitet sich übrigens vom griechischen Chronos (Zeit) ab.
WP-Cron ist kein echter Cron
WordPress hat keine solchen Hintergrund-Programme und das CMS sollte möglichst einfach zu installieren sein, also hatten sich die Entwickler*innen eine andere Lösung ausgedacht: WP-Cron. Der Name zeigt schon, dass dieser Teil von WordPress die Aufgabe hat, zeitgesteuert bestimmte Aufgaben zu erledigen. Da der Prozess aber nicht im Hintergrund laufen kann, muss er anders gesteuert werden. Man hat sich entschieden die Besuche der Website als Auslöser zu nehmen. Besucht nun also jemand die Website, schaut WordPress im Hintergrund nach, ob gerade Aufgaben anstehen und erledigt die. Das funktioniert auch ganz gut, so lange genügend Besucher*innen auf der Website unterwegs sind – aber auch nicht zu viele.
Denn sind es zu wenige Besucher*innen auf einer Website, dann verpasst WP-Cron möglicherweise den Zeitpunkt für bestimmte Aufgaben. Berüchtigt ist hier zum Beispiel das Problem der „Verpassten Planung“ bei zeitgesteuerten Beiträgen. Auf der anderen Seite können zu viele gleichzeitige Besucher*innen im Extremfall auch dazu führen, dass die ganzen WP-Cron-Prüfungen zu viel Last erzeugen und die Site ausbremsen. Auch nicht schön. Oder kurz gesagt: WP-Cron funktioniert schon irgendwie, aber nicht immer mit der Zuverlässigkeit, die man erwartet.
WP-Cron durch einen echten Cronjob steuern
Wäre es da nicht besser einen echten Cronjob einzusetzen, der unabhängig davon ist, ob und wie viele Besucher*innen Deine Website gerade hat? Natürlich und das ist auch gar nicht schwer und die WordPress-Entwickler*innen haben diese Möglichkeit auch vorgesehen.
Cronjob einrichten
Einen Cronjob kannst du möglicherweise in deinem Kundenaccount des Hostingunternehmens einrichten, bei dem du deine Website hast. Falls das dort nicht geht, kannst du auch einen Webservice nutzen. Oder vielleicht hast Du daheim sowieso einen Homeserver oder ein NAS am Laufen und kannst dort den Cronjob konfigurieren.
Dieser Cronjob muss nichts anderes machen, als regelmäßig die Datei wp-cron.php in deinem WordPress aufrufen. In unserem Fall wäre die aufzurufende Adresse also: https://www.leo-skull.de/wp-cron.php
Fall dein Hoster dir Plesk als Verwaltungstool für deine Website zur Verfügung stellt, kannst du den Cronjob über die Webobfläche unter dem Punkt Geplante Aufgaben hinzufügen:

In diesem Screenshot siehst du den in Plesk angelegten Cronjonb für mein privates Weblog dobschat.io. Ausgeführt wird dieser alle 5 Minuten und falls es bei der Ausführung zu einem Fehler kommt, schickt mir Plesk eine Mail.
Es gibt auch verschiedene Onlinedienste für Cronjobs, zum Beispiel Easycron(*). Mit einem kostenlosen Account kann man dort einen Cronjob alle 20 Minuten laufen lassen, was für kleinere Websites auch ausreichend sein kann. Alle fünf Minuten kann ein Cronjob mit dem kostenlosen Account von Cronjob.de ausgeführt werden.
Pseudo-Cron in WordPress deaktivieren
Sobald nun ein echter Cronjob dafür sorgt, dass die regelmäßigen Aufgaben in deiner WordPress-Website ausgeführt werden, kannst du nun den Pseudo-Cronjob deaktivieren. Dazu ergänzt du in der wp-config.php deines WordPress folgende Zeile:
define('DISABLE_WP_CRON', true);
Fertig, dein WordPress wird nun mit einem echten Cronjob an die Ausführung der regelmäßigen Aufgaben „erinnert“ und es wird nicht mehr bei jedem Seitenaufruf die wp-cron.php mit geladen, was für ein klein wenig schnellere Seitenaufbauten sorgen kann.
Zusammenfassung
Hintergrundaufgaben werden in WordPress normalerweise nur dann ausgeführt, wenn auch gerade Besucher*innen auf der Website unterwegs sind. Das kann zu Problemen führen, wenn die Site zu selten besucht wird. Mit einem echten Cronjob sorgst du für eine zuverlässige zeitgesteuerte Ausführung der Hintergrundaufgaben.