Shopware 6 Performance-Guide 2026: So machst du deinen Shop wirklich schnell
Blog

Neues aus der Agentur

Suche

Shopware 6 Performance-Guide 2026: So machst du deinen Shop wirklich schnell

Shopware 6 Performance-Guide 2026: So werden 6.5, 6.6 und 6.7+ zur Rakete

Ladezeiten sind im E-Commerce bares Geld. Jede zusätzliche Sekunde kostet dich Besucher, Conversions und Rankings. Trotzdem laufen viele Shopware-6-Shops weit unter ihrem Potenzial – nicht weil die Plattform langsam wäre, sondern weil Server, Konfiguration und Shop-Setup nicht aufeinander abgestimmt sind.

In diesem Guide zeigen wir dir die Maßnahmen, mit denen wir als Shopware Gold Partner Shops von Shopware 6.5 bis 6.7 auf Höchstleistung bringen – praxiserprobt an Projekten mit über 250.000 Produkten, 10 Sprachen und komplexen Variantenstrukturen.

Gilt für: Shopware 6.5, 6.6 und 6.7 – selbstgehostet (Self-Hosted / On-Premise). Die Empfehlungen richten sich an Shopbetreiber und Agenturen mit Zugriff auf die Serverkonfiguration.

1. Bilder in AVIF konvertieren

Produktbilder machen den größten Anteil am Seitengewicht eines Shops aus. Das AVIF-Format bietet gegenüber JPEG und PNG eine Komprimierung von 50–70 Prozent bei gleicher oder besserer Bildqualität. Für Shopware 6 bedeutet das: deutlich schnellere Ladezeiten, bessere Core Web Vitals und weniger Bandbreitenverbrauch – besonders auf mobilen Geräten.

Mit unserem Media Booster Plugin (verfügbar im Shopware Store) lassen sich alle vorhandenen und neu hochgeladenen Bilder automatisch in AVIF konvertieren. Der Vorteil gegenüber manueller Konvertierung: Es passiert vollautomatisch im Hintergrund, ohne Eingriffe in den Workflow deines Teams.

Quick-Win: Allein die Umstellung auf AVIF kann die Gesamtladezeit deines Shops um 30–50 Prozent reduzieren, da Bilder in der Regel den größten Anteil am Seitengewicht ausmachen.

2. Unnötige Plugins entfernen

Jedes aktive Plugin in Shopware 6 wird bei jedem Seitenaufruf geladen – egal ob es auf der aktuellen Seite eine Funktion hat oder nicht. Viele Shops sammeln über die Zeit Plugins an, die einmal getestet, aber nie wieder deaktiviert wurden. Das Ergebnis: unnötiger Overhead bei jedem einzelnen Request.

Unsere Empfehlung zu Shopware 6 Performance:

  • Erstelle eine Liste aller aktiven Plugins und prüfe für jedes einzelne, ob es tatsächlich im Einsatz ist.
  • Deaktiviere und deinstalliere alles, was nicht gebraucht wird – auch wenn es „nur ein kleines Plugin“ ist.
  • Achte besonders auf Plugins, die eigene JavaScript- oder CSS-Dateien laden: Diese verlangsamen das Frontend direkt.
  • Nutze nach der Bereinigung das FroshTools-Plugin (von Friends of Shopware), um zu prüfen, ob weitere Quick-Wins zur Performance-Optimierung offen sind.

Achtung: Erstelle vor dem Entfernen von Plugins immer ein vollständiges Backup (Datenbank + Dateien). Manche Plugins legen eigene Datenbanktabellen an, die bei der Deinstallation bereinigt werden sollten.

3. Lazy Loading aktivieren

Lazy Loading sorgt dafür, dass Bilder und andere Ressourcen erst dann geladen werden, wenn sie im sichtbaren Bereich des Browsers erscheinen. Statt beim ersten Aufruf alle 50 Produktbilder einer Kategorieseite gleichzeitig zu laden, werden nur die sichtbaren Bilder sofort geladen – der Rest folgt beim Scrollen.

