EXWE Blog
Neuigkeiten zum Thema Shopware aus dem EXWE Blog
Beiträge zum Thema Digitalisierung, Softwareentwicklung und E-Commerce abbonieren
  Alle News anzeigen (69)

Shopware Performance Guide für Profis

Banner Shopware

Wir möchten dir in diesem Shopware Performance Guide vor allem Tipps geben, die wir durch die jahrelange Arbeit mit Shopware und zahlreiche Projekte herausgefunden haben. Diese Tipps konnten wir bisher noch nirgendwo finden, möchten dir diese aber unbedingt vorstellen, da sie dir im Alltag viel Arbeit und Ärger sparen können. Zunächst gehen wir aber noch kurz auf Tipps ein, die im Internet schon bekannt sind, dir aber vielleicht bisher trotzdem noch nicht begegnet sind. So hast du alle Tipps rund um die Shopware Performance Optimierung gesammelt an einem Ort und kannst endlich die Geschwindigkeit deines Onlineshops verbessern.

Was dich erwartet
  1. Allgemeine Performance Tipps aus der Shopware-Welt
  2. Performance Tipps für erfahrene Shopbesitzer und Entwickler
    1. HTML-Minfier bei grossen Shops deaktivieren
    2. Hohe Serverlast bei aktiver openbasedir
    3. Shopüberwachung mit Tideways
    4. Mod pagespeed 
    5. AMP (accelerated mobile pages)
    6. Elasticsearch
    7. Redis Cache

Allgemeine Performance Tipps, die bereits in der Shopware-Welt bekannt sind

Hier haben wir erstmal ein paar Tipps, die allgemein schon bekannt sind, wenn du nach Shopware Performance Tipps suchst. Diese Tipps solltest du natürlich auch beachten, um die Performance deines Onlineshops schnell zu verbessern. Wenn dir diese Tipps und Tricks noch kein zufriedenstellendes Ergebnis liefern, findest du später im Beitrag noch unsere Shopware Performance Tipps für Profis. Die Umsetzung der einzelnen Punkte ist zum Teil technologisch anspruchsvoll, hier könnte es Sinn ergeben, sich an eine professionelle Shopware Agentur zu wenden.

Unsere Shopware Performance Tipps und Tricks:

  • PHP-Version auf PHP7+ upgraden: Die Geschwindigkeit des Onlineshops hängt auch immer sehr stark mit der genutzten PHP Version zusammen. Du solltest dich also immer darüber informieren, mit welcher neuen Version Shopware mittlerweile kompatibel ist. Beispielsweise kann ein Upgrade von der PHP Version 7.0 auf 7.2 Geschwindigkeitsverbesserungen von 10 bis 15 % ausmachen.
  • Ein leistungsstarker Webserver: Unsere Webserver Empfehlung für Shopware ist nginx. Denn je mehr Besucher deinen Shopware Onlineshop gleichzeitig nutzen, desto mehr Leistung benötigt auch der Webserver, um alle Anfragen gleichzeitig und schnell zu bedienen.
  • Aktuellste Shopware Version: Um reibungslose Funktionalität und Performance sicherzustellen, ist die Nutzung der aktuellen Shopware Version natürlich Pflicht. 
  • Erhöhung der HttpCache-Vorhaltezeit: Indem du im Backend die Einstellungen der HttpCache-Vorhaltezeit erhöhst, kannst du ebenfalls schnellere Ladezeiten für deinen Shopware Shop ermöglichen.
  • Mehr Filter, weniger Kategorien: Für bessere Ladezeiten solltest du die Listings deiner Produkte nach weniger Kategorien sortieren und dafür umso mehr Filter einbauen, damit deine Kunden dennoch die gesuchten Produkte finden.
  • Komprimierung von CSS- und JS-Dateien: Je komplexer deine Dateien sind, desto länger wird es dauern, bis dein Shop für deine Shopbesucher geladen ist. Aus diesem Grund solltest du die CSS-Dateien und JS-Dateien komprimieren.
  • Cronjobs aktivieren: In den Grundeinstellungen des Shopware Shop Backends kannst du für Suche, SEO, Topseller und Empfehlungsmarketing Cronjobs aktivieren. 
  • Komprimierte Bilder: Für eine bessere Page Speed solltest du auch deine Bilder komprimieren. Ein geeignetes Bildformat dafür ist übrigens webp.
  • Einsatz eines Content-Delivery-Networks (CDN): Je nachdem, wie viele Produktbilder und andere Bilder du in deinem Webshop einsetzt, lohnt es sich vermutlich, ein Content-Delivery-Network einzusetzen. Gemeint damit ist ein Server, der über ein verteiltes Netz verfügt und so Bildanfragen bzw. generelle Datenanfrage zuverlässig und schnell bereitstellen kann. Dadurch, dass in der Regel  immer ein lokaler Server für den User aktiv wird, sind die Ladezeiten sehr kurz.
  • Datenmengen mit dem GZIP-Modul komprimieren: Eine weitere Maßnahme ist die Nutzung des GZIP-Moduls bei deinem Webserver. Diese kannst du einfach aktivieren, um große Datenmengen zu komprimieren und die Shopware Shop Performance noch besser zu gestalten.
  • Ein CacheWarmUp für den Shopware Shop: Mit speziellen Plugins für deinen Shopware Onlineshop, kannst du deinen Cache jede Nacht „aufwärmen“. Das hat den Effekt, dass dein Shop nach dem Löschen des Caches, trotzdem so schnell reagiert, als wäre der Shop bereits besucht worden.

