Cache / Performance-Modul

Übersicht

Der Cache ist ein Zwischenspeicher für Datenbankabfragen, Template-Dateien sowie Textblöcke und dient der Performancesteigerung. Daten die im Shopcache zwischengespeichert werden erfordern keine erneute Abfrage in der Datenbank.

Das zentrale "Caches / Performance"-Modul findest Du direkt unter dem Punkt "Einstellungen" in Deinem Backend. Dieses ist aufgeteilt in drei Bereiche:

  • Start - Vereinfacht das Cache Handling und die Einstellungen
  • Cache - Übersicht über die Cache-Verzeichnisse, deren Größe und deren Rechte (volle Schreib- und Leserechte erforderlich). Zudem können gezielt Teilbereiche aktualisiert werden.
  • Einstellungen - Definition der Aktualisierungsstrategie des einzelnen Cache-Bereichs, manuelle Erneuerung. Aktivieren/Deaktivieren einzelner Bereiche im System.

Cache-Verzeichnis

Mit Shopware 5 wurde das Caching vereinfacht. Das gesamte /cache Verzeichnis muss nun komplett beschreibbar sein, da Shopware pro Revision einen separaten Cache-Ordner anlegt und diesen verwendet. Das bedeutet, dass beim Update automatisch ein neuer Ordner angelegt und genutzt wird. Cache leeren nach dem Update gehört somit der Vergangenheit an. Ebenso hat das Staging-System nun ein separates Cache Verzeichnis, ebenso pro Revision.

Start

Der Start-Tab dient dazu, den Cache Modus zu definieren

  • Produktivmodus - Der Produktivmodus sollte aktiviert werden, wenn keine Anpassungen am Template mehr gemacht werden und der Shop produktiv betrieben wird. Da der HTTP-Cache hier automatisch aktiviert wird, wirken sich Änderungen (Preise, Themeanpassungen etc.) erst später aus.
  • Bearbeitungsmodus - Der Bearbeitungsmodus dient der Einrichtung und Konfiguration von Shopware, da Anpassungen am Template oder an den Grundeinstellungen zumeist direkt im Frontend sichtbar werden. Da der HTTP-Cache hier nicht aktiv ist, wird der Shop jedoch auch wesentlich langsamer.

Cache

  • Shopware Konfiguration - Aktualisierung von Grundeinstellungen und Textbausteinen
  • Proxies und Meta-Daten - Leerung der Proxy-Ordner
  • Smarty-Template-Cache - Aktualisierung der Frontend-Templates
  • Cache Suchfunktion - Leerung der Suche - Durch erste Suchanfrage im Frontend wird der Cache neu aufgebaut
  • Theme-Cache (Ab Shopware 5) - Leeren des kompilierten Themes. Nach dem Leeren erscheint ein Popup, welches den Theme Cache erneut aufbauen kann. Nach neu aufbauen wird der HTTP-Cache geleert.
  • Http-Proxy-Cache - Frontend-HTTP-Caches zurücksetzen (Leeren des Cache-Verzeichnisses)
  • Index-SEO-Urls - Neue SEO-Urls erzeugen

Einstellungen

Performance checks

Hier werden Dir serverseitige Optimierungsmaßnahmen angezeigt.

  • APCu aktiviert: Optional kann APCu benutzt werden
  • Zend OPcache aktiviert: Optional kann der Zend OPcache aktiviert werden
  • PHP Version: Benutze eine php-Version >= 5.4 (Ab Shopware 5 wird hier nur der Haken gesetzt, wenn die aktuellste stabile PHP-Version aktiviert ist.)

Bitte beachte, dass es sich hierbei nur um Vorschläge für optionale Optimierungsmaßnahmen handelt. Fehlende optionale Einstellungen haben keinerlei Auswirkung auf die Funktionsfähigkeit von Shopware.

HTTP-Cache

Der HTTP-Cache ist standardmäßig enthalten. Um diesen nutzen zu können, muss er lediglich über das Backend aktiviert werden.

Cache Warmer

