SEO Sunday – Performance, Performance, Performance
Ich habe vor einem halben Jahr zuletzt behauptet, dass die Performance einer Website für Google wichtig ist. Wenn ich mir den aktuell hochkochenden Trend zum Thema mal ansehe und die entsprechenden Artikel dazu studiere bleibt einer allerdings von seiner Ausführlichkeit unerreicht:
Performanceoptimierung dynamischer Websites
Richtig, den haben wir selbst geschrieben. An unserem ersten SEO Sunday. Damals hat ihn kaum jemand beachtet. Möglicherweise liegt das an seiner technizität. Für einen Webmaster taugt er durchaus als Anleitung. Am heutigen SEO Sunday soll es wieder um Performance gehen. Heute betrachten wir das Thema allerdings von Seiten eines Blogs. Um genau zu sein: von Seiten eines WordPress Blogs.
Aus Sicht eines Softwareentwicklers ist WordPress eines der am schlechtesten performanceoptimierten Systeme überhaupt. Dafür gibt es insbesondere einen Grund: der verschwenderische Umgang mit Datenbankresourcen. Nun, die Verwendungen von Datenbanken ist, wie wir programmierer sagen, “teuer”. Das heißt sie ist Zeitaufwendig. Ich habe mir mal den Spaß erlaubt zu testen wie viele Datenbankabfragen für die Darstellung eines mit dem Standardtemplate versehenen WordPress Blogs erforderlich sind. Es sind deutlich mehr als 30. Und das nur beim Aufruf der Startseite. Da ist “schlampige Implementierung” noch extrem harmlos ausgedrückt. Ein weiteres Problem bezieht sich auf die Tabellenindizes von WordPress. Diese werden nicht wirklich regelmäßig aktualisiert. Vereinfacht ausgedrückt bedeutet dieser Umstand, dass eine WordPressinstallation mit jeden neu hinzugekommenen Beitrag,Tag oder jeder Kategorie, langsamer wird.
Je nach Ausstattung des MySql-Servers gerät man so recht schnell an Schwellenwerte, die zu einer Exponentiellen Verlangsamung sämtlicher Abfragen führen.
Bäng! Schon ist man von langsam zu richtig langsam gerutscht.
Das ganze wird durch den exzessiven Einsatz von Plugins noch verschlimmert. Jedes Plugin braucht meistens informationen aus der Datenbank. Wieder 1-10 abfragen mehr. Das gilt natürlich auch uns insbesondere für das beliebte All-in-One SEO-Pack. Für diese Probleme gibt es im Bereich WordPress 3 Ansatzpunkte:
- man verzichtet auf WordPress (keine wirklich gute Lösung)
- man optimiert regelmäßig die zugrundeliegenden Datenbanktabellen
- man verwendet WP-Super-Cache
Tabellen Optimieren
Die Tabllenoptimierung gestaltet sich recht einfach. Das Funktioniert über phpMyAdmin indem man jede Tabelle anklickt und dann unter “Operationen” den Punkt “optimiere Tabelle” auswählt. Alternativ kann man auch einfach den SQL-Befehl “optimize table %tabellenname%” ausführen.
WP-Super-Cache verwenden
Das Plugin bekommt über die WordPress-Verwaltung im Menüpunkt Plugins > Installieren (dort einfach danach suchen)
Ideal ist eine Kombination aus aus den beiden letztgenannten Punkten, denn Supercache hat eine Macke. Es cached die Seiten nur für eine bestimmte Zeitspanne (in der Regel eine Stunde). Wurde ein Artikel länger als eine Stunde nicht gelesen führt dies dazu das er erneut gekached wird und der gesamte Datenbankabfragekram erneut durchläuft. Darüber hinaus haben sich die Entwickler des Plugins über SEO-Aspekte keinerlei Gedanken gemacht. So kommt es dazu, dass in der Standardeinstellung Suchmaschinencrawler nicht ungecachte Seiten geliefert bekommen. Da haben die Damen und Herren falsch überlegt. Scheiß auf den User, wir wollen doch Google beeindrucken.
Hierfür muss unter “Rejected User Agents” der Inhalt entfernt werden. Dann erhalten sämtliche Bots auch Cache-Varianten der Seite.
Eine weitere wichtige Einstellung: Das Timeout zum löschen des Caches, kann durchaus länger als eine Stunde betragen. Denn insbesondere bei älteren Beiträgen ist es eher unwahrscheinlich, dass diese mehr als 3-4 Mal täglich aufgerufen werden. Insofern darf das Timeout auch genau in diesem Bereich liegen: 24 * 3600 / 3 = 28800 Sekunden. Doch Vorsicht: ist das Blog sehr hoch frequentiert (mehr als 5000 Visits am Tag) kann sich das auch nachteilig auswirken. Im Zweifel einfach mal mit diesem Wert spielen.
Ähnliches gilt für den Punkt “Enable Super Cache Compression”. Dies aktiviert eine GZIP-Kompression der ausgelieferten Seiten. Hat das betreffende Blog allerdings als die oben genannten 5000 Visits kann auch dies dazu führen, dass sich das nachteilig auswirkt, weil der Server dann plötzlich die meiste Zeit mit der Kompression der Seiten verschwendet.
In diesem Sinne: frohes schnelles bloggen!


.wired Schrieb am
11. April, 2010 @ 10:28
Naja. Da hätte man aber auch die Plugins WP-Optimize erwähnen können (mit welchen man alle WordPress Tabellen komfortabel mit einem Klick aus dem Backend heraus “optimieren kann”) so wie WP-Minify, mit welchem nochmal alle Stylesheets und Scripts zusammengeführt und komprimiert werden. Gibt dermaßen Schub…
Gruß, .wired
Jakob Zogalla Schrieb am
11. April, 2010 @ 10:52
Wo er Recht hat, hat er Recht. Danke für den Hinweis
Birger Schrieb am
11. April, 2010 @ 22:18
Vielen Dank für den Tipp bezüglich dem WP-Minify Plugin. Das habe ich jetzt auch mal installiert und werde es testen. Da muss man ein bisschen experimentieren, was funktioniert und was nicht. Das Plugin Floatbox Plus scheint auf Anhieb nicht zu funktionieren.