WP Cronjobs bereinigen

Nahezu jedes Plugin bringt auch einen Cronjob mit sich, der immer wieder, regelmäßig ausgeführt werden will. Daten werden an externe Server gesendet, die aktuelle Version wird abgerufen, es erfolgt ein einfacher Ping an den Server des Entwicklers usw.

In wenigen Fällen gibt es auch tatsächlich Sinn, dass diese regelmäßigen Aktionen ausgeführt werden. In den wenigsten Fällen ist ein solcher Cronjob auch wirklich für die Funktionalität des Plugins erforderlich.  Meine Grundhaltung zum Umgang vieler Programierer mit Cronjobs ist vermutlich relativ eindeutig – aber das soll nicht Inhalt dieses Beitrags sein! 🙂

Noch viel ärgerlicher und unnötiger als das eigentliche Nutzen von Cronjobs ist die Tatsache, dass die wohl meisten Plugins bei der Deinstallation den Eintrag in der WP-Cron nicht entfernen und diese somit über die Zeit regelrecht zugemült wird. Doch bevor ich die einfache Lösung erkläre, werfen wir noch einen Blick auf die eigentliche Funktionsweise von Cronjobs in WordPress:

Funktion der WP-Cron

WordPress bringt automatisch die sogenannte WP-Cron mit. Diese fungiert wie eine Liste von Cronjobs, ohne dabei ein wirklicher Cronjob zu sein. Plugin-Hersteller können in ihrem Plugin festlegen, dass mit Hilfe dieser WP-Cron auch eine Datei des Plugins ausgeführt werden soll, dies bezeichne ich zur Erklärung an dieser Stelle als eine Unteraufgabe. Somit sammeln sich in der WP-Cron zahlreiche Unteraufgaben von unterschiedlichen Plugins, die alle ausgeführt werden wollen.

Bei Cronjobs handelt es sich eigentlich um die zeitbasierte Ausführung von Prozessen, also wiederkehrende Aufgaben, die eben durch die zeitlich wiederkehrende Ausführung eine Automatisierung bedeuten (Wikipedia: Cronjobs).

Wer einen brauchbaren Webspace hat, der kann sich selbst einen solchen Cronjob einrichten. Sehr einfach ausgedrückt, benennt man hierfür einfach die Datei, die regelmäßig ausgeführt werden soll, und den Zeitpunkt, wann diese Datei ausgeführt werden soll. Den Rest macht dann der Webserver, so dass die gewünschte Datei mehr oder weniger automatisch das gewünschte ausführt.

Wer aber schon einmal WordPress auf dem eigenen Webspace installiert hat (wovon ich bei dir ausgehe, wenn du dir diesen Post durchliest), musste dabei definitiv noch nie einen Cronjob, wie gerade beschrieben, einrichten. Dennoch nutzt WordPress ab Werk ebenfalls Cronjobs. Wie kann das funktionieren?

Ausführung der WP-Cron bei jedem Aufruf

Die Überschrift erklärt eigentlich bereits, wie WordPress über Cronjobs verfügen kann, ohne, dass man einen eigentlichen Cronjob einrichten muss! WordPress führt die eigenen Cronjobs bei jedem einzelnen Aufruf auf  bzw. den Dienst „WP-Cron“. Und anhand der vorgegebenen Zeit- oder Logikregeln prüft die WP-Cron dann, ob eine Unteraufgabe ausgeführt werden soll.

Wenn alles gut läuft, muss beim aktuellen Aufruf keine der vorhandenen Unteraufgaben ausgeführt werden. Wenn du Pech hast, löscht die eine Unteraufgabe alte Log-Dateien, während die andere von dir hochgeladene Fotos im Hintergrund optimiert. Gerade das letzte Beispiel zeigt, dass eine solche Unteraufgabe durchaus rechenintensiv sein kann. Und hierin besteht auch das eigentliche Problem mit der WP-Cron:

Performance-Bremse WP-Cron

Wenn immer ein Besucher auf deiner Seite rumsurft, werden im Hintergrund (mit Hilfe der WP-Cron) Aufgaben ausgeführt, die für den Seitenaufruf deines Besuchers unmittelbar gar keine Bedeutung haben. Und jede dieser WP-Cron-Aufgaben bremst den eigentlichen Seitenaufruf aus. Jede!

Je voller deine WP-Cron also ist, desto langsamer wird dein WordPress – garantiert! Aus diesem Grund macht es absolut Sinn, in regelmäßigen Abständen die Unteraufgaben deiner WP-Cron zu bereinigen. Denn viele dieser Unteraufgaben stammen von Plugins. Von Plugins, die du vermutlich schon gar nicht mehr installiert hast.

Hierbei hilft dir das kostenlose Plugin WP Control! Mit WP Control kannst du dir alle Einträge in der WP-Cron anzeigen lassen und diese auch bei Bedarf löschen!

WP-Cron bereinigen

Ich bereinige mit diesem kostenlosen Plugin regelmäßig die Einträge der WP-Cron und optimiere so die Performance von meinem WordPress jedes mal ein klein wenig.

Bitte lösche keine Einträge von Plugins, die du noch installiert hast!

No Responses