Key takeaways
- Unexpected cost at checkout is the single largest cause of abandonment and it is almost entirely preventable by disclosing totals earlier.
- Roughly half of all abandonment causes are informational rather than motivational - the shopper left to find something out and did not come back.
- Fix the free fixes first. Six of the twenty-one items here take under an hour and none of them require a developer.
- A recovery email is the last line of defence, not a strategy. Every ticket it recovers is one the cart should have prevented.
Cart abandonment is usually discussed as a single number, which makes it feel like a single problem. It is not. It is twenty or so separate problems that happen to share an outcome, and they have wildly different costs and wildly different fix times.
This is the full list, ordered so you can start at the top.
First, measure the right thing
Before fixing anything, make sure you are measuring the stage that is actually leaking.
- Cart-to-checkout rate — shoppers who created a cart and reached the checkout page. Leakage here is about cost, delivery, trust and cart design.
- Checkout completion rate — shoppers who reached checkout and paid. Leakage here is about form friction, payment methods and account requirements.
They have almost no overlap in causes. Fixing checkout forms when your problem is an unexpected shipping fee is a quarter spent on the wrong thing.
Tier 1 — under an hour, no developer
1. Show shipping cost before checkout
The largest single cause of abandonment, and the cheapest to fix. Put an estimate in the cart, or a flat rate on the product page, or a free shipping threshold. Anything except a surprise at step four.
2. Add a free shipping progress bar
Turns the shipping conversation from a cost into a goal. Set the threshold from the 60th–75th percentile of your order value distribution, not from your average.
3. Show an estimated delivery date
A date, not a speed. Removes the most common reason a committed shopper leaves the cart to go and look something up.
4. Make the variant obvious in the cart
"Blue / Large" visible without hovering. Ambiguity here sends shoppers to a second tab to double-check, and second tabs are where sessions die.
5. Put returns policy in the cart
One line, not a link. "Free 30-day returns" as text beats a link to a policy page, because the link requires leaving.
6. Remove the discount code field, or hide it
An empty discount code box tells every shopper that a code exists and they do not have it. Many will leave to search for one. Collapse it behind a small "Have a code?" toggle, or remove it entirely and use automatic discounts.
Tier 2 — an afternoon
7. Enable express checkout
Shop Pay, Apple Pay, Google Pay, PayPal. On mobile these convert dramatically better than a form because they skip data entry entirely. Place them below your primary checkout button, not above it.
8. Turn off required account creation
Guest checkout should be the default path. Offer account creation after the order, on the confirmation page, where it costs nothing.
9. Add trust signals to the cart
Payment security, support availability, returns window. Small and quiet. This matters most for first-time visitors and can be conditioned to show only for them.
10. Fix the mobile cart
Open your cart on a real mid-range Android phone. Check that the checkout button is reachable with a thumb, that nothing overlaps the home indicator, and that the drawer scrolls without trapping the page behind it.
11. Add a cart drawer instead of a cart page
Keeps the shopper in context. Removes a full navigation cycle from the add-more-items path.
12. Localise the cart
Currency, language, delivery estimate and threshold per market. A domestic promise shown internationally is a broken promise.
Tier 3 — a week
13. Audit checkout field count
Every optional field you can remove is a small conversion gain. Company name, address line 2 and phone number are the usual suspects. Phone in particular should be optional unless your carrier genuinely requires it.
14. Add relevant in-cart upsells
Counter-intuitively this can improve cart-to-checkout rate, not just AOV, because a well-chosen accessory makes the purchase feel more complete. It can also hurt it if you add too many. Two offers maximum, measured against a guardrail.
15. Fix your page speed
Cart interactions that take more than a moment to respond feel broken. Measure the time from add-to-cart click to drawer visible on a throttled connection. Anything over a second is a problem.
16. Handle out-of-stock gracefully
An item going out of stock between add and checkout should produce a clear message and a suggested alternative, not a generic error at the payment step.
17. Add duties and tax clarity for international orders
Delivered-duty-unpaid orders that surprise the customer with a customs bill generate refusals, returns and one-star reviews. State the position in the cart.
18. Offer more payment methods where they matter
iDEAL in the Netherlands, Klarna in the Nordics, Bancontact in Belgium. A missing local payment method is close to a hard block, not a preference.
Tier 4 — ongoing
19. Recover with email and SMS
Worth running, and worth being honest about: recovery is a safety net. Every cart it saves is one you paid to acquire twice. First message within an hour, second at 24 hours, stop at three.
20. Add exit-intent offers at the cart stage
For shoppers who are leaving anyway, there is no conversion left to lose. One relevant offer, triggered on the leave signal rather than on a timer.
21. Run a post-purchase survey
Ask the customers who did buy what nearly stopped them. It is the cheapest qualitative research available and it consistently surfaces causes that analytics cannot see.
The ranked summary
| # | Fix | Effort | Typical impact |
|---|---|---|---|
| 1 | Show shipping cost before checkout | Minutes | Very high |
| 2 | Free shipping progress bar | Minutes | High |
| 3 | Estimated delivery date | Hour | High |
| 7 | Express checkout methods | Hour | High on mobile |
| 8 | Remove forced account creation | Minutes | High |
| 6 | Hide the discount code field | Minutes | Medium |
| 11 | Cart drawer instead of cart page | Hours | Medium |
| 12 | Localise the cart | Day | High if international |
| 13 | Reduce checkout fields | Day | Medium |
| 18 | Local payment methods | Days | Very high in affected markets |
| 19 | Recovery email flow | Day | Medium |
What not to do
Three tactics that appear on most abandonment listicles and should not be on yours:
- Fake countdown timers. A timer that resets on refresh is a false statement about your commercial terms. It is enforceable as one in several jurisdictions and shoppers notice more often than you expect.
- Fabricated stock scarcity. "Only 2 left" when there are two hundred is the same problem with a different label.
- Exit popups on every page. Exit intent belongs at the cart and checkout stage, where the shopper has demonstrated purchase intent. On a collection page it is just an interruption.
The pattern is consistent: tactics that lie work briefly and then stop working, and they take your review score with them. Everything in the twenty-one above works because it removes a real obstacle, which means it keeps working.
Frequently asked questions
What is a normal cart abandonment rate?
Around seventy percent is the widely cited figure across ecommerce, and it has been stubbornly stable for a decade. Your own rate matters more than the benchmark, and the useful version of the metric is measured from cart creation to order rather than from session start, because the latter mixes in browsing that was never going to convert.
What causes most cart abandonment?
Unexpected cost at checkout, consistently. Shipping fees, taxes and duties revealed at the final step account for a larger share than any other single cause. The rest is spread across account creation requirements, slow or confusing checkout, payment method gaps, delivery uncertainty and simple comparison shopping.
Do abandoned cart emails work?
They recover a meaningful minority of carts and are worth running. They are not a substitute for fixing the cart, because every cart the email recovers is one you also paid to acquire twice and delayed by hours. Treat recovery as a safety net rather than a plan.
Should I show shipping costs before checkout?
Yes. Hiding shipping until the final step reliably produces the largest abandonment spike in the funnel. Either display an estimate in the cart, offer a threshold that makes it free, or state the flat rate on the product page. Any of the three beats a surprise.
How do I know which fix to do first?
Look at where in the funnel the drop happens. A large gap between cart and checkout points at cost, delivery uncertainty or trust. A large gap inside checkout points at form friction, payment options or account requirements. Fix the stage that leaks, not the one that is easiest to change.



