In short
A checkout converts when there are no surprises. Show the full cost including shipping and tax as early as possible, never force account creation, ask only for what is needed to complete the order, and make it obvious how many steps remain. Unexpected costs revealed late are the most common single reason people abandon a purchase.
Abandonment is usually a surprise, not a change of mind
Someone who reached checkout already decided to buy. When they leave, something got in the way.
The recurring causes are consistent across research and across the sites we have worked on: unexpected costs appearing late, being forced to create an account, a process that felt too long, not trusting the site with card details, and not being able to see the total before committing.
Every one of those is a design decision, which is the encouraging part.
Show the full cost early
The biggest single cause of abandonment is a total that changes at the final step.
Someone adds an item at €40, reaches the last screen, and the total is €58 because of shipping and tax. That is not a pricing objection — it is a trust problem. They now suspect there may be more.
Show shipping and tax as early as you can. If shipping depends on address, show a range or the most common option up front, then refine. "From €4.90" set an expectation; €9.90 appearing at step four breaks one.
If you offer free shipping above a threshold, say so where it can still change behaviour — in the cart, not after the address form.
Do not force account creation
Requiring an account before purchase is consistently among the top reasons people abandon, and the reasoning is straightforward: they came to buy something, not to join something.
Offer guest checkout, prominently. Then, after the order is placed, offer to save the details — at that point you already have everything, the customer has what they wanted, and creating an account costs them one click. Conversion from that placement is far better than from a gate.
If you genuinely need an account — subscriptions, licences — say why at the point you ask.
Ask for less
Every field costs completions. Go through your checkout and justify each one.
Do you need a phone number? If it is for delivery exceptions, say so and make it optional.
Do you need a company name? Only if you issue business invoices, and then only when relevant.
Do you need billing separate from shipping? Default them to the same with a checkbox to differ.
Do you need a confirmed email twice? No. Use validation and let people paste.
Use the platform properly: correct autocomplete attributes so browsers fill addresses in one action, correct inputmode so phones show the right keyboard, and address lookup where it is available. These are small changes with a measurable effect on completion.
One page or several
Both work. What matters is that the person knows where they are and what remains.
Single page suits short checkouts and feels fast, provided it does not become an intimidating wall of fields. Group it clearly.
Multiple steps suit longer flows and let you validate progressively. If you use steps, show a real indicator of how many there are, keep it to three or four, and let people go back without losing what they entered.
The worst pattern is an unknown number of steps. People tolerate a long process they can see the end of; they abandon one that might continue indefinitely.
Handle errors without losing the sale
Checkout errors are high-stakes, and this is where error state design matters most.
Validate as they go, not only on submit. Discovering six problems after pressing pay is demoralising.
Never clear the form. Losing entered details after a failed payment loses a meaningful share of those customers outright.
Say what to do. "Card declined" is a dead end. "Your bank declined this — try another card, or contact them" is a path.
Keep the cart if they leave. Coming back to an empty basket is an abandoned sale that had already been recovered.
Trust at the moment of payment
This is where hesitation peaks.
Show the payment methods you accept before the final step, so nobody reaches the end and finds theirs missing. Keep the visual design consistent — a checkout that looks like a different site raises doubt at the worst moment. State the return policy near the button rather than in a footer link. And remove the navigation, so the page has one direction.
Use the payment provider's own components. Beyond the compliance benefit, a recognisable payment interface is reassuring in itself.
After the order
The flow does not end at payment.
Confirm immediately on screen, with an order number and what happens next. Send the email straight away — a receipt arriving twenty minutes later generates a support message. Say when it will arrive, and be conservative. Then offer the account creation you did not force earlier.
Measuring it
Instrument each step and look at the drop-off between them. That points directly at the problem: a large fall after the shipping step means the cost was a surprise; a fall at the account step means the gate is costing you.
One caution: a rise in completion rate means nothing on its own if fewer people started. Watch completed orders, not only the rate.
If you have a checkout losing people and want a read on where, book a call.
Common questions
Why do people abandon checkouts?
Usually because something unexpected appeared, not because they changed their mind. The recurring causes are extra costs revealed late, being forced to create an account, a process that felt too long or open-ended, and not trusting the site with card details. All of those are design decisions.
Should checkout require an account?
No. Forced account creation is consistently among the top reasons people abandon, because they came to buy rather than to join. Offer guest checkout prominently, then invite them to save their details after the order is placed — conversion from that placement is far better than from a gate.
Should a checkout be one page or multiple steps?
Either works; what matters is that people can see how much is left. Single page suits short checkouts if grouped clearly. Multiple steps suit longer flows, but show a real step indicator, keep it to three or four, and let people go back without losing data. An unknown number of steps is the pattern to avoid.
When should shipping costs be shown?
As early as possible — a total that changes at the final step is the single most common cause of abandonment, and it reads as a trust problem rather than a price objection. If shipping depends on address, show a range or the most common option in the cart, then refine it later.
What should happen when a payment fails at checkout?
Keep every field the customer entered, explain what to do rather than only what happened — 'your bank declined this, try another card' instead of 'card declined' — and preserve the cart if they leave. Clearing the form after a failed payment loses a meaningful share of those customers outright.
