Why customers abandon your checkout — and how to stop it
Customers adding to basket but not buying? Here's why WooCommerce checkouts lose sales — friction and faults — plus a monthly self-test to catch it.
Mel
Senior engineer, TechSpike
You can see it in the numbers. People are visiting the shop, they’re adding things to their basket, and then… nothing. The sale doesn’t land. If your reports show plenty of “added to cart” activity but far fewer completed orders, you’re watching customers walk away at the very last step — the checkout.
This is one of the most frustrating problems to have, because these aren’t cold browsers who wandered in by accident. They wanted your product. They got their card out, near enough. And something stopped them. The good news is that “something” is usually identifiable, and often fixable without a full rebuild. Let me walk you through what’s really going on and how to work out which version of the problem you’ve got.
Two very different reasons people abandon
Checkout abandonment comes in two families, and it matters which one you’re dealing with, because the fixes are completely different.
The first family is friction. The checkout works perfectly well — it’s just annoying, slow, or off-putting enough that people give up. Nothing is broken; the shop is quietly talking customers out of buying.
The second family is faults. Something is actually broken. The customer clicks “Pay” and gets an error, or the address field won’t accept their postcode, or the page throws a security warning. They physically cannot complete the purchase even if they want to.
Most owners assume they have a friction problem when they actually have a fault, or the other way round. So before you change anything, you need to find out which it is — and the way to do that is to buy something from your own shop. More on that shortly.
Friction: the shop that talks people out of buying
Friction is death by a thousand small irritations. Any one of these on its own might be survivable. Stacked together, they send people away.
Surprise costs at the last second. This is the big one. A customer has decided they’ll pay £24 for something, they get to the final screen, and suddenly it’s £24 plus £5.95 postage plus a bit of tax they didn’t expect. It doesn’t matter that the total is fair — it feels like a bait-and-switch, and people bail out of principle. Costs that appear late feel like a trick even when they aren’t.
Being forced to create an account. If someone has to invent a password and confirm an email address just to hand you money, a good number simply won’t. They’re buying a candle, not joining a club.
Too many fields and too many steps. Every extra box is another small reason to give up. Do you really need their phone number? A second address line they’ll leave blank? A “how did you hear about us?” dropdown? Each field costs you a few customers.
A checkout that’s painful on a phone. Most of your customers are on a mobile, often one-handed, often with a toddler on the other arm. If the fields are tiny, the buttons are fiddly, or the keyboard covers the “Continue” button, they’ll put the phone down and mean to come back later. They rarely do.
A slow checkout. If the page hangs after they click “Pay”, people assume it’s failed and either give up or, worse, try again and worry they’ve been charged twice. Slowness anywhere on the site hurts, and I’ve written separately about why your website might be slow — but slowness at checkout is especially expensive.
Faults: the shop that was “fine” and then wasn’t
The second family is genuine breakage, and it has a very particular signature. The owner will tell me the shop was working perfectly, nobody touched anything, and then orders just stopped. “It broke out of nowhere.”
It almost never breaks out of nowhere. Here’s the pattern in plain English.
Your WooCommerce shop isn’t one single piece of software. It’s WooCommerce itself, plus a collection of add-ons (plugins) — one for your payment provider, maybe one for postage rates, one for tax, one for the checkout layout, and so on. All of these get updated regularly by the people who make them, usually for good reasons like security and bug fixes.
The trouble is that these updates don’t all get tested together. An update to your payment plugin can quietly clash with your postage plugin, or a WooCommerce update can change something a smaller add-on was relying on. When that happens, the checkout can break without any obvious warning. The front page looks fine. The product pages look fine. It’s only at the final step — the one you don’t visit every day — that it falls over.
Common faults I see:
- Payment gateway errors — the customer clicks “Pay” and gets a cryptic message, or is bounced back to the basket with no explanation.
- Broken address or postcode validation — the form refuses to accept a perfectly valid address, so the customer literally cannot proceed.
- A security warning — the browser shows a “Not secure” message or a padlock warning around the payment step, which understandably scares people off. This usually points to an SSL certificate that’s lapsed or is misconfigured.
- The final button doing nothing — the customer clicks and the page just sits there.
This is why I’m cautious about updates. Keeping software up to date is essential for security, but updates should be applied carefully and checked afterwards — ideally on a copy of the site first — not clicked through in a hurry and forgotten. A “quick update” on a Friday afternoon is how a lot of shops end up losing a weekend of sales without realising.
Do this now: buy from your own shop, on your phone
Here’s the single most useful thing you can do, and most owners have genuinely never done it: buy one of your own products. Not test mode, not a preview — a real purchase you then refund to yourself.
Do it properly:
- Use your phone, not your computer. That’s where most of your customers are.
- Open the shop in a private/incognito window, or log out completely. You must go through it as an ordinary guest, not as the logged-in admin — the admin often sees a different, smoother version and misses the problems real customers hit.
- Pick a real product and actually go all the way through, entering a real card and completing payment.
- Then refund yourself from your dashboard. (It costs you nothing but a moment.)
As you go, watch for these things:
- When do the postage and total appear? If you don’t see the full price until the very last screen, that’s friction you can fix.
- How many fields must you fill in? Count them. Could half of them go?
- Can you do it one-handed? Are the buttons easy to tap? Does the keyboard get in the way?
- Does the payment actually go through — cleanly, first time, with a clear “thank you” or confirmation email afterwards?
Put a reminder in your calendar to do this once a month, and again after any big round of updates. Ten minutes of your time tells you more than any amount of guessing. It pairs well with the 10-minute website self-audit if you want a broader monthly check.
Quick wins you can do yourself
If your self-test turns up friction, several fixes are within reach without touching code:
- Turn on guest checkout. In WooCommerce this is a simple setting — allow customers to buy without creating an account.
- Show costs earlier. Make postage and totals visible in the basket, not just at the final step. Being upfront about postage removes the nasty surprise.
- Cut fields you don’t need. Remove optional boxes. Ask for the phone number only if you genuinely use it.
- Remove a plugin you don’t need. If a checkout add-on is causing problems and isn’t earning its keep, taking it out (carefully, having noted what it did) can be the fix.
Make one change at a time, then run the self-test again so you know whether it actually helped.
When to get help
Some things are genuinely engineer’s work, and trying to fix them by trial and error can make matters worse — especially on a live shop taking orders.
Get help when:
- Payment is failing or throwing errors and you can’t see an obvious cause. Payment problems are the ones costing you money right now, so don’t sit on them.
- You suspect a plugin or update conflict — the shop broke after an update and you don’t know which change caused it. Diagnosing which two plugins are clashing, and doing it safely on a copy of the site, is fiddly and methodical work.
- There’s a security or SSL warning at checkout.
- You’ve tried the quick wins and the sales still aren’t landing, which usually means the real cause is deeper than the settings.
This is the sort of thing I do day to day — untangling WooCommerce and plugin conflicts and getting checkouts working properly again. If you’d like a second pair of eyes before committing to anything, the Free Site Check is a no-obligation look at what’s going on.
What it costs to leave it
It’s tempting to file a dodgy checkout under “I’ll sort it later”, because it isn’t loud — nothing crashes, no one emails to complain. But that’s exactly what makes it dangerous.
Every abandoned checkout is a person who wanted to give you money and couldn’t, or couldn’t be bothered to fight through the process. They don’t ring up to tell you. They just quietly go elsewhere, and you never see the sale that didn’t happen. It’s the most invisible kind of lost revenue there is.
The fix usually isn’t dramatic. More often than not it’s a lapsed setting, a surprise postage charge, or one plugin quietly arguing with another. Buy from your own shop this month, watch what your customers are really experiencing, and you’ll almost certainly spot the first thing to put right.