Digital Marketing Updated 11 min read

Shopping Cart Abandonment: How to Diagnose & Fix It

Learn how to measure shopping cart abandonment, find checkout friction and prioritise fixes across costs, delivery, mobile UX, payments and recovery.

A collage of a shopping basket losing products as it passes through a series of checkout friction points

Shopping cart abandonment is not one problem. Customers leave for browsing intent, surprise costs, forced accounts, broken forms, payment declines, stock or price changes, slow mobile pages and genuine interruptions. The correct response is to measure where they leave, reproduce the failure, fix checkout blockers, then use recovery flows only for purchases that were genuinely interrupted.

For wider conversion work beyond the basket, pair this with how to improve ecommerce conversion rate and how to optimise your website for conversions.

Short summary

  • Treat abandonment as a diagnosis path, not a single KPI to chase.
  • Separate cart abandonment from checkout abandonment before you brief a fix.
  • Segment drop-off by device, browser, source, geography, payment method, guest or account status and, where relevant, seller.
  • Fix hard checkout blockers first. Recovery email, SMS or ads come after the journey works and only under your consent and privacy rules.
  • There is no universal “good” abandonment rate. Use your own funnel definition and trend.

What shopping cart abandonment means

Shopping cart abandonment is when someone adds items to a cart and leaves without purchasing. That includes people who never start checkout and people who start checkout and stop.

Checkout abandonment is narrower: the shopper has begun checkout (contact, shipping, payment or similar) and leaves before purchase. Mixing the two hides whether the leak is product or pricing intent, or the checkout itself.

Browsing without intent still shows up in cart metrics. That is why you need segmentation and journey reproduction, not a single global percentage.

How to measure it (without a fake benchmark)

Use a consistent funnel and write the definition down. Google Analytics 4 recommends ecommerce events such as add_to_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info and purchase. See Google’s recommended events.

A site-specific diagnostic you can use once those events are trusted:

  1. Cart abandonment (sessions or users): people who reach add_to_cart or view_cart but never purchase, divided by people who reached cart.
  2. Checkout abandonment: people who reach begin_checkout but never purchase, divided by people who began checkout.

These are diagnostics for your implementation. They are not industry targets.

Watch the measurement traps:

  • Event definitions. Does begin_checkout fire on the first checkout page view, or only after an address is saved?
  • Users vs sessions. Mixing them makes period comparisons meaningless.
  • Duplicate purchase events. Thank-you page reloads, repeated tag firing or retry behaviour can inflate purchase counts. Refunds should be tracked separately; they do not themselves duplicate purchase events.
  • Consent gaps. If tags do not fire for non-consented journeys, your rate describes tagged traffic, not all shoppers.
  • Stock and payment failures. A declined card or out-of-stock message can look like “abandonment” unless you label the failure.

Do not publish a Baymard (or any other) global average as Code23’s benchmark or as your target. Baymard’s cart and checkout usability research is useful for what to inspect in the UX. It is not a promise of your rate.

Prioritised diagnosis path

Work in this order. Skipping ahead to recovery emails while checkout is broken wastes spend and support time.

  1. Validate measurement before making a claim. Confirm key events fire once on success, do not fire success events on error paths, and still work after consent banners and tag changes. Reconcile a sample of purchase events against orders.
  2. Separate cart abandonment from checkout abandonment. Report both. If cart is weak but checkout completes well, look at product, price, delivery promise and trust on product pages. If checkout is the cliff, stay in the checkout steps.
  3. Segment the drop-off. Break the same funnel by device, browser, acquisition source, geography, payment method, guest versus account, and (for multi-vendor) seller or vendor. A sitewide rate can hide a broken mobile wallet path or one failing payment method.
  4. Reproduce failed journeys. Walk the exact path on real devices. Inspect field errors, payment declines, stock and price changes mid-checkout, promo code failures, address validation and performance. Record screenshots and network or console errors where useful.
  5. Prioritise blockers. Score each issue by affected users, commercial importance (margin, average order value, strategic products), confidence in the cause and effort to fix. Do not promise a specific conversion increase.
  6. Test fixes and watch the wider results. Ship the change, monitor completion and also refunds, support contacts, fraud or disputes and payment failure rates so a “faster” checkout does not create extra cost later.

