Speed Optimierung für WordPress – Part 2: Apache Module
Hier möchte ich auf drei Apache Module etwas näher eingehen: mod_expires, mod_headers und mod_deflate.
Bitte beachte!
Dieser Teil der Speed Optimierung kann auch in einer .htaccess Datei auf den meisten Webhosting-Paketen umgesetzt werden. Die einzige Ausnahme könnte mod_deflate sein.
Das Ziel ist es Traffic zu sparen: muss der Webserver keine / weniger Daten an die zugreifenden Browser ausgeben, wird die Seite automatisch ein wenig schneller. Wichtig dabei ist es den richtigen Cache Header an den zugreifenden Browser auszuliefern.
1. Apache Modul: mod_expires
Das Apache Modul „mod_expires“ setzt den „Cache Expires – Header“, der dem zugreifenden Browser mitteilt, ab wann eine Webseitenkomponente nicht mehr gecached wird.
Die hier auf dem Blog eingesetzten mod_expires Regeln sehen wie folgt aus:
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/gif A1209600
ExpiresByType image/png A1209600
ExpiresByType image/jpeg A1209600
ExpiresByType image/x-icon A1209600
ExpiresByType application/pdf A1209600
ExpiresByType application/swf A1209600
ExpiresByType application/x-javascript M604800
ExpiresByType application/javascript M604800
ExpiresByType text/plain M86400
ExpiresByType text/css M604800
Zur Erklärung:
- AddType image/x-icon .ico: teilt dem Apache Server mit, um was für einen Mime Type es sich bei einer .ico Datei handelt.
- ExpiresByType: hier werden den einzelnen Webseitenelementen (Jpeg’s, Png’s, Javascript etc.) ein Ablaufzeitraum mitgegeben. Das „A“ vor dem Ablaufzeitraum (2 Wochen) bedeuted, dass die Zeit für jeden einzelnen besuchenden Webbrowser -je nach dessen Zeitzone- gesetzt wird.
Das „M“ vor dem Ablaufzeitraum bedeuted, dass alle Kopien dieser Elemente im Browsercache zusammen gelöscht werden. In diesem Falle bei jedem zugreifenden Webbrowser nach einer Woche.
2. Apache Modul: mod_headers
Das Apache Modul „mod_headers“ sendet einen „Cache Control – Header“. Dieser hilft dem Browser, Komponenten nur dann abzufragen, wenn sich diese geändert haben.
Dier hier auf dem Blog eingesetzten mod_headers Regeln sehen wie folgt aus:
Header set Connection keep-alive
# Zwei Wochen gueltig
Header set Cache-Control "max-age=604800, public"
# Eine Stunde gueltig
Header set Cache-Control "max-age=3600, must-revalidate"
3. Apache Modul: mod_deflate
Das Apache Modul „mod_deflate“ komprimiert die angegebenen Komponenten Html,Css,xhtml,xml und javascript. Hierdurch wird Traffic und Bandbreite gespart und Geschwindigkeit gewonnen.
Dier hier auf dem Blog eingesetzten mod_deflate Regeln sehen wie folgt aus:
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE application/x-httpd-php text/html text/xml text/plain text/css text/javascript application/javascript application/x-javascript image/jpeg image/jpg image/png image/gif font/ttf font/eot font/otf
Header append Vary User-Agent
# Grafiken werden nicht komprimiert
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|pdf|swf|ico|zip|ttf|eot|svg)$ no-gzip
#Wir nehmen Ruecksicht auf aeltere Browser
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html