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)

2 Kommentare
  1. Gast13
    Gast13 says:

    Danke!

    Endlich mal jemand der das Caching gescheit beschreibt.
    Die Punkte 1 und 2 haben Super funktioniert!
    Google PageSpeed ging damit auf 90/96.

    Punkt 3 die Serverseitige Komprimierung scheint mein Server nicht zu unterstützen. Funktioniert bei mir also nicht.

    Danke nochmals!

    Antworten

Was denkst du darüber?

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

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