t3n News Software

Caching in WordPress: Jenseits des Optimierungs-Wahns – Wie man WordPress wirklich schneller macht

Caching in WordPress: Jenseits des Optimierungs-Wahns – Wie man WordPress wirklich schneller macht

Nachdem in seinen Webmaster Tools das neue Feature „Website-Leistung“ freigeben hat, und klar ist, dass die Geschwindigkeit, mit der eine Webseite abgerufen wird, zukünftig einen Ranking-Faktor darstellt, hat ein Optimierungs-Wahn bei den WordPress-Blog-Betreibern eingesetzt. Es haben so gut wie alle mir bekannten Blogs von Google amtlich attestiert bekommen, dass sie zu langsam sind! Dies wird über kurz oder lang natürlich Auswirkungen auf die Besucherzahlen haben, und logischerweise muss nun versucht werden, diesem Umstand entgegenzuwirken.

Für die Optimierung der Blogs werden derzeit (auch von mir selbst) eine ganze Menge an Tutorials veröffentlicht , die sich mit Header-Optimierung und Ähnlichem beschäftigen. Es gibt auch Ansatzpunkte zur Optimierung von Bildern und dem Minify von JavaScript und CSS. Die Diskussion an sich ist schon alt, nimmt aber derzeit rasant an Fahrt auf. Logischerweise schaut sich kein Blog-Betreiber teilnahmslos mit an, wie er in den Suchergebnissen von Google nach hinten durchgereicht wird.

Viele Mutmaßungen, wenig Konkretes

Geschwindigkeits-Verlaufskurve einer Website in den Google Webmaster Tools
In den Webmaster Tools zeigt Google seit Neuestem an, welche Geschwindigkeit für eine Website gemessen wurde. Diese hier hat (zumindest laut Google) einigen Optimierungsbedarf.

Aufgrund meiner Beobachtungen bei Twitter und in der Blogosphäre macht sich jedoch eine gewisse Hilflosigkeit breit, die zum Beispiel auch in den Kommentaren dieses Blogbeitrags nachverfolgt werden kann. Die Anzahl der Mutmaßungen ist fast ebenso hoch wie die möglichen Lösungsvorschläge, allein: Ob eine der Maßnahmen zum Erfolg führen wird, kann trotz Tools wie Page Speed oder YSlow niemand sagen oder garantieren.

Nie habe ich das Sprichwort „Mit Kanonen auf Spatzen schießen“ so gerne angewendet, wie im Moment. Die derzeitige Diskussion in den Blogs erinnert mich durchaus an die anhaltende Diskussion um die Mikro-Optimierung von PHP (Was ist schneller: „echo“ oder „print“?). Einige durchaus sehr einfache Maßnahmen haben viele der Blogs nicht im Einsatz, und die beiden damit verbundenen WordPress-Plugins sind durchaus sinnvoll und ihr Nutzen nachvollziehbar (siehe weiter unten).

Es ist nämlich nicht so, das es für keine Caching-Plugins gäbe, im Gegenteil! Und der Nutzen dieser Plugins ist um einiges größer als die derzeitig propagierten Optimierungen, die hauptsächlich von YSlow oder Page Speed vorgeschlagen werden. Die Grundlage jedes Blogs ist die dahinterliegende HTML-Seite. Je schneller diese ausgeliefert wird, desto schneller ist der . Die Renderzeit einer Seite ist in WordPress proportional zu der Anzahl der Plugins, die installiert worden sind.

Fakt: unsichtbare Bremsen für WordPress

Verführerisches Plugin-Directory... Plugins können im Hintergrund eine erhebliche Bremse sein.
Verführerisches Plugin-Directory... Plugins können im Hintergrund eine erhebliche Bremse sein.

Viele mögen jetzt sagen, dass sie ja zum Beispiel nicht auf jeder Seite ein Youtube-Video eingebunden haben, ergo das Plugin ja auch nicht auf jeder Seite ausgeführt wird. Diese Annahme ist falsch. Installiere ich in WordPress 20 Plugins, die allesamt den Content beeinflussen, dann werden bei jedem Seitenaufruf auch alle 20 Plugins ausgeführt. In unserem Beispiel wird das Youtube-Plugin also auch dann ausgeführt, wenn die Seite kein Youtube-Video enthält.

