Pickware Blog
Archiv
| 07.03.2019

Shopware Tipps & Tricks – Caches verstehen und leeren

Sie kennen sicher das Problem: Ihr Shop läuft reibungslos, ein Plugin-Update wird installiert und plötzlich tauchen mysteriöse Probleme in Ihrem Shopware Shop auf. Erst ein Leeren des Caches schafft Abhilfe. Doch was sind Caches überhaupt? Wieso verursachen sie so häufig Probleme und sind dennoch unverzichtbar? Wir gehen dem Mysterium Cache auf den Grund und geben Ihnen konkrete Tipps zur Optimierung Ihres Shopware Shops.

Was ist ein Cache?

Ein Cache ist im Allgemeinen ein einfacher Puffer-Speicher, in welchen Software-Programme häufig verwendete Daten, wie beispielsweise Bilder, Texte oder bereits berechnete Skripte, zwischenspeichern. Dadurch können die im Cache abgelegten Daten wiederverwendet werden, der erneute Abruf bzw. eine erneute Berechnung dieser Daten wird vermieden und die Ausführung stark beschleunigt.

Ein Beispiel: Wenn ein Kunde Ihren Onlineshop besucht, müssen beim ersten Seitenaufruf alle Produktbilder an den Browser übertragen werden. Nun werden die bereits geladenen Bilder im Browser-Cache des Kunden zwischengespeichert und können bei einem erneuten Aufruf direkt aus dem Cache geladen werden.

Verschiedene Cache-Ebenen:

Bei einem Website-Aufruf greifen eine Vielzahl verschiedener Komponenten mit deren Cache-Systemen ineinander, um die Anfrage zu verarbeiten und eine Antwort zurückzusenden. Folgendes Diagramm zeigt die Komplexität der verschiedenen Caches:

Die wichtigsten Komponenten und Caches kurz und knapp:

  • Browser: Sendet HTTP-Anfragen an den Webserver, anschließend wird die empfangene Website grafisch dargestellt.
  • Browser-Cache: Speichert empfangene Websites und deren Bilder, Styles etc. auf dem Gerät des Nutzers.
  • Webserver: Nimmt HTTP-Anfragen entgegen und leitet diese an den installierten Shopware Shop weiter.
  • Shopware Shop: Erzeugt mithilfe von Skripten und der SQL-Datenbank die angefragte Website und sendet diese über den Webserver an den Browser zurück.
  • Shopware HTTP-Cache: Speichert wiederverwendbare Shopseiten und deren Elemente. Bei erneutem Aufruf, z.B. der Startseite durch einen anderen Nutzer, können diese direkt aus dem Cache gesendet werden und müssen nicht neu erzeugt werden.
  • PHP-OPcache: Shopware basiert auf Skripten der Programmiersprache PHP. Um diese beschleunigt auszuführen, speichert das PHP-Modul des Webservers bereits kompilierte Skripte im „OPcache“, um diese bei erneutem Bedarf beschleunigt auszuführen.

Vorteile von Caches

Wenn Nutzer Ihren Shop aufrufen, können bereits berechnete Websites und deren Elemente direkt aus Cache geladen werden. Dadurch ergeben sich sowohl für Sie als auch Ihre Kunden viele Vorteile:

  • Steigerung der Shopping Experience: Caches verringern die Ladezeit Ihres Shops und schaffen damit ein verbessertes Einkaufserlebnis und eine höhere Conversion Ihrer Kunden.
  • Besseres SEO-Ranking: Ladezeiten von Websites sind ein kritischer Faktor im Suchmaschinen-Ranking. Durch einen effektiven Einsatz von Caches können Sie also kostenlos die Position Ihres Onlineshops im SEO-Ranking verbessern.
  • Reduzierter Datenverbrauch: Der Browser-Cache Ihrer Kunden speichert Inhalte Ihres Shops zwischen, so dass diese bei einem erneuten Aufruf nicht mehr vom Server abgerufen werden müssen. Dadurch spart Ihr Kunde Datenvolumen, was besonders mit zunehmendem Anteil des mobilen Shoppings ein Mehrgewinn für Ihre Kunden ist.
  • Geringere Serverauslastung: Die Auslastung Ihres Servers wird durch mehrere Cache-Ebenen reduziert. Der Browser-Cache Ihrer Kunden reduziert die Anzahl an HTTP-Anfragen an Ihren Server. Der Shopware HTTP-Cache verringert die Prozessorlast, indem bereits berechnete Seiten Ihres Shops zwischengespeichert und direkt an Ihre Kunden gesendet werden können. Der PHP-OPcache reduziert die Neuberechnung bereits verwendeter Skripte des Servers. Sie profitieren von geringeren Hardwareanforderungen und können die gewonnene Serverkapazität für weitere Kunden nutzen.
  • Weniger Datenbankzugriffe: Häufig ist die Datenbank eine Engstelle im Datenverkehr Ihres Shops. Durch den Shopware HTTP-Cache müssen für bereits berechnete Seiten keine weiteren rechenintensiven Datenbankabfragen durchgeführt werden.

