Viele Blogger kennen das ärgerliche Problem, je mehr Traffic und Besucher man erhält umso langsamer kann der Blog werden. Das ist auch Abhängig von der verwendeten Host Art (Webhosting, Virtual Server, eigener Server usw.) Anzahl der WordPress Plug-ins, Menge der Datenbankabfragen und eben Traffic/Besucher. Wenn der Blog dann unter dem Besucher Ansturm zusammenbricht, nervt das natürlich. Wer mit seinem Blog Geld verdient, verliert in solchen Fällen auch noch Geld. Viele greifen in solchen Fällen zu weiteren Plug-ins wie beispielsweise spezielle Cache Plug-ins und machen letztendlich nur noch alles schlimmer.
Vor dem Optimieren: Gedanken zur Fehlersuche
Wer versucht, seinen Blog mit weiteren Plug-ins zu beschleunigen, landet schnell in einer Sackgasse denn die eigentlichen bremsenden Verursacher sind weiterhin im Blog aktiv. Alles andere als ideal. Eine zu Anfang gezielte Fehlersuche, ist da der erste und besserer Schritt. Drei Fragen sollte man sich daher zu Beginn stellen:
Was verursacht die Performance Probleme? Warum verursacht es diese Probleme? Welche Lösungen sind vorhanden?
Bei den ersten zwei Fragen sind meistens die eingesetzten Plug-ins Hauptverantwortlich. Entweder die Plug-ins haben zu viele unnötige Datenbankabfragen oder sie sind alles andere performancefreundlich Programmiert. Einige beliebte Plug-ins greifen sogar auf externe Quellen zu damit alle Funktionen gegeben sind. Auf solche Plug-ins sollte man nach Möglichkeit verzichten.
Fehlersuche einfach gemacht
Um die Fehlersuche in WordPress etwas einfacher zu gestalten, muss man auch wissen, wie viele abfragen an die Datenbank gemacht werden und wie lange dafür benötigt wird. Beide Werte geben Aufschluss über die Performance Eures Blogs. Es gibt eine einfache und schnelle Methode, diese Werte zum Testen sichtbar zu machen. Dazu kopiert Ihr folgenden Code in Euren Footer, am besten ans Ende direkt vor /Body und /Html:
<?php printf(__(‚%d queries. %s seconds.‘, ‚kubrick‘), get_num_queries(), timer_stop(0, 3)); ?>
Wenn Ihr nun Euren Blog abruft, seht Ihr nun unten die Anzahl der Abfragen (an die Datenbank) und die Sekunden. Wenn Ihr die Startseite abruft, werden in der Regel weniger Abfragen getätigt als auf einem Artikel. Zur Fehlersuche ruft Ihr nun einen beliebigen Artikel auf. Die Anfragen werden hier Höher sein, dies ist aber normal.
Der nächste Schritt ist einfach, deaktiviert ein Plugin, ladet den Artikel erneut und überprüft die Werte die im Footer angezeigt werden. Notiert Euch diese Werte und aktiviert das Plug-in wieder. Das macht Ihr mit allen Plug-ins so. Ihr werdet schnell merken, welche Plug-ins Euren Blog belasten. Das alleine reicht aber manchmal nicht aus. Falls Ihr Google Analytics einsetzt, überprüft die Absprungrate und zu welchen Zeitpunkt diese stark angestiegen ist. Habt Ihr in diesem Zeitraum ein neues Plug-in, Widget oder Hack in Eurem Blog aktiviert, ist dies ein möglicher Kandidat der die Perfomance Probleme verursacht.
Habt Ihr die problematischen Plug-ins gefunden, sollten diese umgehend durch bessere ersetzt werden. Das ist leider leichter gesagt als getan. Hier hilft nur recherchieren oder im WordPress Forum nach Hilfe zu Fragen. 2-3 Tipps für gute Plug-ins findet Ihr am Ende dieses Artikel.
Den oben angeführten Code könnt Ihr wieder entfernen. Wer mag, kann diesen Dauerhaft zur Kontrolle drin lassen. Man kann diesen Code auch etwas verstecken so das die Werte nur über den Quelltext ablesbar sind (wie in diesem Blog). Dazu einfach den folgenden Code in den Footer eintragen:
<!-- <?php printf(__('%d queries. %s seconds.', 'kubrick'), get_num_queries(), timer_stop(0, 3)); ?> -–>
Blogbremse Datenbank
Wohl eher selten der Fall aber eine ebenfalls mögliche Fehlerquelle kann die Datenbank sein. Wer gerne und viel neue Plug-ins ausprobiert, hat höchstwahrscheinlich viel “Datenmüll” in der Datenbank. Viele Plug-ins hinterlassen nämlich oft Ihre Eintrage in der Datenbank, selbst wenn man sie schon längst deaktiviert und gelöscht hat. Da den meisten Plug-ins eine saubere Deinstallationsroutine fehlt, ist dies nicht wirklich verwunderlich. Eine zugemüllte Datenbank kann somit auch Performance Probleme verursachen. Wer sich nicht mit Datenbanken auskennt, überlässt es besser einem Fachmann bzw. fragt befreundete Blogger. Zur Not und um es dem Fachmann etwas leichter zu machen, ist Adminer, welches erst kürzlich von Frank Bueltge als WordPress Plug-in umgesetzt wurde, eine gute Unterstützung. Adminer habe ich bereits hier vorgestellt und in dem Artikel findet Ihr auch eine kleine Anleitung, wie Adminer die Datenbank automatisch bereinigt.
Natürlich kann eine Verschlechterung der Performance Eures Blogs auch am Hosting liegen. Bevor man aber diesen kontaktiert, sollte man zuerst den Blog ordentlich überprüfen. Findet man nichts sollte man sich an seinen Hoster wenden. Dabei ruhig gleich erwähnen, das Ihr den Blog schon gecheckt habt.
Alternative Plug-in Empfehlungen
Ich hatte nun auch solche Probleme und habe die auf den beschriebenen Methoden komplett gelöst. Letztendlich waren es drei Plug-ins die regelrecht die Blog Performance gefressen haben. Zwei davon sind weit verbreitet und beliebt. YARRP (Yet Another Related Posts Plugin) ist so eine bremse, verursacht jede Menge Datenabfragen und hinterlässt sogar haufenweise Müll in der Datenbank. Als Ersatz hatte ich Contextual Related Posts, ist genau so schlimm gewesen. Ideale Alternative ist Related Posts by Category von Sergej Müller. Ebenfalls von Sergej Müller stammt dieser WordPress Hack der das weit verbreitete Plug-in Tweet This, bei mir ersetzte. Warum ich nicht mehr Tweet This einsetze, kann in diesem Artikel nachgelesen werden.
Manchmal sind auch kleinere Code Hacks für WordPress die bessere Wahl. Allerdings macht es natürlich etwas mehr Arbeit einen Hack in das Theme zu übernehmen und ist sicherlich nicht jedermanns Sache. Ausprobieren sollte man solche Hacks, die eine eventuelle Alternative sein könnten, auf jeden Fall. Es kann sich lohnen.
Fazit
Ich habe am Wochenende viel an der Blog Performance getan und das Ergebnis ist wirklich zufriedenstellend. Hatte ich letzte Woche noch gut 80 Abfragen bei 2-4 Sekunden nur für die Startseite, sind es jetzt nur noch 16(!) Abfragen bei gut 1 Sekunde. Bei einem Artikel sind es nun ca. 31 Abfragen bei gut einer Sekunde. Vorher lagen die Werte einer Artikelseite bei rund 94 Abfragen und 3-4 Sekunden (manchmal noch länger). Dementsprechend hoch war die Absprungrate. Ich denke das diese in nächster Zeit auch wieder sinken wird. Plug-ins konnte ich ebenfalls einsparen.
Ich denke es wird schon recht deutlich, wie schnell man sich eine gute Performance für den Blog wieder zurückholen kann. Für mich ist dies recht wichtig, da ich diesen Blog auf einem “Billig-Hoster” zum absoluten NPN (Niedrig Preis Niveau) betreibe und somit mir den Server mit gut 168 anderen Seiten und Blogs teilen muss. Zum anderen will ich, wie jeder andere Blogger auch, seine Leser und Besucher nicht mit einem langsamen Blog quälen müssen. Von daher sollte man schon mit seinen vorhanden Ressourcen etwas sparsam umgehen. Wenn Traffic und Leser allerdings weiterhin so steigen dann werde ich wohl bald doch ein größeres Webhosting Paket nehmen müssen. ;)
loading...
Michael P.
13. Oktober 2009, 09:58 Uhr
Falls man sein eigener Webhoster ist oder direkten Draht zu diesem sollte man ihn mal nach eAccelerator und Zendoptimizer fragen.
Hierdurch ist nochmal eine Performancesteigerung ( Geschwindigkeit, Speicherverbrauch, … ) möglich