Manuel Killert
Ratgeber · WooCommerce · Performance

WooCommerce langsam — die Bremsen, die nur Shops haben.

Die normale WordPress-Optimierung ist gemacht, und der Shop kriecht trotzdem? WooCommerce bringt eigene Bremsen mit: Skripte, die auf jeder Seite den Warenkorb abfragen, Sessions, die die Datenbank füllen, Produkte mit hunderten Varianten, Bestelltabellen mit Millionen Zeilen. Hier stehen die Shop-spezifischen Ursachen — und was gegen sie hilft.

Referenzen ansehen →Projekt anfragen
Kurz gesagt

Zuerst die allgemeinen Bremsen beseitigen (Bilder, Plugins, Caching, Hosting, PHP). Dann shop-spezifisch: Cart-Fragments auf Nicht-Shop-Seiten abschalten, Sessions und Transients aufräumen, HPOS für Bestellungen aktivieren, Varianten und Attribute schlank halten, Objekt-Caching nutzen, Zahlungs- und Versand-Plugins prüfen, Datenbank-Indizes setzen. Und Caching so konfigurieren, dass Warenkorb und Kasse ausgenommen sind.

Zuerst: die Basis.

Alles aus dem allgemeinen Ratgeber gilt für Shops doppelt: Bilder, Plugin-Zahl, Seiten-Caching, aktuelle PHP-Version, Hosting. Wer das noch nicht gemacht hat, fängt dort an: WordPress langsam. Der Rest dieser Seite setzt darauf auf.

1. Cart-Fragments.

WooCommerce lädt auf jeder Seite ein Skript, das per Ajax den Warenkorb-Status abfragt — damit das Warenkorb-Symbol immer stimmt. Diese Anfrage umgeht das Caching und trifft bei jedem Seitenaufruf PHP und Datenbank. Auf Blog- und Infoseiten ist das reine Verschwendung. Lösung: Fragments nur auf Shop-Seiten laden (per Code oder Optimierungs-Plugin) oder das Warenkorb-Symbol erst bei Interaktion aktualisieren. Das ist oft der größte Einzeleffekt bei Shops mit vielen Nicht-Shop-Seiten.

2. Sessions, Transients, Datenbank.

Jeder Besucher mit Warenkorb bekommt eine Session in der Datenbank; abgelaufene werden per Cron gelöscht — wenn er läuft. Dazu Transients für Produktzähler, Layered Nav und Varianten, die bei vielen Produkten aufblähen. Prüfen: WooCommerce → Status → Werkzeuge → Sessions und Transients löschen, Cron-Status kontrollieren, bei großen Shops den WordPress-Cron durch einen echten Server-Cron ersetzen. Die Tabelle wp_options auf automatisch geladene Optionen prüfen — ein häufiger Bremsklotz.

3. Bestellungen: HPOS und große Tabellen.

Klassisch speichert WooCommerce Bestellungen als Beiträge mit Metadaten — bei zehntausenden Bestellungen wird wp_postmeta riesig und jede Bestellübersicht langsam. HPOS (High-Performance Order Storage) legt Bestellungen in eigenen Tabellen ab und ist deutlich schneller. Aktivierung unter WooCommerce → Einstellungen → Erweitert → Funktionen — vorher prüfen, ob alle Erweiterungen kompatibel sind, und auf Staging testen (WooCommerce-Fehler). Alte Bestellungen archivieren und Datenbank-Indizes für häufige Abfragen ergänzen hilft zusätzlich.

4. Produkte, Varianten, Bilder.

  • Varianten: Ein Produkt mit 300 Variationen lädt alle beim Seitenaufruf; ab etwa 30 schaltet WooCommerce auf Ajax um, bleibt aber schwer. Attribute reduzieren, Varianten zusammenfassen oder einen Konfigurator statt Variationen einsetzen.
  • Attribute und Filter: Layered-Navigation-Filter mit vielen Attributen erzeugen teure Abfragen — Index-Plugins oder eigene Filter mit Zwischenspeicher.
  • Bilder: Shops haben tausende Bilder; Galerie-Zoom, Lightbox und Slider laden viel — nur wo nötig aktivieren, WebP, korrekte Größen, Lazy Loading.
  • Kategorieseiten: 48 Produkte pro Seite mit je fünf Bildgrößen — Anzahl reduzieren, Paginierung statt Endlos-Scroll.

5. Shop-Plugins und Schnittstellen.

Zahlungs-Plugins laden ihre Skripte oft auf jeder Seite statt nur an der Kasse. Versandrechner fragen bei jedem Warenkorb-Update externe APIs ab. Synchronisationen mit Warenwirtschaft laufen im Vordergrund statt im Hintergrund. Analyse- und Marketing-Plugins hängen sich an jede Bestellung. Prüfen: welche Plugins wo laden (Query Monitor), Skripte auf Shop-Seiten beschränken, Synchronisationen in den Hintergrund (Action Scheduler, Server-Cron), Plugins mit eigenen Tabellen auf Wachstum prüfen.

