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.

Dieser Teil der Speed Optimierung kann auch in einer .htaccess Datei auf den meisten Webhostingpaketen umgesetzt werden. 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.

Apache Modul: mod_expires

setzt den „Cache Expires – Header“, der dem zugreifenden Browser mitteilt, ab wann eine Webseitenkomponente nicht mehr gecached wird.
Dier 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.

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"
        
    

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
    

Weiter zu Teil 3: Einsatz einer “Memcache Lösung” (mod_pagespeed)