Die Shopware Performance Tipps für erfahrene Shopbesitzer und Entwickler

Nun kommen wir zu den Shopware Performance Tipps und Tricks, die sich für die Profis eigenen. Wenn du erfahrener Shopware Entwickler oder Shopbesitzer bist, werden dir diese Ratschläge helfen, deine Performance zu verbessern und Zeit zu sparen, die du nicht mit Haareraufen verbringen musst. In den letzten Jahren konnten wir viel in Sachen Performance lernen, da wir verschiedenste Shopware Onlineshops intensiv betreut haben. Unser Wissen möchten wir nun mit dir teilen:

HTML-Minifier bei großen Shops deaktivieren

Durch Tideways hatten wir die Möglichkeit, extrem langsame Seitenaufrufe von Onlineshops mit Shopware 5 zu identifizieren. Ursächlich war ein Problem mit dem „neuen“ HTML-Minifier von Shopware. Wie einige Forenbenutzer auch im Shopware Forum beschreiben, wird eine Regex verwendet, welche sich in bestimmten Konstellationen als extrem imperformant herausstellt. Shopware hat mittlerweile zum Glück  reagiert, sodass  die Funktion, welche im Backend unter Performance > Einstellungen > Allgemein > Verschiedenes zu finden ist, seit 5.6.7 standardmäßig inaktiv ist.

  • Lösung A: Performance > Einstellungen > Allgemein > Verschiedenes -> HTML Komprimierung aktivieren -> nein
  • Lösung B: Regex Funktion gemäß der Tipps im Shopware Forum tauschen. Hier geht es zum Beitrag.

Hohe Serverlast bei aktiver openbaseidr

Es gibt mittlerweile einige Berichte darüber, dass es auf Systemen mit aktiviertem open_basedir zu Beinträchtigungen bei der Performance kommt. Auch wir konnten durch Messungen mit Tideways in einigen unserer Shops nachweisen, dass 50% der Ladezeiten (TTFB) nur für File I/O draufgehen. Und das für Standard Aufrufe im Bereich der Dateioperationen wie file_exists(). Zu Grunde liegt ein Bug in PHP.*

Wir konnten zwei Lösungen hierfür etablieren:

  • Lösung A: "open_basedir" deaktivieren. Hier solltest du dir aber vorher einmal durchlesen wozu open_basedir  überhaupt gut ist, z.B. hier https://stackoverflow.com/a/3211621
  • Lösung B: /engine/Shopware/Kernel.php, Zeile 547, //always check for file modified time -> auf false setzen. Hier entstanden in all unseren Shops mit der Problematik die höchsten Kosten für I/O.

Shopüberwachung mit Tideways

Tideways ist ein Tool für Monitoring, Profiling und Tracking in PHP. Es analysiert serverseitige PHP-Prozesse und kann einzelne Seiten aber auch deinen gesamten Onlineshop analysieren.

Für uns ist Tideways inzwischen zu einem unabdingbaren Werkzeug geworden, um sicherzustellen, dass unsere Shops auch kontinuierlich schnell laufen. Tideways informiert euch selbstständig über Fehler, die im Shop auftreten (die ihr wahrscheinlich gar nicht bemerkt, eure Kunden aber schon), über langsame Seiten in eurem Shop und über Downtimes. Das Profiling und Tracking hilft Technikern extrem beim Isolieren der Problemstellen und minimiert die Zeit zwischen Auftreten und Beseitigen eines Problems.

Du brauchst Hilfe bei der Einrichtung oder Benutzung von Tideways? Melde dich gerne bei uns.

Mod pagespeed 

mod_pagespeed ist ein kostenloses Tool, das von Google entwickelt wurde um die Usability und Performance von Webseiten für Mobile und Desktop-Anwendungen automatisch zu optimieren. Das Open-Source--Modul wendet automatisch Best Practises für die Webleistung und dazugehörige Asstes wie CSS, JavaScript und auch Bilder an, ohne dass Du selber agieren und vorhandene Inhalte oder Workflows ändern musst.

Mod PageSpeed basiert auf den PageSpeed Optimization Libraries, die über bekannten Hosting und CDN-Anbietern wie GoDaddy, EdgeCast und DreamHost auf über 100.000 Websites bereitgestellt werden. Momentan stehen 40 Optimierungsfilter zur Verfügung, wie zum Beispiel Bildoptimierung und Größenänderung, Minimierung und Inlining von CSS und JavaScript, Cache-Erweiterung, Domain-Sharding, Domain-Rewriting – die Möglichkeiten der Optimierung sind hier breit gefächert.

Ein guter Hoster stellt euch eine bereits passend zu Shopware optimierte Config zur Verfügung.

AMP (accelerated mobile pages)

