Alle Beiträge

Shopware 6 Performance optimieren – so wird dein Shop schneller

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-MethodeTTFBFür wen
Kein Cache500–2000msNie in Production
Shopware HTTP-Cache50–200msStandard-Shops
Varnish5–30msHigh-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:

ToolWas es misst
PageSpeed InsightsCore Web Vitals (LCP, INP, CLS)
Shopware ProfilerDAL-Queries, Event-Listener, Template-Rendering
Blackfire.ioPHP-Profiling bis auf Funktionsebene
<code>bin/console debug:event-dispatcher</code>Registrierte Event-Listener pro Event
New Relic / DatadogServer-Monitoring in Echtzeit
Tipp: Aktiviere den Symfony Profiler im Staging (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.

Beitrag teilen