6. Caching richtig für Shops.

Seiten-Caching ist für Produkt- und Kategorieseiten Gold wert — aber Warenkorb, Kasse, Mein Konto und alles mit Sitzungsbezug müssen ausgenommen sein, ebenso Seiten, sobald ein Warenkorb-Cookie gesetzt ist. Die meisten Caching-Plugins erkennen WooCommerce automatisch; prüfen sollte man es trotzdem. Zusätzlich: Objekt-Caching (Redis oder Memcached) entlastet die Datenbank bei angemeldeten Nutzern und an der Kasse — genau dort, wo Seiten-Caching nicht greift. Das ist bei Shops die wichtigste Caching-Ebene.

7. Hosting für Shops.

Ein Shop macht mehr ungecachte Anfragen als jede andere Website: Warenkorb, Kasse, Suche, Filter, Konto. Shared Hosting mit wenigen PHP-Prozessen und ohne Objekt-Cache bricht bei Aktionstagen ein. Für ernsthafte Shops: Hosting mit genügend PHP-Workern, Redis, schneller Datenbank und Staging. Der Wechsel ist ein Umzug mit besonderer Sorgfalt bei Bestelldaten.

Messen: Backend, Frontend, Kasse.

Drei getrennte Messungen: Produktseite als Gast (Seiten-Caching wirkt), Kasse mit gefülltem Warenkorb (kein Caching — hier zählt PHP, Datenbank, Objekt-Cache) und Backend-Bestellübersicht (Datenbankgröße). Query Monitor zeigt pro Seite, welche Plugins und Abfragen Zeit kosten. So wird aus „der Shop ist langsam“ eine konkrete Liste. Umsetzung mit Vorher-nachher-Messung: WordPress-Hilfe, laufend in der Wartung mit Shop-Paket.

Wer hilft.

Ich bin Manuel Killert, WordPress-Entwickler aus Quakenbrück. Seit 2020 baue und betreue ich WordPress-Websites — für Handwerksbetriebe, Industrie, Gastronomie, Start-ups und Vereine —, entwickle eigene Plugins und unterrichte WordPress als Dozent an der KW Design Akademie. Das heißt: Ich kenne die typischen Fehler nicht nur aus Foren, sondern aus eigenen Projekten, und ich kann sie so erklären, dass du sie beim nächsten Mal selbst erkennst. Du erreichst mich direkt, ohne Ticketsystem.

Häufige Fragen

FAQ — WooCommerce langsam.

Warum ist mein WooCommerce-Shop langsamer als eine normale WordPress-Seite?

Shops haben zusätzliche Bremsen: Cart-Fragments, die auf jeder Seite den Warenkorb abfragen und Caching umgehen, Sessions und Transients in der Datenbank, große Bestelltabellen, Produkte mit vielen Varianten, tausende Bilder, Zahlungs- und Versand-Plugins mit Skripten und externen Abfragen sowie viele ungecachte Seiten wie Kasse und Konto.

Was sind Cart-Fragments und sollte ich sie abschalten?

Ein Skript, das per Ajax auf jeder Seite den Warenkorb-Status abfragt, damit das Warenkorb-Symbol aktuell bleibt. Auf Nicht-Shop-Seiten ist das unnötig und belastet Server und Datenbank. Es sollte auf Shop-Seiten beschränkt oder erst bei Interaktion geladen werden.

Was ist HPOS und macht es den Shop schneller?

High-Performance Order Storage speichert Bestellungen in eigenen Datenbanktabellen statt als Beiträge mit Metadaten. Bei vielen Bestellungen wird das Backend dadurch deutlich schneller. Vor der Aktivierung müssen alle Erweiterungen kompatibel sein und ein Test auf Staging erfolgen.

Wie viele Produktvarianten sind zu viele?

Ab etwa 30 Variationen schaltet WooCommerce auf Ajax-Laden um, Produkte mit hunderten Varianten bleiben aber schwer. Attribute reduzieren, Varianten zusammenfassen oder ein Konfigurator statt Variationen sind die Lösungen.

Welches Caching braucht ein WooCommerce-Shop?

Seiten-Caching für Produkt- und Kategorieseiten mit Ausnahmen für Warenkorb, Kasse, Konto und Seiten mit Warenkorb-Cookie, plus Objekt-Caching mit Redis oder Memcached, das die Datenbank bei angemeldeten Nutzern und an der Kasse entlastet.

Welches Hosting brauche ich für einen WooCommerce-Shop?

Ein Hosting mit ausreichend PHP-Prozessen, Objekt-Cache wie Redis, schneller Datenbank und Staging-Funktion. Günstiges Shared Hosting bricht bei vielen ungecachten Anfragen, etwa an Aktionstagen, häufig ein.

Manuel Killert (rechts im Bild) mit einem FreundDas bin ich – rechts im Bild
Kontakt

Erzähl mir von deiner neuen Website.

Beschreib kurz, was du vorhast — du bekommst eine ehrliche Einschätzung zu Umfang, Zeit und Kosten.

Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de