A broken checkout is the worst bug a webshop can have: the customer did everything right, wanted to pay you, and the store said no. Before you start disabling things at random โ€” the panic move that creates second and third bugs โ€” run this diagnosis. Ten minutes of checking beats two hours of guessing.

Minute 0โ€“2: Reproduce it like a customer

Open your store in a private/incognito window, on your phone if you can. Add a product, go to checkout, and go as far as the payment step. Write down exactly where it fails and what it says: a spinning loader forever, a red error, a blank page, a payment that declines? Also note whether you are logged in โ€” many checkout bugs only appear for guests, or only for logged-in customers, and shop owners test while logged in as admin, which hides half of all problems.

Minute 2โ€“4: Check for the update that changed everything

Checkout bugs very often start right after an update โ€” WordPress, WooCommerce, your theme, or a plugin. In your dashboard, check what updated recently and whether the problem began around the same time. Also visit WooCommerce โ†’ Status: red warnings there (outdated templates are the classic) point straight at trouble. If your theme overrides WooCommerce template files and those overrides are from an old WooCommerce version, that is a prime suspect.

Minute 4โ€“6: The plugin conflict test โ€” safely

The most common cause of a suddenly broken checkout is a plugin conflict: two plugins, or a plugin and your theme, fighting over the checkout page. Never test this by disabling plugins on your live store during selling hours. Use a staging copy if your host offers one-click staging (many do). On staging, switch to a default theme like Storefront and disable plugins except WooCommerce and your payment gateway. If checkout works there, re-enable things in small groups until it breaks again โ€” the last group contains your culprit.

Minute 6โ€“8: Interrogate the payment gateway

If the checkout page itself works but payments fail, the problem is usually at the gateway: expired API keys, a gateway still in test/sandbox mode, or a webhook that stopped working. Log into your payment provider's dashboard and check three things: are you in live mode, are the keys in WooCommerce settings current, and are there failed transactions with error messages? Gateway error codes are blunt but honest โ€” they usually tell you exactly what is wrong.

Two quiet killers worth 30 seconds

  • Expired SSL certificate โ€” browsers block or warn on the checkout page, and some gateways refuse to process. Check your site shows the padlock with no warnings.
  • AJAX errors at checkout โ€” if the order review spins forever when you change country or shipping, open your browser console (F12) and look for red errors; the file names in them often name the guilty plugin directly.

Minute 8โ€“10: Check the logs, then decide

WooCommerce keeps logs under WooCommerce โ†’ Status โ†’ Logs. A 'fatal errors' log with a fresh entry, timestamped when checkout failed, is gold: it names the file and line that broke. With the reproduction steps, the timing, and a log entry, you now know whether you are looking at a plugin conflict, an outdated template, a gateway problem or a hosting issue โ€” and each has a different fix.

One last rule: take a backup before you fix anything, and change one thing at a time. The stores that stay broken for days are almost always the ones where five things were changed at once and nobody knows which one mattered.