In Shopware 6 ist natives Lazy Loading über das HTML-Attribut loading="lazy" in den meisten Themes bereits vorgesehen. Prüfe dennoch, ob es auch tatsächlich für Produktbilder im Listing, auf Kategorieseiten und in den Erlebniswelten aktiv ist. Besonders bei Custom-Themes oder älteren Theme-Versionen fehlt diese Implementierung häufig.

4. OpenSearch / Elasticsearch einrichten

Die Standard-Datenbanksuche von Shopware stößt bei größeren Sortimenten schnell an ihre Grenzen – sowohl im Frontend (Produktsuche, Filter, Listing) als auch im Admin-Backend. Die Lösung: OpenSearch oder Elasticsearch als dedizierte Suchengine einbinden.

Was das konkret bringt:

  • Frontend: Deutlich schnellere Ladezeiten bei Produktlistings, Filtern und der Shopsuche. Gerade bei Shops mit tausenden Produkten und vielen Eigenschaften macht sich der Unterschied sofort bemerkbar.
  • Admin-Backend: Keine Ladezeiten mehr bei der Produkt-, Kunden- oder Bestellsuche. Wer schon mal in einem Shop mit 50.000+ Produkten im Admin gearbeitet hat, weiß, wie quälend langsam die Standard-Suche sein kann.

OpenSearch ist der empfohlene Nachfolger von Elasticsearch und wird von Shopware offiziell unterstützt. Die Einrichtung erfordert einen eigenen Service auf dem Server, lohnt sich aber ab ca. 1.000 Produkten bereits spürbar.

5. Redis als Cache- und Session-Backend

Redis ist ein In-Memory-Datenspeicher, der Daten im Arbeitsspeicher statt auf der Festplatte vorhält. Für Shopware 6 bedeutet das: Cache-Abfragen und Session-Daten werden um ein Vielfaches schneller verarbeitet als mit dem Standard-Dateisystem.

Wir empfehlen Redis für:

  • HTTP-Cache – Gecachte Seiten werden blitzschnell ausgeliefert.
  • Application Cache – Interne Shopware-Caches (Konfiguration, Routen, Kategorien) liegen im RAM.
  • Sessions – Warenkörbe und Login-Sessions werden über Redis verwaltet statt über Dateien.

Hardware-Empfehlung: Plane für Redis mindestens 8 GB RAM ein. Bei größeren Shops mit vielen parallelen Sessions und großem Sortiment darf es auch mehr sein. Redis ist nur so schnell wie der verfügbare Arbeitsspeicher es zulässt.

6. PHP-Konfiguration optimieren (php.ini)

Die Standard-PHP-Konfiguration der meisten Hoster ist auf „funktioniert irgendwie“ ausgelegt – nicht auf Performance. Für Shopware 6 lohnt es sich, die php.ini gezielt anzupassen. Die folgenden Werte setzen wir in unseren Projekten ein und empfehlen sie für Shops auf dedizierter Hardware mit mindestens 8 CPU-Kernen und 32 GB RAM (bei größeren Projekten entsprechend mehr).

Speicher und Upload

Shopware benötigt gerade bei Importen, Plugin-Installationen und der Medienverwaltung ausreichend Speicher. Diese Werte verhindern Abbrüche bei großen Operationen:

memory_limit = 2048M
post_max_size = 512M
upload_max_filesize = 256M
max_input_vars = 6000
max_file_uploads = 100
file_uploads = On

memory_limit auf 2 GB gibt Shopware genug Spielraum für umfangreiche Produkt-Importe und Admin-Operationen. max_input_vars auf 6000 ist wichtig, da Shopware bei komplexen Formularen (z.B. Variantenkonfiguration) viele Felder gleichzeitig übermittelt.

Ausführungszeiten

max_execution_time = 120
max_input_time = 120

120 Sekunden reichen für die meisten Shopware-Operationen. Wer regelmäßig große Datenimporte über den Admin fährt, kann diesen Wert auch höher setzen. Für den normalen Frontend-Betrieb wird dieses Limit nie erreicht.

Fehlerbehandlung (Produktion)

