Cache-Control in Joomla konfigurieren

Cache-Control in Joomla aktivieren — über das Built-in HTTP Headers Plugin (seit Joomla 4.0) oder .htaccess-Fallback. Mit vollständiger Verifizierung und Joomla-spezifischen Troubleshooting-Tipps.

Joomla · Schritt für Schritt

Cache-Control in Joomla

Cache-Control steuert Browser- und Proxy-Caching und verhindert, dass sensible Daten im Cache landen. Mit 8 von 166 Punkten im Wolf-Agents Web Security Check ist dieser Header ein wichtiger Faktor für die Gesamtbewertung Ihrer Joomla-Installation. Ohne korrekte Konfiguration verlieren Sie wertvolle Punkte, die den Unterschied zwischen einer guten und einer mittelmäßigen Security-Bewertung ausmachen können.

Cache-Control wird über das HTTP Headers Plugin als neuer Header-Eintrag konfiguriert. Für sensible Seiten (Login, Dashboard) setzen Sie no-store. Für öffentliche Seiten ist public, max-age=3600 empfohlen. Das Plugin funktioniert auf jedem Hosting — inklusive Shared Hosting ohne SSH-Zugriff oder Server-Konfigurationszugang. Die Alternative ist die .htaccess-Methode als Apache-Fallback, die Sie nutzen können, wenn das Plugin aus technischen Gründen nicht verfügbar ist. Bei beiden Methoden gilt: Nach jeder Änderung den Joomla-Cache leeren.

Der Wolf-Agents Web Security Check analysiert die Cache-Control-Konfiguration Ihrer Joomla-Installation und zeigt exakt, ob der Header korrekt gesetzt ist, welcher Wert verwendet wird und ob es Verbesserungspotenzial gibt. Über das Web Scan Monitoring werden Sie automatisch per E-Mail benachrichtigt, wenn sich die Konfiguration nach einem Joomla-Update, Extension-Installation oder Server-Migration unbeabsichtigt ändert.

Cache-Control-Implementierung in Joomla

Cache-Control wird über das HTTP Headers Plugin als neuer Header-Eintrag konfiguriert. Für sensible Seiten (Login, Dashboard) setzen Sie no-store. Für öffentliche Seiten ist public, max-age=3600 empfohlen. Die Konfiguration über das Built-in HTTP Headers Plugin ist der empfohlene Weg — eine vollständige GUI im Joomla-Backend unter System → Plugins → System - HTTP Headers, keine Code-Änderungen nötig und keine Server-Konfiguration erforderlich. Alle Einstellungen werden sofort nach dem Speichern wirksam. Die .htaccess-Methode dient als Fallback für Apache-Setups, in denen das Plugin nicht genutzt werden kann. Nutzen Sie niemals beide Methoden gleichzeitig — doppelte Header führen zu unvorhersehbarem Browser-Verhalten.

HTTP Headers Plugin (empfohlen)
System → Plugins → HTTP HeadersEmpfohlen
# HTTP Headers Plugin → Tab: HTTP Headers
# (Built-in seit Joomla 4.0)

Neuer Header hinzufügen:
HTTP Header:  Cache-Control
Header Wert:  no-store, no-cache, private

# → Speichern → System → Cache leeren
.htaccess Fallback
.htaccessFallback
# .htaccess — Cache-Control Fallback
<IfModule mod_headers.c>
  Header always set Cache-Control "no-store, no-cache, private"
</IfModule>
Cache leeren nach jeder Änderung

Nach Änderungen am HTTP Headers Plugin oder der .htaccess: php cli/joomla.php cache:clean ausführen oder im Backend unter System → Cache leeren. Drittanbieter-Cache-Extensions wie JotCache oder LiteSpeed Cache können veraltete Header zwischenspeichern.

Verifizierung

Nach der Konfiguration im HTTP Headers Plugin oder der .htaccess leeren Sie den Joomla-Cache über php cli/joomla.php cache:clean oder im Backend unter System → Cache leeren. Prüfen Sie den Header anschließend per curl auf verschiedenen Seitentypen — Startseite, Beiträge, Kontaktformulare, Kategorie-Seiten und den Admin-Bereich unter /administrator. Wichtig: Einige Header werden nur über HTTPS gesendet — testen Sie niemals über eine HTTP-URL. Prüfen Sie auch, ob ein CDN oder Reverse-Proxy (Cloudflare, Varnish) den Header eventuell entfernt oder überschreibt. Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige Analyse aller 16 Header-Kategorien mit konkreter Punktbewertung.

TerminalVerifizierung
# 1. Joomla-Cache leeren
php cli/joomla.php cache:clean

# 2. Header prüfen
curl -sI https://ihre-domain.de | grep -i cache-control

# Erwartete Ausgabe:
# cache-control: no-cache, private

# 3. Auf verschiedenen Seitentypen testen
curl -sI https://ihre-domain.de/beispiel-beitrag | grep -i cache-control

# 4. Admin-Bereich testen
curl -sI https://ihre-domain.de/administrator | grep -i cache-control

Häufige Fehler bei Cache-Control in Joomla

Joomla Page-Cache-Plugin kollidiert mit Cache-Control

Das Joomla Page-Cache-Plugin setzt eigene Cache-Header. Wenn Sie Cache-Control über das HTTP Headers Plugin setzen, können widersprüchliche Header entstehen. Deaktivieren Sie entweder das Page-Cache-Plugin für sensible Seiten oder konfigurieren Sie Cache-Control nur über .htaccess.

CDN ignoriert no-store und cached trotzdem

Manche CDNs und Reverse-Proxies ignorieren no-store. Setzen Sie zusätzlich private und konfigurieren Sie das CDN (Cloudflare, Bunny.net) mit Bypass-Regeln für sensible Pfade.

HTTP Headers Plugin setzt Cache-Control global

Das Plugin setzt Header global für alle Seiten. Cache-Control no-store für öffentliche Inhalte vernichtet die Performance. Nutzen Sie .htaccess mit Location-Match oder ein Custom Plugin für pfadspezifische Cache-Control-Header.

Core-Update setzt Plugin-Einstellungen zurück

Bei Joomla-Updates können Plugin-Einstellungen zurückgesetzt werden. Sensible Seiten ohne korrekten Cache-Control-Header können im Browser- oder Proxy-Cache landen und für andere Benutzer sichtbar werden.

Compliance-Relevanz

Cache-Control erfüllt konkrete Anforderungen aus mehreren Compliance-Frameworks, die für Unternehmen in der EU verbindlich sind. Fehlende oder falsch konfigurierte Header werden bei Sicherheits-Audits, Penetrationstests und automatisierten Compliance-Scans als Schwachstelle gewertet. Die korrekte Konfiguration über das Joomla HTTP Headers Plugin dokumentiert Ihre technischen Maßnahmen und stärkt Ihre Position bei NIS2-Audits.

NIS2 Art. 21 Abs. 2 lit. e — Schutz sensibler Daten vor unbeabsichtigtem Caching als Teil der Systemsicherheit
BSI APP.3.1.A14 — Cache-Control als Security Header, no-store für sensible Inhalte als Mindestanforderung
DSGVO Art. 32 — Verhinderung von Datenlecks durch Browser-Caching personenbezogener Daten (Formulardaten, Dashboard)
PCI DSS Req. 6.5.10 — Korrekte Cache-Kontrolle für Seiten mit Zahlungsdaten und sensiblen Kundeninformationen

Wie steht Ihre Domain bei Cache-Control?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.