WooCommerce schneller machen: Was im Shop wirklich zählt
Ein WooCommerce-Shop ist kein normaler WordPress-Blog – und genau deshalb greifen viele generische Performance-Tipps zu kurz. Shops haben dynamische, nutzerspezifische Bereiche, die sich nicht einfach statisch cachen lassen. Wer weiß, wo WooCommerce typisch bremst, optimiert gezielt statt mit der Gießkanne. Dieser Beitrag zeigt die shop-spezifischen Bremsen, wie du sie löst – und in welcher Reihenfolge.
Warum ein Shop anders ist als ein Blog
Bei einem Blog kannst du fast jede Seite einmal vorbauen und als fertiges HTML ausliefern. Ein Shop kann das nicht: Warenkorb, Kasse und „Mein Konto” sehen für jeden Besucher anders aus und ändern sich in Echtzeit. Genau diese dynamischen Bereiche sind der Grund, warum ein einfacher Page-Cache im Shop nicht reicht – und warum WooCommerce eigene Optimierungen braucht.
Die WooCommerce-spezifischen Bremsen
1. Cart Fragments (AJAX-Warenkorb)
WooCommerce lädt den Warenkorb-Status per AJAX bei jedem Seitenaufruf nach – auch auf Seiten, die gar keinen Warenkorb zeigen. Jeder dieser Aufrufe geht am Page-Cache vorbei direkt auf den Server. Auf traffic-starken Shops summiert sich das zu spürbarer Last.
Die Lösung ist nicht, das Skript pauschal zu killen (dann aktualisiert sich der Warenkorb-Zähler nicht mehr), sondern es nur dort zu laden, wo ein Warenkorb sichtbar ist:
// In functions.php des Child-Themes oder einem eigenen Plugin
add_action( 'wp_enqueue_scripts', function () {
// Auf Warenkorb, Kasse und Konto aktiv lassen
if ( is_cart() || is_checkout() || is_account_page() ) {
return;
}
wp_dequeue_script( 'wc-cart-fragments' );
}, 99 );
Auf reinen Inhaltsseiten – Blog, Über uns, Kontakt – braucht niemand den Live-Warenkorb. Dort spart das Deaktivieren pro Aufruf einen Server-Request.
2. Nicht cachebare Seiten
Warenkorb, Kasse und „Mein Konto” sind pro Nutzer unterschiedlich und dürfen nicht statisch gecacht werden – sonst sieht Kunde B den Warenkorb von Kunde A. Ein guter Cache schließt diese Seiten deshalb bewusst aus. Damit sie trotzdem schnell bleiben, setzt der Object-Cache an (dazu gleich mehr).
3. Query-Last durch Produkte und Filter
Große Kataloge mit Attributen, Varianten und Filtern erzeugen schwere Datenbankabfragen. Ein Layered-Nav-Filter, der bei jedem Klick den gesamten Katalog neu durchsucht, bringt auch schnelle Server ins Schwitzen. Hier helfen ein sauberer Object-Cache, schlanke Filter-Lösungen und das Vermeiden von Plugins, die auf jeder Seite den gesamten Katalog abfragen.
Object-Cache: der wichtigste Hebel für Shops
Der Object-Cache ist die Zutat, die im Shop den größten Unterschied macht – und die auf günstigem Hosting oft fehlt. Er speichert die Ergebnisse von Datenbankabfragen im Arbeitsspeicher (per Redis oder Memcached), sodass WooCommerce dieselbe Abfrage nicht bei jedem Aufruf neu an die Datenbank schickt. Gerade an den dynamischen Seiten, die kein Page-Cache abfängt, ist das der spürbarste Beschleuniger.
In der Praxis heißt das: Redis auf dem Server installieren (oder ein Hosting wählen, das es mitbringt), das passende Plugin aktivieren und in der wp-config.php verbinden. Viele gute Managed-WordPress-Hoster liefern Redis fertig konfiguriert – ein Kriterium, auf das sich bei der Hosting-Wahl zu achten lohnt. Die Grundlagen zum Zusammenspiel von Page- und Object-Cache haben wir in Caching richtig einrichten beschrieben.
Die Basics, die auch hier gelten
- Server-Caching für alle nicht-dynamischen Seiten (Startseite, Kategorien, Produktseiten ohne personalisierten Inhalt).
- Bilder in WebP oder AVIF, korrekt dimensioniert – Produktbilder sind oft die größten LCP-Treiber im Shop.
- Aufgeräumte Datenbank – Shops sammeln besonders viele Transients und verwaiste Metadaten → Datenbank optimieren.
- Schlanke Plugin-Auswahl – jedes Shop-Plugin, das im Frontend lädt, kostet INP.
Hosting: der Unterbau entscheidet
Kein Optimierungstrick rettet einen Shop auf zu schwachem Hosting. WooCommerce braucht mehr als ein Blog: genug Arbeitsspeicher (PHP memory_limit realistisch 256 MB oder mehr), eine aktuelle PHP-Version, Object-Cache-Unterstützung und eine Datenbank, die auch unter Last antwortet. Billiges Shared Hosting, das sich zehn Nachbarn teilen, ist im Verkauf der falsche Sparposten – die langsame Kasse kostet mehr, als das bessere Hosting im Jahr ausmacht.
Reihenfolge fürs Optimieren
- Felddaten messen – vor allem INP, weil Shops interaktiv sind und hier am ehesten schwächeln.
- Cart Fragments dort deaktivieren, wo kein Warenkorb gebraucht wird.
- Object-Cache für Warenkorb, Kasse und Konto einrichten.
- Server-Caching für statische Shop-Seiten.
- Produktbilder und Datenbank angehen.
- Nach jeder Änderung erneut messen – nicht alles auf einmal umbauen.
Das Ziel sind dieselben Core Web Vitals wie bei jeder WordPress-Seite – nur mit Rücksicht auf die dynamischen Shop-Bereiche.
Dein Shop ist langsam, aber du willst Warenkorb und Checkout nicht riskieren? Schreib uns kurz – wir beschleunigen WooCommerce gezielt, ohne den Kaufprozess zu stören.
Häufige Fragen
Warum ist mein WooCommerce-Shop langsam?
Meistens an drei Stellen: an den Cart-Fragments, die WooCommerce per AJAX auf jeder Seite nachlädt, an den nicht cachebaren Seiten wie Warenkorb und Kasse, und an schweren Datenbankabfragen bei großen Katalogen mit Attributen und Filtern. Dazu kommen die üblichen Verdächtigen jeder WordPress-Seite: zu große Bilder, zu viele Plugins und langsames Hosting.
Was sind Cart Fragments und soll ich sie deaktivieren?
Cart Fragments sind ein AJAX-Skript, das den Warenkorb-Status live aktualisiert – WooCommerce lädt es standardmäßig auf jeder Seite, auch auf Blog oder Kontakt, wo gar kein Warenkorb steht. Auf Seiten ohne Shop-Bezug kannst du es gefahrlos deaktivieren und sparst pro Aufruf einen zusätzlichen Server-Request. Auf Warenkorb-, Kassen- und Kontoseiten sollte es aktiv bleiben.
Welches Caching braucht ein WooCommerce-Shop?
Zwei Ebenen. Einen Page-Cache für alle nicht personalisierten Seiten wie Startseite, Kategorien und Produktseiten. Und einen Object-Cache (Redis oder Memcached) für die dynamischen Seiten – Warenkorb, Kasse, Konto –, die nicht statisch gecacht werden dürfen. Der Object-Cache hält Datenbankabfragen im Arbeitsspeicher und beschleunigt genau die Bereiche, an denen der Page-Cache absichtlich aussetzt.
Wie schnell sollte ein Online-Shop laden?
Als Zielmarke gelten die Core Web Vitals: LCP unter 2,5 Sekunden, INP unter 200 Millisekunden, CLS unter 0,1 – jeweils für echte Besucher, überwiegend auf dem Smartphone. Bei Shops ist der INP der kritischste Wert, weil sie interaktiv sind. Jede zusätzliche Ladesekunde kostet messbar Conversion, deshalb zahlt Tempo im Shop direkt auf den Umsatz ein.
Passende Leistungen
Gründer & Full-Stack-Entwickler
20+ Jahre Erfahrung in der Webentwicklung. Spezialisiert auf Laravel, WordPress und individuelle Software für den Mittelstand.