Caching und Komprimierung in Apache aktivieren

Heutige Webseiten sind mittlerweile recht groß, jede Menge Grafiken, Java-Scripte und CSS-Bibliotheken müssen geladen werden. Da sich diese recht wenig ändern, macht es Sinn, dass diese gecacht werden und nicht bei jedem Aufruf neu geladen werden. Gerade auf mobilen Geräten, erspart man seinen Nutzern damit nicht nur Datenvolumen, sondern auch Zeit. Das gleiche gilt für die Komprimierung. Die Dateien werden vor der Auslieferung an den Client komprimiert.

Wer einen Apache Webserver nutzt, kann Caching und Komprimierung mit einer .htaccess Datei aktivieren. Dies ist meist auch bei “normalem” Webspace möglich. Im Zweifelsfall sollte man beim Provider nachfragen, ob es unterstützt wird.

Caching aktivieren

Die .htaccess Datei hat den folgenden Inhalt:

<IfModule mod_expires.c>

ExpiresActive On

ExpiresDefault “access plus 1 seconds”

ExpiresByType image/jpeg “access plus 4592000 seconds”

ExpiresByType image/x-icon “access plus 4592000 seconds”

ExpiresByType image/jpg “access plus 4592000 seconds”

ExpiresByType image/png “access plus 4592000 seconds”

ExpiresByType image/gif “access plus 4592000 seconds”

ExpiresByType application/x-shockwave-flash “access plus 2592000 seconds”

ExpiresByType text/css “access plus 2592000 seconds”

ExpiresByType text/javascript “access plus 2592000 seconds”

ExpiresByType application/x-javascript “access plus 4592000 seconds”

ExpiresByType text/html “access plus 6000 seconds”

ExpiresByType application/xhtml+xml “access plus 6000 seconds”

</IfModule>

Wenn wir uns eine Zeile anschauen, so sehen wir, dass wir das Caching für jeden Dateityp extra konfigurieren können:

ExpiresByType image/jpeg “access plus 4592000 seconds”

In diesem Fall werden JPG-Bilder für ca. 125h gecacht. Für jeden Dateityp sollte man sich in etwa überlegen, wie lange das Caching sinnvoll ist. Werden Bilder öfter mal aktualisiert, oder an den Java-Scripten öfter mal geschraubt wird, muss der Wert natürlich sehr viel niedriger ausfallen.

Neben Angaben in Sekunden, kann man dies auch in Wochen angeben:

ExpiresByType image/jpg “access plus 60 days”
ExpiresByType text/css “access plus 2 weeks”
ExpiresByType application/pdf “access plus 1 month”

Komprimierung

Als nächstes aktivieren wir die Komprimierung:

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain

AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml

AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml

AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript

AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf

AddOutputFilterByType DEFLATE font/truetype font/opentype

</IfModule>

Auch hier legen wir wieder die Dateitypen fest, welche komprimiert werden soll. Bilder, ZIP-Dateien und andere bereits komprimierte Datenformate werden hier außen vor gelassen. Hier macht eine Komprimierung keinen Sinn und würde Server und Client nur unnötig belasten.

Ein Hinweis zur Komprimierung, nicht bei allen Webhostern ist das Modul im Apache-Server aktiv. Hier wendet man sich im Zweifelsfall an den Support des Webhosters. Unterstützt der Provider die Komprimierung nicht über .htaccess, gibt es hier einen Workaround, welcher z.B. auch bei 1und1 funktioniert.

Überprüfung

Die Frage die sich jetzt stellt ist natürlich, ob unsere Anpassungen nun etwas bewirken. Netterweise stellt Google ein Online Tool hierfür bereit. “PageSpeed Insights”. Einfach die URL der Webseite angeben.

Machen wir einen Voher- und Nachher-Vergleich:

image

Wie man sieht, fällt die Bewertung nicht so gut aus. Unterschieden wird zwischen mobiler Seite und Desktop-Version.

Nach der Optmierung fällt die Bewertung schon besser aus:

image

image

Wie man sieht, gibt es immer noch etwas zu tun. Das Online-Tool von Google gibt jede Menge Tipps wie man die Webseite noch weiter optimieren kann. Aber fürs Erste haben wir schonmal einen Schritt in die richige Richtung getan.

Kommentar hinterlassen

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