Checkout fixes to inspect first

Baymard’s checkout usability work repeatedly surfaces friction around cost clarity, account walls, form design and payment. Use that as a checklist of places to look, then prove each issue on your site.

Unexpected delivery, tax and other costs

Diagnose. Compare the price shown on product and cart pages with the total at payment. Note when shipping, tax, fees or surcharges first appear. Segment abandonment at the step where totals jump.

Fix. Show landed cost as early as you can. Make delivery method and tax assumptions visible. Avoid “free shipping” headlines that vanish at checkout. If fees are unavoidable, explain them before payment.

Delivery options, dates and returns clarity

Diagnose. Can the shopper see methods, cut-off times, estimated dates and returns rules before paying? Support tickets that ask “when will this arrive?” after cart adds are a signal.

Fix. Put delivery choices and dates next to the cost. State returns and refunds in plain language near the decision. Unclear delivery is often treated as risk, not a logistics detail.

Forced account creation and guest checkout

Diagnose. Measure completion for guest versus forced-account paths. Watch rage clicks on “create account” and password fields.

Fix. Offer guest checkout. Let people create an account after purchase if they want order history. Do not gate payment behind marketing opt-ins.

Checkout length, fields, progress and autofill

Diagnose. Count required fields and steps. Check whether browser autofill and password managers work. Note whether progress is visible on multi-step checkouts.

Fix. Ask only for what you need to fulfil and pay. Keep labels human. Show progress. Support autofill with standard input names and types. Optional fields should look optional.

Inline validation, error recovery and preserved state

Diagnose. Submit bad data on purpose. Do errors appear next to the field? Does the cart empty? Are card details wiped after a soft decline?

Fix. Validate inline where possible. Keep cart contents and non-sensitive inputs after errors. Recoverable payment failures should return the shopper to a clear retry state, not a blank form.

Trust signals that are real

Diagnose. Look for accurate policies, contact details, substantive reviews and recognisable payment UI. Decorative or unverifiable badges do not replace those.

Fix. Show contact details you answer. Keep shipping, returns and privacy copy accurate. Use the payment provider’s own UI patterns where they help recognition. Prefer specific proof over generic badge walls.

Payment choice and failed-payment recovery

Diagnose. Segment abandonment and declines by method. Check 3-D Secure failures, wallet availability on mobile and unsupported cards.

Fix. Offer methods your buyers actually use. For modern card and wallet collection, Stripe’s Payment Element is one documented pattern for presenting methods in a single, updateable UI. Match method availability to geography. After a soft decline, explain the next step and preserve the order attempt where your stack allows. For gateway selection context, see which online payment gateway is best.

Performance, mobile UX and real-device testing

Diagnose. Run the checkout on real phones and slow networks. Treat Core Web Vitals as experience diagnostics for product, cart and checkout templates, not as a guaranteed conversion lift.

Fix. Reduce long tasks on checkout, avoid layout shifts under the pay button, keep tap targets usable and stop overlays covering the primary action. Lab scores help diagnosis; field data shows what shoppers felt.

Stock, price and promotion consistency

Diagnose. Reproduce carts where an item goes out of stock, a price changes or a promo fails between cart and payment.

Fix. Reserve or revalidate stock at checkout. Show price changes before payment capture. Fail promo codes with a clear message and an updated total, not a silent error.

Customer support at the decision point

Diagnose. Check whether help is reachable from cart and checkout without losing the basket. Review tickets tagged around payment, delivery and promo codes.

Fix. Put concise FAQ or chat entry points near common friction. Make sure support can see order or cart context. Support cannot rescue a broken payment API, but it can unblock address and delivery confusion.

Recovery email, SMS and ads (only after checkout works)

Diagnose. If checkout is failing for everyone, recovery messages nag people back into a broken journey.

