Filter zur Anpassung der Cache-Parameter in Jetpack Boost
Last updated:
In diesem Leitfaden erfahren Sie, wie Sie das Cache-Verhalten von Jetpack Boost mithilfe von Filtern anpassen, um die Website-Performance zu verbessern und die Cache-Fragmentierung zu reduzieren.
Den Seiten-Cache in Jetpack Boost verstehen
Die Funktion für den Seiten-Cache von Jetpack Boost erzeugt und speichert statische Versionen dynamischer WordPress-Seiten. Die URL einer Seite und die Browser-Cookies des Besuchers dienen zur Identifizierung einer Seite.
Eine Person, die eine Seite ohne Cookies in ihrem Browser besucht, wird als „anonymer Benutzer“ bezeichnet, da keine Daten zu ihrer Identifizierung vorhanden sind. Die für diese Person erzeugte Cache-Datei kann möglicherweise für viele andere Besucher verwendet werden. Um die Geschwindigkeit zu maximieren, werden diese gecachten Seiten ausgeliefert, bevor WordPress vollständig initialisiert ist. Daher sind die meisten WordPress-Funktionen in diesem Stadium nicht verfügbar.
Für Entwickler, die früh im Prozess der Seitenauslieferung Code ausführen müssen, stellt Jetpack Boost den Extra Code Loader bereit. Mit diesem Tool kann benutzerdefinierter Code vor zwei wichtigen Punkten einer WordPress-Anfrage ausgeführt werden:
- Wenn eine gecachte Seite ausgeliefert wird.
- Wenn der Ausgabepuffer zum Cachen einer neuen Seite erstellt wird.
Diese Funktion ermöglicht es Entwicklern, auch bei der Arbeit mit gecachten Seiten notwendige Vorgänge oder Änderungen umzusetzen, sodass sowohl Geschwindigkeit als auch Anpassungsmöglichkeiten gewährleistet sind.
Cache-Verhalten mit Filtern anpassen
Um Cache-Parameter zu ändern, können Sie eine Datei mit dem Namen erstellen wp-content/boost-cache-extra.php. Jetpack Boost lädt sie und führt sie wie jedes andere Skript der Sprache PHP aus. Die Datei muss das <?php als öffnendes Tag enthalten.
Dieses Skript wird sehr früh im Prozess der Seitenauslieferung ausgeführt. Daher sind die meisten WordPress-Funktionen nicht verfügbar. Allerdings können filters und actions verwendet werden.
⚠️ Wichtig: Stellen Sie sicher, dass die Datei gültigen PHP-Code enthält, um Probleme zu vermeiden, die Ihre Website beeinträchtigen könnten. Es wird dringend empfohlen, alle Änderungen zunächst in einer Staging-Umgebung zu testen, bevor Sie sie live anwenden.
Verfügbare Filter
Jetpack Boost stellt mehrere Filter zur Anpassung des Caches bereit:
jetpack_boost_ignore_cookies: Akzeptiert einen Parameter: ein Array von Cookie-Namen. Diese Cookie-Namen werden ignoriert und aus der Liste der Cookies entfernt, anhand derer eine Cache-Datei identifiziert wird. In den Cookie-Namen können reguläre Ausdrücke verwendet werden. Die Standardliste der Cookie-Namen umfasst die Cookies von Cloudflare, die hier beschrieben sind, einen regulären Ausdruck, der auf jedes Cookie zutrifft, das mitsbsj_beginnt, sowie die Cookies tk_ai und tk_qs. Das bedeutet, dass ein Besucher mit einem dieser Cookies in seinem Browser die für anonyme Besucher der Website erstellte Cache-Datei sieht, anstatt eine individuelle Cache-Datei zu erhalten.jetpack_boost_ignore_get_parameters: Akzeptiert einen Parameter: ein Array von GET-Parameternamen. Diese Parameter werden vom Cache auf dieselbe Weise ignoriert wie beim oben beschriebenen Filter. Die Standardliste der Parameter umfasst einige der für Marketingzwecke verwendeten „utm_“-Parameter.jetpack_boost_cache_parameters: Akzeptiert einen Parameter: ein Array. Dies ähnelt den oben genannten Filtern, enthält jedoch sowohl diecookiesals auch dieget-Informationen. Der Filter wird früher in der Anfrage ausgeführt als die oben genannten Filter. Es wird jedoch empfohlen, stattdessen die anderen Filter zu verwenden. Die oben genannten Filter verwenden diesen Filter.jetpack_boost_cache_bypass_patterns: Akzeptiert einen Parameter: ein Array regulärer Ausdrücke. Damit kann der Website-Betreiber die Liste der Muster ändern, anhand derer URLs erkannt werden, die das Caching umgehen. Dies sind die URLs, die im Formular „Ausnahmen“ der Einstellungsseite aufgeführt sind.jetpack_boost_cache_request_cacheable: Akzeptiert einen Parameter: einen booleschen Wert. Geben Sie true zurück, um die aktuelle Seite cachefähig zu machen.jetpack_boost_cache_accept_headers: Akzeptiert einen Parameter: ein Array von Accept-Headern, die das Plugin nicht cachen wird. Die Standardliste umfasst verschiedene JSON-Header-Typen.
In der von Boost verwendeten Cookie-Liste werden die Cookie-Werte des Cookie-Banners von Jetpack eucookielaw und personalized-ads-consent auf 1 gesetzt, sodass allen Besuchern, die im Cookie-Banner auf die Schaltfläche „Akzeptieren“ klicken, dieselbe Cache-Datei ausgeliefert wird (sofern alle anderen Cookies identisch sind), um die Effizienz des Caches zu verbessern. Die Cookies selbst werden nicht geändert, und für Besucher, die im Cookie-Banner auf „Akzeptieren“ klicken, wird eine neue Cache-Datei erstellt.
Wenn Ihre Website ein Cookie enthält, dessen Wert sich bei jedem Seitenaufruf ändert, der Wert selbst jedoch von keinem PHP-Code verwendet wird, kann dies ein effektives Caching Ihrer Website verhindern. Verwenden Sie den jetpack_boost_cache_parameters-Filter, um den Wert so zu ändern, dass er bei jedem Seitenaufruf gleich bleibt.
Warum bestimmte Cookies ignorieren?
Cookies spielen eine entscheidende Rolle bei der Identifizierung von Website-Besuchern. Wenn sich ein Benutzer anmeldet, wird ein Cookie in seinem Browser gespeichert. Cookies dienen jedoch über die Änderung von Seiteninhalten hinaus verschiedenen Tracking-Zwecken. Für Erstbesucher und Bots, die eine „anonyme“ Version der Website anzeigen, wird normalerweise eine häufig verwendete gecachte Seite ausgeliefert, da diese Besucher häufig zahlreicher sind als diejenigen, die bereits mit der Website interagiert haben. Sobald ein Cookie gesetzt wurde, wird eine neue Cache-Datei für die Seite erstellt, und nachfolgende Besucher mit diesem Cookie erhalten diese spezifische Cache-Datei. Dieser Vorgang ist wichtig, weil das Vorhandensein des Cookies den Besucher in gewisser Weise identifiziert.
Wenn JavaScript auf der Website ein Cookie setzt, das das Erscheinungsbild der Website nicht über PHP beeinflusst, kann es möglicherweise unbedenklich sein, dieses Cookie zu ignorieren. Es ist wichtig zu beachten, dass bestimmte Cookies, beispielsweise WordPress-Anmeldecookies, aufgrund ihrer wichtigen Funktion nicht ignoriert werden können.
Beispiele für die Anpassung des Cache-Verhaltens mit Filtern
Ein Cookie ignorieren
Um ein Cookie zu ignorieren, beispielsweise eines, das von einem Cookie-Banner gesetzt wird, verwenden Sie den jetpack_boost_ignore_cookies-Filter. Dieses Beispiel zeigt, wie das cookie_banner_settings Cookie in einem hypothetischen Cookie-Banner-Plugin ignoriert wird, das dieses Cookie verwendet. Jeder Code, der von diesem Cookie abhängt, muss in JavaScript ausgeführt werden, also im Browser. Wenn PHP auf dem Server das Cookie verwenden würde, um zu entscheiden, ob das Banner angezeigt oder eine andere Funktion ausgeführt werden soll, kann das Cookie nicht ignoriert werden.
<?php
// Ignore the 'cookie_banner_settings' cookie.
function ignore_banner_cookie( $cookies ) {
$cookies[] = 'cookie_banner_settings';
return $cookies;
}
add_filter( 'jetpack_boost_ignore_cookies', 'add_test_cookie' );
Dieser Code stellt sicher, dass das cookie_banner_settings Cookie ignoriert wird, sodass anonymen Besuchern eine einzige Cache-Datei ausgeliefert werden kann.
Einen GET-Parameter ignorieren
Um einen bestimmten GET-Parameter wie test von der Cache-Identifizierung auszuschließen, verwenden Sie den jetpack_boost_ignore_get_parameters-Filter. Dieses Beispiel stellt sicher, dass URLs mit dem ?test-Parameter dieselbe Cache-Datei wie die Basis-URL ausliefern:
<?php
// ignore the 'test' GET parameter in the URL.
function ignore_test_get( $get) {
$get[] = "test";
return $get;
}
add_filter( 'jetpack_boost_ignore_get_parameters', 'ignore_test_get' );
Dieser Code entfernt den test aus der Cache-Identifizierung, sodass Seiten wie yourjetpack.blog/?test=123 dieselbe gecachte Datei ausliefern wie yourjetpack.blog/.
Seiten, die nun dieselbe Cache-Datei verwenden:
yourjetpack.blog/yourjetpack.blog/?test=1yourjetpack.blog/?test=testingyourjetpack.blog/?test=123
Einen ständig wechselnden Cookie-Wert beheben
Dies ist ein Beispiel, bei dem ein hypothetisches Seitenzähler-Cookie in den Cache-Parametern auf 1 gesetzt wird. Dies ist nur möglich, wenn JavaScript den Zähler anzeigt, nicht PHP. Dadurch kann die Seite von WordPress zwischengespeichert und von mehr Besuchern genutzt werden, während der Zähler anzeigt, wie viele Seiten sie besucht haben.
<?php
// Fix the "page_counter" cookie
function fix_page_counter( $parameters ) {
if ( isset( $parameters['cookies']['page_counter'] ) ) {
$parameters['cookies']['page_counter'] = 1;
}
return $parameters;
}
add_filter( 'jetpack_boost_cache_parameters', 'fix_page_counter' );
Mit den Filtern von Jetpack Boost können Sie das Cache-Verhalten anpassen, die Leistung optimieren und Besuchern Ihrer Website ein nahtloses Erlebnis bieten. Indem Sie unnötige Cookies und GET-Parameter ignorieren, können Sie effizientere zwischengespeicherte Seiten ausliefern und die Serverlast reduzieren.
Caching unter bestimmten Bedingungen deaktivieren
Wenn Sie möchten, dass eine bestimmte Seite Ihrer Website ohne Caching angezeigt wird, aber nur bestimmten Besuchern, können Sie den jetpack_boost_cache_request_cacheable Filter verwenden. In diesem Beispiel kann jeder Besucher, der die IP-Adresse 192.168.1.1 verwendet und das Cookie “source=vip” hat, auf eine nicht zwischengespeicherte Seite unter /about/ zugreifen.
<?php
function uncacheable_vips( $cacheable ) {
if (
isset( $_SERVER['REQUEST_URI'] ) && $_SERVER['REQUEST_URI'] === '/about/' &&
isset( $_COOKIE['source'] ) && $_COOKIE['source'] === 'vip' &&
isset( $_SERVER['REMOTE_ADDR'] ) && $_SERVER['REMOTE_ADDR'] === '192.168.1.1'
) {
return false;
} else {
return true;
}
}
add_filter( 'jetpack_boost_cache_request_cacheable', 'uncacheable_vips' );
Benötigen Sie noch Hilfe?
Bitte kontaktieren Sie den Support. Wir beraten Sie gerne.