Dein WooCommerce-Checkout funktioniert nicht. Jede Minute ohne funktionierende Kasse kann Bestellungen kosten. Dieser Guide folgt einem klaren Diagnosebaum statt dem Bauchgefühl: leere Checkout-Seite, endloser Spinner, ein Button ohne Reaktion, festhängende Bestellungen oder das besonders tückische Problem, dass Bestellungen einfach ausbleiben.
Nach mehr als einem Jahrzehnt mit WooCommerce-Shops kennen wir die üblichen Ursachen. Meist beginnt es mit Plugin-Konflikten, dann folgen Caching, Zahlungs-Gateways, Themes, JavaScript-Fehler und zuletzt der Server. Genau diese Reihenfolge arbeiten wir jetzt ab.
Notfall-Triage: die ersten 5 Minuten
Bevor du tiefer einsteigst, prüfe diese drei Punkte. Sie lösen überraschend viele Fälle sofort:
1
Leere jeden Cache: das Caching-Plugin wie WP Rocket, LiteSpeed oder W3TC, den Server-Cache im Hosting-Panel und bei Bedarf Cloudflare. Teste danach in einem privaten Fenster. Läuft der Checkout wieder, liegt die Ursache beim Caching. Weiter geht es mit Schritt 3.
2
Prüfe die letzten Änderungen. Wurden in den vergangenen 24 bis 48 Stunden WooCommerce, ein Plugin oder das Theme aktualisiert, auch automatisch? Sieh unter Dashboard → Updates und im Aktivitätsprotokoll deines Hosters nach. Lief der Checkout gestern und heute nicht mehr, hat meist genau eine dieser Änderungen den Ausfall ausgelöst.
3
Öffne WooCommerce → Status. Gibt es rote Warnungen, eine veraltete Datenbank oder alte Template-Overrides? Mach einen Screenshot. Er hilft dir bei der weiteren Fehlersuche.
Ist dein Shop live und verlierst du gerade Umsatz?
Sind noch aktuelle Bestellungen in der Datenbank und begann der Ausfall nach einem Update? Stelle zuerst das Backup der vergangenen Nacht wieder her oder setze das aktualisierte Plugin zurück. Die Ursachenanalyse gehört danach auf eine Staging-Umgebung. Umsatz geht vor.
Symptom-Index: direkt zum passenden Problem
Symptom
Wahrscheinlichste Ursache
Start bei
Checkout-Seite ist komplett leer (weißer Bildschirm)
Ohne Hinweise ist Debugging nur Raten. Fünf Minuten Vorbereitung sparen später Stunden:
Reproduziere den Fehler ausgeloggt im Inkognito-Modus, am besten auf einem zweiten Gerät und in einem anderen Netzwerk. Admin-Sitzungen umgehen Caches und können Probleme verdecken. Viele scheinbar defekte Checkouts funktionieren nur für den Shopbetreiber.
Öffne vor dem Laden des Checkouts die Browser-Konsole mit F12 → Console und den Netzwerk-Tab. Rote Fehlermeldungen in der Konsole und fehlgeschlagene Netzwerkanfragen sind deine besten Spuren.
Aktiviere das WordPress-Debug-Protokoll in wp-config.php:
Lade den Checkout neu und lies danach das Debug-Protokoll:
wp-content/debug.log
Bei einer weißen Seite steht dort oft der fatale Fehler samt Plugin-Pfad im Stack-Trace. Das kann die Ursache direkt benennen.
Prüfe auch WooCommerce → Status → Logs. Das Protokoll für fatale Fehler und das Log deines Zahlungs-Gateways, etwa Stripe, enthalten die Antwort oft bereits im Klartext.
Schritt 2: Plugin-Konflikte, die häufigste Ursache
In unserer Agenturpraxis ist ein Plugin-Konflikt meist nach einem Update der häufigste Grund für einen defekten WooCommerce-Checkout. Der klassische Test ist radikal, liefert aber ein eindeutiges Ergebnis:
Der Deaktivierungstest, möglichst auf Staging
1
Deaktiviere alle Plugins außer WooCommerce und dem Plugin für dein Zahlungs-Gateway.
2
Teste den Checkout. Funktioniert er wieder, liegt die Ursache bei einem Plugin.
3
Aktiviere die Plugins einzeln wieder. Bei vielen Plugins kannst du sie zunächst halbieren und so schneller eingrenzen. Teste nach jeder Aktivierung den Checkout.
4
Das Plugin, nach dessen Aktivierung der Fehler zurückkehrt, ist der Auslöser. Setze es auf die vorherige Version zurück, prüfe Changelog und Support-Forum und melde den Konflikt.
So testest du, ohne deinen Live-Shop zu gefährden:
1
Das Plugin Health Check & Troubleshooting deaktiviert Erweiterungen nur für deine Sitzung. Echte Kunden sehen währenddessen weiterhin den normalen Shop.
2
Eine Staging-Umgebung: Viele Hoster bieten sie mit einem Klick an. Dort gehört der Deaktivierungstest hin. Auch künftige Updates solltest du vor dem Livegang zuerst dort prüfen.
Häufige Auslöser aus vielen Störfällen sind Optimierungs- und Caching-Plugins, Sicherheits-Plugins mit strengen Firewall-Regeln, Erweiterungen für mehrere Währungen, B2B-Preise, Checkout-Felder oder Mengenrabatte. Auch ein veraltetes Plugin für das Zahlungs-Gateway kann selbst der Auslöser sein.
Schritt 3: Caching und Optimierung
Caching-Plugins sind sinnvoll für die Leistung. Gleichzeitig gehören sie zu den häufigsten versteckten Ursachen für einen defekten Checkout. Es gibt zwei typische Fehlerbilder:
3a. Page-Caching für Warenkorb und Checkout
Warenkorb und Checkout sind für jeden Kunden individuell und dürfen nie als fertige Seite aus dem Cache kommen. WooCommerce schützt das Absenden mit Nonces, also zeitlich begrenzten Sicherheits-Tokens. Liefert ein Cache eine Stunden alte Checkout-Seite, ist der eingebettete Nonce abgelaufen. Kunden sehen dann „Sitzung abgelaufen“ oder einen Nonce-Fehler, während bei dir alles normal wirkt.
Prüfe, ob dein Caching-Plugin /cart, /checkout und /my-account ausschließt. WP Rocket und LiteSpeed erledigen das in Standard-Setups meist automatisch. Eigene Checkout-URLs, Übersetzungen wie /kasse/ oder Checkout-Landingpages können aber durchs Raster fallen.
Nutzt du Cloudflare APO oder Regeln wie „Cache Everything“? Dann müssen WooCommerce-Cookies wie woocommerce_cart_hash und die Session-Cookies den Cache umgehen.
Mehr Details findest du in unserem Guide dazu, wie Caching WooCommerce-Checkouts beeinträchtigt, und im Begleitartikel zu „invalid nonce“-Fehlern.
3b. JavaScript- und CSS-Optimierung
Optionen wie „JavaScript kombinieren“, „JS defer“ oder „JS-Ausführung verzögern“ können Checkout-Skripte und iFrames von Zahlungs-Gateways wie Stripe Elements oder PayPal stören. Typisch sind ein Spinner, der nicht endet, oder Zahlungsfelder, die gar nicht erscheinen.
1
Deaktiviere vorübergehend alle JavaScript-Optimierungen und teste den Checkout erneut.
2
Funktioniert er dann, aktiviere die Optionen einzeln wieder. Nimm Checkout-Skripte und Gateway-Domains wie js.stripe.com in die Ausschlussliste auf.
Schritt 4: Probleme mit dem Zahlungs-Gateway
Lädt die Checkout-Seite, doch Zahlungen scheitern oder Felder fehlen? Dann liegt die Ursache oft beim Zahlungs-Gateway:
API-Keys: abgelaufen, widerrufen oder der Klassiker: Test-Keys auf der Live-Site (oder Live-Keys auf Staging). Gateway im Plugin neu verbinden. Zum Testen die richtigen Stripe-Testkarten im Testmodus verwenden, nie echte Karten.
Webhooks: Hängen Bestellungen bei „Zahlung ausstehend“, erreicht die Zahlungsbestätigung des Gateways, etwa ein Stripe-Webhook oder PayPal-IPN, deine Website oft nicht. Prüfe das Zustellprotokoll im Stripe- oder PayPal-Dashboard auf fehlgeschlagene Versuche. Kontrolliere außerdem, ob ein Sicherheits-Plugin oder die Server-Firewall die Callback-URL blockiert.
SSL: Zahlungs-Gateways benötigen gültiges HTTPS. Ein abgelaufenes Zertifikat oder Mixed-Content-Warnungen können Zahlungsfelder unbemerkt blockieren.
3D Secure: Ob eine Zahlung scheitert, hängt vom Zahlungsanbieter, deiner Integration und dem Authentifizierungsablauf ab. Teste den SCA-Ablauf deshalb mit den betroffenen Zahlungsmethoden.
Status des Gateways: Schließe zuerst eine Störung auf der Statusseite des Anbieters aus. Das ist selten, kommt aber vor und lässt sich nicht auf deiner Website beheben.
Schritt 5: Probleme mit Theme und Templates
Der schnellste Theme-Test dauert zwei Minuten:
1
Wechsle zu Storefront oder einem Standard-Theme wie Twenty Twenty-Four. Nutze dafür Staging, ein kurzes Wartungsfenster oder den Sitzungsmodus des Health-Check-Plugins.
2
Funktioniert der Checkout mit dem Standard-Theme, liegt die Ursache im bisherigen Theme.
Veraltete WooCommerce-Template-Overrides. Themes überschreiben mitunter Checkout-Templates unter yourtheme/woocommerce/checkout/…. Ändert WooCommerce seine Template-Struktur, können diese Kopien brechen. WooCommerce → Status → Templates zeigt alle Overrides und markiert veraltete. Das ist deine Arbeitsliste.
Mitgelieferte oder veraltete jQuery- und JavaScript-Bibliotheken können mit Checkout-Skripten kollidieren. Dann weiter mit Schritt 6.
Checkout-Block oder klassischer Shortcode: Seit WooCommerce 8.3 nutzen neue Installationen den Checkout-Block. Viele Plugins und Themes unterstützen den klassischen [woocommerce_checkout]-Shortcode aber besser. Brachte ein Redesign oder WooCommerce-Update den Fehler, teste auf einer Entwurfsseite den anderen Checkout-Typ. Funktioniert dieser, hast du eine Kompatibilitätslücke gefunden.
Schritt 6: JavaScript-Fehler, wenn der Button nicht reagiert
Reagiert „Bestellung abschicken“ nicht, erscheint weder Fehler noch Spinner und startet keine Anfrage? Dann spricht fast alles für einen JavaScript-Fehler. Validierung und Absenden laufen über JavaScript. Ein fataler Fehler weiter oben auf der Seite kann alles darunter stoppen.
1
Öffne DevTools → Console mit F12, lade den Checkout neu und klicke auf „Bestellung abschicken“.
2
Rote Fehler? Lies den Dateipfad im Fehler. Er nennt das verantwortliche Plugin oder Theme. Uncaught TypeError / $ is not a function deuten auf jQuery-Konflikte; Fehler in minifizierten Bundles wie min.js-Dateien verweisen zurück auf Schritt 3b.
3
Prüfe im Netzwerk-Tab, ob der Klick eine Anfrage an ?wc-ajax=checkout auslöst. Bei 403 sind ein Sicherheits-Plugin oder eine WAF mögliche Ursachen. Bei 500 lies das Debug-Protokoll aus Schritt 1. Startet keine Anfrage, ist wahrscheinlich ein JavaScript-Fehler die Ursache.
4
Teste auch ohne Browser-Erweiterungen. Werbeblocker können Skripte von Zahlungs-Gateways blockieren. Das ist besonders relevant, wenn nur einzelne Kunden das Problem melden.
Schritt 7: Serverseitige Ursachen
Ist oben alles unauffällig, geht es eine Ebene tiefer:
PHP-Speicher und fatale Fehler: Meldet das Debug-Protokoll Allowed memory size exhausted, prüfe zuerst die Hosting-Limits und passe memory_limit nur an, wenn verfügbare Ressourcen und die Vorgaben deines Hosters das zulassen.
ModSecurity- und WAF-Regeln: Server-Firewalls blockieren Checkout-POST-Anfragen manchmal als „verdächtig“. Das zeigt sich als unerklärlicher 403 im Network-Tab. Dein Hoster kann die Regel prüfen und freigeben.
PHP-Versionswechsel: Nach einem PHP-Upgrade können ältere Plugins gerade im Checkout fatale Fehler auslösen. Das Debug-Protokoll nennt die betroffene Erweiterung.
E-Mails kommen nicht an (Bestellungen OK, Bestätigungen fehlen): wp_mail() ohne SMTP ist unzuverlässig. SMTP-Plugin mit Transaktions-Provider installieren und WooCommerce-E-Mail-Einstellungen prüfen.
Timeouts: langsame externe Calls während des Checkouts können max_execution_time überschreiten. Das zeigt sich als intermittierende Fehler unter Last.
Die Lösung richtig prüfen, nicht nur die Seite laden
Ein gerenderter Checkout ist noch kein funktionierender Checkout. Prüfe nach jeder Änderung den gesamten Ablauf:
1
Aktiviere den Testmodus des Zahlungs-Gateways oder nutze Staging.
2
Kauf mit Stripe-Testkarte4242 4242 4242 4242 abschließen. Prüfe: Bestellung erstellt, Lagerreduzierung bei aktiver Bestandsverwaltung, Zustellung der Transaktions-E-Mail und Webhook.
3
Führe einen Ablehnungstest durch. Kunden müssen eine klare Fehlermeldung sehen. Teste außerdem 3D Secure: Das Authentifizierungsfenster muss sich öffnen und der Ablauf muss abschließen.
4
Wiederhole den Test ausgeloggt, im Inkognito-Modus und mit gefülltem Cache. Das entspricht den Bedingungen echter Kunden.
Prävention: nie vom Kunden erfahren
Fast jeder Fall in diesem Guide folgt demselben Muster: Der Checkout fällt aus, während niemand hinsieht. Ein Plugin aktualisiert sich nachts. Eine Cache-Regel ändert sich. Ein API-Schlüssel läuft ab. WooCommerce bleibt dabei oft still. Es gibt weder eine Fehlermeldung noch einen Warnhinweis im Dashboard. Bestellungen bleiben aus und der erste Alarm kommt als Kundenbeschwerde oder ungewöhnlich ruhiger Verkaufstag. (Ein Shop kann so ein ganzes Wochenende Umsatz verlieren. Darum hat „Bestellungen bleiben plötzlich aus“ einen eigenen Guide.)
1
Aktualisiere zuerst auf Staging. Dort läuft jedes Plugin-, Theme- und WooCommerce-Update. Teste den Checkout und erst danach geht die Änderung live. Auch kleine Updates können ihn brechen.
2
Nach jeder Änderung den vollen Flow aus dem Abschnitt oben, kein bloßer Seiten-Load-Blick.
3
Automatisiere die Prüfung. Niemand testet seinen Checkout jede Stunde, nachts und am Wochenende von Hand. Diese Routine gehört in einen automatisierten Test.
Automatisch Bescheid wissen, bevor Kunden sich melden
ShopMonitor führt regelmäßig einen echten Testkauf durch deinen WooCommerce-Checkout aus und prüft den Checkout- und Thank-you-Pfad. Künftig prüft ShopMonitor auch die Zustellung der Transaktions-E-Mail und warnt dich, sobald etwas scheitert. Ob Plugin-Update, Cache-Regel oder abgelaufener Schlüssel: Die Fehlersuche wird leichter, wenn du weißt, wann der Fehler begonnen hat.
Keine Kreditkarte nötig. Einrichtung in fünf Minuten, keine Code-Änderungen.
Die fünf häufigsten Ursachen sind ein Plugin-Konflikt, meist nach einem Update, Caching oder JavaScript-Optimierung auf der Checkout-Seite, ein Problem beim Zahlungs-Gateway mit Schlüsseln, Webhooks oder SSL, ein inkompatibles Theme mit veralteten Template-Overrides oder ein JavaScript-Fehler, der Checkout-Skripte blockiert.
Ein weißer Bildschirm weist fast immer auf einen fatalen PHP-Fehler hin. Aktiviere WP_DEBUG_LOG, lade die Seite neu und lies das Debug-Protokoll unten.
wp-content/debug.log
Der Stack-Trace nennt meist direkt das verantwortliche Plugin oder Theme.
Fast immer steckt ein JavaScript-Fehler dahinter. Öffne die Browser-Konsole mit F12 und suche nach roten Fehlermeldungen. Typische Ursachen sind JavaScript-Minimierung oder Bündelung durch ein Caching-Plugin, ein jQuery-Konflikt im Theme oder ein blockiertes Skript des Zahlungs-Gateways.
Die Bestätigung des Zahlungs-Gateways per Webhook oder IPN erreicht deine Website nicht. Prüfe das Zustellprotokoll im Stripe- oder PayPal-Dashboard und stelle sicher, dass kein Sicherheits-Plugin oder keine Server-Firewall die Callback-URL blockiert. „In Bearbeitung“ bedeutet dagegen, dass die Zahlung erfolgreich war.
Nutze den Testmodus des Gateways mit passenden Testkartennummern. Führe einen erfolgreichen Kauf, eine Ablehnung und einen 3D-Secure-Test aus. Prüfe jeweils Bestellung, Lagerreduzierung bei aktiver Bestandsverwaltung, Zustellung der Transaktions-E-Mail und Webhook. Wiederhole das nach jedem Update.
Als eingeloggter Admin umgehst du Page-Caches und siehst deshalb mitunter eine andere Version des Shops. Teste immer ausgeloggt im Inkognito-Modus, idealerweise auf einem zweiten Gerät. Das ist die Ansicht, die Kunden tatsächlich nutzen.
Über den Autor
Verfasst vom Winning Solutions-Team, der Agentur hinter ShopMonitor. ShopMonitor wurde von Gründern entwickelt, die seit mehr als einem Jahrzehnt WooCommerce-Shops aufbauen und betreuen. Jeder Schritt in diesem Diagnosebaum stammt aus echten Kundenfällen. ShopMonitor sorgt dafür, dass ein automatisierter Test den Fehler meldet, bevor es ein Kunde tun muss.
WooCommerce-Checkout funktioniert nicht: Der komplette Troubleshooting-Guide (2026) | ShopMonitor