Shopware Performance Optimierungen

 

Regelmäßig erreichen mich Anfragen von (Neu-)Kunden, die mit der Performance Ihres Shopware Shops nicht zufrieden sind. Die gängigen Tipps, wie z.B. Bildergrößen verringern, wurden in diesem Stadium meist schon erledigt. Dabei gibt auch Shopware von Haus aus viele Möglichkeiten mit, die Ladezeiten zu verringern.

Deshalb finden Sie hier die drei wichtigsten Aufgaben, die sie selbst in die Hand nehmen können, um die Performance Ihres Shops zu steigern.

Produktivmodus aktiveren

Während ein Onlineshop auf Basis von Shopware eingerichtet wird, verwendet man hierbei meist den Bearbeiten-Modus. Dies hat den Vorteil, dass keine Cache-Dateien angelegt werden und damit Änderungen, wie z.B. erstelle Einkaufswelten oder angelegte Artikel, direkt sichtbar sind, ohne vorher den Cache leeren zu müssen.

Für die Entwicklungszeit eines Onlineshops ist das auch völlig in Ordnung.

Nun sind mir bereits mehrere Onlineshops unter die Augen gekommen, die den Bearbeiten-Modus noch aktiviert hatten, obwohl der Shop bereits live war und auch schon Umsätze erzielt hat.

Dabei gibt es auch den Produktivmodus, welcher unbedingt aktiviert werden sollte, sobald ein Onlineshop fertig eingerichtet ist und den Kunden präsentiert wird.

Der Produktivmodus aktiviert automatisch den HTTP-Cache. Mit diesem Cache, wird die Seitenladezeit massiv verringert. Der Hintergrund hierbei ist, dass die Webseite dann aus dem Zwischenspeicher geladen werden kann und nicht für jeden Kunden neu erzeugt werden muss.

Cronjobs aktivieren

Cronjobs sind kleine Helfer, die vorgegebene Aufgaben automatisch ausführen. Hierfür ist nur wichtig, dass diese im regelmäßigen Abstand angesprochen werden.

Bei Shopware löst man die Cronjob-Ausführung über den Aufruf einer bestimmten Seite aus. Diese lautet: https://ihr-shop.de/backend/cron. Diesen Aufruf richten Sie bei Ihrem Hoster ein.

Wichtig dabei ist, dass die Cronjob-Plugins, die Shopware bereits in der Grundinstallation mitgeliefert, aktiviert werden. Am wichtigsten hierbei sind die Plugins “Cron” und “CronRefresh”.

Als nächstes öffnen Sie die Grundeinstellungen. Im Menü “System” finden Sie den Eintrag “Cronjobs”. Öffnen Sie diesen. Sie erhalten dann eine Auflistung von ca. 20 Aktionen, die beim Aufruf der o.g. Seite ausgeführt werden.

Shopware Cronjobs

Für die Performance am wichtigsten sind diese Cronjobs:

  • Aufräumen (bereinigt verschiedene Datenbanktabellen)
  • Suche (baut den Suchindex neu auf)
  • HTTP Cache löschen (löscht den aufgebauten Cache)
  • Media Garbage Collector (nicht zugewiesene Bilder werden in den Papierkorb verschoben und dort nach 30 Tagen gelöscht)

 

Wichtig ist nun noch, das die Cronjobs regelmäßig ausgeführt werden. Idealerweise bietet sich hier ein Zeitraum von 24 Stunden an. Legen Sie bei Ihrem Hoster also einen Cronjob an, der alle 24 Stunden aufgerufen wird und ändern Sie das Ausführungsintervall in den Grundeinstellungen der Cronjobs auf diesen auf diese Zeit.

Einkaufswelten überprüfen

Ein enorm großer Hebel, um die Performance des eigenen Onlineshops zu steigern, liegt in den Einkaufswelten. Eine hübsch gestaltete Startseite ist wichtig und auch das Aushängeschild eines Shops. Hier muss alles stimmen, damit die Besucher sich wohl fühlen und zum stöbern eingeladen werden.

Technisch betrachtet, gibt es allerdings bei den Einkaufswelten einen großen Nachteil, der die Performance stark abbremsen kann. Dieser Nachteil liegt in den versteckten Elemente einer Einkaufswelt.

