Caching & Browser-Cache
Wie setzt man Caching richtig ein, um die Ladezeit zu verkürzen und das Crawl-Budget effizienter zu nutzen?- Was ist Caching?
- Cache-Control Header konfigurieren
- ETag und Last-Modified
- Caching mit .htaccess konfigurieren
- Cache-Busting
- Caching und SEO
Was ist Caching?
Caching bezeichnet das temporäre Zwischenspeichern von Daten, um zukünftige Anfragen schneller beantworten zu können. Im Web-Kontext gibt es verschiedene Caching-Ebenen:
- Browser-Cache – Der Browser des Nutzers speichert Ressourcen wie CSS-Dateien, JavaScript, Bilder und Schriftarten lokal auf dem Gerät.
- Server-Cache – Der Webserver oder eine Caching-Software (z.B. Varnish, Redis) speichert generierte HTML-Seiten zwischen. Besonders bei CMS wie WordPress relevant.
- CDN-Cache – Ein Content Delivery Network speichert Ressourcen auf Servern weltweit.
- Proxy-Cache – Unternehmens- oder ISP-seitige Proxys können ebenfalls Ressourcen cachen.
Cache-Control Header konfigurieren
Der Cache-Control HTTP-Header ist der wichtigste Mechanismus, um das Caching-Verhalten zu steuern. Wichtige Direktiven:
max-age=SEKUNDEN– Wie lange eine Ressource als frisch gilt (z.B.max-age=31536000für ein Jahr)no-cache– Ressource wird gecacht, muss aber bei jedem Aufruf revalidiert werdenno-store– Ressource wird überhaupt nicht gecachtpublic– Darf von allen Caches (Browser, CDN, Proxy) gecacht werdenprivate– Darf nur im Browser-Cache gespeichert werdenimmutable– Ressource ändert sich nie während ihrer Gültigkeitsdauer
ETag und Last-Modified
ETag und Last-Modified sind HTTP-Header für die Revalidierung gecachter Ressourcen. Sie ermöglichen sogenannte Conditional Requests: Der Browser fragt den Server, ob sich eine Ressource seit dem letzten Abruf geändert hat. Falls nicht, antwortet der Server mit 304 Not Modified.
- Last-Modified enthält den Zeitstempel der letzten Änderung
- ETag ist ein eindeutiger Fingerabdruck (Hash) der Ressource. Präziser als Last-Modified.
Caching mit .htaccess konfigurieren
Auf Apache-Webservern können Cache-Header über die .htaccess-Datei konfiguriert werden. Mehr zu .htaccess finden Sie auf der Seite .htaccess und Weiterleitungen.
# Browser-Caching aktivieren
<IfModule mod_expires.c>
ExpiresActive On
# Bilder: 1 Jahr cachen
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
# CSS und JavaScript: 1 Monat cachen
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
# Schriftarten: 1 Jahr cachen
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
# HTML: Nicht cachen
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
# Cache-Control Header setzen
<IfModule mod_headers.c>
<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|ico)$">
Header set Cache-Control "max-age=31536000, public, immutable"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
</IfModule>
Cache-Busting
Langes Caching ist gut für die Performance, aber was passiert, wenn Sie eine CSS-Datei aktualisieren? Cache-Busting löst dieses Problem durch Versionierung der Dateinamen:
- Versionsnummer im Dateinamen –
style.v2.cssstattstyle.css - Hash im Dateinamen –
style.a3f8e2.css(wird von Build-Tools wie Webpack automatisch generiert) - Query-Parameter –
style.css?v=2(weniger empfehlenswert)
Caching und SEO
Caching hat mehrere direkte und indirekte Auswirkungen auf SEO:
- Crawl-Budget – Mit korrekten Cache-Headern muss Googlebot Ressourcen nicht bei jedem Crawl neu herunterladen. Dies spart Crawl-Ressourcen.
- Ladezeit und Core Web Vitals – Effektives Caching verbessert die Ladezeit für wiederkehrende Besucher, was sich positiv auf die Core Web Vitals auswirkt.
- TTFB – Server-seitiges Caching reduziert den Time to First Byte drastisch.
Weitere Informationen zur Performance-Optimierung finden Sie auf der Seite PageSpeed Optimierung.