Shopware 6 Performance optimieren – so wird dein Shop schneller
Warum Geschwindigkeit im E-Commerce alles entscheidet
Jede Sekunde Ladezeit kostet Conversion. Google hat es gemessen: Von 1 auf 3 Sekunden steigt die Absprungrate um 32 %. Von 1 auf 5 Sekunden um 90 %. Für einen Online-Shop bedeutet das: Ein langsamer Shop ist ein Shop der Geld verbrennt.
Shopware 6 ist ein mächtiges System — aber Mächtigkeit hat ihren Preis. Symfony-Framework, Elasticsearch, Twig-Templates, DAL-Queries: Alles braucht Ressourcen. Die gute Nachricht: Mit den richtigen Stellschrauben ist Shopware 6 verdammt schnell.
1. Production-Modus aktivieren
Der häufigste Fehler in Live-Shops: Der Development-Modus ist noch aktiv. Im Dev-Modus schreibt Shopware Debug-Logs, deaktiviert Caching und kompiliert Templates bei jedem Request neu.
In der .env:
APP_ENV=prod
APP_DEBUG=0
Danach Cache neu aufbauen:
bin/console cache:clear
bin/console cache:warmup
Wichtig: Dieser eine Schritt allein kann die Ladezeit halbieren. Prüfe das als Erstes.
2. HTTP-Cache und Reverse Proxy
Shopware 6 bringt einen eingebauten HTTP-Cache mit. Aktiviere ihn in der .env:
SHOPWARE_HTTP_CACHE_ENABLED=1
SHOPWARE_HTTP_DEFAULT_TTL=7200
Für Shops mit höherem Traffic lohnt sich ein Reverse Proxy wie Varnish davor. Varnish liefert gecachte Seiten direkt aus dem RAM — ohne dass PHP oder die Datenbank überhaupt angesprochen werden.
| Caching-Methode | TTFB | Für wen |
|---|---|---|
| Kein Cache | 500–2000ms | Nie in Production |
| Shopware HTTP-Cache | 50–200ms | Standard-Shops |
| Varnish | 5–30ms | High-Traffic-Shops |
3. PHP optimieren
Shopware 6 läuft auf PHP — und die PHP-Konfiguration entscheidet über die Grundgeschwindigkeit.
OPcache aktivieren und konfigurieren:
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
validate_timestamps=0 bedeutet, dass PHP Dateien nicht bei jedem Request auf Änderungen prüft. In Production ist das sicher — nach einem Deployment machst du einen cache:clear.
PHP-Version: Mindestens PHP 8.2, besser 8.3. Der Unterschied zu PHP 7.4 sind 30–40 % schnellere Ausführung.
Memory Limit: Shopware braucht mindestens 512 MB. Für Shops mit vielen Produkten oder Plugins: 1 GB.
memory_limit=512M
4. Datenbank-Performance
Shopware 6 nutzt MySQL/MariaDB intensiv — jede Produktseite, jeder Filter, jeder Warenkorb ist eine Datenbankabfrage.
MySQL-Konfiguration optimieren:
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=2
query_cache_type=0
innodb_buffer_pool_size sollte 50–70 % des verfügbaren RAMs sein. Das ist der wichtigste einzelne MySQL-Parameter.
Indexierung aktuell halten:
bin/console dal:refresh:index
bin/console es:index
Führe das nach größeren Produktimports oder Kategorieänderungen aus. Veraltete Indizes verlangsamen Listing-Seiten spürbar.
5. Elasticsearch einsetzen
Ohne Elasticsearch laufen alle Produkt-Suchen und Filter über MySQL — bei tausenden Produkten wird das langsam. Elasticsearch ist für Shopware 6 optional, aber ab ~500 Produkten eine klare Empfehlung.
SHOPWARE_ES_ENABLED=1
SHOPWARE_ES_INDEXING_ENABLED=1
SHOPWARE_ES_INDEX_PREFIX=sw6
SHOPWARE_ES_HOSTS=localhost:9200
Danach den Index aufbauen:
bin/console es:index
bin/console es:reset
bin/console es:index
Ergebnis: Suchseiten und gefilterte Listings laden 3–10x schneller.
6. Bilder optimieren
Produktbilder sind der größte Teil der Seitengröße. Shopware generiert automatisch Thumbnails — aber die Grundkonfiguration ist oft nicht optimal.
Thumbnail-Größen prüfen: Administration → Einstellungen → Medien. Lösche nicht benötigte Thumbnail-Größen und regeneriere:
bin/console media:generate-thumbnails
WebP aktivieren: Seit Shopware 6.5 können Thumbnails als WebP generiert werden — 25–40 % kleiner als JPEG.
Lazy Loading: Shopware-Themes laden Bilder standardmäßig lazy. Prüfe, ob dein Custom-Theme das nicht überschreibt.
7. Storefront-Assets minimieren
Die Storefront lädt CSS und JavaScript — und mit jedem Plugin kommt mehr dazu.
Theme kompilieren:
bin/console theme:compile
Das minimiert und kombiniert CSS/JS automatisch. Im Production-Modus wird das optimiert gebaut.
Nicht genutzte Plugins deaktivieren: Jedes aktive Plugin registriert Event-Listener, lädt Assets und führt Datenbankabfragen aus — auch wenn der Kunde es nie sieht.
Fonts lokal hosten: Google Fonts über den Google-Server zu laden kostet einen zusätzlichen DNS-Lookup und eine TCP-Verbindung. Lade die Schriften herunter und binde sie lokal ein.
8. CDN für statische Assets
Ein CDN liefert Bilder, CSS, JS und Fonts vom nächstgelegenen Server aus. Shopware 6 unterstützt CDNs nativ über die shopware.yaml:
shopware:
filesystem:
public:
url: "https://cdn.dein-shop.de"
Cloudflare ist der einfachste Einstieg — kostenloser Plan, DNS-basiertes Setup, automatische Komprimierung.
9. Admin-Performance verbessern
Nicht nur die Storefront zählt. Ein langsames Admin-Panel frustriert dein Team und kostet Arbeitszeit.
Admin-Worker deaktivieren: Standardmäßig laufen Shopware-Worker im Browser des Admin-Users. Das verlangsamt das Panel und ist in Production nicht empfohlen:
shopware:
admin_worker:
enable_admin_worker: false
Stattdessen einen CLI-Worker als Cronjob einrichten:
# Cronjob alle 30 Sekunden
* /usr/bin/php /var/www/shop/bin/console messenger:consume --time-limit=30
* sleep 30 && /usr/bin/php /var/www/shop/bin/console messenger:consume --time-limit=30
Scheduled Tasks:
bin/console scheduled-task:run
Auch das gehört in einen Cronjob, nicht in den Admin-Worker.
10. Messen, nicht raten
Optimiere gezielt statt blind. Tools für Shopware-Performance:
| Tool | Was es misst |
|---|---|
| PageSpeed Insights | Core Web Vitals (LCP, INP, CLS) |
| Shopware Profiler | DAL-Queries, Event-Listener, Template-Rendering |
| Blackfire.io | PHP-Profiling bis auf Funktionsebene |
| <code>bin/console debug:event-dispatcher</code> | Registrierte Event-Listener pro Event |
| New Relic / Datadog | Server-Monitoring in Echtzeit |
APP_ENV=dev) und analysiere die langsamsten Requests. Oft sind es 2–3 Queries die 80 % der Ladezeit verursachen.
Fazit
Shopware 6 Performance ist kein Glücksspiel. Die Reihenfolge: Production-Modus aktivieren, HTTP-Cache einschalten, PHP und MySQL konfigurieren, Elasticsearch für große Kataloge. Damit allein ist dein Shop in den meisten Fällen unter 2 Sekunden Ladezeit.
Alles danach — CDN, Asset-Optimierung, Admin-Worker — ist Feinschliff. Wichtig ist: Miss vor und nach jeder Änderung. Nur so weißt du, was tatsächlich wirkt.
Mehr über unsere Shopware-Entwicklung →
Dieser Artikel wurde zuletzt am 15. März 2026 aktualisiert.