There's nothing worse than a broken WooCommerce checkout. Every minute it's down, you're losing sales. Before you start making random changes, here's a systematic approach to diagnosing and fixing the most common causes.
The Most Common Causes of WooCommerce Checkout Failures
In over 22 years of WordPress and WooCommerce development, I've seen checkout failures caused by the same handful of things, over and over. Start with these before anything else:
- Plugin conflicts — a recently updated or newly installed plugin is conflicting with WooCommerce
- Payment gateway misconfiguration — Stripe, PayPal, or Square API keys changed or expired
- SSL certificate issues — mixed content errors blocking the secure checkout page
- Theme conflicts — a theme update broke WooCommerce template files
- PHP version incompatibility — your host updated PHP and a plugin isn't compatible
- Caching problems — an aggressive cache is serving a broken version of checkout
Step 1: Check WooCommerce System Status
Go to WooCommerce → Status → System Status. Look for any items shown in red. This is WooCommerce's own diagnostic page and will surface the most obvious problems immediately — PHP version mismatches, missing WordPress requirements, outdated templates.
Also check WooCommerce → Status → Logs. Filter by "fatal" or "error." These logs often name the exact plugin or function causing the problem.
Step 2: Test with Storefront Theme and All Plugins Disabled
The classic diagnostic. Switch to the default Storefront theme temporarily and disable all plugins except WooCommerce and WooCommerce Payments (or your payment gateway). Then try a test checkout.
If checkout works now, the problem is your theme or a plugin. Re-enable plugins one at a time, testing after each one, until checkout breaks again. That last plugin you enabled is your culprit.
This process takes 15–30 minutes but is definitive. Don't skip it.
Step 3: Check Your Payment Gateway Configuration
Go to WooCommerce → Settings → Payments and open your active gateway. Common issues:
- Stripe: API keys may have been regenerated in your Stripe dashboard. Check that the keys in WooCommerce match your current Stripe dashboard keys.
- PayPal: IPN (Instant Payment Notification) URLs may have changed. Check your PayPal account's IPN history for failed notifications.
- Square: OAuth tokens expire. You may need to re-authorize the Square connection.
Test with the gateway in sandbox/test mode using test card numbers to isolate gateway issues from everything else.
Step 4: Check for SSL and Mixed Content Issues
WooCommerce checkout requires HTTPS. If your SSL certificate has expired, lapsed, or if your site has mixed content (HTTP resources loaded on an HTTPS page), checkout will fail or display a security warning.
Open Chrome DevTools (F12) → Console when you're on the checkout page. Look for "mixed content" warnings. These indicate HTTP resources that need to be updated to HTTPS.
Also verify your SSL certificate is valid at sslshopper.com. An expired cert will silently break checkout for all visitors.
Step 5: Clear All Caches
Before and after any fix, clear all caches: your caching plugin (WP Rocket, W3 Total Cache, etc.), your server-level cache if your host provides one (Cloudflare, Kinsta, WP Engine), and your browser cache.
Caching can serve a broken version of checkout even after you've fixed the underlying issue. Always clear cache as the last step before testing.
Step 6: Check the WooCommerce Checkout Page
Go to WooCommerce → Settings → Advanced and verify that your checkout page is correctly set. Sometimes a plugin or migration can wipe these page assignments. The checkout page should exist and contain the [woocommerce_checkout] shortcode (or the WooCommerce Checkout block in newer versions).
When to Call a Developer
Some checkout problems go deeper than these steps can reach — custom payment gateway integrations, conflicts in custom theme code, server configuration issues, or database corruption. If you've worked through this list and checkout is still broken, the fastest path to a fix is professional diagnosis.
Frequently Asked Questions
Why does WooCommerce checkout work in an incognito window but not normally?
This usually indicates a caching issue or a browser extension conflict. Try clearing your browser cache first. If that doesn't help, test in a different browser entirely.
WooCommerce says "An error occurred" but doesn't say what. How do I find the real error?
Enable WooCommerce logging: WooCommerce → Settings → Advanced → Enable logging. Then reproduce the error and check the logs at WooCommerce → Status → Logs. The real error will be in there.
Checkout worked yesterday. Nothing changed. Why is it broken now?
Something changed — even if you didn't do it. WordPress, WooCommerce, or a plugin may have auto-updated. Check your plugin update history (under Dashboard → Updates) for anything that updated in the past 24–48 hours.
Can a checkout failure cause me to lose orders?
Yes. If checkout fails after a customer enters payment details but before the order is created, that order is lost. Always test checkout after fixing to verify orders are being created correctly.