WP-Cron deaktivieren

Ein Garant für eine bessere Performance des eigenen WordPress-Blogs ist, meiner Meinung nach, das Deaktivieren der WP-Cron Funktion. WordPress bringt ab Werk diese Funktion mit, die letztendlich ein Nachbau eines klassischen Cronjobs darstellt. Anstelle zu vorgegebenen Zeiten benötigte Cronjobs auszuführen, prüft WordPress einfach bei jedem Seitenaufruf, ob es einen Cronjob gibt, der ausgeführt werden soll. Das raubt jeder (!!!) WordPress-Installation Performance und ist absolut unnötig, da es hierfür bessere, effizientere Methoden gibt. In diesem Beitrag erkläre ich dir Schritt für Schritt, wie du in deiner WordPress-Installation die WP-Cron deaktivierst und damit garantiert einen ordentlichen Performance-Schub bekommst.

Aber eins nach dem anderen! Zuerst will ich dir noch ein klein wenig ausführlicher die Cronjobs erklären, da wir als letzten Schritt dieser Anleitung ja auch einen Cronjob anlegen müssen.

Was sind Cronjobs?

Der Begriff Cronjob setzt sich aus den Wörtern Cron und Job zusammen. Cron ist die Abkürzung für den sogenannten Cron-Daemon, über den sehr viele Betriebssysteme verfügen. Der Cron-Daemon ermöglicht es, vom System zu speziellen Zeiten gewisse Aufgaben ausführen zu lassen. Diese Aufgaben werden auch als Jobs bezeichnet. Ein Job kann zum Beispiel das Aufrufen einer URL sein (beispielsweise https://deine-domain.de/cronjobs/bilder_optimieren.php)

WP-Cron für mehr Performance deaktivierenLeider sind Cronjobs nicht in jedem Hosting-Paket enthalten. Die Hosting-Anbieter versuchen gerne mit dieser Funktion zusätzlich Geld zu verdienen, so dass mann die Funktion entweder kostenpflichtig zubuchen muss oder auf ein teureres Hosting-Paket umsteigen muss um Cronjobs nutzen zu können.

Bevor du also also weiterliest und dir vom Deaktivieren der WP-Cron enorme Performance-Verbesserungen erhoffst, prüfe, ob dein aktuelles Hosting-Paket überhaupt Cronjobs anbietet. Falls nicht, brauchst du gar nicht weiterzumachen – denn ohne einen Cronjob kannst du diese Optimierung nicht vernünftig umsetzen!

Ich nutze ja bereits seit Jahren ein Hosting-Paket bei ALL-INKL. Ab dem Hosting-Paket PrivatPlus sind Cronjobs enthalten. In dem kleineren Paket, muss die Funktion kostenpflichtig dazugebucht werden. Ggf. ist ALL-INKL für dich ja auch ein interessanter Hosting-Anbieter!

WP-Cron deaktivieren für mehr Performance

Wenn du Cronjobs bei deinem Hosting-Anbieter nutzen kannst, können wir im ersten Schritt dafür sorgen, dass zukünftig die Funktion WP-Cron nicht mehr bei jedem Seitenaufruf ausgeführt wird. Öffne hierfür die Datei wp-config.php (liegt im Hauptverzeichnis deiner WordPress-Installation) und suche die Zeile define(‚DB_COLLATE‘, “); (bei mir war dies in Zeile 59).

Unmittelbar nach dieser Zeile fügst du nun folgende Zeile ein:

define(‚DISABLE_WP_CRON‘,true);

Hiermit legen wir in der wp-config.php fest, dass die WordPress-Funktion WP-Cron deaktiviert (=disable) sein soll.

Das Ganze sollte dann bei dir in etwa wie folgt aussehen:

Bessere WordPress Performance ohne WP-Cron

Sobald du die Datei wp-config.php speicherst und auf deinen Webspace hochlädst, ist die Funktion WP-Cron deaktiviert. Lies jetzt auf jeden Fall noch weiter, da du dir ansonsten ggf. Probleme einhandelst. Du musst auf jeden Fall noch einen Cronjob anlegen, der zukünftig das Ausführen der WP-Cron zu den von dir gewünschten Zeiten übernimmt.

Wie das geht, liest du im nächsten Abschnitt:

Richtigen Cronjob für WP-Cron einrichten

Je nach Hosting-Anbieter erfolgt das Einrichten eines Cronjobs sehr unterschiedlich. Ich beschreibe dir hier den Weg, wie es bei ALL-INKL funktioniert. Grundsätzlich funktionieren Cronjobs aber immer gleich: Was soll wann aufgerufen/ausgeführt werden?

Im KAS von ALL-INKL navigierst du zu Tools -> Cronjobs. Dort klickst du oben rechts auf „Cronjob anlegen“ und solltest dann folgendes Formular angezeigt bekommen:

Cronjob bei ALL-INKL einrichten

Als Protokoll/Pfad trägst du https://www.deinedomain.de/wp-cron.php?doing_wp_cron ein.

Formuliere bei Beschreibung eine für dich eindeutige und verständliche Beschreibung.

Hake dann bei Zeitpunkt der Ausführung stündlich an und klicke unten links auf Speichern. Bei mir (für den Blog hier) sieht das dann zum Beispiel wie folgt aus:

Cronjob bei ALL-INKL einrichten

Wenn es keine Fehlermeldung gibt, wird ab diesem Augenblick automatisch, jede Stunde die WP-Cron deiner WordPress-Installation ausgeführt. Der Aufruf deines Blogs sollte nun deutlich schneller erfolgen, da du die WP-Cron aus den Aufrufen deiner Besucher entfernt hast, was eine deutliche Performance-Optimierung bedeutet!

Ich für mich habe den Rhythmus der WP-Cron-Aufrufe auf alle 60 Minuten gesetzt. Du kannst die WP-Cron natürlich auch deutlich öfter aufrufen lassen. Mir ist jedoch kein sinnvoller Grund bekannt, warum die WP-Cron zum Beispiel alle 10 Minuten ausgeführt werden sollte. Aber das kannst du natürlich nach deinem Belieben auch anders umsetzen!

WP-Cron bereinigen

Zusätzlich zum Deaktivieren der WP-Cron bei jedem Seitenaufruf, solltest du auch relativ regelmäßig die Einträge in der WP-Cron bereinigen.  Relativ viele Plugins machen einen Eintrag in der WP-Cron die häufig leider bestehen bleiben, wenn du das Plugin wieder entfernt hast. Somit sammeln sich häufig ungültige Einträge in der WP-Cron, die natürlich auch eine Performance-Bremse darstellen.

Wie du die WP-Cron von deinem Blog einfach bereinigen kannst, erkläre ich in diesem Beitrag.