WordPress’ Ladezeiten verbessern

Ich habe mich in letzter Zeit ein wenig mit der Ladezeit meines Blogs auseinandergesetzt – nicht zuletzt, weil Google mittlerweile auch “offiziell” die Ladezeit einer Seite mit in die Ranking-Bewertung einfliessen lässt. Dafür gibt es in den Google Webmaster Tools auch einen eigenen Bereich, der die Analyse der Ladezeiten ermöglicht.

Ein probates Mittel, die Ladezeiten zu verbessern, ist die Komprimierung des HTML-Codes. Vereinfacht ausgedrückt, werden die HTML-Seiten dabei einfach ZIP-komprimiert vom Server an den Browser/ Client übertragen, das heißt, dass sie in der Regel auch schneller geladen werden.

Für WordPress gibt es viele Plugins, die eine GZip-Komprimierung des Blogs ermöglichen sollen. Dabei bekommt man das auch ohne extra Plugin mit einer Zeile Code in der functions.php Datei im Theme-Ordner hin:

[sourcecode language=”php”][/sourcecode]

ob_gzhandler ist eine PHP-Funktion, die die Ausgabe von HTML-Code GZip-komprimiert.

Ich muss dazusagen, dass mein Hoster diese Funktion unterstützt – dazu ist nämlich die zlib extension von PHP notwendig, sonst funktioniert das Ganze nicht so einfach (über die functions.php-Datei).

Wer also mal ausprobieren will, ob die GZip-Komprimierung funktioniert, schreibt einfach die oben genannte Zeile Code an den Anfang der functions.php Datei. Erscheint danach im Browser keine Fehlermeldung, ist die zlib-extension vorhanden und die Komprimerung läuft. Gefühlt sollte sich die Ladezeit auch schon deutlich verbessert haben. Bei mir gab es eine Verbesserung um ca. 75% – ein stolzer Wert und sicherlich auch gut für Google.

Durch den Einbau der Funktion in die functions.php übersteht das Ganze auch ein Update auf eine neue WordPress-Version, da sich die Änderung/Ergänzung ja auf Theme-Ebene befindet.

Viel Spaß beim Ausprobieren! Wer noch andere Tipps zur Komprimierung oder Verbesserung der Ladezeiten von WordPress hat, kann wie immer die Kommentarfunktion verwenden.

Update: Falls nach der Implementierung im Admin-Bereich Fehlermeldungen auftauchen, kann alternativ auch mal das Plugin wpCompressor von Sergej Müller ausprobiert werden!