Je mehr Plugins ich demnach installiere, desto mehr Aufrufe pro Seite verarbeitet WordPress. Das ganze Dilemma wird dann klar, wenn man davon ausgeht, dass ein Plugin nicht nur einen Filter auf den Content anwendet, sondern parallel dazu auch Settings aus der Datenbank auslesen muss. Man könnte jetzt anmerken, dass logischerweise die Plugins erst dann die Datenbank verwenden müssen, wenn sie auch wirklich verwendet werden. Dies ist soweit richtig, setzt aber auch voraus, dass der jeweilige Programmierer überhaupt so weit mitgedacht hat.

Rettung in der Not: Caching-Plugins

Insofern ist die einfachste und notwendigste Optimierung eines Blogs der Einsatz eines Caching-Plugins. Derzeit sind zwei „Standard-Plugins“ mit unterschiedlichen Ansätzen verfügbar, deren Notwendigkeit von Blog zu Blog unterschiedlich ist.

WP Super Cache

Der WP Super Cache basiert auf dem einfachen Konzept, dass es WordPress-Seiten als statisches HTML auf der Festplatte ablegt, und diese Seiten ausliefert anstatt sie bei jedem Seitenaufruf von WordPress  erneut rendern zu lassen. Logischerweise hilft das nur bedingt: Auf einem Blog mit vielen Kommentaren bzw. vielen Stammlesern würde die Seite trotzdem bei jedem neuen Kommentar neu gerendert werden. Bekommt die Seite jedoch nicht allzu viel Kommentare, ist dieses System optimal. Das gilt ebenso bei einem Einsatz von WordPress als CMS.

DB Cache Reloaded

DB Cache Reloaded behauptet von sich selbst, das schnellste WordPress-Caching-Plugin zu sein, wahrscheinlich unbeachtet der Tatsache, dass Dateioperationen im Optimierungsumfeld als sehr „teuer“ gehandelt werden. Das Plugin legt keine statischen HTML-Seiten an, sondern cached die Datenbankabfragen von WordPress an sich. Vorteil ist, dass auch die Teile von WordPress gecached werden, die WP Super Cache nicht zwischenspeichern kann. Während WP Super Cache stets eine gesamte Seite neu rendern muss um eine statische Version anzulegen, braucht DB Cache Reloaded nur Teile der Seite neu zu berechnen.

Fazit

Welches Caching-Plugin auf einem Blog verwendet werden sollte, hängt stark von den Besucherzahlen und der Art des Blogs ab. Während in manchen Fällen eines der Plugins ausreicht, gibt es auch Beispiele, in denen beide Plugins parallel betrieben zu einer nachhaltigen Verbesserung der Ladezeiten geführt haben. Dass ein solches Plugin in Blogs mit hohen Seitenabrufzahlen gehört, dürfte nun klar sein. Welches der Plugins eingesetzt werden muss, muss im Einzelfall getestet werden.

Über den Autor

Guido Mühlwitz ist freier Webworker und entwickelt seit über 15 Jahren Internet-Anwendungen. In seinem Blog berichtet er regelmäßig über aktuelle WordPress-Themen. Open Source Web Applications wie Drupal, CakePHP und ModX gehören regelmäßig zum Themenbereich seiner Veröffentlichungen.

Bildnachweis für die Newsübersicht: Collage verwendet Material von © Maxim_Kazmin - Fotolia.com

Newsletter

Bleibe immer up-to-date. Sichere dir deinen Wissensvorsprung!

