Home > Blog, Webdesign > Websites schneller laden

Websites schneller laden

zippeddocsIn den letzten Tagen habe ich mithilfe von Yahoos Firefox Plugin YSlow und der dazugehörigen Dokumentation versucht meine Seite zu beschleunigen.
Hauptsächlich deshalb, weil mein Lightbox Plugin, obwohl es mit ca. 30kb incl. Framework eins der kleinsten ist, die Ladezeit meiner Seite für Modembenutzer sehr lang werden lässt.
Neben kleinen Verbesserungen wie die Javascripts ans Seitenende zu stellen und so erst zu laden, wenn die Seite schon aufgebaut ist, hat hier die GZip-Kompression die größten Geschwindigkeitszuwächse gebracht. So konnte ich allein den Javascript Anteil auf 10kb reduzieren. Auch das von Yahoo empfohlene “far future” (10+ Jahre) Caching, bringt bei Besuchern, die mehrere Seiten besuchen oder wiederkehren ohne ihren Cache geleert zu haben einen deutlichen Geschwindigkeitszuwachs. Einziger Nachteil ist, dass Änderungen an Dateien nur noch wirksam werden, wenn sie unter einem anderen Namen abgespeichert werden, weshalb ich bei meinem CSS darauf verzichte.

Ein paar Probleme bei der Umsetzung ergaben sich wieder durch meinen Host, da der einfachste und schönste Weg für gZipping und viele weitere von Yahoo empfohlene Einstellungen über  .htaccess und Apaches Rewriteengine führt, auf die ich leider keinen Zugriff habe. Also musste ich mit PHP vorlieb nehmen. Die Alternative wäre gewesen, auf ein z.B. von Google gehostetes jQuery umzusteigen, was auch gezippt ausgeliefert wird, wovon ich aber trotz guter Ausfallsicherheit, wegen der längeren Laufzeiten (die Dateien werden laut net toolkit in Italien gehostet) Abstand genommen habe.

Um ausschließlich per PHP zu zippen muss über die entsprechende datei in *.php umbenannt werden und folgendes zuoberst hineinkopiert werden:

<?php
ob_start ("ob_gzhandler");
header("Content-type: text/javascript; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 315360000;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
?>

Diese Strings können- und sollten hier angepasst werden:

$offset: Caching-Zeit in Sekunden
Cache-Control: must-revalidate (max-age überschreibt offset)
Content-type: text/javascript  – bei css oder html abzuändern

für weitere Erläuterungen siehe w3.org

Für WordPress gibt es auch ein Plugin, mit dem sich Zip-Funktionalität bequem aktivieren lässt bei Il Filosofo. Ob’s funktioniert sieht man auf einen Blick bei GIDNetwork. Das Plugin betrifft aber nur die von WordPress generierten PHP-Dateien, nicht css/javascript.

Am Ende spielt es für einen DSL-Benutzer keine Rolle ob nun 10 oder 100kb übertragen werden, Suchmaschinen- und ISDN-Benutzer werden sich aber freuen.

Den Erfolg- oder Mißerfolg, da GZip bei Providern mit wenig Prozessorkapazitäten und kleinen schon gut komprimierten Dateien auch Nachteile mit sich bringt, kann man mit zahlreichen Firefox-Extensions, bei Pingdom Tools oder Pagetest überprüfen.

KategorienBlog, Webdesign
  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks