Neben den flexiblen Caching Regeln, die du für jede deiner Boxen zusätzlich einrichten kannst, setzen wir bei jeder Boxen eine Reihe von Standardregeln für das Caching.
Diese Regeln werden von WordPress oder unserem System benötigt oder für bestimmte Funktionen vorausgesetzt. Im zweiten Abschnitt dieses Beitrags findest du zudem ein WooCommerce-spezifisches Regelset.
Achtung: Über die Caching Regeln hast du die Möglichkeit diese Standardregeln zu überschreiben. Du solltest also genau wissen was du tust, wenn du neue Caching Regeln hinzufügst und bestehende Regeln löschst.
Systemrelevante Caching Regeln
Diese Regeln werden vom Raidboxes System und für WordPress benötigt.
Hinweis: Die nachfolgenden Infos sind für versierte Entwickler:innen gedacht. Die Erklärung der Cachingregeln findest du weiter unten.
if ($request_method = POST) {
set $skip_cache 1;
set $skip_cache_reason "POST REQUEST";
}
if ($query_string != "") {
set $skip_cache 1;
set $skip_cache_reason "QUERY STRING";
}
if ($query_string ~* "^(&?(utm_(source|campaign|medium|term|content)|lang)=[A-Za-z0-9-._~:#@!$’()*+,;%]+)+") {
set $skip_cache 0;
set $skip_cache_reason "";
}
if ($query_string ~* "^relatedposts=1$") {
set $skip_cache 0;
set $skip_cache_reason "";
}
if ($request_uri ~* "(^/wp-admin/(.*)|(.*)wp-[A-Za-z0-9-._~:#@!$’()*+,;%]+.php|^/xmlrpc.php|(.*)(/)?index.php|(.*)sitemap(.*).xml)(\\?.*)?$") {
set $skip_cache 1;
set $skip_cache_reason "WORDPRESS URL";
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
set $skip_cache_reason "WORDPRESS LOGGED IN";
}
Caching: WordPress Textvariante
POST Requests: Alle POST Requests werden immer ungecacht durchgeführt.
Query Strings: Wenn ein Query String in der URL gefunden wird, wird der Request nicht gecacht.
UTM-Parameter: Die vorige Regel gilt nicht für UTM-Parameter. Aufrufe mit UTM-Parametern werden also, obwohl sie per definitionem Query Strings sind, gecacht.
Related Posts: Gleiches gilt für den Query String relatedposts=1. Aufrufe mit diesem Query String werden also immer gecacht.
WordPress URL: Aufrufe auf den wp-admin, auf PHP-Dateien des WP-Core, auf die xmlrpc.php und auf die index.php und die Sitemap der Seite werden niemals gecacht.
WordPress Logged in: Aufrufe, die eingeloggte WP-Nutzer tätigen, werden ebenfalls niemals gecacht.
Cache & Staging
Alle Aufrufe in der Staging-Umgebung werden immer ungecacht ausgeliefert. Auf der Staging ist also der Raidboxes Cache immer deaktiviert. Sobald du ein Cache Plugin aktiv hast, deaktiviere dieses auf der Staging Umgebung.
WooCommerce-spezifische Regeln
Neben den systemrelevanten Regeln, gibt es noch eine ganze Reihe von Regeln, die die korrekte Cache Aussteuerung für WooCommerce Shops gewährleisten.
Diese Regeln sind immer aktiv, auch wenn WooCommerce nicht aktiv im Einsatz ist. Du kannst diese WooCommerce Regeln also löschen, wenn WooCommerce nicht im Einsatz ist.
Aber Achtung: Wenn du zu einem späteren Zeitpunkt WooCommerce nutzen möchtest, wird der Shop ohne diese Regeln nicht mehr richtig funktionieren.
Hinweis: Das Vorhandensein oder die Zahl der Caching Regeln hat keinen Einfluss auf:
die Ladegeschwindigkeit der Seite,
das Google Ranking oder
die Sicherheit deiner Seite.
Die folgenden Regeln sind bei uns standardmäßig gesetzt:
if ($request_uri ~* "^/(shop|cart|my-account|checkout|lost-password|addons|wc-api)(/(.*))?$") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMERCE URL";
}
if ($arg_add-to-cart != "") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMERCE ADD TO CART";
}
if ($arg_wc-api != "") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMERCE API";
}
if ($http_cookie ~* "woocommerce_items_in_cart") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMMERCE ITEMS IN CART COOKIE";
}
if ($http_cookie ~* "wp_woocommerce_session") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMMERCE SESSION COOKIE";
}
if ($request_uri ~* "^/(warenkorb|einkaufswagen|mein-konto|kasse)(/(.*))?$") {
set $skip_cache 1;
set $skip_cache_reason "WOOCOMMERCE URL";
}
Caching: WooCommerce Textvariante
WooCommerce URL: Bestimmte URLs eines Shops sollten niemals gecacht werden. Dazu gehören der Warenkorb, der Loginbreich und der Passwort-vergessen-Bereich.
Add to cart: Aktionen, die ein Produkt in den Warenkorb des Shops legen werden niemals gecacht.
WooCommerce API: Gleiches gilt für Requests auf die WooCommerce API, diese Aufrufe werden niemals gecacht.
Produkte im Warenkorb: Wenn der Cookie gesetzt ist, der einen mit Produkte befüllten Warenkorb markiert, werden die Aufrufe der Nutzer niemals gecacht.
WooCommerce Session Cookie: In bestimmten Fällen setzt WooCommerce einen sog. Session Cookie. Ist dieser gesetzt, z.B. weil der Nutzer eingeloggt ist, dann werden die Aufrufe des Nutzers niemals gecacht.
WooCommerce deutsch: Diese Regel sorgt dafür, dass auch deutschsprachige Kassenbereiche, Warenkörbe etc. ungecacht geladen werden und der Shop korrekt funktioniert. Standardmäßig beachtet WooCommerce nämlich nur englischsprachige URLs.