WordPress beschleunigen: wp-cron Aufrufe auslagern

Im WordPress gibt es einen so genannten wp-cron, welcher für die zeitgesteuerte Ausführung bestimmter Aufgaben zuständig ist. Wie man dieses durch einen echten cronjob ausführen lässt, wird in diesem Beitrag erklärt.

Es ist schon sehr praktisch, wenn man z.B. einen Artikel vorschreibt und in der Zukunft automatisch veröffentlichen möchte. Zuständig dafür ist im WordPress die so genannte „wp-cron“ Funktion. Wenn ein User auf eine WordPress Seite kommt wird automatisch geprüft, ob irgend ein Job anliegt. Ist das der Fall, wird dieser ausgeführt und dann die eigentlich Seite ausgegeben. Ist nichts zu tun, bekommt der Besucher gleich die fertig gerenderte Webseite zu sehen.

So praktisch diese Funktion auch ist, ergeben sich durch sie zwei Probleme:

  • Hat eine Webseite zu wenig Besucher, wird dieser wp-cron nicht oder zu selten ausgeführt. Die Automatismen können somit gar nicht greifen.
  • Hat eine Webseite sehr viel Traffic kann es passieren, dass durch den Aufruf von wp-cron der Seitenaufbau sich verzögert und der Besucher das Gefühl hat, dass alles sehr langsam ist. Je mehr Plugins installiert sind, die diese Funktion nutzen, desto mehr macht sich das Problem bemerkbar.

Ein möglicher Ansatz wäre den Aufruf der wp-cron in die /etc/crontab zu verlegen und dort z.B. alle 10 Minuten automatisch aufrufen zu lassen. Dazu ist folgendes nötig:

WordPress muss erst einmal vorbereitet werden. Dazu die wp-config.php ergänzen und wp-cron abschalten:

define('DISABLE_WP_CRON', 'true');

Man ruft die entsprechende Domain direkt per PHP Cli auf. Der Cronjob könnte dann so aussehen:

*/10 * * * * webuser01  cd /var/www/web01/beispiel.com/htdocs  &&  /usr/bin/php -q wp-cron.php

Mit diesem Ansatz haben wir die gefühlte Geschwindigkeit von stark frequentierten Blogs zum Teil enorm beschleunigen können. Auch begannen neue Blogs schneller zu ranken, da mit diesem Ansatz das Vordatieren von Artikeln genutzt werden konnte.

Wir wünschen Ihnen viel Erfolg bei der Umsetzung!

Related Posts

Leave a reply