Performance-Trick: Wie du den WordPress Cronjob optimierst
WordPress ist weltweit das beliebteste CMS. Aufgrund der vielen verfügbaren Plugins ist es besonders variabel. Seien es Firmenseiten, Foren oder Shops – der Fantasie sind fast keine Grenzen gesetzt. Doch gerade bei der Verwendung als Shop (z. B. mit dem Plugin WooCommerce) kann es zu Performance-Problemen kommen. Ein Grund dafür kann der wp-cron sein.
Warum leidet die Performance unter dem WordPress Cronjob?
Jeder initiale Aufruf löst bei einem Standard WordPress zwei Dinge aus: Zum einen wird die Website ausgeliefert und zum anderen wird der WordPress Cronjob (wp-cron) ausgelöst. Letzteres erzeugt immer eine zusätzliche Last auf dem Webserver. Da es sich um einen POST-Request handelt, wird ein eigener PHP-Prozess ausgelöst, der im Zweifel zum Auslasten der Anzahl der maximal gleichzeitigen PHP-Prozesse führt – die max_children werden erreicht. Eine Analyse des Access-Logs kann also direkt Aufschluss geben, ob der wp-cron zur Bremse wird, denn hier kannst du genau sehen, wie oft dieser ausgeführt wird.
Bei kleineren Seiten ist das ein gutes System, da alle wichtigen Aufgaben im Hintergrund erledigt werden, wenn ein Besucher zum Beispiel den Blog liest.
Zusätzlicher Performance-Tipp
Du solltest immer daran denken, ein Caching-Plugin zu verwenden, da WordPress von Haus aus nicht cached. Optionen sind zum Beispiel WP Fastest Cache, WP Rocket oder W3 Total Cache. Damit werden die Seiten einmal dynamisch erzeugt, um dann statische Varianten zu erstellen. So muss die Seite nicht neu generiert werden; das ist schnell und ressourcenschonend. Du kannst diese Plugins einfach über das Backend deiner Installation herunterladen und installieren.
Bei einem vielbesuchten Shop kann dies aber unerwünschte Nebeneffekte haben: Die Performance sinkt massiv, weil jeder Aufruf zusätzlich den wp-cron auslöst.
Wie optimiere ich den WordPress Cronjob?
Wenn der wp-cron übermäßig zum Einsatz kommt, kannst du diesen in der wp-config.php deaktivieren. Hierzu fügst du folgenden String in die wp-config.php ein:
define('DISABLE_WP_CRON', true);
Alternativ kannst du die Konstante auch über die WP-CLI setzen:
wp config set DISABLE_WP_CRON true --raw --type=constant
Wichtig ist aber, dass der Cronjob auch weiterhin ausgeführt wird. Dafür legst du einen Cronjob im mittwald Kundencenter oder mStudio an, der den wp-cron auslöst:
/pfad/zu/Wordpress/wp-cron.php
CLI = PHP
Das Intervall kannst du im mittwald Kundencenter und auch im mStudio ändern. Je nach Anwendung auf bis zu fünf Minuten. Dies sorgt für eine deutliche Entlastung des Webservers bei stark frequentierten WordPress Shops.
Solltest du danach immer noch mit Performance-Problemen zu tun haben, melde dich bei uns. Gemeinsam finden wir schnell eine Lösung!
Kommentare
da wir immer wieder mit dem Speed bei Wordpress und Mittwald Hosting kämpfen wollte ich mal fragen gibt es eurerseits eine Empfehlung welches Caching Plugin man nutzen sollte.
Ihr habe ja den Beitrag https://www.mittwald.de/faq/tipps-und-tricks/wordpress/performance-optimierungen-fuer-wordpress gepostet. Ist das noch die aktuelle Empfehlung?
Danke für die Antwort - wird sicherlich auch andere interessieren.
Häufig genutzt werden
https://wordpress.org/plugins/wp-fastest-cache/
https://de.wordpress.org/plugins/w3-total-cache/
https://wp-rocket.me/de/
Wichtig: Konfiguriere das Plugin so, dass Cache angelegt und im besten Fall auch der OPCache und APCu eingebunden werden.
Hoffe, das hilft dir weiter!