Automatische Varnish Cache-Leerung bei Bricks & Gutenberg in CloudPanel

Wenn man mit Varnish arbeitet, bekommt man eine Menge Performance geschenkt. Seiten werden nicht bei jedem Aufruf neu generiert, sondern direkt aus dem Cache serviert. Das ist schnell, effizient – und richtig blöd, wenn der Cache veraltet ist und man stundenlang überlegt, warum Änderungen nicht sichtbar sind.

Besonders bei visuellen Buildern wie Bricks oder im klassischen Gutenberg Editor wird’s kritisch: Speichern – nix passiert. Ändern – nix sichtbar. Und dann beginnt die übliche Litanei: „Hast du den Cache geleert?“ – „Welchen? Browser, Plugin oder Server?“ – „Alle!“

Die Lösung: Cache automatisch leeren – beim Speichern

Um dieses Problem elegant zu lösen, habe ich ein kleines Snippet entwickelt, das in Kombination mit CloudPanel und dem dort eingebauten Varnish Cache funktioniert. Es sorgt dafür, dass der Varnish Cache automatisch gelöscht wird, sobald ein Beitrag gespeichert wird – egal ob mit Gutenberg oder Bricks.

Was macht der Code genau?

Hier eine kurze Erklärung der Funktionsweise:

1. clp_clear_varnish_cache()

Diese zentrale Funktion prüft zuerst, ob die Klasse ClpVarnishCacheManager existiert. Diese Klasse gehört zu CloudPanel und ermöglicht die direkte Kommunikation mit dem Varnish Cache.

Dann:

  • Sie holt sich den aktuellen Hostnamen aus der Server-Variable.
  • Wenn dieser vorhanden ist, wird:
    • Der gesamte Cache für den aktuellen Host geleert.
    • Zusätzlich der sogenannte Cache-Tag (so eine Art eindeutiger „Fingerabdruck“ für Inhalte) gelöscht.
  • Sollte der Host nicht verfügbar sein, wird ein entsprechender Hinweis ins Error Log geschrieben – ebenso, wenn die Klasse nicht gefunden wird.

2. Hook für Bricks Builder

add_action('wp_ajax_bricks_save_post', 'clear_varnish_cache_on_save');

Der Bricks Builder verwendet AJAX beim Speichern. Deshalb wird dieser Hook benötigt, um unsere Cache-Löschfunktion genau dort einzuhängen.

3. Hook für Gutenberg und den Classic Editor

add_action('save_post', 'clear_varnish_cache_on_standard_save', 20, 3);

Dieser Hook wird immer dann aufgerufen, wenn ein Beitrag gespeichert wird – ganz egal ob Gutenberg oder der gute alte Classic Editor.

Vorteile in der Praxis

  • Keine vergessenen Cache-Löschvorgänge mehr
  • Sofort sichtbare Änderungen auf der Website
  • Keine „Warum sehe ich meine Änderung nicht?“-Supporttickets mehr (zumindest weniger…)

Oder wie man es pragmatisch zusammenfasst: no Cache clear, no Mitleid.

Einsatz im Agentur-Alltag

Gerade als Agentur, die auf WordPress Entwicklung, Barrierefreiheit und Website-Wartung spezialisiert ist (wie wir bei purin.at), ist das ein enormer Zeitgewinn – und sorgt für zufriedene Kund:innen.

Du kannst das Snippet einfach in dein Theme oder ein kleines Must-Use-Plugin einbauen. Wichtig: Du solltest CloudPanel nutzen und dort Varnish aktiviert haben, sonst verpufft die Wirkung.

Fazit

Der Einsatz von Varnish ist sinnvoll – solange man den Cache im Griff hat. Mit diesem kleinen Snippet nimmst du WordPress und Bricks die Cache-Kontrolle aus der Hand und bringst automatische Ordnung ins System. Und wenn man ehrlich ist: Genau das wollen wir als Entwickler:innen doch. Weniger manuelle Arbeit, weniger Fehlerquellen – und mehr Zeit für wichtigere Dinge als „Cache löschen und neu laden“.

Ressourcen

Christoph Purin
Christoph Purin

Mein Name ist Christoph Purin und befasse mich mit IoT Geräten wie Raspberry, Arduino, ESP. Auch Aktivitäten wie die FFW, Quad-fahren, Amateurfunk zählen zu meinen bevorzugten Hobbys.
Dieser Blog, stellt eine Sammlung meiner Projekte dar, wie Dinge gelöst oder umgebaut werden können.

Artikel: 370

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert