Leverage Browser Caching – mod_expires

Page Speed moniert bei vielen Websites Leverage Browser Caching. Das Problem ist mit mod_expires recht leicht zu beheben. Leverage Browser Caching deutet auf ein nicht vorhandenes oder eingeschränktes Cachen der Seite oder seiner Elemente hin. Der Browser wird aufgefordert jedesmal Inhalte (zB Bilder, Logos) frich vom Server zu holen, obwohl er diese Inhalte noch in seinem Cache hat. Es ist natürlich aufwändiger für den Browser die Daten vom Server zu holen, als aus dem Cache. Wenn Sie dem Browser nun erlauben die Daten aus dem Cache zu holen bedeutet das ein geringeres Ladevolumen über das Internet. Die Seite baut sich schneller auf. Leverage Browser Caching ist somit geeignet die Ladezeit Ihrer Website zu verkürzen. Sie können Leverage Browser Caching mit Page Speed testen.

Leverage Browser Caching einrichten
Um das Cahcen Ihrer Seiten zu ermöglichen muss der Server diese Funktion unterstützen; hierfür benötigt er das Modul mod_expires. Das tut der Apache, der verbreitetste Webserver, aber von Haus aus. Wenn es nicht installiert ist, müssen Sie das am Server erledigen, ähnlich wie bei der Gzip Komprimierung.

Mod_Expires in .htaccess
Nun müssen Sie es Ihrem Server noch mitteilen, dass er das Modul mod_expires auch verwenden soll, und wie er es verwenden soll. Hierzu fügen Sie in Ihre .htaccess-Datei diese Anweisungen ein:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault „access plus 1 month 1 days“
ExpiresByType text/html „access plus 1 month 1 days“
ExpiresByType image/gif „access plus 1 month 1 days“
ExpiresByType image/jpeg „access plus 1 month 1 days“
ExpiresByType image/png „access plus 1 month 1 days“
ExpiresByType text/css „access plus 1 month 1 days“
ExpiresByType text/javascript „access plus 1 month 1 week“
ExpiresByType application/x-javascript „access plus 1 month 1 days“
ExpiresByType text/xml „access plus 1 seconds“
</IfModule>

Achtung: Bei Copy und Paste dieser Zeilen bitte darauf achten, dass das auch richtige Anführungszeichen sind. WordPress wandelt die aus unerfindlichen Gründen in ein Sonderzeichen um!

Die If-Abfrage kontrolliert, ob das Modul mod_expires geladen ist. Erst dann werden die Einstellungen ausgeführt.

Einstellungen mod_expires
So legen Sie für jeden Dateityp Ihrer Webseite ein Verfallsdatum fest. Das können Sie beliebig einstellen. Zur Verfügung stehen Ihnen years, months, week, days, hours, minutes, seconds. Diese können Sie kombinieren. So ist es denkbar Gifs 2 Monaten 7 Tagen und 2 Stunden im Cache verfallen zu lasen: ExpiresByType text/html „access plus 2 month 7 days 2 hours“. Ein Monat ist wahrscheinlich ein vernünftiges Maß.

Mod_Expires am Server
Wenn Sie direkten Zugriff auf Ihren Server haben fügen Sie das Cachen am Besten direkt in die Konfigurationsdatei Ihres Servers ein. Der Code ist der Gleiche wie bei .htaccess.

mod_expires installieren
Wenn bei Ihrem Apache mod_expires noch nicht installiert ist gehen Sie so vor: Öffnen Sie auf Ihrem Server die Konsole und laden Sie mod_expires zuerst mit a2enmod expires. In der Systemkonfiguration des Apache /etc/apache2/sysconfig.d/loadmodule.conf fügen Sie die Zeile LoadModule expires_module /usr/lib64/apache2-prefork/mod_expires.so ein um das Modul zu laden. Bei Suse stehen in der Datei /etc/sysconfig/apache2 die aktiven Module. Hier müssen Sie in der Zeile APACHE_MODULES den Namen expires hinzufügen. Die Zeile sieht dann beispielsweise so aus: APACHE_MODULES=“authz_host actions alias asis auth autoindex cgi deflate dir expires imap include log_config mime negotiation php5 rewrite setenvif status auserdir“ Das Modul mod_expires steht Ihnen ab dem nächsten Neustart des Webservers zur Verfügung. Sie starten den Webserver über apache2 restart oder rcapache2 restart.

Fazit:
Über das Cachen der Browserinhalte über das Modul mod_expires lässt sich die Ladezeit Ihrer Website und der Traffic deutlich reduzieren. Sobald ein Besucher eine zweite Seite aufruft oder Ihre Website abermals besucht werden die Inhalte wie Bilder und CSS aus dem Cache geholt. Prinzipiell könnte man für Uraltbrowser eine Browserweiche installieren.

Weitere Infos: Apache mod_expires, Apache Quick Start

Share this post:

00

7 Kommentare

  1. Duergy says:

    Danke für den Tipp, ich habe es bei mir ausprobiert und geschaut was passiert. Ich habe den Code oben 1zu1 in die .htaccess im Hauptordner vom WordPress eingebaut.

    Leider erhalte ich eine 500er Fehlermeldung mit eingebauten Code was mich dazu veranlasst hat ihn wieder zu entfernen.

    mod_expires steht in meiner phpinfo bei loaded modules.

    Hast du evtl. einen Ansatzpunkt wo ich nach dem Fehler schauen könnte?

    • Susann says:

      Hallo Duergy,
      hast Du das per Copy & Paste gemacht?
      Wordpress hat da wieder mal die Anführungszeichen ersetzt:-( Probier mal den Code und tippe die Anführungszeichen über die Tastatur.

  2. Danke für die feine Erklärung. Kurz und bündig, genau was ich gesucht habe!

    lg

  3. gutenbyte says:

    Danke!
    Scheint aber nicht mit externen Dateien zu funktionieren, diese werden nicht gecached. Gibt es hierfür eine Lösung oder Einstellung?

  4. Gerry says:

    @Susann: Danke für den Tipp! Habe natürlich auch erst nach dem Einfügen der .htaccess in die Kommentare geschaut. Nach dem manuellen einfügen der Anführungszeichen ging es (und der Fehler im „Page Speed“ war auch weg. Ein kurzer Hinweis im Text (Update) wäre super.

  5. Anton says:

    Danke für den guten Beitrag!

    Kleiner Tipp: Um Fehler mit den Anführungszeichen zu vermeiden, einfach den HTML-Code für diese nutzen: "

Hinterlassen Sie Ihren Kommentar