Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

Cachify: HDD-Modus mit geplanten Beiträgen nutzen

Cachify HDD-Modus mit geplanten Beiträgen nutzen

Wp-cron.php als Performance-Fresser

Stammleser wissen es bereits: Ich teste und probiere hier unglaublich viel herum. Gerade beim Thema WordPress Performance blühe ic h regelrecht auf, weil das inzwischen so eine Art Leidenschaft von mir geworden ist. WordPress ist von Haus aus etwas Träge und teilweise unlogisch angelegt, hat außerdem recht spezielle und hohe Anforderungen an die Hardware, da tut es gut ein wenig zu tunen und zu optimieren, auf Performance-Fresser zu verzichten. Einer der natürlich vorkommenden Performance-Fresser in WordPress ist die Datei wp-cron.php im Hauptverzeichnis der Installation. Die wp-cron.php regelt eigentlich nur ständig anfallende Aufgaben, ist quasi eine Art Cronjob, funktioniert aber leider nicht genau so. Das Problem: WordPress ruft die wp-cron.php bei jedem Seitenaufruf auf und prüft dann, ob eventuell eine geplante Aufgabe vorhanden ist. Zum Beispiel, ob ein geplanter Beitrag veröffentlicht werden soll, oder ein Update für WordPress, ein Plugin, oder die Themes vorhanden ist. Das ist ziemlich unnütz und frisst leider auch ganz schön viel Leistung vom Server und sollte daher deaktiviert werden. Das geht in der wp-config.php mit dem Befehl “define(‘DISABLE_WP_CRON’, true);”.

Geplante Beiträge mit Cachify

Das WordPress Caching-Plugin Cachify, von Sergej Müller, verzichtet im HDD-Modus (also dem Festplatten-Cache) daher auch gleich auf den Start des PHP-Interpreters, was Performance bringt, aber eben auch unweigerlich Nachteile. So werden geplante Aufgaben, darunter auch geplante Beiträge, eben nicht mehr korrekt ausgeführt. Warum? Weil WordPress die wp-cron.php bei jedem einzelnen Seitenaufruf abfragt und das ohne den Start des PHP-Interpreters so nicht mehr möglich ist. Für die Performance von WordPress ist das fantastisch, man kann es nicht anders sagen, doch für alle professionell geführten Blogs ist es ein Alptraum. Die können Beiträge nämlich nicht mehr planen, weil WordPress diese anschließend nicht mehr wie geplant veröffentlicht, zumindest so lange Cachify im HDD-Modus läuft. Ein Problem, denn ohne Planung kommt kaum ein Blog aus. Abhilfe schafft hier ein echter Cronjob, der die wp-cron.php regelmäßig aufruft und die geplanten Aufgaben damit wieder möglich macht. Eigentlich ist das ganz einfach, trotzdem fehlt bei Cachify eine öffentlich einsehbare Anleitung dafür.

Cronjob für Cachify anlegen

Der Vorteil eines manuell hinterlegten Cronjobs ist, dass die wp-cron.php nicht mehr ständig aufgerufen wird. Statt also bei jedem Seitenaufruf zu prüfen, ob eventuell geplante Aufgaben vorhanden sind, wird die wp-cron.php nur noch in bestimmten Abständen in einem echten Cronjob des Servers gestartet. Damit reduziert ihr die Anfragen und Ansprüche von WordPress deutlich, was wiederum die Performance enorm steigert und die allgemeine Belastung des Servers verringert. Hier könnt ihr frei wählen, wie oft ihr den manuell angelegten Cronjob starten wollt. Ihr könnt ihn jede Minute laufen lassen, oder alle 5 bis 15 Minuten. Lasst ihr ihn nicht jede Minute laufen, werden geplante Beiträge einfach ein wenig später freigegeben. Ist ein Artikel also für genau 11:01 Uhr geplant, wird dieser eventuell erst um 11:05 veröffentlicht, weil der Cronjob nur alle fünf Minuten startet. Ein Problem ist das nicht, es sei denn ihr legt viel wert auf exakte Veröffentlichungszeiten eurer Artikel.

Erstellt einen Cronjob mit folgendem Befehl (URL ändern!):

wget -q -O - http://fastwp.de/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Performance durch Cronjob

Das Einzige was ihr frei entscheiden müsst, ist wie oben bereits erwähnt die Zeit. Den Cronjob jede Minute zu starten, halte ich für komplett überflüssig und unnötig, auch weil geplante Beiträge ruhig einige Minuten verspätet freigeschaltet werden können. Schont lieber euren Server und steigert die allgemeine Performance, indem ihr die wp-cron.php von WordPress nur alle 5 oder 15 Minuten abruft. Das reicht vollkommen aus und macht sich auf dem Server sofort bemerkbar, weil WordPress selbst ohne diese Einstellung oft wenig zimperlich mit den Ressourcen Umgeht und seine virtuellen Cronjobs daher auch am laufenden Band abfragt. Eine sehr einfache und effektive Methode, um den Server zu entlasten, aber auch, um allgemein einfach noch mehr Performance aus WordPress herauszuholen. Für Cachify ist dieser Weg außerdem zwingend notwendig, damit geplante Aufgaben und geplante Artikel wie bislang ausgeführt bzw. veröffentlicht werden.



Wordpress Performance eBook