Über den Cache Warmer kann der HTTP-Cache komplett aufgewärmt werden. Damit werden, vereinfacht ausgedrückt, alle Seiten des Shops einmal aufgerufen und damit in den Cache geladen. Würde das nicht über den Cache Warmer passieren, würde sich der Cache beim Besuch eines Benutzers aufbauen und dann in einer erheblich längeren Ladezeit resultieren. Um den Benutzer diese Wartezeit zu ersparen, kannst du den Cache selbst aufwärmen.

Sofern der HTTP-Cache aktiv ist, kannst du ihn über den blauen Button "Cache aufwärmen" aufwärmen, also füllen. Klicke auf den Button und wähle im sich öffnenden Popup den gewünschten Shop aus und klicke auf "Vorgang starten". Der Cache wird dann aufgewärmt.

Stapelgröße: Das sind die Anzahl der Aufrufe, die vom Server abgearbeitet werden.
Parallelität: Wähle hier aus, wie viele Prozesse parallel am Cache-Warmup arbeiten sollen. Je nach Server können mehr oder auch weniger parallele Prozesse sinnig sein, teste hier einfach, welche Einstellung die schnellsten Ergebnisse liefert.
Erweiterte Einstellungen: Hier kannst du festlegen, welche Seiten deines Shops aufgewärmt werden sollen. Mit einem Klick auf "Als Standard speichern" speicherst du die aktuelle Konfiguration für zukünftige Ausführungen.

HTTP-Cache aktivieren und konfigurieren

Klicke als erstes im Backend-Menü auf Einstellungen > Caches / Performance und wechsle dann in den Reiter Einstellungen. Dort findest Du den Menüpunkt HTTP-Cache.

Durch aktivieren der Checkbox HTTP-Cache aktivieren wird dieser aktiviert und ab diesem Zeitpunkt jeglicher Cache über das Plugin abgewickelt.

Als Konfigurationsoptionen stehen Dir hier die automatische Cache-Invalidierung, Alternative Proxy URL und die Admin-Ansicht zur Verfügung:

  • Die automatische Cache-Invalidierung bewirkt, dass der Cache der Artikeldetailseite beim Ändern des Artikels zerstört wird, sodass er beim nächsten Aufruf wieder neu aufgebaut wird. In der Praxis äußert sich dies so, dass zB Änderungen der Produktbeschreibung nicht erst die Caching-Zeit durchlaufen muss und erst dann aktualisiert wird, sondern die Änderung direkt nach dem Speichern im Frontend umgesetzt wird.

  • Die alternative Proxy URL gibt Dir die Möglichkeit, einen gewünschten Proxy auszuwählen, falls Du zB. mit Varnish arbeitest.

  • Unter der Admin-Ansicht verbirgt sich die Option, dass Artikeldetailseiten grundsätzlich nicht mehr gecached werden, werden diese aus dem Backend heraus geöffnet (zB. über Das Kundenmodul > Kunde öffnen > Bestellung durchführen)

Definition der Cache-Zeiten:

  • Hier kannst Du die Cache-Zeiten des Shops selbst festlegen. Die Angaben werden hier immer in Sekunden eingetragen und geben an, wie lange ein Controller im Cache gehalten wird. ist diese Zeit abgelaufen, wird der Cache für diesen Controller beim nächsten Seitenaufruf neu generiert und abgelegt.

  • Gleiches gilt umgekehrt für die nicht gecachten Controller Tags. Hier werden einzelne Bereiche der Seite nicht gecached, wie im Screenshot die Preise auf der Artikeldetailseite und im Listing

  • Bei Definition der Controller (- Aktionen) Cache Zeiten solltest du lediglich Cotroller eingeben bei denen es Sinnvoll ist diese zu Cache, wie z.B. das Listing. Sinnvoll sind Controller an denen im Normalfall über eine etwas längere Zeit keine Änderungen durchgeführt werden und diese dann durch das Caching schneller geladen werden können. 

  • Bei Nicht gecachte Crontroller Tags steuerst du, wann eine gecachte Controller(-Aktion), die oben definiert ist, nicht mehr gecacht werden soll. Hier kannst du mit verschiedenen Tags arbeiten (slt = kunde hat den "eingeloggt bleiben" status, "checkout" => der kunde hat produkte im checkout, etc.) Die Tags kannst du innerhalb einer Session finden, z.B.ist im Standard die Startseite mit dem Tag "price" geflaggt. Folgende Tags stehen zur Auswahl:

    • slt = Kunde ist eingeloggt

    • checkout = Kunde hat Artikel in den Warenkorb gelegt

    • Compare = Kunde hat einen Artikel im Vergleich