Shopware Caches leeren

Schwierigkeiten mit den Caches Ihres Shops treten am häufigsten nach einer Aktualisierung Ihres Shopware Systems oder der installierten Plugins auf. Aber auch im regulären Betrieb können Caches für Probleme sorgen, wenn etwa veränderte Template-Einstellungen, neue Produktbilder oder bearbeitete SEO-URLs nicht im Frontend aktualisiert werden. Ursache ist meist eine fehlerhafte Cache-Invalidierung, so dass veraltete Daten im Cache nicht aktualisiert werden.

Abhilfe schafft hier ein manuelles Leeren der Caches. Leeren Sie allerdings nur die betroffenen, da Ihr Shopsystem anschließend viel Zeit für den erneuten Aufbau benötigt und Ihr Shop in der Zwischenzeit langsamer lädt. Hierzu gehen Sie bitte im Performance-Fenster zum Tab Cache.

Im unteren Bereich können Sie folgende Caches gezielt auswählen und leeren:

  • Shopware Konfiguration: Durch das Leeren dieses Caches werden alle Shopware-Einstellungen, Konfigurationsdaten und Textbausteine aktualisiert. Dies ist sinnvoll, sobald Sie grundlegende Einstellungen in Shopware verändert haben und diese nicht sofort wirksam werden.
  • Template-Cache & Themes kompilieren: Hiermit werden alle bereits im Cache kompilierten Frontend-Templates und der Cache der benutzerdefinierten Themes gelöscht. Dies ist sinnvoll, wenn Sie Änderungen an Ihren Templates oder Themes vorgenommen haben oder die aktualisierten Plugins mit Templates oder Themes arbeiten. Nach einem Leeren ist es sinnvoll, die Theme-Caches der betroffenen Shops neu zu kompilieren. Andernfalls werden die Themes erst bei einem Aufruf der entsprechenden Shopseite durch einen Kunden neu im Cache kompiliert.
  • HTTP-Proxy-Cache: Dies ist der eigentliche Shopware HTTP-Cache. In ihm werden vorab berechnete Versionen Ihrer Shopseiten gespeichert, damit sie bei einem Aufruf schneller geladen werden. Dieser Cache sowie dessen automatische Cache-Invalidierung sollten immer aktiviert sein. Dies können Sie im Tab Einstellungen > Allgemein > HTTP-Cache kontrollieren.