AMP oder auch Accelerated Mobile Pages ist ein Tool, dass aus einer Zusammenarbeit zwischen Google und Twitter entstanden ist. Auch AMP ist ein Open-Source-Projekt und soll dir dabei helfen, deine mobilen Inhalte und Websites zu optimieren, schneller zu machen und somit ein besseres Nutzererlebnis zu schaffen. AMP öffnet eine Seite in zwei Schritten – direkt nach dem Klick werden die Teile der Website sichtbar, die für den Nutzer wichtig sind, danach wird der Rest der Seite unbemerkt geladen. So bleibt die Datenmenge zu Anfang niedrig und die Ladezeit der Website auf dem mobilen Endgerät wird verbessert. Da Untersuchungen von Google zeigen, dass die Absprungrate von Nutzern auf bis zu 58 % steigt, wenn die Website zu lange lädt, ist AMP das perfekte Tool, um dies zu verhindern und deine Pageviews zu verbessern.

Im Shopware Store gibt es bereits fertige Plugins.

Elasticsearch

Elasticsearch ist perfekt für Onlineshops, die ein umfangreiches Produktsortiment mit mehreren Tausend Artikeln haben. Suchanfragen auf klassischen MySQL Datenbanken können hier echt träge werden, was die User Experience deutlich beeinträchtigt und sich damit in der Konversion wiederspiegelt. Selbst bei Millionen von Artikeln oder einem hohen Besucheraufkommen, ist eine über ES realisierte Suche im Regelfall extrem schnell und gut skalierbar.

Aber was genau ist Elasticsearch überhaupt? Hierbei handelt es sich um eine Suchmaschine, die auf der Apache Lucene Programmbibliothek basiert und Dokumente speichert, um diese schnell und einfach durchsuchen zu können. Die Dokumente sind hierbei die kleinste Einheit des Systems. Jedes Dokument wird zu Anfang indexiert. ElasticSearch teilt den Index dann in mehrere Bruchstücke (shards) auf, die wiederum auf mehrere Server (nodes) verteilt werden. Dadurch wird die Rechenlast auf diverse Systeme verteilt und die Ausfälle einzelner Server kann so leicht überbrückt werden. Der bereits genannte Index entspricht einer klassischen SQL-Tabelle und das Dokument einer Tabellenzeile. Die Software Elasticsearch ist in Java geschrieben und nutzt zum speichern der Dokumente das Datenformat JSON (JavaScript Object Notation).

Wer mehr über Elasticsearch und Shopware erfahren möchte, findet in den Shopware Docs weitere Infos dazu.

Redis Cache 

Redis zeichnet sich durch eine sehr einfache Datenspeicherung in Form eines extrem effizienten Key Value Stores. Nicht nur große Onlineshops sollten immer auf die maximale Performance setzen. Hier bietet Redis Stabilität, Skalierbarkeit und die notwendige Performance.

In Shopware Onlineshops kann mit Redis der Anwendungscache und ein zusätzlicher Model-Cache performanter zur Verfügung gestellt werden. Außerdem können die Sessions in Redis abgelegt werden, was absolut Sinn ergibt, da diese ansonsten relativ inperformant in der MySQL Datenbank abgelegt sind. Die Installation kann ganz einfach über die config.php stattfinden. Viele etablierte Hoster bieten passendes Hosting inklusive Redis an.

Man erkennt schnell, dass die Themen selbst für gestandene Entwickler:innen nicht ganz simpel umsetzbar sind. Das EXWE Shopware Agentur Team hilft dir gerne in allen Fragen rund um die Themen E-Commerce weiter und steigert mit gezieltem Support den Erfolg deines Unternehmens zu steigern.

* Quelle: https://bugs.php.net/bug.php?id=77406

Meike
Meike
vom 08.09.20 um 14:42

Hallo, mein Name ist Meike. Ich betreue das EXWE Backoffice und bin für unsere Social-Media Kanäle zuständig. All unsere Artikel sollen dir das Leben erleichtern und eine Entscheidungshilfe sein. Trotzdem kann es mal vorkommen, dass etwas unklar bleibt, daher: Wenn du Fragen zu diesem Artikel hast erreichst du mich ganz einfach unter +49 231 93149827

Zu diesem Thema haben wir außerdem noch folgende interessante Beiträge aus unserem Tech-Blog für dich
Shopware 6 Zertifizierung - EXWE ist nun Shopware-Agentur!

Neues von EXWE - Wir sind zertifizierter Shopware 6 Developer! EXWE als dein Ansprechpartner für Onlineshop Entwicklung, Betreuung und Wartung.

Entdecke die 5 Fähigkeiten, die jeder gute Shopware Entwickler mitbringen sollte

Du interessierst dich für Shopware und möchtest als Entwickler durchstarten? Dann haben wir für dich Tpps wie du zum ultimativen Shopware Entwickler wirst!

JTL Connector überschreibt bei jedem sync eure Freitextfelder mit null Werten?

Unsere Lösung für das Problem - was du tun kannst, wenn der JTL Connector bei Shopware zu Problemen führt.




Schreibe EXWE auf WhatsApp