Genauere Informationen und tiefgreifendere informationen erhältst Du in unserer Developer Dokumentation zum HTTP-Cache.

Bitte beachte, dass der HTTP-Cache nicht mit der Blätterfunktion auf der Artikeldetailseite kompatibel ist. Solltest Du also das Kategorie-Listing nach Preis sortiert haben und den ersten Artikel anklicken, wird in der Detailansicht wieder nach Einstelldatum sortiert.

Theme Cache

Über diesen Menüpunkt kann der Theme Cache neu aufgebaut werden. Bitte beachte, dass nach Aufbauen des Theme-Caches der HTTP-Cache komplett geleert wird.

SEO

An dieser Stelle kann die Aktualisierungsstrategie der suchmaschinenfreundlichen URLs definiert werden. Die Standardeinstellung ist Live. Hierbei werden die URLs dynamisch nach Ablauf des Caching-Intervalls geprüft und neue hinzugefügt. Der Ablauf ist hier identisch zu Shopware Versionen < 4.1. Als Strategie gibt es zudem Manuell und Cronjob. Die automatische Generierung von SEO-URLs ist bei diesen Einstellungen deaktiviert. Die URLs werden ausschließlich per Cronjob aktualisiert (z.B. nachts) oder manuell. Die manuelle Ausführung/Aktualisierung wird über den Button darüber angestoßen. Die URLs können dann per Stapelverarbeitung für den gewünschten Shop komplett abgearbeitet werden.

Suche

An dieser Stelle kann die Aktualisierungsstrategie des Suchindexes definiert werden. Die Standardeinstellung ist Live. Hierbei wird der Suchindex nach Ablauf der hinterlegten Intervalls neu erstellt (durch Aufruf der Suche im Frontend). Der Ablauf ist hier identisch zu Shopware Versionen < 4.1. Als Strategie gibt es zudem Manuell und Cronjob. Die automatische Generierung des Suchindexes ist bei diesen Einstellungen deaktiviert. Der Suchindex wird ausschließlich per Cronjob aktualisiert (z.B. nachts) oder manuell. Die manuelle Ausführung/Aktualisierung wird über den Button darüber angestoßen.

Kategorien

  • Kategoriebaum neu aufbauen: Hierbei handelt es sich um eine Reparaturfunktion, die nicht für den regelmäßigen Einsatz gedacht ist und welche die Kategorien, ihre Verknüpfungen und die Zuordnung der Artikel neu Vornimmt und dabei repariert.
  • Kategorien im Batch-Modus verschieben: Bei großen Operationen und strukturellen Änderungen ist der Batch-Modus sehr geeignet.
  • Standardsortierung: Hier kann die Standardsortierung der Listings definiert werden. Die Sortierung nach Erscheinungsdatum bezieht sich hierbei auf das Feld "Einstelldatum aus dem Artikel.
  • Artikel pro Seite: Anzahl der Artikel pro Seite in der Kategorie

Filter

Der Listing Modus ist über eine Drop-Down-Liste auswählbar:

  • Filterbutton anzeigen: Die auf die gewählten Filter zutreffenden Artikel werden erst nach einem Klick auf den Filterbutton geladen
  • Produkte live nachladen: Bereits beim Setzen des ersten Filters werden direkt die auf den Filter zutreffenden Produkte geladen. Es können anschließend alle weiteren Filter gesetzt werden, dies kann dazu führen, dass nicht zutreffende Filterkombinationen gewählt werden und somit keine Artikel gelistet werden.
  • Produkte & Filter live nachladen: Beim Setzen des ersten Filters werden direkt die auf den Filter zutreffenden Produkte geladen und zusätzlich werden alle Filter, die keine mögliche Kombination mit dem bereits gesetzten Filter aufweisen, deaktiviert.