Wenn Sie oder die von Ihnen installierten Plugins Änderungen am Frontend Ihres Shops vornehmen, kann es passieren, dass diese nicht richtig im HTTP-Cache aktualisiert werden. Sollte weiterhin die alte Version einer Seite ausgeliefert werden, hilft ein Leeren dieses Caches. Allerdings dauert es anschließend etwas, bis alle Seiten Ihres Shops durch erneute Aufrufe Ihrer Kunden wieder im Cache gespeichert sind. Sie können jedoch mithilfe der *Cache Warmer-*Funktion vorab alle über SEO-URLs zugänglichen Shopseiten in den Cache laden.

  • Proxies und Meta-Daten: Wenn Plugins und ausgelagerte Shopware Module das Shopware System um zusätzliche Funktionen erweitern, werden dabei interne Proxies (Shopware Proxies, Doctrine Proxies) und Metadaten verwendet. Wenn nach dem Update von Plugins Probleme auftauchen, diese Fehlermeldungen ausgeben oder Funktionen im Shopware System behindern, empfiehlt es sich, diesen Cache zu leeren.
  • Cache Suchfunktion: Damit die Suchfunktion in Ihrem Shopware Shop besonders schnell arbeitet, werden relevante Suchbegriffe in einem speziellen Index-Cache gespeichert. Wenn Sie Probleme mit der Suchfunktion haben, z.B. weil neue Produktseiten nicht vorgeschlagen werden, kann ein Leeren dieses Caches helfen. Shopware wird diesen gemäß Ihrer eingestellten Aktualisierungsstrategie zeitversetzt neu aufbauen.
  • Index SEO-Urls: Shopware speichert Ihre SEO-URLs in einem eigenen Cache-Bereich, um das Routing zu den einzelnen Shopseiten zu beschleunigen. Standardmäßig aktualisiert Shopware diesen SEO-Index regelmäßig, sofern sie dies nicht explizit deaktivieren oder in einen Cronjob auslagern. Die Aktualisierungsstrategie finden Sie im Performance-Fenster im Tab Einstellungen > Allgemein > SEO. Falls Sie Änderungen an Ihren SEO-URLs vornehmen, sich die URLs zu Ihren Shopseiten aber nicht automatisch ändern, sollten Sie diesen Index-Cache leeren. Löschen Sie den SEO-Index aber nur wenn es notwendig ist, da er direkte Auswirkungen auf Ihre SEO-Platzierung haben kann.

Shopware bietet Ihnen unter Einstellungen > Caches/Performance > Shop cache leeren auch einen Schnellbutton, um die Caches Shopware Konfiguration, Cache Suchfunktion und Index SEO-Urls mit einem Klick leeren zu können.

Produktiv- vs. Bearbeitungsmodus

Wenn Sie Ihren Shop neu aufsetzen oder größere Änderungen vornehmen, leeren Sie nach jeder Änderung den Shopware HTTP-Cache und gegebenenfalls die Template- und Theme-Caches, damit die Änderungen direkt sichtbar werden. Um dies zu vereinfachen, können Sie Ihren gesamten Shop in den Bearbeitungsmodus setzen. Die entsprechende Option finden Sie im Performance-Fenster im Tab Start.

Dieser Modus deaktiviert den HTTP-Cache für Ihren gesamten Shop, damit Ihre vorgenommen Änderungen sofort sichtbar sind. Bedenken Sie aber: Das Deaktivieren des Caches verlangsamt Ihr Shopsystem deutlich und sollte daher nur in Testumgebungen oder während der initialen Einrichtung aktiviert werden. Anschließend empfiehlt es sich, die Cache Warmer-Funktion des HTTP-Caches zu nutzen.

Erweiterte Einstellungen und Konfigurationsmöglichkeiten

Die vorgestellten Einstellungen und Problemlösungen betreffen nur den Shopware-eigenen Cache und sind daher einfach über Ihr Shopware Backend erreichbar. Jedoch wird Ihr Shopware Shop auch durch den PHP-OPcache und gegebenfalls weitere Caches beschleunigt. Deren Einstellungen sowie umfassendere Möglichkeiten mit leistungsstärkeren Cache-Konfigurationen für sehr große Shops sind jedoch nur mit Fachwissen und vollem Serverzugriff möglich. Daher bieten wir für versierte und technisch interessierte Leser einen technischen Guide an.

Fazit

Trotz hoher Komplexität und einhergehender Fehleranfälligkeit bieten Caches einen echten Mehrwert und sind im modernen Onlinehandel nicht mehr wegzudenken. Mit den hier vorgestellten Tipps sollten mögliche Probleme aber hoffentlich schnell behoben sein.

Newsletter
Bleibe immer auf dem Laufenden
Jetzt anmelden
Teilen