Anzeige


Wordpress Ladezeiten verbessern: auch css-Dateien per GZip-Komprimierung verkleinern

2009-12-10 | Kategorie: Wordpress

Im Wordpress Magazin erschien vorgestern – mit dem Hinweis auf das neue Qualitäts- und Rankingkriterium in den Google Webmaster Tools – ein interessanter Beitrag zur komprimierten Datenübertragung der Seiten eines Wordpress Blogs ohne Plugin. Im Einsatz: die serverseitig bereits fast immer installierte Gzip-Komprimierung.

Bei grafisch aufwendigeren Themes können jedoch auch die darin enthaltenen Stylesheets eine nicht unerhebliche Dateigröße erreichen. Relativ schnell wird man dann in den Webmaster-Tools den Hinweis erhalten, dass diese css-Dateien auch nach erfolgreicher Aktivierung der GZip-Komprimierung für das Blog nicht automatisch mitkomprimiert werden; der Code greift schliesslich in der Standard-Variante nur bei php-Dateien.

Mit dem folgenden Verfahren lassen sich auch die Stylesheets eines Themes komprimieren. Der Trick: aktuelle Browser akzeptieren als Stylesheets auch Dateien, die nicht die Endung .css haben – und deshalb kann man den Stylesheets seines Themes problemlos eine andere Endung verpassen, in unserem Fall .php.

Anleitung: Wordpress’ CSS-Komprimierung mit GZip

Änderung in bzw. an den Dateien style.css und header.php des genutzten Themes

  1. Sucht im Verzeichnis des Themes (oder in einem Unterordner namens “styles”) nach dem Stylesheet für euer Theme. Hilfreich ist dabei auch ein Blick in den Quelltext eures Blogs. Oft heisst die Datei “style.css”.
  2. Legt eine Kopie dieser Stylesheet-Datei an
  3. Benennt die Kopie in z.B. style.php um und öffnet die Datei
  4. Fügt folgenden Code an den Anfang der style.php ein:
<?php
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
header('Content-type: text/css');
ob_start("ob_gzhandler");
}
?>
  1. … und folgenden Code an das Ende der style.php:
<?php
ob_end_flush();
?>
  1. Speichert die style.php
  2. und übertragt sie auf den Server, am Besten in das gleiche Verzeichnis wie die ursprüngliche style.css
  3. Sucht jetzt im Verzeichnis des Themes nach der Datei header.php
  4. … und in der header.php nach der Zeile, in der auf die style.css des Themes verwiesen wird.
  5. Ändert diesen Verweis auf den Pfad zur gerade upgeloadeten style.php ab (in unserem Fall bedeutet das nur eine Änderung der Dateiendung von css zu php).
  6. Übertragt nun auch die geänderte header.php auf den Server

Wenn das Theme mit mehreren css-Dateien arbeitet, könnte man spätestens jetzt noch an eine Zusammenlegung der einzelnen Dateien denken.

Die erste Zeile prüft, ob der eigene Server die GZip-Komprimierung unterstützt. Wer sich dessen sicher ist, kann die Abfrage auch weglassen (dann die schliessende geschweifte Klammer nicht vergessen!) Die Zeile für den Content-type verhindert Probleme mit dem Mozilla Firefox.

Fertig. Das Theme arbeitet nun mit einem GZip-komprimierten php-Stylesheet style.php, nicht mehr mit einer unkomprimierten style.css. In unserem Fall bedeutet das eine Reduzierung der Dateigröße von 10.14 KiB auf 2.97 KiB, die Ersparnis liegt also bei mehr als 70%. Einen Nachteil hat das Verfahren: während css-Dateien im Browsercache gespeichert werden, liefert der Server php-Dateien immer ungecacht aus. Wer also immer wiederkehrende Stammleser oder ganze Artikelserien zum Durchblättern für seine Besucher bereithält, kann sich die Änderungen sparen.

Es gibt mit Sicherheit noch andere Ansätze (z.B. über die .htaccess) zur Komprimierung von css-Dateien, die sowohl Vor- als auch Nachteile haben können. Für uns funktioniert diese Lösung hier einwandfrei.

Stichworte:

, , , ,

« Bahntickets bei Lidl noch nicht ausverkauft «
» Lidl-Bahntickets: Deutsche Bahn legt 250000 DB-Lidl-Tickets nach »


Lesezeichen

OneviewStumbleUponMister WongDeliciousDiggFacebookTwitterGoogle BookmarksStudiVZWebnews

Weitere Meldungen:

Wordpress 3.0 erscheint Mitte 2010
Wordpress 2.9 Carmen zum Download
Anleitung: Web-Slices für WordPress-Blogs als RSS-AlternativeAnleitung: Web-Slices für WordPress-Blogs als RSS-Alternative


5 Kommentare
Kommentieren»

  1. Sehr interessanter Artikel. Ob ich nun aber CSS dateien komprimieren muss ist eine andere Frage.
    Ich denke zuerst sollte man aber versuchen alle vorhandenen CSS Dateien (und bei WP Templates sind das schnall mal 4-5 Stück) zu einer Datei zusammen fassen. Das würde das Laden der CSS-Dateien schon einmal beschleunigen.

  2. Ja, seh’ ich ähnlich, deshalb hatte ich das Zusammenfassen der Stylesheets in der einen komprimierten Datei oben auch kurz erwähnt. Der Gedanke zum Komprimieren kommt den meisten wohl tatsächlich erst dann, wenn die Stylesheets in den GWT als “Bremse” ausgewiesen werden.

  3. [...] in php-Dateien umzuwandeln, die dann per gzip komrimiert werden können. Das hab ich bei markensysteme.de gefunden und es hat mir ganz gut gefallen: Die Stylesheet-Dateien werden durch einem kleinen Code [...]

  4. Danke für den Tipp, hat auch in meinem WP-Blog super funktioniert!

  5. Sofern man einen Apache-Server hat, kann man auch einfach mod_deflate aktivieren und als Endung .css einstellen, so werden automatisch _alle_ css Dateien komprimiert.

Kommentieren

Aktueller Artikel: Wordpress Ladezeiten verbessern: auch css-Dateien per GZip-Komprimierung verkleinern
Trackback: http://www.markensysteme.de/wordpress/wordpress-ladezeiten-verbessern-auch-css-dateien-per-gzip-komprimierung-verkleinern/00606/trackback/

Add to iGoogle Follow us on Twitter