display_errors = Off
display_startup_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Fehlermeldungen gehören ins Log, nicht auf den Bildschirm. Auf einem Produktivsystem sollten Fehler niemals dem Endkunden angezeigt werden – das ist ein Sicherheitsrisiko und wirkt unprofessionell. Deprecated- und Strict-Warnungen werden unterdrückt, da sie bei Shopware häufig durch Drittanbieter-Plugins verursacht werden und keinen akuten Handlungsbedarf darstellen.

Sicherheit

expose_php = Off
allow_url_fopen = On
allow_url_include = Off

expose_php = Off verhindert, dass die PHP-Version im HTTP-Header preisgegeben wird. allow_url_fopen muss für Shopware aktiviert sein (Composer, Plugin-Store), allow_url_include sollte aus Sicherheitsgründen immer deaktiviert bleiben.

Session-Handling via Redis

session.save_handler = redis
session.save_path = "unix://{REDIS_SOCKET}?database=0&auth={REDIS_PASSWORD}"
session.gc_maxlifetime = 14400
session.auto_start = Off
session.use_strict_mode = On
session.cookie_httponly = On
session.cookie_secure = On
session.cookie_samesite = "Lax"

Hier wird Redis als Session-Backend konfiguriert. Ersetze {REDIS_SOCKET} und {REDIS_PASSWORD} durch deine tatsächlichen Werte. Die Cookie-Einstellungen (httponly, secure, samesite) folgen aktuellen Security-Best-Practices. gc_maxlifetime auf 14400 Sekunden (4 Stunden) sorgt dafür, dass Warenkörbe nicht zu schnell verloren gehen.

Realpath Cache

realpath_cache_size = 4096K
realpath_cache_ttl = 3600

Dieser oft übersehene Wert ist für Shopware besonders wichtig. Shopware 6 basiert auf Symfony und lädt bei jedem Request hunderte PHP-Dateien. Der Realpath Cache speichert die aufgelösten Dateipfade im Speicher, sodass das Dateisystem nicht jedes Mal erneut abgefragt werden muss. 4 MB Cache-Größe und 1 Stunde TTL sind für die meisten Shops ein guter Wert.

OPcache – der größte Performance-Hebel

opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 65000
opcache.max_wasted_percentage = 10

; Timestamps in Produktion deaktivieren
; (nach Deploy: php-fpm reload erforderlich!)
opcache.validate_timestamps = 0
opcache.revalidate_freq = 0

opcache.fast_shutdown = 1
opcache.enable_file_override = 1
opcache.huge_code_pages = 1

; JIT (PHP 8.x – deutlicher Performance-Boost)
opcache.jit = 1255
opcache.jit_buffer_size = 256M

OPcache kompiliert PHP-Dateien einmalig und hält das Ergebnis im Speicher. Ohne OPcache muss PHP bei jedem Request alle Dateien neu parsen und kompilieren – bei Shopware sind das tausende Dateien pro Seitenaufruf.

Die wichtigsten Einstellungen erklärt:

  • memory_consumption = 512 – 512 MB für den OPcache. Shopware 6 mit Plugins benötigt oft 200–400 MB, also lieber großzügig planen.
  • max_accelerated_files = 65000 – Maximale Anzahl gecachter Dateien. Shopware 6 bringt allein schon tausende PHP-Dateien mit, plus Plugins und Vendor-Bibliotheken.
  • validate_timestamps = 0 – In der Produktion die wichtigste Einstellung: PHP prüft nicht mehr bei jedem Request, ob sich eine Datei geändert hat. Das spart enorm viel I/O. Wichtig: Nach jedem Deployment muss PHP-FPM neu geladen werden (systemctl reload php-fpm), damit die neuen Dateien geladen werden.
  • JIT (opcache.jit = 1255) – Der Just-In-Time-Compiler in PHP 8.x kompiliert häufig ausgeführten Code direkt in Maschinencode. Für Shopware bringt das einen deutlichen Performance-Boost, besonders bei rechenintensiven Operationen wie Preisberechnungen und Template-Rendering.

7. PHP-FPM Prozess-Management

PHP-FPM (FastCGI Process Manager) verwaltet die PHP-Prozesse, die Anfragen an deinen Shop verarbeiten. Die Standardkonfiguration ist für kleine Websites ausgelegt – nicht für einen Shopware-Shop unter Last. Mit der richtigen Konfiguration stellst du sicher, dass genug Worker bereitstehen, um parallele Anfragen ohne Wartezeit zu verarbeiten.

