Magento 2 Performance-Optimierung: Best Practices für eine schnellere E-Commerce-Website
Die Performance des Shops ist ein elementarer Baustein für ein optimales Einkaufserlebnis und damit ein bedeutender Faktor um eine bessere Conversion-Rate zu erreichen. Gleichzeitig ist die Geschwindigkeit des Shops für SEO relevant. In diesen Blog-Beitrag gehen wir auf verschiedene Möglichkeiten und Faktoren zur Optimierung von Magento 2 Shops ein.
Shop Modus
Für den Live-Betrieb von Magento, sollte dieser im sogenannten „production“-Mode sein.
Dieser Modus ist explizit für den produktiven Betrieb von Magento gedacht. Sowohl für die Sicherheit, aufgrund des Wegfallens von Fehlerausgaben, als auch für die Performance wegen der bereits generierten Templates, Assets etc. ist dieser Modus für den produktiven Betrieb essentiell.
Magento Caches
Komplexe Frameworks, wie Magento, würden ohne Caching kaum einsetzbar sein. Das Berechnen von statischen Blöcken und das generieren von Code etc., würde viel Rechenleistung für jeden Aufruf einer Seite in Anspruch nehmen. Um diese Rechenzeit zu sparen, werden einmal erstellte Daten in Caches hinterlegt, um später wieder auf diese zurückgreifen zu können. Der Fullpage-Cache von Magento 2 Speichert dem ersten Aufruf die ganze Seite und die dynamischen Inhalte werden nach Auslieferung der Seite aus weiteren Caches oder dynamischen Anfragen geladen. Magento bringt eine Vielzahl verschiedener Caches mit, welche sich automatisch bereinigen und pflegen. Hier ist bei der Entwicklung von Modulen die korrekte Bereinigung relevanter Caches zu beachten.
Optimiertes Hosting
Die Auswahl des korrekten Servers hängt stark von der Datenmenge und den Kundenzugriffen auf den Shop ab. Für Magento gibt es Cloud-Anbieter die explizit für Magento optimierte Cluster zur Verfügung stellen. Falls ein Cluster zu teuer ist oder die Größe des Shops noch ohne Cloud handelbar ist, empfehlen wir einen leistungsfähigen Root-Server, da dieser die benötigten Dienste, als auch die notwendige manuelle Konfiguration ermöglicht.
Verwendung von HTTP 2.0
Die Auslieferung der Website per HTTP 2.0 bringt einen deutlich spürbaren Effekt. Das hängt damit zusammen, dass die Assets der Shops parallel geladen werden können.
Redis / Varnish
Der Einsatz von Redis und Varnish ist notwendig, um eine gute Performance zu erreichen. Redis ist ein Key-Value-Store, welcher die Daten vollständig im RAM hält und extrem schnell Daten lesen und schreiben kann. Aus diesem Grund empfehlen wir, sowohl die Kunden-Sessions, als auch die Caches in Redis abzulegen. Es ist gängige Praxis für den Cache und die Sessions separate Redis-Instanzen zu verwenden, um definieren zu können, dass bei Neustarts oder Abstürzen die Sessions gesichert und die Caches verworfen werden.
Varnish dient Magento zur Auslieferung des Fullpage-Caches und verzichtet somit auf den Aufruf der Magento Instanz. Das senkt die Ladezeiten für gecachte Inhalte erheblich, da Varnish die Seite bereits gespeichert hat und diese direkt ausliefert. Für die dynamischen Elemente der Seite, wird weiterhin Magento angefragt.
CSS / JS / HTML Optimierung
Der Faktor JS und CSS Optimierung ist ein komplexes Thema, weshalb wir es hier nur kurz anschneiden werden. Magento bringt von Haus aus eine CSS, HTML und JS-Komprimierung mit, um die Größen der Dateien so gering wie möglich zu halten. Des weiteren kann mit JS- und CSS-Bundling die Menge der Anfragen an den Server verringert werden, indem die JavaScript- und CSS-Dateien zu Paketen geschnürt werden und so ausgeliefert werden. Die Pakete sind allerdings dadurch deutlich größer und können schnell Kontra-Produktiv für die Optimierung sein. Das manuelle JS-Bundling über den RequireJS-Optimizer löst dieses Problem im Bezug auf JavaScript weitestgehend, indem Pakete für bestimmte Bereiche des Shops erstellt werden, die ausschließlich die Scripte enthalten, die auch wirklich benötigt werden. Auch die Erstellung von kritischen CSS im Template wird dringend empfohlen, um den CSS für die wichtigsten Elemente bereits beim Laden der Seite mit auszuliefern.
CDN
Den Einsatz eines CDN empfehlen wir bei internationalen Shops, um die Zeit zur Auslieferung von Assets so gering wie möglich zu halten. Ein CDN bzw. Content Delivery Network ist ein Netzwerk von Servern über verschiedene geografische Standorte. Es dient dazu die Inhalte von Webseiten schneller zur Verfügung zu stellen, indem ein Server gewählt wird, der so nah wie möglich am Kunden ist. Gleichzeitig wird der eigene Server entlastet, da dieser die Ressourcen nicht mehr zu Verfügung stellen muss. Einige CDNs bieten zudem einen Schutz vor DDoS-Angriffen oder ein automatisches Optimieren und Skalieren von Grafiken.
Deaktivierung unnötiger Module
Die Deaktivierung nicht benötigter Module, senkt die Anzahl an JS- und CSS Dateien. Auch das wegfallen unnötiger Logik, Templates und Scripte spart Rechenzeit.
Fazit
Die Optimierung von Magento 2 ist ein aufwändiger, jedoch notwendiger Teil.
Sowohl im SEO, als auch im Bereich der Conversion-Optimierung, ist die Performance ein entscheidender Baustein. Bereits einige Wenige der genannten Punkte reichen, um eine spürbare Verbesserung im Shop zu erreichen.
Es gibt auch noch mehr Faktoren, die wir hier nicht genannt haben, um den Rahmen für dieses schlichtweg gigantische Thema nicht zu sprengen.