Vorheriger Artikel Zurück zur Startseite Nächster Artikel
16 Antworten
  1. von gutu am 16.12.2009 (11:43 Uhr)

    Kann man die beiden Plugins "WP Super Cache" und "DB Cache Reloaded" parallel laufen lassen?

    Antworten Teilen
  2. von Guido Muehlwitz am 16.12.2009 (11:46 Uhr)

    Klar, ob es Sinn macht ist eine andere Frage :) Du musst mit YSlow oder Page Speed die Ladezeiten vergleichen. Für ein "normales Blog" reicht in der Regel eins der beiden. Welches das ist hängt wiederum von der Art und der Anzahl der Plugins ab - also heißt es: ausprobieren! :)

    Antworten Teilen
  3. von Nils am 16.12.2009 (12:06 Uhr)

    Mit WP Super Cache habe ich auf meinem Blog eher schlechte Erfahrungen gemacht. DB Cache Reloadet hört sich interessant an - werde ich die Tage mal testen. Danke für den Hinweis ;)

    Antworten Teilen
  4. von Guido Muehlwitz am 16.12.2009 (12:19 Uhr)

    Es gibt Blogs, die laufen ohne WP Super Cache schneller als mit, deshalb: ausprobieren! :) Es ist alles eine Frage der Benutzerzahlen und der installierten Plugins :)

    Antworten Teilen
  5. von Frank am 16.12.2009 (12:29 Uhr)

    Aus meiner Erfahrung sollten nur User mit derartigen Cache-Plugins spielen, die einiges an Hintergrundwissen mitbringen und die viele andere Optimierungen schon getan haben, sei es Themes, Plugins und Webspace. Außerdem meine ich, dass die Aussage "langsam" der Webmaster Tools vor allem externe Dienste meint und diese auch in den Hinweisen listet, die DNS dort können enorm die Site bremsen und hier sehe ich bei vielen Plugins ein großes Potenzial der Optimierung. Jeder Admin sollte ich überlegen, ob er denn jeden externen Service einbinden muss und wie viele Sites man pingt.

    Antworten Teilen
  6. von Monika.TS am 16.12.2009 (13:29 Uhr)

    Frank ich gebe Dir ja recht, doch die Tools listen Sachen auf, die haarsträubend sind. Eine print.css in die normale style.css zu integrieren ist schlussendlich langsamer als ein eigenes Style.

    ++++++++++
    zum Artikel: der gefühlte 987654789Millionste dieser Tage, der Tools, Plugins aufzählt, aber keiner schreibt wies wirklich geht.

    Ich weiß nicht wie es andern geht, aber ich habe genug E-mails derzeit: ich komm mit dem Plugin nicht zu recht, ich mit jenem ---Hilfe!!!

    All die dargestellten CachePlugins brauchen jemand, der sich 100% auskennt, sonst killt man 1. wichtige Dinge auf seinem Blog,
    oder wird 2. extrem langsamer

    die Pluginautoren setzen Wissen und Serverkonfigurationen voraus, die mehr als die Hälfte der Leut einfach nicht haben.

    aber all diese Artikel tun eines: sie schüren Angst

    lg
    Monika

    Antworten Teilen
  7. von Frank am 16.12.2009 (13:40 Uhr)

    @Monika: das ist ja was ich meine; die Tools können das Wissen nicht ersetzen, sie können nur unterstützend helfen.

    Zu den Plugins: genau, es sollten User diese Plugins einstellen, die es verstehen und die auf die versch. Bereiche Einfluss nehmen können. Sicher kann Super Cache helfen, aber wenn dann alles statisch ist, sind auch viele unzufrieden - sie haben sich meist nicht mit dem Plugin auseinander gesetzt. Der Webspace kann je nach Anbieter oft viel mehr.

    Aber ich meine trotzdem, dass viele Sites einfach zu viele externe Dienste rein holen; zumindest im Vergleich von Mehrwert und Speed der Site

    Antworten Teilen
  8. von Peter am 16.12.2009 (14:05 Uhr)

    Also wenn es ums Caching bei WordPress geht, ist W3 Total Cache meine Wahl. Effektiver als durch dieses Plugin geht es fast nicht mehr.

    Antworten Teilen
  9. von Sergej Müller am 16.12.2009 (14:17 Uhr)

    Kann ich auch bestätigen: Man soll nicht gleich Cache-Plugins einbinden und aktivieren, vielmehr erst prüfen, ob der "Fehler" für die Langsamkeit des Blogs nicht doch woanders liegt. Es gibt zig Ursachen, warum Blogseiten träge sind, da sind statische Inhalte nicht immer eine bessere Wahl. Es lohnt sich fast immer nach der Ursache zu suchen, beim Provider nachfragen, meinen Blog lesen, wo ich permanent Tipps zur Performance-Steigerung gebe.

    Antworten Teilen
  10. von aba am 17.12.2009 (00:35 Uhr)

    ich kann peter (#9) nur zustimmen: w3 total cache ist eine feine sache, zumal es auch cdn unterstuetzt.

    Antworten Teilen
  11. von Sergej Müller am 17.12.2009 (09:21 Uhr)

    @aba
    Auch ein CDN bringt nichts, wenn jedes Plugin auf eigenes JS-Framework aufbaut und es in jede Blogseite "hard" einbindet.

    Antworten Teilen
  12. von Hannes am 17.12.2009 (11:46 Uhr)

    Kann nur zustimmen, meiner Erfahrung nach ist zur Zeit W3TC das Caching Tool der Wahl, und zwar nicht nur in der Not - einfach zu handhaben und sehr gut skalierbar auf Grund der vielfältigen (aber nicht überladenen) Konfigurations-Möglichkeiten und verschiedenen Caching Backends (APC, Memcached, DB, File ...) Und der Entwickler reagiert auch recht fix auf Anfragen, sehr schön! War schon n bisschen schockiert das es in der Auflistung hier gefehlt hat.

    Des weiteren ist es meiner Erfahrung nach auch nicht verkehrt sich ab und zu mal an zu sehen was Wordpress und diverse Plugins der Meinung sind in den header / footer werfen zu müssen, so lassen sich zum Beispiel eingebundene Scripts mit 'remove_action('wp_head', 'wp_print_head_scripts',9,0);' in der functions.php des Templates entfernen (wenn man zum Beispiel wie ich lieber alle scripts minified im Footer und die JS Libary über google einbindet).

    LG

    Antworten Teilen
  13. von dongorgon am 17.12.2009 (17:14 Uhr)

    ^^ So sieht's einfach mal aus. Alles lame ausser Mutti + W3 Totalcache ;-)

    Kann Hans da nur voll zustimmen

    Antworten Teilen
  14. von aba am 17.12.2009 (20:32 Uhr)

    @sergej.
    voellig richtig. dennoch finde ich einerseits die option natuerlich gut.
    aber du hast recht: die ursache ist damit nicht "bekaempft". mir graut es immer, wenn ich mir mit z.b. page analyze anschaue, wieviele zig javascript und kram und zeug geladen werden, die teilweise ja nichtmal auf allen seiten benoetigt werden...

    Antworten Teilen
  15. von Hannes am 18.12.2009 (10:21 Uhr)

    @aba
    wie gesagt, lässt sich ja alles mit Hilfe von 'remove_action('wp_head', 'wp_print_head_scripts',9,0);' entfernen, und falls die scripts a andere hooks gehangen werden muss man leider n dump des action stacks machen und dann mit trial and error vorgehen... ärgerlich ist es nur wenn Plugins Sachen nicht über die hooks einbinden sondern über dne Output Buffer, son Plugin würde aber auch sofoer deaktiviert gehören ;)

    Antworten Teilen
  16. von domingos am 18.12.2009 (13:43 Uhr)

    Überflüssige Pugins abschalten, Datenbank regelmäßig optimieren, überflüssige Entwürfe löschen, WP-eigenen Cache einschalten, Fotos webgerecht komprimieren, Datenbank-eigenen Cache aktvieren, man kann alles mögliche tun, ob das für ein prvates Blog mit 30 Bescuhern pro Tag sinnvoll ist, ist aber eine andere Frage.

    Antworten Teilen
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Mehr zum Thema WordPress
Von der Blog-Plattform zum Domain-Anbieter: Warum Wordpress 19 Millionen Dollar für .blog gezahlt hat
Von der Blog-Plattform zum Domain-Anbieter: Warum Wordpress 19 Millionen Dollar für .blog gezahlt hat

Automattic, das Unternehmen hinter Wordpress, hat vergangenes Jahr die Top-Level-Domain .blog ersteigert. Die Domains will der Blog-Betreiber auch außerhalb von Wordpress verkaufen. » weiterlesen

Verdammt schnell: So baust du einen Blog im Google-AMP-Format mit Jekyll
Verdammt schnell: So baust du einen Blog im Google-AMP-Format mit Jekyll

Googles Accelerated Mobile Pages Project ist ein Konkurrent zu Facebooks Instant Articles. AMP sorgt dafür, dass einfache mobile Webseiten deutlich schneller geladen werden. Wer seine private … » weiterlesen

Blog Over, Beethoven: Rock the Blog holt Blogger nach Hannover [Sponsored Event]
Blog Over, Beethoven: Rock the Blog holt Blogger nach Hannover [Sponsored Event]

Am 18. März 2016 findet im Rahmen der CeBIT in Hannover eine der größten Bloggerveranstaltungen Europas statt – Rock the Blog. Rund 50 internationale Sprecherinnen und Sprecher namhafter … » weiterlesen

Alle Hefte Jetzt abonnieren – für nur 35 €

Kennst Du schon unser t3n Magazin?