Unsere bewährte Konfiguration:

pm = dynamic
pm.max_children = 128
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 40
pm.max_requests = 500

Was die einzelnen Werte bedeuten:

  • pm = dynamic – PHP-FPM erstellt und beendet Worker-Prozesse je nach Auslastung. Der beste Kompromiss zwischen Performance und Ressourcenverbrauch.
  • max_children = 128 – Maximale Anzahl gleichzeitiger PHP-Prozesse. Bei 32 GB RAM und einem durchschnittlichen Speicherverbrauch von ~80–120 MB pro Worker reicht das für die meisten Shops.
  • start_servers = 20 – Anzahl der Worker, die beim Start von PHP-FPM sofort verfügbar sind.
  • min/max_spare_servers – Hält immer zwischen 10 und 40 freie Worker vor, damit Anfragen nicht auf einen neuen Prozess warten müssen.
  • max_requests = 500 – Nach 500 verarbeiteten Requests wird ein Worker-Prozess neu gestartet. Das verhindert Memory Leaks durch langlebige Prozesse.

Wichtig: Diese Werte sind ein Ausgangspunkt, kein Dogma. Prüfe nach der Umstellung die CPU- und RAM-Auslastung deines Servers und passe die Werte bei Bedarf nach oben oder unten an. Wir setzen dieses Setup erfolgreich für kleine bis große Shops ein – die richtige Balance hängt aber immer von deiner Hardware und deinem Traffic ab.

8. Webserver: Nginx statt Apache

Wir empfehlen grundsätzlich Nginx als Webserver für Shopware 6. Nginx verarbeitet statische Dateien (Bilder, CSS, JavaScript) deutlich effizienter als Apache und kommt mit vielen gleichzeitigen Verbindungen besser zurecht. Gerade in Kombination mit PHP-FPM ist Nginx die performantere Wahl.

Falls du noch auf Apache läufst und einen Wechsel in Betracht ziehst: Nginx-basiertes Hosting kann auch direkt bei uns gebucht werden – bereits vorkonfiguriert und optimiert für Shopware 6.

9. Datenbank-Tuning

Die Datenbank ist das Herzstück deines Shops. Jede Produktseite, jede Bestellung, jede Admin-Suche löst Datenbankabfragen aus. Wenn die Datenbank langsam antwortet, hilft die beste PHP-Konfiguration nichts.

Unsere Empfehlungen:

  • Mindestens 2 GB RAM für die Datenbank einplanen – besser 4 GB oder mehr. Der InnoDB Buffer Pool sollte so groß sein, dass die gesamte Datenbank im Arbeitsspeicher Platz hat.
  • MariaDB bevorzugen – Shopware 6 läuft sowohl mit MariaDB als auch mit MySQL 8. MariaDB ist in den meisten Fällen die unkompliziertere Wahl.
  • Bei MySQL 8: Setup-Konfiguration prüfen! – Wer mit MySQL 8 statt MariaDB arbeitet, muss zwingend auf die korrekte Konfiguration achten. Insbesondere der Authentication-Modus und die Collation-Einstellungen können zu Problemen führen, wenn sie nicht explizit für Shopware angepasst werden.

10. Profiling: Wenn es trotzdem noch hakt

Du hast alle oben genannten Maßnahmen umgesetzt und dein Shop hat immer noch Lags? Dann wird es Zeit für ein professionelles Profiling-Tool. Mit Tideways kannst du auf Codeebene analysieren, welche Funktionen, Datenbankabfragen oder Plugin-Aufrufe die meiste Zeit verbrauchen.

Tideways zeigt dir schwarz auf weiß, wo die Millisekunden verloren gehen – ob es ein schlecht geschriebenes Plugin ist, eine fehlende Datenbankindex oder ein ineffizienter Template-Block. Gerade bei komplexen Shops mit vielen Plugins und Schnittstellen ist Profiling der einzige Weg, die tatsächlichen Bottlenecks zu identifizieren.