Fix. Recover interrupted purchases after blockers are fixed. Treat recovery messages as potential electronic mail marketing. The ICO electronic mail marketing guidance says marketing emails or texts to individuals generally need specific consent. A limited soft opt-in can apply to an organisation’s own previous customers for similar products or services only when an opt-out was offered when details were collected and in every message. ICO notes that guidance is under review after the Data (Use and Access) Act, so check the current page. This is not legal advice. Prefer useful reminders (items, stock, delivery promise) over aggressive discount spirals.

Marketplace checkout has extra failure points

On a marketplace, “abandoned checkout” can mean buyer friction or platform and seller operations failing underneath the buyer.

Buyer-side failures still look familiar: costs, guest checkout, forms, wallets, mobile performance. Platform-side failures do not: seller onboarding and verification, application fees, split funds, payouts, refunds and disputes. Stripe documents marketplace essential tasks around onboarding, charging, funds flow and operations. Treat those as a separate problem from a single-merchant storefront.

Separate:

  • Buyer checkout failure: the purchaser cannot complete a payable order.
  • Connected-account or vendor failure: a seller cannot sell, get paid or stay compliant.
  • Platform operations failure: splits, fees, refunds or disputes break after the buyer thinks they paid.

Custom software is not automatically the answer. Fix the failing problem first. For money movement context see understanding transaction flow on your marketplace. If you need product or engineering help on storefront or marketplace checkout, websites and apps and support and growth are the Code23 routes, or contact us.

First 30 days: ordered checklist

OrderActionDone when
1Validate GA4 (or equivalent) cart and checkout events against real ordersDefinitions written; sample of purchases reconciles; consent behaviour known
2Split reporting into cart vs checkout abandonment and key segmentsDashboards show device, source, payment method and guest/account at minimum
3Reproduce the top three drop-off paths on real mobile devicesEach path has notes on cost surprises, errors, declines or performance
4Ship the highest-confidence checkout blockers (costs, guest checkout, fields, payments)Changes live; completion and wider checks (refunds, support, disputes, payment failures) watched
5Only then enable or tighten recovery email/SMS/ads under consent rulesRecovery copy reviewed; ICO/PECR position checked with your privacy owner

If you only do five things, do those five in order.

FAQ

What is shopping cart abandonment?

It is when a shopper adds items to a cart and leaves without completing a purchase. Some never start checkout; others start and stop. Intent ranges from window shopping to blocked payment.

What is the difference between cart and checkout abandonment?

Cart abandonment covers anyone who added to cart and did not buy. Checkout abandonment covers only those who began checkout and did not buy. You need both views to know whether the leak is earlier merchandising or the checkout itself.

How do I calculate cart abandonment?

Pick a denominator you trust (users or sessions who reached cart) and a numerator who never reached purchase in the same window. Mirror the same logic for checkout using begin_checkout. Document event definitions, consent coverage and duplicate handling. There is no single universal formula that fits every stack.

What is a good cart abandonment rate?

There is no universal good rate. Categories, average order value, mobile share, browsing intent and how you define events all change the number. Track your own baseline and segment trends. Do not adopt a published global average as a target.

Does guest checkout reduce abandonment?

Forced account creation is a common checkout blocker. Guest checkout removes that wall for first-time buyers. Measure guest versus account completion on your site rather than assuming a fixed increase.

When should I send an abandoned-cart email?

After you have fixed known checkout blockers. For individuals, electronic mail marketing generally needs specific consent. A limited soft opt-in can apply to an organisation’s own previous customers for similar products or services only when an opt-out was offered when details were collected and in every message. Check the current ICO electronic mail marketing guidance, which ICO says is under review after the Data (Use and Access) Act. Useful reminders beat discount spam. This page is not legal advice.

How is marketplace checkout different?

Marketplace checkout adds seller onboarding, application fees, split payments, payouts, refunds and disputes. Separate buyer checkout failure from connected-account and platform-operations failure before you rebuild the storefront or blame “abandonment” on UX alone.

References

James Ansell

Written by

James Ansell

Founder & Director

James founded Code23 in 2005 and leads its AI, product and engineering work across marketplaces, SaaS platforms and websites.

Plan the next release

Build the next version around the result it needs to produce.

We’ll define the scope, design the journeys and build the systems behind them with one senior UK team.

Related

More from the blog

Engineering deep-dives, product updates, and notes from the team.

View all posts