Cronjob
Was ein Cronjob ist, warum WP-Cron bei wenig Verkehr unzuverlässig wird und wie du beides sauber trennst.
Ein Cronjob ist eine Aufgabe, die der Server zu festen Zeiten selbst ausführt, ohne dass jemand etwas anklickt. Typische Beispiele: nächtliche Backups, Aufräumarbeiten in der Datenbank oder der Versand geplanter Newsletter.
WP-Cron ist kein echter Cronjob
WordPress bringt ein eigenes System namens WP-Cron mit, das anders funktioniert als der Name vermuten lässt. Es hat keine Uhr. Stattdessen prüft WordPress bei jedem Seitenaufruf, ob etwas fällig ist, und arbeitet es dann ab.
Daraus folgen zwei Probleme. Bei wenig Verkehr laufen fällige Aufgaben verspätet oder gar nicht, ein für 3 Uhr geplanter Beitrag erscheint erst beim ersten Besucher am Morgen. Bei viel Verkehr passiert das Gegenteil: Die Prüfung läuft bei jedem Aufruf mit und kostet Rechenzeit.
Die saubere Lösung
WP-Cron abschalten und stattdessen einen echten Cronjob einrichten, der WordPress in festem Takt anstößt. In Plesk legst du ihn in der Oberfläche an, meist alle 5 bis 15 Minuten. In wp-config.php kommt dazu:
define('DISABLE_WP_CRON', true);
Aufgerufen wird dann entweder wp-cron.php oder, sauberer, WP-CLI mit wp cron event run --due-now. Der Weg über WP-CLI läuft ohne Umweg über den Webserver und ist von außen nicht anstoßbar.
Siehe auch