

Dein WooCommerce-Checkout funktioniert nicht — und jede Minute, in der er kaputt bleibt, verlierst du Bestellungen. Dieser Guide ist die systematische Version dessen, was wir tun, wenn uns ein Kunde mit genau diesem Notfall anruft: ein Diagnose-Baum, der die Ursache in definierter Reihenfolge findet statt zu raten — leere Checkout-Seite, endloser Spinner, toter „Bestellung abschicken"-Button, Bestellungen hängen bei „In Bearbeitung", und das Schlimmste: Bestellungen hören einfach still auf.
Nach über einem Jahrzehnt WooCommerce-Shops können wir sagen, wo die Leichen liegen: ungefähr in dieser Reihenfolge Plugin-Konflikte → Caching → Payment-Gateway → Theme → JavaScript-Fehler → Server. Genau in dieser Reihenfolge gehen wir vor.
Bevor du tief debuggst, drei schnelle Checks, die überraschend viele Fälle sofort lösen:
Shop live und verlierst gerade Umsatz?
Wenn du kürzliche Bestellungen in der Datenbank hast und der Ausfall nach einem Update begann: stelle zuerst das Backup von gestern Nacht wieder her oder rolle das aktualisierte Plugin zurück, debugge danach auf Staging. Umsatz schlägt Root-Cause-Analyse.
| Symptom | Wahrscheinlichste Ursache | Start bei |
|---|---|---|
| Checkout-Seite komplett leer (weißer Bildschirm) | Fataler PHP-Fehler — Plugin oder Theme | Schritt 2 + Debug-Log |
| Endloser Spinner, Checkout lädt nie fertig | Fehlgeschlagene AJAX-Anfrage — Caching oder JS-Fehler | Schritt 3 |
| "Bestellung abschicken"-Button reagiert nicht | JavaScript-Fehler, minifiziertes/kombiniertes JS | Schritt 6 |
| Fehler: "Sitzung abgelaufen" oder "invalid nonce" | Page-Cache liefert veraltete Nonces | Schritt 3 |
| Zahlungsfelder werden nicht angezeigt (kein Kartenformular) | Gateway-Script blockiert oder Keys ungültig | Schritt 4 |
| Bestellungen hängen bei "Zahlung ausstehend" | Webhook/IPN erreicht die Seite nicht | Schritt 4 |
| Checkout funktioniert, aber keine Bestätigungs-E-Mails | wp_mail / SMTP-Fehler | Schritt 7 |
| Bestellungen hören still auf — nirgends Fehler | Eines der obigen, unentdeckt | Prävention |
Debuggen ohne Beweise ist Raten. Fünf Minuten Setup sparen Stunden:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
In unserer Agentur-Erfahrung ist ein Plugin-Konflikt — meist ausgelöst durch ein Update — der häufigste Grund, warum ein WooCommerce-Checkout nicht mehr funktioniert. Die klassische Diagnose ist brutal, aber eindeutig:
Zwei Wege, das zu tun, ohne deinen Live-Shop zu zerstören:
Übliche Verdächtige aus Jahren Incident-Reports: Optimierungs-/Caching-Plugins, Security-Plugins mit aggressiven Firewall-Regeln, Multi-Currency- und B2B/Preis-Plugins, Checkout-Feld-Editoren, Mengenrabatt-Plugins und — ironisch — veraltete Payment-Gateway-Plugins selbst.
Caching-Plugins sind essenziell für Performance — und die häufigste nicht-offensichtliche Ursache für einen kaputten Checkout. Zwei getrennte Fehlermodi:
Warenkorb- und Checkout-Seiten sind pro Kunde dynamisch und dürfen nie page-gecached werden. WooCommerce schützt Checkout-Submissions mit Nonces — Sicherheits-Tokens mit begrenzter Lebensdauer. Wenn ein Page-Cache einen Checkout ausliefert, der Stunden alt ist, ist das eingebettete Nonce abgelaufen, und Kunden bekommen „Sitzung abgelaufen" oder Nonce-Fehler, während alles für dich normal aussieht.
Features wie „JavaScript kombinieren", „JS defer" oder „JS-Ausführung verzögern" brechen routinemäßig Checkout-Scripts und Payment-Gateway-Iframes (Stripe Elements, PayPal-Buttons). Das Symptom ist meist ein Spinner, der nie stoppt, oder Zahlungsfelder, die nie rendern.
Wenn die Checkout-Seite selbst gesund ist, aber Zahlungen scheitern oder Felder nicht erscheinen, ist die Gateway-Schicht verdächtig:
Der schnellste Theme-Test dauert zwei Minuten:
Ein „Bestellung abschicken"-Button, der nichts tut — keine Fehlermeldung, kein Spinner, kein Request — ist ein JavaScript-Fehler, bis das Gegenteil bewiesen ist. Validierung und Absenden des Checkouts sind JS-gesteuert; ein Fatal Error weiter oben auf der Seite stoppt alles darunter.
Uncaught TypeError / $ is not a function deuten auf jQuery-Konflikte; Fehler in minifizierten Bundles wie min.js-Dateien verweisen zurück auf Schritt 3b.?wc-ajax=checkout-Request? Bei 403 Security-Plugin/WAF verdächtigen; bei 500 Debug-Log lesen (Schritt 1); feuert gar kein Request, ist der JS-Fehler oben die Ursache.Wenn oben alles sauber ist, eine Ebene tiefer:
Allowed memory size exhausted im Debug-Log → memory_limit (256M+) im Hosting-Panel erhöhen.wp_mail() ohne SMTP ist unzuverlässig. SMTP-Plugin mit Transaktions-Provider installieren und WooCommerce-E-Mail-Einstellungen prüfen.max_execution_time überschreiten — sichtbar als intermittierende Fehler unter Last.Ein Checkout, der rendert, ist kein Checkout, der funktioniert. Nach jedem Fix den vollen Flow durchlaufen:
4242 4242 4242 4242 abschließen — prüfen: Bestellung erstellt, Lager reduziert, Bestätigungs-E-Mail erhalten, Webhook zugestellt.Das Muster hinter fast jedem Fall in diesem Guide: Der Checkout ist kaputt gegangen, während niemand hinsah. Ein Plugin hat um 3 Uhr morgens auto-updated. Eine Cache-Regel hat sich geändert. Ein API-Key ist abgelaufen. Und WooCommerces Fehlermodus ist Stille — keine Fehler-E-Mail, keine Dashboard-Warnung. Bestellungen hören einfach auf, und der erste Alarm ist eine Kundenbeschwerde oder ein verdächtig ruhiger Verkaufstag.(Wir haben Shops gesehen, die ein ganzes Wochenende Umsatz verloren haben — deshalb bekommt „Bestellungen hören plötzlich auf" einen eigenen Guide.)
ShopMonitor führt rund um die Uhr einen echten Testkauf durch deinen WooCommerce-Checkout aus, verifiziert jeden Schritt visuell mit KI und warnt dich im Moment, in dem etwas bricht — Plugin-Update, Cache-Regel, abgelaufener Key, egal welche Ursache. Jeder Troubleshooting-Schritt in diesem Guide wird einfacher, wenn du genau weißt, wann es kaputt ging.
Starte deine kostenlose 14-Tage-Testphase →Keine Kreditkarte nötig. Einrichtung in 5 Minuten, keine Code-Änderungen.
Die fünf häufigsten Ursachen, nach Wahrscheinlichkeit: ein Plugin-Konflikt (meist nach einem Update), Caching oder JS-Optimierung auf der Checkout-Seite, ein Payment-Gateway-Problem (Keys, Webhooks, SSL), Theme-Inkompatibilität (veraltete Template-Overrides) oder ein JavaScript-Fehler, der Checkout-Scripts blockiert.
Ein weißer Bildschirm ist fast immer ein fataler PHP-Fehler. WP_DEBUG_LOG aktivieren, neu laden und wp-content/debug.log lesen — der Stack Trace nennt meist direkt das verantwortliche Plugin oder Theme.
Das ist in fast jedem Fall ein JavaScript-Fehler. Browser-Konsole (F12) öffnen und nach roten Fehlern suchen — typische Übeltäter sind JS-Minifizierung/Kombination durch ein Caching-Plugin, ein jQuery-Konflikt vom Theme oder ein blockiertes Payment-Gateway-Script.
Der Bestätigungs-Callback des Payment-Gateways (Webhook/IPN) erreicht deine Seite nicht. Prüfe das Delivery-Log im Stripe- oder PayPal-Dashboard und stelle sicher, dass kein Security-Plugin oder Server-Firewall die Callback-URL blockiert. Bestellungen bei „In Bearbeitung" sind anders — dieser Status bedeutet, die Zahlung war erfolgreich.
Nutze den Testmodus deines Gateways mit richtigen Testkartennummern: ein erfolgreicher Kauf, eine Ablehnung, ein 3D-Secure-Lauf — jedes Mal Bestellung, Lager, E-Mails und Webhooks prüfen. Dann nach jedem zukünftigen Update wiederholen, denn dann brechen Checkouts.
Weil du als eingeloggter Admin testest, was Page-Caches umgeht und sich anders verhält. Immer ausgeloggt, in einem Inkognito-Fenster testen, idealerweise auf einem anderen Gerät — das ist die Version deines Shops, die Kunden wirklich sehen.

Über den Autor
Verfasst vom Winning Solutions-Team — der Agentur hinter ShopMonitor. ShopMonitor wurde von Gründern gebaut, die seit über einem Jahrzehnt WooCommerce-Shops betreiben. Jeder Schritt in diesem Diagnose-Baum stammt aus echten Kunden-Notfällen — und ShopMonitor ist das Tool, das wir gebaut haben, damit der Notruf vom Roboter kommt, nicht vom Kunden.