Praxis-Beispiele: Shops, die mit diesem Setup laufen und von uns gehostet werden

Theorie ist gut – Ergebnisse sind besser. Hier sind einige Shops, die wir mit genau diesem Performance-Setup betreiben:

  • eurafco.com – Internationaler B2B-Shop mit 10 Sprachen, mehreren Subshops und komplexen Variantenstrukturen. Trotz der Komplexität schnelle Ladezeiten auf allen Verkaufskanälen.
  • fahrwerkonline.de – Über 250.000 Produkte im Sortiment. Dank OpenSearch und Redis bleibt die Suche auch bei dieser Datenmenge blitzschnell.
  • finnia-gartenwelt.de – Sauberer, performanter Shop mit optimiertem Checkout und schnellen Ladezeiten.
  • vinlorenc.de – Premium-Weinshop mit ansprechendem Design und schneller Auslieferung.
  • schecker.de – Etablierter Tierbedarf-Shop mit großem Sortiment und hohem Traffic-Volumen.

Zusammenfassung: Die Performance-Checkliste

Hier nochmal alle Maßnahmen auf einen Blick – sortiert nach Aufwand und Wirkung:

★ Quick-Wins (sofort umsetzbar):

  • Bilder in AVIF konvertieren (Media Booster Plugin)
  • Unnötige Plugins deaktivieren und deinstallieren
  • Lazy Loading für alle Bilder sicherstellen
  • FroshTools installieren und Performance-Check durchführen

★★ Server-Optimierung (mittlerer Aufwand):

  • Redis für Cache und Sessions einrichten (min. 8 GB RAM)
  • PHP.ini optimieren (OPcache, JIT, Realpath Cache)
  • PHP-FPM Worker konfigurieren und monitoren
  • Auf Nginx umsteigen (falls noch Apache)

★★★ Infrastruktur (größerer Aufwand, größter Effekt):

  • OpenSearch / Elasticsearch aufsetzen
  • Datenbank-RAM und -Konfiguration optimieren
  • Profiling mit Tideways bei verbleibenden Bottlenecks

Fazit: Performance ist kein Zufall

Ein schneller Shopware-Shop entsteht nicht durch eine einzelne Maßnahme, sondern durch das Zusammenspiel von optimiertem Hosting, sauberer Konfiguration und einem aufgeräumten Shop-Setup. Die gute Nachricht: Die meisten der hier beschriebenen Optimierungen müssen nur einmal eingerichtet werden und wirken dann dauerhaft.

Der Unterschied zwischen einem „normalen“ und einem performance-optimierten Shopware-Shop ist im Alltag sofort spürbar – für deine Kunden, für dein Team im Admin und für deine Google-Rankings.

Du möchtest deinen Shopware-Shop auf maximale Performance bringen? Wir analysieren dein aktuelles Setup, identifizieren die größten Bottlenecks und setzen die Optimierungen für dich um – von der Serverkonfiguration bis zum Shop-Feinschliff. Schreib uns an: [email protected]

Neues Büro, neue Möglichkeiten!

Wir beziehen unsere neuen Räumlichkeiten innerhalb von Bargteheide. Daher sind wir am 29.01. nur eingeschränkt und am 30.01. gar nicht (auch nicht telefonisch) erreichbar. Bitte habt Verständnis, falls die Rückmeldung auf eure Anliegen auch in den Folgetagen etwas mehr Zeit in Anspruch nimmt. Wir setzen alles daran, schnellstmöglich wieder gewohnt zuverlässig für euch da zu sein.

Euer Web Labels Team

Fortbildung macht den Unterschied!
Heute ist unsere interne Fortbildung.

Jeden ersten Freitag im Monat nehmen wir uns Zeit, um unser Wissen weiter auszubauen. Das bedeutet: Wir sind an diesem Tag in internen Schulungen und möglicherweise etwas eingeschränkt erreichbar.

Warum? Weil wir unseren Kunden stets die beste Beratung und modernste Lösungen bieten wollen. ✨ Ab dem darauffolgenden Montag sind wir wieder mit frischem Know-how und voller Energie für dich da! 💪

Danke für dein Verständnis!
Dein Web Labels Team

Zum Inhalt springen