Wie können Sie die Cache-Ratio Ihrer Website verbessern?
Dieses Tutorial behandelt die folgenden Themen:
Was ist das Cache-Ratio?
Wenn es um die Ladegeschwindigkeit Ihrer Website geht, ist einer der wichtigsten Faktoren, wie viele Ihrer Anfragen aus dem Cache bedient werden. Im Cache gespeicherte Anfragen sind viel schneller als solche, die auf die Rechenleistung des Servers angewiesen sind. Das heißt, je mehr Anfragen aus dem Cache bedient werden, desto schneller wird Ihre Website geladen.
SiteGround-Webserver verfügen über ein integriertes Caching-System (NGINX Direct Delivery, Dynamic Cache Service) und prüfen immer, ob der angeforderte Inhalt in den Cache-Pools vorhanden ist, bevor sie ihn in die Leitung weiterleiten. Wenn der Inhalt im Cache gefunden wird, wird er sofort an den Client geliefert (ohne PHP-Verarbeitung, MySQL-Abfragen usw.). Dies nennt man einen Cache HIT. Wird der Inhalt hingegen nicht im Cache gefunden, muss der Webserver ihn vom Ursprungsserver abrufen und für künftige Anfragen zwischenspeichern. Dies wird als Cache MISS bezeichnet.
Die Cache-Ratio gibt den Prozentsatz der Anfragen an, die aus dem Cache bedient werden, ohne dass ein Zugriff auf den Ursprungsserver erforderlich ist. Eine höhere Cache-Ratio bedeutet, dass mehr Anfragen aus dem Cache bedient werden, was die Belastung des Ursprungs-Servers verringert und die Gesamtleistung der Website verbessert.
Wenn beispielsweise 100 Zeilen in der Zugriffsprotokolldatei Ihrer Website vorhanden sind und 80 davon “HIT” und 20 “MISS” enthalten, würde die Cache-Ratio 80 % betragen.
Durch die Messung des “HIT”-Verhältnisses können Sie feststellen, wie effektiv Ihre Caching-Strategie ist und ob Sie Einstellungen auf Ihrer Website anpassen müssen, um deren Leistung zu verbessern. Eine hohe Cache-Ratio deutet darauf hin, dass Ihre Caching-Strategie gut funktioniert und dass Sie die von SiteGround bereitgestellten Funktionen für die Website-Geschwindigkeit effektiv nutzen. Eine niedrige Cache-Ratio deutet hingegen darauf hin, dass Ihre Caching-Strategie möglicherweise nicht effektiv ist und Sie andere Optimierungstechniken in Betracht ziehen müssen.
Für Websites, die unsere monatlichen Leistungsberichte abonnieren, messen wir die Cache-Ratio und teilen sie unseren Kunden mit. Unsere Empfehlung ist, ein Ergebnis von über 60 % anzustreben.
Wie können Sie die Cache-Ratio Ihrer Website erhöhen?
1. Achten Sie auf die benutzerdefinierten Cache-Control-Header in Ihren .htaccess-Dateien
Die Verwendung von .htaccess-Regeln zur Anpassung der Antwort-Header ist eine der gängigsten Methoden zur Steuerung der Caching-Effizienz. Leider haben wir festgestellt, dass in den .htaccess-Dateien viele allgemeine Cache-Control-Header eingebettet sind, die nicht standortspezifisch sind und sich daher negativ auf die Cache-HIT-Rate und die Leistung auswirken.
Zum Beispiel:
Header set Cache-Control "no-cache,no-store"
Faustregel Nr. 1: Stellen Sie sicher, dass “Header set Cache-Control” in .htaccess nur für Seiten, Abschnitte oder Dateien auf Ihrer Website verwendet wird, die sensible Kundendaten enthalten und nicht im Cache gespeichert werden sollten – nicht für die gesamte Website. Beispiel:
# add Cache-Control header to single contact.php file
<Files contact.php>
Header set Cache-Control "no-cache,no-store"
</Files>
2. Sorgfältig prüfen: Expires und max-age-Anweisungen
Ein weiterer bekannter Ansatz zur Steuerung der Effizienz von Caching-Servern ist die Aufnahme von Expires-Headern mit einem Datum und einer Uhrzeit, die nicht in der Zukunft liegen, oder eines Cache-Control-Headers mit einer auf Null oder einen negativen Zahlenwert gesetzten max-age-Direktive.
Beispiel Nr. 1:
# Expires headers (for better cache control)
<IfModule mod_expires.c>
...
# Your document html
ExpiresByType text/html "access plus 0 seconds"
...
</IfModule>
Diese Definition in .htaccess-Dateien bedeutet, dass der Cache für den Inhaltstyp text/html (die meisten Webseiten werden in diesem Typ ausgeliefert) sofort ablaufen sollte und die Anfrage vom Backend und nicht vom Cache bedient werden sollte.
Beispiel Nr. 2:
Header set Cache-Control "max-age=0"
Ein Cache-Control-Header mit max-age=0 oder -1 (oder einer anderen negativen Zahl) bedeutet wiederum, dass die Anfrage vom Backend und nicht vom Cache verarbeitet werden soll.
Faustregel Nr. 2: Stellen Sie sicher, dass Expires-Header und max-age cache-control-Header nur für Inhaltstypen und Abschnitte Ihrer Website verwendet werden, die nicht im Cache gespeichert werden sollen.
3. Vermeiden Sie die Verwendung des Set-Cookie-Headers
Ein anderer Ansatz zur Umgehung der Zwischenspeicherung ist die Verwendung eines Set-Cookie-Headers. Üblicherweise wird der Set-Cookie-Header mit der “PHPSESID”-Variable verwendet – einem Sitzungs-Cookie, das dazu dient, die Sitzung eines Benutzers auf einer Website zu identifizieren. Die Erzeugung und Verwendung eines Sitzungs-Cookies auf Seiten, die keine sensiblen Informationen enthalten, könnte jedoch ein Hinweis auf ein nicht sehr gut konzipiertes Plugin oder Thema sein. Durch das Vorhandensein eines Set-Cookie-Headers wird vermieden, dass Antworten zwischengespeichert werden und stattdessen jedes Mal eine PHP-Ausführung durchgeführt wird.
<?php
session_start();
Wenn dies der Fall ist, werden Sie die folgende Zeile in den HTTP-Antwort-Headern Ihrer Website sehen:
set-cookie: PHPSESSID=5eff6b1bc4f7ab78758e112be82f7b9e
Faustregel Nr. 3: Falls Ihre Website den Set-Cookie-Header und die am häufigsten verwendete “PHPSESID” verwendet, stellen Sie sicher, dass er nur zur Identifizierung der Sitzung eines Benutzers auf einer Website und nicht auf allen Seiten und Artikeln generiert wird.
4. Vermeiden Sie die Verwendung von Vary: User-Agent-Header
iese Konfiguration deaktiviert die Zwischenspeicherung nicht vollständig, wie in den vorangegangenen Beispielen beschrieben, sondern senkt den Cache-Anteil erheblich. Das Problem besteht darin, dass Besucher Ihrer Website häufig unterschiedliche User-Agents verwenden (verschiedene Browser mit unterschiedlichen Versionen), so dass praktisch jeder erste Besuch nicht gecacht wird. Es ist auch ein häufiger Fall, dass ein WP-Plugin einen solchen Header hinzufügt. In diesen Fällen werden die Antworten zwar zwischengespeichert, aber es gibt unterschiedliche Cache-Einträge für die verschiedenen User-Agents, wodurch der Cache drastisch an Effektivität verliert.
Hier ist ein Beispiel für einen .htaccess vary-Header:
Header set Vary User-Agent
HTTP-Header können auch über die Anwendungen des Hosting-Accounts verwaltet werden. Der Vary-Header kann zum Beispiel über PHP wie folgt konfiguriert werden:
?php
header("Vary: User-Agent");
oder auf einer WordPress-Website (in der Datei functions.php)
function add_vary_header ($headers)
{
$headers['Vary'] = 'User-Agent';
Return $headers;
}
add_filter('wp_headers', 'add_vary_header');
Faustregel Nr. 4: Versuchen Sie, die Verwendung des User-Agent-Vary-Headers zu vermeiden, wenn er nicht unbedingt erforderlich ist oder von den Theme-Entwicklern verlangt wird. Dies wird Ihnen helfen, die Caching-Rate und die Leistung Ihrer Website erheblich zu verbessern.
Wenn Sie von unseren Support-Ingenieuren untersuchen lassen möchten, ob das aktuelle Cache-Ratio Ihrer Website verbessert werden kann, können Sie uns über Help Desk > Sonstiges > Cache-Ratio-Optimierung einen Artikel schicken.