Baymard's research puts average e-commerce cart abandonment at 69.99% — and roughly half of that is fixable friction, not weak intent. Forced account creation alone kills 18% of carts. A clunky multi-step form kills another 17%. Lack of trust kills 17%. None of these are mysteries. Here's how to fix them.
Table of contents
- Map your funnel
- Fix the cart page
- Fix the checkout page
- Build trust before, during, and after
- Recover the carts you still lose
- Test, measure, repeat
Map your funnel
You can't optimize what you can't see. Before changing anything, instrument the funnel: product view → add to cart → checkout start → shipping → payment → order complete. Use GA4 e-commerce events or PostHog/Amplitude. Look at drop-off per step — that's where your money is leaking.
The biggest leaks usually sit between add-to-cart and checkout-start, then between payment and complete. Almost never the product page.
Fix the cart page
The cart is a checkpoint, not a destination. Three rules:
- Show the full price. No surprise shipping at step three. If you can't show shipping in the cart, show "Shipping calculated at checkout" with a typical range. Hidden fees are the #1 abandonment reason in every Baymard survey since 2016.
- Allow guest checkout above the fold. Big "Check out as guest" button next to the create-account option. Don't bury it.
- Show payment options in the cart. Apple Pay / Google Pay / Shop Pay buttons above the fold reduce checkout time to under 30 seconds for repeat shoppers. Stripe Checkout and Shop Pay both render these natively.
Fix the checkout page
Multi-step vs. one-page: data is roughly equal on conversion. Multi-step wins for analytics — you can see exactly where people bail. Pick one and commit.
What actually moves the number:
- Address autocomplete via Google Places API or Loqate. Cuts time-to-complete by ~30% and slashes shipping errors. ROI is immediate.
- Real-time validation. Inline checkmarks for valid email/postcode, red errors only after blur — never on every keystroke.
- "Same as billing" toggle for shipping. Default to checked.
- One field per data point. No "Address line 1, 2, 3, 4." Use a single "street + number" with autocomplete.
- Express payment buttons at the top of checkout — not the bottom. Apple Pay, Google Pay, PayPal, Shop Pay. Skipping the form is the form.
- Country-appropriate payment methods. Stripe surfaces local methods automatically (iDEAL in NL, Bancontact in BE, Klarna across EU). Don't force credit card globally.
Tools worth using: Stripe Checkout (hosted, PCI-compliant, fastest path to "good"), Shop Pay (if you're on Shopify, just enable it), Bolt (1-click for D2C). Skip novelty checkout startups — Fast burned $124M and shut down in 2022 leaving merchants stranded. Pick boring, big, and proven.
Build trust before, during, and after
Customers don't abandon because your CSS is ugly. They abandon because they don't trust you with their card.
- Show real reviews on product pages and at checkout. Verified badges if you have them. Use Trustpilot, Reviews.io, Yotpo — third-party reviews carry more weight than self-hosted.
- Display payment provider logos (Visa, Mastercard, Amex, PayPal) in the footer and at checkout. Trust by association.
- Show a clear return policy link during checkout — "30-day free returns" near the pay button, not buried in the footer.
- HTTPS everywhere, no exceptions. Modern browsers warn on mixed content. One http-loaded image kills the trust signal.
Recover the carts you still lose
You will lose carts. The question is whether you recover them.
Build a 3-email abandoned cart sequence in Klaviyo, Mailchimp, or Customer.io:
- +1 hour: friendly nudge. "Forgot something?" with cart contents and a one-click resume link.
- +24 hours: address objections. Free shipping reminder, return policy, top reviews.
- +72 hours: offer. 5-10% off or free shipping if not already free. This is the closer.
Add SMS for the +24h step if you have consent — open rates 6-8x email.
For visitors who never reach checkout: exit-intent popups with a small offer (5% off first order) capture 2-5% of would-be bouncers.
Test, measure, repeat
A/B test one variable at a time. Tools: GA4 + Looker Studio (free), PostHog (free tier, includes session replay), Hotjar or Microsoft Clarity for heatmaps and recordings — Clarity is genuinely free with no row limits.
Watch session recordings of failed checkouts. You'll see the exact form field people quit on. That's your next ticket.
Optimization is never "done." Every checkout I've audited had a 5-15% conversion lift hiding in three small fixes.
Lots of cart adds, few checkouts? Get my free e-commerce audit — I'll find the friction.