Nehmen wir mal an, Sie wollen die Einkaufswelt für Desktop und mobil unterschiedlich gestalten – das macht ja meistens aufgrund von unterschiedlichen Anforderungen an das jeweilige Endgerät auch Sinn. Nun entschließen Sie sich, auf dem Desktop mehr Elemente auszugeben als auf dem Smartphone. Die nicht benötigten Elemente vom Desktop verstecken Sie daher auf dem Mobilgerät.

Mit der Zeit ändern Sie hier und da mal etwas an der Einkaufswelt, Sie wollen saisonale Gegebenheiten ja auch auf Ihrer Startseite abdecken. Und schon nach kurzer Zeit die Einkaufswelt dann das:

Shopware Einkaufswelten Viewports

Das Problem hierbei ist, dass alle Elemente geladen werden. Auch diese, die als versteckte Elemente auf den verschiedenen Viewports zu finden sind, z.B. die 57 auf dem Desktop-Viewport. Das führt natürlich zu einer unnötigen Mehrbelastung des Datenvolumens (vor allem auf dem Smartphone), welche vermieden werden kann.

Was Sie ändern können? Ganz einfach: prüfen Sie Ihre Einkaufswelten auf diese versteckten Elemente und löschen Sie alle, die Sie nicht länger benötigen. Damit werden diese Elemente nicht länger geladen und die Seitenladezeit verringert sich spürbar.

Bonus: Einkaufswelten mobile vs. Desktop

Wie oben bereits beschrieben, wären Einkaufswelten oftmals unterschiedlich für den Desktop und das Smartphone ausgestaltet.

Um nun nicht in die Falle zu tappen, einfach Elemente auf dem Smartphone auszublenden, die Sie auf der Desktop Einkaufswelt benötigen, gibt es einen einfachen Trick.

Legen Sie zwei verschiedene Einkaufswelten an. Eine für den Desktop und die Tablet Ansicht und eine zweite für die Smartphone Ansicht.

Dadurch haben Sie die Möglichkeit, die Einkaufswelten für die entsprechenden Geräte anzupassen und bereitzustellen. Und gleichzeitig die Möglichkeit, möglichst keine versteckten Elemente mit zu laden. Wie oben schon beschrieben, erhöhen versteckte Elemente in den Einkaufswelten in die Seitenladegeschwindigkeit, weil die versteckten Elemente dennoch mitgeladen, aber nur ausgeblendet werden.

Fazit

Wie Sie anhand dieses Beitrages sehen können, bietet Shopware bereits von Haus aus mehr Möglichkeiten, die Performance zu steigern, als sich auf dem ersten Blick darstellt.

Wenn Sie zusätzlich zu den oben genannten Tipps auch auf mindestens PHP 7.2 setzen, dann spielt Ihr Onlineshop aus Performance-Sicht schon in der obersten Liga mit.

Falls Sie Fragen oder Anregungen zu diesem Beitrag haben, hinterlassen Sie gerne einen Kommentar oder schreib mir eine E-Mail.

Ein Kommentar

  • Hallo Marcel,
    seit 2 Jahren verfolge ich Deine Kommentare und finde einfach klasse wie du Dinge nachvollziehbar erklärst. Dabei habe ich eine Menge gelernt. Ich hatte vorher keine Ahnung von Shopware bzw. Internetseiten überhaupt.
    An dieser Stelle ein dickes Lob und 10 Sterne für Deine Beiträge.
    Eine Sache würde mich brennend intressieren, wie stelle ich es an, dass Bilder in der CMS Funktion Kategorietext auf dem Desktop und auf dem Handy angezeigt werden?
    Hier ein Beispiel https://salz-kultur.de/gewuerze
    Auf dem Desktop wird das Bild über die ganze Breite korrekt dargestellt. Beim Handy wird leider gar kein Bild angezeigt.
    Wie stelle ich es an, dass das Bild auf dem Handy genauso dargestellt wird.
    Freue mich schon auf Deine Antwort.

    Herzliche Grüße aus dem Saarland
    Harald Baecker

    Antworten

Schreibe einen Kommentar

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