LeistungenHeadlessReferenzenFür AgenturenBlogPreiseKontakt Kostenloses Erstgespräch
  1. Startseite
  2. Blog
  3. Performance

Performance

Shopware Performance optimieren: Die Stellschrauben, die wirklich wirken

Die meisten Performance-Projekte scheitern nicht an fehlendem Wissen, sondern an der Reihenfolge. Erst messen, dann die Ursache beheben – nicht das Symptom.

Ein langsamer Shop kostet Geld – das ist bekannt. Weniger bekannt ist, dass die meisten Optimierungsversuche an der falschen Stelle ansetzen. Es wird ein Bild-Plugin installiert, während die eigentliche Bremse eine Datenbankabfrage im Listing ist.

Deshalb hier die Reihenfolge, die sich in der Praxis bewährt hat.

Schritt 0: Messen, bevor du etwas änderst

Ohne Ausgangswert weißt du hinterher nicht, ob es besser geworden ist. Sinnvoll ist die Kombination aus Labordaten und echten Nutzerdaten:

  • Lighthouse / PageSpeed Insights für den ersten Überblick
  • Feldwerte aus der Search Console – die zählen für das Ranking, nicht die Laborwerte
  • Server-seitiges Profiling (z. B. Blackfire, Tideways oder Symfony Profiler auf Staging)
  • Slow-Query-Log der Datenbank einschalten

Schritt 1: Caching richtig aufsetzen

Das ist der Hebel mit dem besten Verhältnis von Aufwand zu Wirkung. Shopware bringt einen HTTP-Cache mit; im Produktivbetrieb gehört davor idealerweise ein Reverse Proxy.

  • HTTP-Cache aktiviert und mit sinnvoller Lebensdauer konfiguriert
  • Reverse Proxy (Varnish oder Fastly) für ausgelieferte Seiten
  • Redis für Sessions, Warenkorb und Objekt-Cache statt Dateisystem
  • OPcache in PHP korrekt dimensioniert – oft schlicht zu klein eingestellt

Der häufigste Fehler: Der Cache ist zwar aktiv, wird aber durch ein Plugin oder ein unbedachtes Cookie bei jedem Aufruf invalidiert. Prüf im Response-Header, ob du tatsächlich Treffer bekommst.

Schritt 2: Datenbank und Suche

Ab einigen tausend Artikeln wird die Produktsuche über MySQL zum Flaschenhals. Elasticsearch bzw. OpenSearch nimmt der Datenbank die Listing- und Suchabfragen komplett ab:

# Index aufbauen bzw. neu erstellen
bin/console es:index

# Status prüfen
bin/console es:status

# DAL-Index aktualisieren (nach größeren Datenänderungen)
bin/console dal:refresh:index

Zusätzlich lohnt ein Blick ins Slow-Query-Log. In fast jedem gewachsenen Shop findet sich dort ein Plugin, das pro Artikel eine eigene Abfrage absetzt – bei 48 Artikeln im Listing sind das 48 unnötige Roundtrips.

Schritt 3: Das Frontend

Bilder

Bilder sind fast immer der größte Einzelposten am Seitengewicht und meist auch das Element, das den Largest Contentful Paint bestimmt:

  • Moderne Formate ausliefern (WebP, wo sinnvoll AVIF)
  • Responsive Größen über srcset statt eines großen Bildes für alle
  • loading="lazy" für alles unterhalb des sichtbaren Bereichs – aber nicht für das Hauptbild
  • Feste width/height setzen, damit nichts nachträglich springt (CLS)

JavaScript und CSS

Jedes Plugin bringt eigene Assets mit. Nach zwei Jahren Shopbetrieb lädt die Startseite dann Skripte für Funktionen, die längst abgeschaltet sind. Ein Audit der geladenen Ressourcen bringt hier oft mehr als jede Mikrooptimierung.

Externe Skripte

Tracking, Chat-Widgets, Bewertungssterne, Consent-Banner: Das sind die üblichen Verdächtigen für einen schlechten INP-Wert. Alles, was nicht sofort gebraucht wird, gehört verzögert geladen – oder gestrichen.

Schritt 4: Infrastruktur

  • Aktuelle PHP-Version – jede Minor-Version bringt messbare Verbesserungen
  • Genug PHP-Worker für die tatsächliche Last, sonst entstehen Warteschlangen
  • HTTP/2 oder HTTP/3, Brotli-Kompression
  • CDN für statische Assets
  • Message Queue als Worker laufen lassen, nicht per Browser-Trigger

Was das realistisch bringt

Aus Projekten mit gewachsenen Shopware-Shops, jeweils gemessen an derselben Kategorieseite:

MaßnahmeTypische Wirkung
Reverse Proxy + RedisTTFB von 800 ms auf unter 150 ms
Elasticsearch für ListingsListing-Rendering 3 – 5× schneller
Bild-Pipeline überarbeitetLCP um 40 – 60 % besser
Ungenutzte Plugin-Assets entfernt200 – 600 KB weniger pro Seite
Externe Skripte verzögertINP oft von „mangelhaft“ auf „gut“

Fazit

Performance ist selten ein einzelnes Problem. Es sind meist fünf bis zehn kleine Ursachen, die sich addieren. Wer in der richtigen Reihenfolge vorgeht – erst messen, dann Caching, dann Datenbank, dann Frontend – kommt mit überschaubarem Aufwand sehr weit. Wer beim Frontend anfängt, optimiert oft stundenlang an Symptomen.

Loslegen

Dein Shop läuft nicht so,
wie er laufen sollte?

Schreib mir in zwei Sätzen, worum es geht. Ich melde mich innerhalb eines Werktags mit einer ersten Einschätzung – kostenlos und unverbindlich.

Kontakt

Direkter Draht

Kein Ticketsystem, kein Callcenter. Deine Nachricht landet direkt bei mir.

E-Mailmail@timhallmann.de Telefon+49 (0) 2661 208994-0 Mobil+49 (0) 151 41 34 95 52 WhatsAppDirekt schreiben
Sitz57520 Langenbach bei Kirburg
ErreichbarkeitMo–Fr, 9:00–12:00 & 13:00–18:00 Uhr

* Pflichtfeld · Antwort in der Regel innerhalb eines Werktags · Keine Weitergabe an Dritte · Für Aufträge gelten meine AGB

Dieses Formular ist durch reCAPTCHA geschützt. Es gelten die Datenschutzerklärung und die Nutzungsbedingungen von Google. Der Schutz wird erst aktiv, wenn du anfängst zu tippen.