Checkout friction: where conversions actually die and how to find out
Ask a room of e-commerce teams where their checkout loses people and you'll get confident, contradictory answers. Too many steps. Shipping surprise. Forced account creation. Trust badges, or a lack of them. Everyone is referencing the same industry folklore — the Baymard averages, the "28% abandon because of account walls" numbers that have been copied between ten thousand decks — and almost nobody is referencing their own funnel.
This is the actual problem with checkout optimisation: it's practised from folklore instead of measurement. The average checkout and your checkout are different animals. So this article comes in two halves: first, how to instrument a checkout so you can see where your conversions actually die; second, the six killers we find most often in the wild, in rough order of frequency, with the fix for each. For the full prescriptive checklist version — every field, every state — see our checkout friction audit: 40 checks. This piece is about diagnosis.
Instrument before you optimise
You cannot fix what the funnel doesn't show. Minimum viable checkout instrumentation:
- Step-level funnel events. Cart → checkout start → shipping info → payment → confirmation, each as an event with a session ID attached. The gaps between steps are your mortality map. If you don't know your step-to-step falloff, you don't have a checkout problem definition; you have a vibe.
- Field-level interaction events. Focus, error, and correction events per field. Field analytics are where the folklore dies: teams routinely discover that the "too many fields" problem is actually a validation problem on two fields, or that the phone-number field nobody cared about causes three times more corrections than any other.
- Error instrumentation that goes to engineering, not just analytics. Every client-side validation error and every payment decline code, logged with context. A spike in decline codes from one issuer is a fraud-filter problem, not a UX problem — and no amount of form design will fix it.
- Session replays on the checkout only, sampled. Twenty replays a week, watched with a coffee, will teach you more than a quarter of aggregate dashboards. You'll watch real humans hit the walls your funnel drew.
Set up like this, diagnosis takes an afternoon per month and the answer is never "add a trust badge". It is always specific. Our piece on analytics governance covers the tracking-plan discipline this requires — checkout instrumentation done ad hoc rots within two sprints.
Killer one: the shipping-cost reveal
The most common death we measure is not at payment. It's at the moment shipping cost appears. The customer's mental total was $84; the screen now says $97.90, and the session ends. Folklore says "hidden costs kill trust". The measurable truth is more specific: it's the delta between expected and revealed total that kills, and it spikes wherever that delta is largest.
Fixes work on either side of the delta. Shrink the reveal: show shipping estimates on the PDP or in the cart ("shipping to 2000: from $7"), so the checkout contains no new information. Or shrink the cost: free-shipping thresholds priced honestly into margins, flat rates that are easy to pre-announce. What never works is pretending the reveal isn't the moment — watch the replays and you'll see the cursor hover, the tab close, the ritual complete.
Killer two: validation that punishes instead of guides
The most underrated killer, because it doesn't look like abandonment — it looks like effort. The user fights the form; some win the fight and buy; the ones who lose are recorded as if they left voluntarily. The pathology is always the same handful of sins:
- Validation on blur that flashes errors while the user is still typing the next field.
- Error summaries at the top of the page while the offending field is a kilometre of scroll away, unlinked.
- Postcode/address rules that reject real addresses — new developments, rural routes, APO addresses, anything the regex author didn't personally live in.
- Card fields that re-wipe on any error, forcing re-entry of sixteen digits because the CVV was wrong.
The fix pattern is consistent: validate inline and late, never mid-word; make every error message a sentence that states what to do ("Use the postcode for the delivery address — 4 digits") rather than what went wrong ("Invalid input"); scroll the user to the field; and never, ever clear correct data to punish incorrect data. We wrote the copy principles for this in error messages that de-escalate — checkout is where they pay rent.
Killer three: payment methods in the wrong order at the wrong time
Express payments — wallets, pay-in-four, platform pay — are the highest-converting paths in any modern checkout when offered early, and nearly useless when offered late. The mechanics are simple: an express wallet absorbs the entire form (address, contact, card) into one biometric confirmation. Offered at the top of checkout or on the cart, it routes the motivated buyer around every field. Buried at payment step, after the user has already typed everything, it's just a third door into a room they're already standing in.
The measurable signature: check your express-payment share of completed orders versus its position in the flow. We've seen the same payment method convert at two to four times the rate purely by moving the button from the payment step to the cart. Order matters too: lead with what your device mix actually uses (mobile traffic → phone-native wallets first), not what the integration defaulted to. The cart is where the negotiation happens — express options belong in that negotiation, not after it.
Killer four: the account wall (with a twist)
Folklore is right this time: forced account creation kills, measurably, every time we test it. Guest checkout is non-negotiable. But the twist the folklore misses is when to ask instead. Immediately post-purchase is the moment of maximum willingness — the customer just gave you money; "save these details for next time, set a password" converts astonishingly well there, because benefit and context are obvious.
The same principle governs every other interruption: newsletter checkboxes, SMS opt-ins, loyalty enrolment. Every ask placed in the checkout competes with the purchase; every ask placed on the confirmation page rides its momentum. Move the asks, keep the conversions.
Killer five: address entry pretending to be 2011
Autocomplete exists. Address verification APIs exist. The browser's own autofill exists and is wildly underused because of broken autocomplete attributes and obfuscated field names. Every keystroke in an address form is a coin flip on a mid-range phone. The fix list is boring and total: correct autocomplete tokens, a real address-lookup with manual override, single-field name where feasible, input modes that summon the right keyboard (inputmode="numeric" on card and postcode fields), and generous tap targets. None of this is design taste. It's typists' rights.
Killer six: anxiety with nowhere to go
The final killer is the softest and the most expensive: low-grade uncertainty at the money moment. Delivery date unknown, returns policy unknown, total in a currency that quietly changed, a padlock page that feels different from the site that sold them. The user isn't blocked — they're unconvinced, and unconvinced users close tabs to "think about it", which is analytics-speak for "gone".
The fix is information placement, not reassurance theatre. Delivery date next to the pay button, not in a footer link. Returns in one concrete sentence ("Free returns within 30 days — refund to your card, not store credit") within eyeshot of the total. Order summary pinned and honest, discount logic visible ("code applied: −$12"), currency explicit. Trust badges, for the record, test as near-neutral in most of our experiments; specificity beats heraldry. If you want to test your own sceptically and properly, our CRO piece on experiments you can believe is the method.
A closing note on honesty in measurement
Checkout funnels lie in two famous ways. First, they undercount the middle: users who die within a step look identical to users who died at a step boundary, so field-level data matters. Second, seasonality wipes out attribution — a checkout "improvement" shipped in November will look like a genius whatever it is. Read the measurement guides before you celebrate. The goal is a checkout where every death is witnessed, named, and either fixed or forgiven on purpose.
Key takeaways
- Diagnose from your own funnel, field events and replays — never from industry averages. Your checkout is not the average checkout.
- The shipping-cost reveal kills in proportion to the delta between expected and final total. Announce estimates early or design the cost away.
- Validation friction masquerades as voluntary abandonment. Instrument errors per field; make every message a prescription, not an accusation.
- Express payments earn multiples when offered early (PDP/cart) and ordered to match your device mix.
- Guest checkout always. Move every ask — accounts, newsletters, loyalty — to the confirmation page.
- Specificity beats badges: delivery date, returns sentence and honest totals at the pay button.
FAQ
What's a "good" checkout abandonment rate? Meaningless as a benchmark — traffic mix, category and price point dominate the number. Your useful metrics are step-level falloff and field-error rates, trended by cohort over time. Chase your own curve, not an industry number averaged across businesses nothing like yours.
One-page checkout or multi-step? Both convert when done well. Multi-step wins on perceived simplicity and error isolation; one-page wins on transparency of total effort. What fails is the hybrid: a "one-page" checkout that's actually an endlessly scrolling form with no sense of progress. Pick a structure, then measure.
Should we A/B test checkout changes? Carefully. Checkout tests are sensitive to seasonality, payment-provider incidents and traffic composition shifts. Run holdouts long enough to span at least two Fridays, guard on error rates and decline codes (not just conversion), and distrust any hero result landed during a sale period.
How often should the funnel be reviewed? Monthly instrumentation health-check, quarterly deep read with replays, and after every platform or payment-provider change — the silent regressions always arrive wearing a dependency update.
The checkout friction audit: 40 checks, one afternoon
Checkout is where e-commerce revenue quietly bleeds out. The forty-check audit we run before any redesign: field math, wallets, error recovery, trust.
Payments and trust at the AU/NZ checkout
Cards, Afterpay, Zip, PayPal and Apple Pay — how to order payment methods, price the fees honestly, and earn trust without clip-art badges at the AU/NZ checkout.
Cart drawer or cart page? Stop guessing
The drawer-vs-page argument is a measurement problem, not a taste debate. The decision framework, drawer anatomy, cross-sell discipline and what to track.