Im Standard ist hier die erste Option "Filterbutton anzeigen" aktiv.

Sitemap

Lege hier fest, wie und wann die Sitemap generiert werden soll. Über die Cache-Zeit kannst Du definieren, dass die Sitemap nicht zu häufig (z.B. bei jedem Aufruf) neu generiert wird. Die Zeitangabe erfolgt in Sekunden.

(1) Füge benutzerdefinierte URLs hinzu. Sobald Du eine individuelle URL hinzufügst, kannst Du diese bei Bedarf priorisieren. Außerdem kannst Du auch die Änderungshäufigkeit einzelner URLs bestimmen. Nie, Stündlich, Täglich, Wöchentlich, Monatlich, Jährlich oder Nie sind die Auswahlmöglichkeiten. Zuletzt kannst Du den URLs noch den Shop zuweisen.

(2) Du kannst ebenfalls URLs von der Sitemap ausschließen. Wähle hier zunächst die Entität, aus welcher Du URLs ausschließen willst und im Anschluss den passenden Identifier. Möchtest Du beispielsweise eine bestimme Artikel-URL ausschließen, wählst Du als Entität "Produkte" und als Identifier den entsprechenden Artikel.


Verschiedenes

  • Deaktiviert die Shopware eigenen Statistiken: Im Frontend werden keine Besucher/Seitenzugriffszahlen etc. erfasst
  • Zuletzt angesehene Artikel anzeigen: Standardeinstellung = aktiv
  • Anzahl zuletzt angesehener Artikel: Standardeinstellung = 5
  • Artikel Navigation deaktivieren: Standardeinstellungen = inaktiv (Vor-/Zurück-Blätterfunktion Detailseite)

Topseller

  • Index neu aufbauen: Es werden alle Daten im Shop neu berechnet und gecached
  • Topseller im Shop anzeigen: Die Topseller können über diesen Punkt im Shop deaktiviert werden
  • Topseller gültig für n Tage: Wert muss > 0 sein
  • Bestellungen der letzten n Tage berücksichtigen: Auf Basis der Bestellungen der letzten n Tage ermittelt Shopware die Topseller
  • Aktualisierungsstrategie: Lege fest, ob die Aktualisierung Live, per Cronjob oder manuell erfolgen soll
  • Pseudo Verkäufe berücksichtigen: In den Artikelstammdaten können Pseudo-Verkäufe eingetragen werden. Ist dieses aktiv, so hast Du über die Pseudo-Verkäufe Einfluss auf die Topseller-Artikel.

Empfehlungsmarketing

  • Kunden kauften auch Index neu aufbauen: Es werden alle Artikelkäufe neu berechnet. Neuberechnung kann u.U. sehr speicherintensiv sein.
  • Kunden kauften auch: Aktiviert die Kunden kauften auch Box auf der Artikeldetailseite
  • Kunden haben sich ebenfalls angesehen Index neu aufbauen: Neuberechnung der Artikel, welche andere Kunden im Zusammenhang sich angeschaut haben. Neuberechnung kann u.U. sehr speicherintensiv sein.
  • Kunden haben sich auch angesehen: Über diese Funktion kannst Du das Speichern der Daten beim Abschließen einer Bestellung deaktivieren. Dies bietet sich an, wenn Du die Funktion nicht benötigst und häufig Bestellungen mit sehr vielen Positionen im Shop hast, da jegliche Kombinationen aktualisiert werden müssen.
  • Anzeigen: Die Box Kunden haben sich ebenfalls angesehen wird auf der Artikeldetailseite angezeigt
  • Neu generieren nach x Tagen: Definiert den Zeitraum nach welcher eine Neuberechnung der Artikel erfolgen soll
  • Aktualisierungsstrategie: Live (on the Fly), Cronjob (Ausführung des Cronjob Similiar shown article refresh), Manuell (Aktualisierung über Index neu aufbauen)

War dieser Artikel hilfreich?