Chrome DevTools
F12 drücken → Network-Tab → Seite neu laden → Spalte "Size" prüfen. Bei gecachten Dateien steht "(from disk cache)" oder "(from memory cache)".
Wiederkehrende Besucher profitieren von schnelleren Ladezeiten
Browser-Caching speichert Dateien lokal beim Besucher – CSS, JavaScript, Bilder und Schriften müssen nicht bei jedem Besuch neu geladen werden. Das Ergebnis: Deutlich schnellere Ladezeiten und weniger Server-Last. In diesem Leitfaden zeigen wir Ihnen, wie Sie Caching richtig konfigurieren.
Wenn jemand Ihre Website besucht, lädt der Browser alle Ressourcen herunter: HTML, CSS, JavaScript, Bilder, Schriften usw. Bei Browser-Caching speichert der Browser diese Dateien lokal auf der Festplatte des Besuchers. Beim nächsten Besuch muss er sie nicht erneut vom Server laden – er nutzt einfach die gespeicherte Version.
Der Unterschied ist enorm: Statt 2,5 MB müssen nur noch 45 KB geladen werden – das ist eine Reduzierung um 98%. Für wiederkehrende Besucher bedeutet das nahezu sofortige Ladezeiten.
Die meisten Webhoster nutzen Apache als Webserver. Die Caching-Konfiguration erfolgt über die .htaccess-Datei im Root-Verzeichnis Ihrer Website. Falls die Datei noch nicht existiert, erstellen Sie sie einfach.
# Browser-Caching aktivieren <IfModule mod_expires.c> ExpiresActive On # Standard-Cache: 1 Jahr für statische Assets ExpiresDefault "access plus 1 year" # HTML-Dateien: 1 Stunde (ändern sich häufig) ExpiresByType text/html "access plus 1 hour" # CSS und JavaScript: 1 Monat ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" # Bilder: 1 Jahr (ändern sich selten) ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/webp "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/x-icon "access plus 1 year" # Schriften: 1 Jahr ExpiresByType font/woff "access plus 1 year" ExpiresByType font/woff2 "access plus 1 year" ExpiresByType application/font-woff "access plus 1 year" ExpiresByType application/font-woff2 "access plus 1 year" # Videos: 1 Jahr ExpiresByType video/mp4 "access plus 1 year" ExpiresByType video/webm "access plus 1 year" </IfModule> # Cache-Control Header setzen <IfModule mod_headers.c> # Für statische Dateien: öffentlich cachebar <FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|css|js|woff|woff2)$"> Header set Cache-Control "public, max-age=31536000, immutable" </FilesMatch> # Für HTML: kürzerer Cache, Revalidierung nötig <FilesMatch "\.(html|htm)$"> Header set Cache-Control "public, max-age=3600, must-revalidate" </FilesMatch> </IfModule>
.htaccess-Datei im Root-Verzeichnis (oder erstellen Sie sie)
Wenn Ihr Webserver Nginx nutzt, erfolgt die Konfiguration in der Server-Block-Konfiguration. Diese befindet sich meist unter /etc/nginx/sites-available/.
server {
# ... Ihre anderen Einstellungen ...
# HTML-Dateien: kurzer Cache
location ~* \.html?$ {
expires 1h;
add_header Cache-Control "public, must-revalidate";
}
# CSS und JavaScript: mittlerer Cache
location ~* \.(css|js)$ {
expires 1M;
add_header Cache-Control "public, immutable";
}
# Bilder: langer Cache
location ~* \.(jpg|jpeg|png|gif|webp|svg|ico)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# Schriften: langer Cache
location ~* \.(woff|woff2|ttf|otf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# Videos: langer Cache
location ~* \.(mp4|webm|ogg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Nach Änderungen an der Nginx-Konfiguration müssen Sie den Server neu laden:
sudo systemctl reload nginx
oder (bei älteren Systemen):
sudo service nginx reload
Navigieren Sie zum Nginx-Installationsverzeichnis und führen Sie aus:
nginx.exe -s reload
sudo nginx -s reload
oder bei Installation via Homebrew:
brew services restart nginx
Problem: Sie haben CSS-Dateien mit 1-Jahr-Cache konfiguriert. Jetzt ändern Sie das Design – aber Besucher sehen die alte Version aus dem Cache. Die Lösung heißt Cache-Busting.
Methode 1: Versionsnummer im Dateinamen
Statt style.css nutzen Sie style.v2.css. Bei jedem Update erhöhen Sie die Versionsnummer. Der Browser sieht einen neuen Dateinamen und lädt die Datei neu.
Methode 2: Query-String-Parameter
Nutzen Sie style.css?v=1.2.3 in Ihrem HTML. Bei Updates ändern Sie die Versionsnummer. Vorsicht: Manche Proxy-Server cachen Dateien mit Query-Strings nicht.
Methode 3: Hash im Dateinamen (beste Lösung)
Build-Tools wie Webpack oder Vite generieren automatisch Dateinamen mit Content-Hash: style.a3f2b9c1.css. Ändert sich der Inhalt, ändert sich der Hash – perfektes Cache-Busting.
style.css?v=1 und style.css?v=2 werden als identisch behandelt. Nutzen Sie stattdessen echte Versionierung im Dateinamen oder konfigurieren Sie Ihren Server entsprechend.
Nach der Konfiguration sollten Sie testen, ob Caching wirklich aktiv ist. Es gibt mehrere Methoden:
F12 drücken → Network-Tab → Seite neu laden → Spalte "Size" prüfen. Bei gecachten Dateien steht "(from disk cache)" oder "(from memory cache)".
Online-Tool, das Ihre Caching-Header analysiert und konkrete Verbesserungsvorschläge gibt. Zeigt auch Cache-Dauer für jede Datei.
Zu GTmetrix →Google prüft Ihre Cache-Richtlinien und warnt bei zu kurzen Cache-Dauern. Zeigt genau, welche Ressourcen optimiert werden sollten.
Zu PageSpeed Insights →Detaillierter Header-Checker von der Internet Society. Analysiert alle Cache-Header und erklärt, was sie bedeuten.
Zu RedBot →
Der Cache-Control-Header ist der moderne Standard für Caching-Anweisungen. Er ersetzt den älteren Expires-Header und bietet mehr Kontrolle.
Cache-Control: public, max-age=31536000, immutableCache-Control: public, max-age=31536000, immutableCache-Control: public, max-age=3600, must-revalidateCache-Control: private, max-age=300Für WordPress-Websites gibt es mehrere Plugins, die Browser-Caching automatisch konfigurieren. Sie bieten grafische Oberflächen und übernehmen die .htaccess-Anpassungen für Sie.
Alles, was Sie wissen müssen
Ich konfiguriere Browser-Caching, Server-Caching und CDN für optimale Performance – und sorge dafür, dass Updates trotzdem problemlos funktionieren.