Wordpress Plug-In Sexybookmarks bremst Website aus

Wordpress Plug-In Sexybookmarks bremst Website aus

Schon seit einigen Jahren betreiben wir ein privates Koch-Weblog, das unter Wordpress läuft. Dort kommen auch diverse Plugins zum Einsatz und wir probieren gerne immer mal wieder was Neues aus. So hatten wir in dieser Wordpress-Installation schon seit längerer Zeit das Plugin Sexybookmarks im Einsatz.


Am vergangenen Wochenende war dann plötzlich ein dramatischer Anstieg der Ladezeit der Website zu verzeichnen. Normalerweise lädt die - recht umfangreiche - Startseite in gut 2 Sekunden. Nun brauchte sie zwischen 25 und 30 Sekunden. Was war passiert?


Da es in den Tagen zuvor keine Updates von Wordpress oder eines seiner Plugins gegeben hatte, gab es zunächst einmal keine Anhaltspunkte, wo die Ursache liegen konnte. So galt der erste Blick dem Server, auf dem die Website läuft. Der war jedoch stabil und andere Webauftritte, die darauf gehostet werden, liefen einwandfrei und mit normaler Geschwindigkeit. Es musste also an dieser Wordpress-Installation liegen.


Eine genauere Analyse des Ladevorgangs der Seite haben wir dann mit dem Tool von pingdom.com vorgenommen. Gibt man dort die zu testende URL ein, so erhält man detaillierte Information über die Ladezeiten der Bestandteie einer Website. In der Grafik - die nach der Reihenfolge der Ladevorgänge sortiert ist - sah man gleich zu Beginn den langen Balken, der erst bei 24 Sekunden endete. Alle weiteren Inhalte, die noch nachgeladen wurden, hatten dagegen normale Ladezeiten. Allerdings konnte das Testskript die Website nicht vollständig abarbeiten, da es nach knapp 30 Sekunden mit einem Timeout abbrach.



 


Im nächsten Schritt haben wir folgenden Code eingebaut, um zu sehen, ob es ein Problem mit einer SQL-Abfrage gibt. In die wp-config.php trägt man vor dem Abschnitt mit der Überschrift "/* Das war`s, ab hier bitte nichts mehr editieren! Happy blogging. */" die Zeile


define('SAVEQUERIES', true);


ein. Zusätzlich kommt in die Datei footer.php des verwendeten Templates


 <!-- Ausgabe der Anzahl SQL-Abfragen und die Zeit hierfür --><?php echo get_num_queries(); ?????>queries. <?php timer_stop(1); ?????>seconds. <?php if (SAVEQUERIES) { global $wpdb; var_dump($wpdb-????>queries);&#13;
}&#13;
?&gt;


Ruft man die Seite nun auf, so erhält man an deren Ende die Zahl der SQL-Abfragen und die dafür benötigte Zeit. Hier waren es 86 Queries, die knapp 24 Sekunden benötigten. Anschließend folgt eine Liste mit Details zu jeder Abfrage. In dieser Liste fand sich jedoch keine Auffälligkeit.


Als Nächstes haben wir dann alle Wordpress-Plugins deaktiviert und einzeln wieder eingeschaltet. Nach dem Abschalten lief die Website wieder mit normaler Geschwindigkeit - pingdom.com meldete 1,8 Sekunden. Nach jedem wieder aktivierten Plugin prüften wir dann erneut. Und als wir dann das Sexybookmarks-Plugin aktiviert hatten, schoss die Ladezeit auf 24 Sekunden nach oben. Der Übeltäter war gefunden! Sexybookmarks lassen wir jetzt erstmal deaktiviert und warten ab, ob unser Fehlerreport einen Lösungsvorschlag bringt.


Bei dieser Aktion konnte man übrigens sehr schön die Wirkung von wp-cache sehen. Bevor wir das ganz zum Schluss wieder aktiviert haben lag die Ladezeit bei 4,8 Sekunden, danach fiel sie auf 2,7 Sekunden.