54 Antworten auf „WordPress’ Ladezeiten verbessern“

  1. Danke auch von Mir für diesen doch eigentlich recht simplen Tipp. 😀

    PS: Wie und mit welchen Code-Schnippsel lest ihr hier in der Sidebar die Daten von dem Feed-Statistik Plugin von Frank bueltge aus?

  2. Danke für diesen eigentlich extrem simplen Trick. Ein weiterer Pluspunkt ist die Tatsache, dass kein extra Plugin geladen werden muss, denn wer viele Plugins nutzt, der merkt auch, das WordPress dadurch z.T. deutlich langsamer wird.

  3. hm, ich habe auch nicht gezippt 🙂 woran merke ich denn, wenn in der function eingebaut, ob mein server es unterstützt?

    @Thomas, danke für den Tipp mit den feedstats

    @segej, nein kennt nicht jeder, ich hab es doch tatsächlich immer überlesen, oder mir keine Gedanken darum gemacht :), aber dafür um seo:)

  4. Sofern der Hoster eine php.ini oder das Setzen von php-Optionen in der .htaccess zuläßt, reicht schon ein “zlib.output_compression=On”.

    Aber Achtung, die eigene php.ini (z.B. bei Strato) setzt dann möglicherweise auch andere Einstellungen des Hosters außer Kraft. Man sollte schon wissen, was man tut.

  5. Bei all den viel versprechenden Zahlen darf man aber nicht vergessen, dass der Server die Webseiten immer wieder aufs Neue komprimiert – bei jedem Seitenaufruf. Das steigert die Serverauslastung – je nach Anzahl und Komplexität der Seiten – enorm. Nur so am Rande bemerkt. Eine glänzende Medaille hat halt auch ihre Schattenseite.

  6. Naja, vielleicht wird die höhere Serverlast wieder ein kleinwenig dadurch kompensiert, daß die Auslieferung der komprimierten Seite selbst etwas schneller geht und der Server sich dann schon eher den neuen Aufgaben zuwenden kann 🙂

  7. Hallo zusammen,

    bei mir erscheint folgende Fehlermeldung bei der Einbindung als RSS:

    “Warning: gzinflate() [function.gzinflate]: data error in /srv/www/htdocs/k1153/wwwroot/hueckwagazin/wp-includes/http.php on line 1787

    RSS-Fehler: XML error: Reserved XML Name at line 3, column 38”

    Fehlermeldung wird angezeigt im Backend, wo ich eigene Webseiten per RSS eingetragen habe. Wird der Code aus der function.php entfernt, funktioniert alles wieder. Wird die Seite direkt aufgerufen, kommt keine Fehlermeldung. Fehler tritt augenscheinlich nur in Verbindung mit RSS auf.

    LG Dieter

  8. @Sergej Müller: Ich kannte die GZIP Sache bisher auch nicht, ist wohl an mir vorbei gegangen. Das Plugin von dir habe ich gerade aktiviert und damit spare ich nun auf meiner Startseite 25,4k ein. Das ist mri aber doch zu wendig.

    Deswegen meine folgende Frage :

    @All:
    Ich habe auch häufig gelesen, das man GZIP oder Deflate direkt in der .htaccess auf dem Apache Webserver aktivieren kann. Leider geht das bei mir nicht, da mein Hoster mod_gzip und/oder mod_deflate nicht unterstützt und es dort laut Techniker auch nicht aktiviert werden kann.

    Nun meine Frage an alle, kennt jemand einen “günstigen” Hoster, der diese Module unterstützt?

  9. Vielen Dank für diesen wirklich sehr wichtigen Hinweis, habe den kleinen Codeschnipsel auch gerade einmal eingefügt und habe schon das Gefühl, das der Blog um einiges schneller Lädt. 🙂

    Liebe Grüße Toni

  10. ich arbeite derzeit auch daran WordPress etwas feuer unterm hintern zu bereiten. Die hier vorgestellte Funktion ist ohne Caching eher kontraproduktiv da das ständige komprimieren der Seiten sehr auf die CPU stellt.

    So habe ich mir vorgenommen die Renderlast durch schlaues Caching auf ein minimum zu reduzieren.

    Ich werde die Tage mal einen Testblog mit dem Plugin aufsetzen und dabei vielleicht ein paar Benchmarkts präsentieren.

    tim [ä’t) ainfach [p’nI<t) de

  11. Danke für den klasse Tipp. Funktioniert bei meinem Provider einwandfrei. Endlich laden meine Bildergalerien schneller und auch die Seiten an sich konnten kräftig zulegen. Durch den Tip bin ich von fast 20 Sekunden, bis unten im Browser “Fertig” angezeigt wurde auf unter 10 Sekunden gekommen. Einfach klasse.

    Viele Grüße

    Alex

  12. Ich habe auf meiner Seite auch das Problem, dass WordPress extrem lange Ladezeiten hat. Allerdings hilft ab und an auch mal ein Blick über den Tellerrand, denn in meinem Fall lag es nicht an fehlender Komprimierung sondern an 1-2 eingebundenen Tools bzw. Feeds, welche sehr träge reagierten.

  13. Privat bin ich ein großer WordPress-Fan geworden (das ich dank des dazu erschienen Buches auch sehr gut verstehen konnte) und habe eben auch einmal probiert, mein Seite ein wenig schneller laden zu lassen…hätte man auch drauf kommen können 😉 war recht einfach, danke!

  14. Es darf dabei aber nicht vergessen werden, das die GZip-Komprimierung auch Rechenkapazität kostet.
    Gerade bei einem Blog muss bei einem Eintrag (Kommentar/Artikel) deswegen die Seite jedes mal neu GZipt werden.

  15. Ich habe von einem Leser eine Mail bekommen, in dem er meint folgende Fehlermeldung bekommen zu haben…:

    Warning: ob_start() [ref.outcontrol]: output handler ‘ob_gzhandler’ cannot be used after ‘URL-Rewriter’ in /mnt/web6/30/61/5183661/htdocs/wordpress/wp-content/themes/channel/channel/functions.php on line 2

    Bei mir passiert so was nicht und ich kann die Warnung nicht rekonstruieren. Hat irgendjemand vielleicht eine Idee?

    Danke

    Dave

  16. Gerade seit dem G. die Ladezeiten mit in Rankingberechnungen aufnimmt, sollte man solche Tricks zumindest mal ausprobieren. Ich habe allerdings mit dem WP super cache Plugin so gute Erfahrungen gemacht, dass ich es jetzt grundsätzlich einsetze. Oder gibt es da irgendwas, was dagegen spricht?

  17. In den meisten Fällen ist die serverseitige Komprimierung ein probates Mittel, um langsame Leitungen besser auszulasten. Mobile Geräte, die über ein Handynetz die Seite abrufen, profitieren enorm davon.

    Aber gerade für Google ist dies kontraproduktiv. Denn zum Einen hat Google beim Abrufen der Seite kein Bandbreitenproblem, zum Anderen bedeutet die Komprimierung mehr Serverlast und damit eine längere Zeit, bis die Seite beim Client, also Google, ankommt.

  18. Der von Sergej Müller angebotene Link ergibt bei Test meiner Seiten (WP 2.9.x+), dass GZip wohl wieder automatisch in WP drinnen ist. Sehr schön. Trotzdem danke für den Link.

  19. Hilfe,
    ich habe grade die drei Zeilen bei mir reinkopiert und jetzt geht garnichts mehr, weder meine Seite wird angezeigt noch der Admin Bereich ist aktiv, bin direkt nach dem Speichern rausgeflogen und konnte mich nicht mehr einloggen.

    Kann ich die functions.php über den FTP Zugang wieder richten oder ist jetzt mein 1 Jahres Projekt zerschossen?

  20. Hi Peter,

    genau – einfach die functions.php (ohne Erweiterung) wieder über FTP hochladen, dann sollte wieder alles funktionieren.

  21. Hallo,

    ich haben den Code-Schnipsel auch hinzugefügt und die Komprimierung habe ich getestet. Es funktioniert, leider hat es mir aber die RSS-Feeds zerschossen.

    Darf zwischen dem Code-Schnipsel und den weiteren Code ein Abstand sein, etc.?

    Wie kann es verhindert werden, dass die Feeds betroffen werden?

    😮
    apps

  22. Ich antworte mir mal selber. Ich habe den Code erneut ganz oben in die functions.php eingebunden und keine Leerzeile zum weiteren Code gelassen. Jetzt läuft es perfekt. Komprimierung 79%. Super!!!

    Vielen Dank an den hellen Kopf, der diese Lösung ohne zusätzliches Plugin ersonnen hat.

    😮
    apps

  23. Hallo,

    vielen Dank für den tollen Tipp. Ich habe die Ladezeiten mit einen Tool (vorher und nachher) gemessen und es hat sich sehr verbessert.

    Geniale Sache!

  24. Hallo an alle,

    kurze Frage, weiter oben hat Sergej erwähnt das man das schnell merkt wenn man die Seite komprimiert ausliefert. Es wurde auch eine Seite empfohlen, die überprüft, ob die Seite komprimiert ausgeliefert wird. http://www.gidnetwork.com/tools/gzip-test.php

    Ich nutze auf meiner Seite wp-minify und habe in die functions.php “ob_start(“ob_gzhandler”);” eingefügt, was meine Seite von ursprünglich 318kb und 56 http requests auf 211kb und 47 http requests gebracht hat und auch Firebug zeigt mir in YSlow in der Komponentenansicht an, dass die Dateien gziped ausgeliefert wurden.

    Auf der genannten Seite allerdings steht immer, dass meine Seite nicht komprimiert geliefert wird.

    Woran könnte das liegen?

    Gruß Daniel – CEO Mammut Medien

  25. Hi, ich bin gerade erst auf diesen Beitrag gestoßen, ist dieses Vorgehen immer noch nötig und empfehlenswert, ist ja doch schon ein wenig älter?

  26. Kann auch nur jedem “WP Super Cache” ans Herz legen um Ladezeiten zu verbessern, bedarf ein bisschen Anpassung des ganzen, aber habe wirklich massive Geschwindigkeitssteigerungen.

  27. Vielen Dank für den guten Rat, welchen ich sofort umgesetzt habe und dies lässt sich auch augenscheinlich sofort merken. Auch meinen Kunden welche mit WordPress arbeiten werde ich das so einbauen !

    noch mal Danke,
    Thomas

Schreibe einen Kommentar zu Alex Kempe Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert