Cart Abandonment: Why Shoppers Leave and What You Can Do On-Site
Most carts never become orders. Some of that is unavoidable — people use carts as wish lists — but a large share comes from problems you can see and fix on your own site: surprise costs, forced account creation, a checkout that feels long or untrustworthy. This guide walks through what the research says, how to find the problem on your own store, and how to remind returning shoppers who left from the cart, without overstating what any on-site tool can do.
Updated

What “cart abandonment” actually measures
Cart abandonment rate is the share of shopping carts that are created but never turn into a completed order. If 1,000 visitors add something to the cart in a month and 280 of them place an order, 720 carts were abandoned — a 72% abandonment rate.
Two details matter when you compare your number with anyone else’s. First, definitions differ: some tools count a cart as abandoned the moment a session ends, others only after the shopper has started checkout and entered an email address. Second, abandonment is measured per cart, not per person. One shopper who adds items on Monday, comes back on Thursday and buys may appear as one abandoned cart and one completed order. So treat your own trend over time as more useful than any single benchmark.
It also helps to separate cart abandonment (left after adding to cart, before checkout) from checkout abandonment (started checkout, didn’t finish). The causes overlap, but the fixes live on different pages, and you will want to look at them separately.
What the research says: Baymard Institute’s figures
The most widely cited source on this topic is Baymard Institute, an independent e-commerce UX research firm. Its cart abandonment rate statistics page (last updated September 22, 2025, as checked on October 12, 2026) reports an average documented cart abandonment rate of 70.22%, calculated from 50 different studies. In other words, roughly seven in ten carts are not completed.
Baymard also surveyed US online shoppers about why they abandoned. The largest group — 42% — said they were “just browsing” or not ready to buy. Baymard describes that segment as largely unavoidable. Setting it aside, the remaining reasons for abandoning during checkout were reported as follows:
| Reason given (Baymard Institute, US online shoppers) | Share | Where you can act |
|---|---|---|
| Extra costs too high (shipping, tax, fees) | 40% | Product page, cart, shipping policy |
| Delivery was too slow | 20% | Shipping options, delivery estimates |
| I didn’t trust the site with my credit card information | 19% | Payment step, site design, policies |
| The site wanted me to create an account | 18% | Checkout entry (guest checkout) |
| Too long / complicated checkout process | 17% | Checkout form |
| Website had errors / crashed | 17% | QA and testing on real devices |
| Returns policy wasn’t satisfactory | 13% | Returns policy and where it is shown |
| I couldn’t see / calculate total order cost up-front | 12% | Cart page |
| The credit card was declined | 10% | Payment provider, error messages |
| There weren’t enough payment methods | 9% | Payment options |
| I don’t know | 7% | — |
Read the table as a to-do list. Most of the reasons are about information and friction on your own pages: costs that appear too late, an account wall, a form that feels long, a payment step that doesn’t look trustworthy. Those are things you control. That is why the first half of this guide is about fixing the store, and only the second half is about reminders.
Fix 1: Show the full cost before checkout
“Extra costs too high” is the biggest single reason in Baymard’s list, and “couldn’t see the total order cost up-front” is a separate entry. The two are related: a shipping fee that shows up for the first time on the last checkout step feels like a surprise charge, even when it is reasonable.
- State your shipping rules in plain words on product pages, near the price or the add-to-cart button — for example, “Free shipping on orders over $50. Otherwise $6.95 flat.”
- On the cart page, show an estimated total including shipping. If tax depends on the address, say so (“Tax calculated at checkout”) rather than leaving it unexplained.
- If you offer free shipping above a threshold, show how far the cart is from it (“$12 away from free shipping”). See our guide to free shipping banners and threshold wording.
- Link your shipping and returns policies from the cart page, not only from the footer.
You don’t have to absorb shipping costs to fix this. The goal is that nothing in the final total comes as a surprise.
Fix 2: Make guest checkout easy to find
18% of shoppers in Baymard’s survey left because the site wanted them to create an account. Many stores do offer guest checkout, but hide it. Baymard’s account selection research reports that 44% of sites have a design that makes it needlessly difficult for users to locate the guest checkout option, which can lead people to assume that registration is required.
- Give “Continue as guest” the same visual weight as “Sign in.” Don’t bury it below a long registration form.
- Offer account creation after the order is placed (“Save your details for next time?”), when the shopper has nothing left to lose.
- If you need an email address for the receipt, ask for just that, and explain why.
Fix 3: Shorten the form and remove errors
“Too long / complicated checkout” (17%) and “website had errors / crashed” (17%) are often the same problem seen from two angles: a field rejects a valid phone number format, an address lookup fails, a coupon box clears the form. Go through your own checkout on a phone, with a real card, at least once a month. Try the awkward cases too — an apartment number, a long last name, a postal code with a space, a coupon that has expired.
Practical clean-up: remove optional fields you don’t use, let browsers autofill name and address, show errors next to the field that caused them, and keep what the shopper typed when an error appears. If your platform lets you, offer the express wallets your customers already use, since “not enough payment methods” is another 9%.
Fix 4: Earn trust at the payment step
19% didn’t trust the site with their card details. Trust is built across the whole visit, but the payment step is where doubt turns into leaving. Make sure the checkout looks like the rest of your store (an abrupt change of design can feel like a redirect to somewhere else), show your returns policy and contact details nearby, and name the payment provider that processes the card. Avoid stacking unverifiable badges; a clear policy and a real way to reach you do more.
Fix 5: Be honest about delivery times and returns
“Delivery was too slow” (20%) and “returns policy wasn’t satisfactory” (13%) are not always fixable — you may not be able to ship faster. But you can make sure shoppers don’t discover the delivery date only at the end. Show an estimated delivery window on the product page and in the cart, and summarize the returns policy in one sentence (“Free returns within 30 days”) where people decide.
Find where your own shoppers leave
Research tells you what is common. Your analytics tell you what is happening on your store. Before changing anything, collect three views of the same problem.
- The funnel numbers. Product page views → add to cart → cart page → checkout start → order complete. Compare by device. A big drop at one step on mobile only usually points to a layout or form problem on that step.
- Heatmaps of the cart page. How far do people scroll? Do they click the shipping link, the coupon field, the “continue shopping” link? A coupon field that attracts many clicks can send shoppers off to search for codes.
- Individual visitor timelines. Reading the page-by-page path of a few dozen visitors who reached the cart and didn’t buy shows patterns that averages hide — for example “cart → shipping policy → cart → left,” which suggests the shipping cost was the issue.
In marketingLABO, all three views come from the same tracking tag: per-page heatmaps (time on page, scroll depth and clicks), a timeline of each visitor’s actions, and reports by traffic source, page and conversion. You can follow moves like “went to the cart and came back” for an individual visitor. Analytics, heatmaps and visitor history are included in the Free plan.
Don’t over-read single sessions. One visitor bouncing between pages proves nothing; the same loop in 20 out of 50 timelines is a pattern worth testing a fix for.
Reminding returning shoppers on-site
After the store is fixed, there will still be people who leave from the cart and come back later — the “just browsing” 42% included. When they return, a short reminder on your site can help them pick up where they stopped. This is where an on-site banner fits.
Be clear about how this works in marketingLABO, because it is different from tools that connect directly to your store platform. marketingLABO does not read your cart. It doesn’t know what is in the cart, the cart value, the product SKUs or whether an order exists in your store system. It works from the pages each visitor has viewed. So the condition is built from URLs:
| Condition | Setting in marketingLABO | Example |
|---|---|---|
| Has seen the cart | Pages viewed | https://example.com/cart |
| Has not seen the order-complete page | Pages not viewed | https://example.com/checkout/thank-you |
| Is back on a later visit | Visit frequency (e.g. 2nd visit or later) | — |
| Came back recently, or after a while | Days since the last visit | Within 7 days |
| Where the banner appears | Page URL to show on (optionally with prefix match) | https://example.com/ — or the cart page only |
Combined, these read as: “show this banner to people who have viewed the cart page, have not viewed the order-complete page, and are on a later visit.” That is a reasonable stand-in for “left with items in the cart,” but it is not the same thing, and the next section lists where the two differ.
Setting up a cart reminder banner, step by step
- Install the tag on every page, including the cart page and the order-complete page. The tag goes in the
<head>of each page; it works on any site where you can add a tag there. - Find your two URLs. Add something to the cart on your own store and copy the cart URL. Place a test order and copy the order-complete (thank-you) URL. Check whether the thank-you URL stays the same for every order or changes with an order number.
- Create a banner. Start from a template in the “Cart reminders” category and edit the copy and colors. Formats include image only; image, headline and button; with countdown; and with an email sign-up form.
- Set the conditions. Pages viewed = the cart URL; Pages not viewed = the order-complete URL; visit frequency = a later visit. Optionally add days since the last visit.
- Choose where and when it shows. For example, on the home page and product pages, after a few seconds or at a scroll depth, as a floating banner or a bar rather than a full modal.
- Test it yourself. In a fresh browser, view the cart, leave, come back on a new visit, and confirm the banner appears. Then complete a test order and confirm it no longer appears.
- Watch the results. Impressions and clicks are reported per campaign. Compare clicks with what you see in your order data over the same period.
On plans: the Free plan includes one pop-up banner, Light includes three, and Standard has no banner limit. See pricing for details.
What URL-based targeting cannot do
Knowing these limits up front prevents banners that annoy customers or mislead you about results.
- No cart contents. The banner can’t name the product left in the cart or show its price. Write copy that works for any cart (“Your cart is waiting”), not “Still thinking about the blue jacket?”
- No cart value. You can’t show a different message to $20 and $200 carts.
- No empty-cart check. Someone who viewed the cart and then removed everything still matches. Keep the message soft enough that this isn’t awkward.
- Same browser only. Tracking is per browser. A shopper who bought on a laptop after viewing the cart on a phone may still see the reminder on the phone.
- Checkout pages you can’t tag. If your platform hosts the checkout or confirmation page where you can’t add code to the
<head>, the “not viewed” condition can’t see completed orders. Confirm the tag runs on your thank-you page before relying on this. - Orders outside the site. Phone orders, marketplace orders or in-store purchases are invisible to page-based conditions.
Abandoned-cart emails: use your store platform
Many store platforms send abandoned checkout emails themselves, because they hold the cart data. Shopify, for example, documents built-in abandoned checkout emails: a checkout counts as abandoned if it stays incomplete for more than ten minutes after the customer has entered an email address, and the email can be sent automatically. If your platform offers this, turn it on — it reaches people who don’t come back on their own. The on-site banner complements it by covering people who do return, including those who never entered an email.
What to say in a cart reminder
A reminder works best when it removes the reason for leaving, not when it shouts. Match the copy to the reasons you found in your own data:
| If timelines suggest… | Try a reminder that says… |
|---|---|
| Shipping cost was the issue | “Free shipping on orders over $50 — your cart is still saved.” |
| Shoppers were comparing or unsure | “Your cart is still here. Free returns within 30 days.” |
| Delivery timing mattered | “Order by 2 pm for same-day dispatch.” (Only if it’s true.) |
| People came back but didn’t find the cart | “Pick up where you left off” with a button linking to the cart page. |
| You run a time-limited sale anyway | A countdown to the real end date of that sale. |
Be careful with automatic discounts. If every cart viewer gets 10% off on their next visit, some customers will learn to leave the cart on purpose and wait for the code. Try a non-discount reminder first, and if you test a coupon, limit it by days since the last visit or visit count so it isn’t offered to everyone. Keep any countdown tied to a real deadline; a timer that resets on every visit damages trust, which is one of the reasons people abandon in the first place.
Choose a format that doesn’t get in the way
A returning shopper has come back to do something. A full-screen modal the moment they arrive gets between them and their cart. Prefer a bar at the top or bottom, or a small floating banner, with a clear link to the cart. Save the modal for exit intent on desktop, where it appears when the visitor is about to leave rather than when they arrive. Google’s guidance on intrusive interstitials also recommends banners that take up only a small fraction of the screen over overlays that block content. For more on timing and triggers, see our free shipping banner guide, which covers bar vs. modal placement.
A 30-day plan
- Days 1–3: Install the tag on every page, including cart and thank-you. Write down your current add-to-cart and order numbers from your store platform so you have a baseline.
- Days 4–10: Run through your own checkout on mobile and desktop. List every surprise cost, account wall and error you hit.
- Days 11–17: Read cart-page heatmaps and 30–50 visitor timelines of people who reached the cart and didn’t buy. Note the repeated loops.
- Days 18–24: Fix the top one or two problems on the store itself: cost shown earlier, guest checkout made visible, a broken field repaired.
- Days 25–30: Launch one cart reminder banner for returning visitors, with non-discount copy. Turn on your platform’s abandoned-checkout email if it has one.
After that, change one thing at a time. If you change the checkout and launch a banner in the same week, you won’t know which one moved the numbers.
FAQ
What is a good cart abandonment rate?
There is no universal target. Baymard’s documented average is 70.22% across 50 studies, but definitions and store types differ. Track your own rate with a fixed definition and watch the direction after each change.
Can marketingLABO tell me which products were left in carts?
No. It has no store-platform integration and doesn’t read cart contents, cart value or orders. It records page views, scroll depth, time on page and clicks, and targets banners by URLs viewed or not viewed. Use your store platform’s reports for product-level abandonment.
Does it send abandoned-cart emails?
No. marketingLABO can send newsletters (Light and above) and journey emails (Standard) to contacts who signed up, for example through a form or a banner’s email sign-up form — but nothing triggered by cart data. For cart emails, use your store platform’s feature.
Will a cart reminder banner annoy customers who already bought?
It shouldn’t, if the order-complete page is tagged and set as “not viewed.” The exceptions are purchases made on another device or outside the site, so keep the message neutral and easy to close.
Should I offer a discount to everyone who abandons?
Usually not as a first step. Fix surprise costs and friction first, then test a plain reminder. If you test a coupon, restrict who sees it and compare it with a period without one.
Want to see where your shoppers leave? Create a free account, add the tag, and start with heatmaps and visitor timelines on your cart page.
Sources
- Baymard Institute, “Cart Abandonment Rate Statistics” (last updated September 22, 2025; accessed October 12, 2026): https://baymard.com/lists/cart-abandonment-rate
- Baymard Institute, account selection / guest checkout design examples (accessed October 12, 2026): https://baymard.com/ecommerce-design-examples/48-account
- Shopify Help Center, “Abandoned checkouts” (accessed October 12, 2026): https://help.shopify.com/en/manual/orders/abandoned-checkouts
- Google Search Central, “Avoid intrusive interstitials and dialogs” (last updated December 10, 2025; accessed October 12, 2026): https://developers.google.com/search/docs/appearance/avoid-intrusive-interstitials
Start free — no credit card needed
Sign up freeMore articles

How to Build a Welcome Email Series for a Small E-commerce Store
A step-by-step plan for a 4-email welcome series: timing, wait steps, branches on opens and return visits, sample copy, and the CAN-SPAM basics.
Read the article →
Free Shipping Banners: Where to Show Them and How to Word the Threshold
Where to place a free shipping banner (bar or modal), when to show it, and how to word the threshold so it matches your checkout.
Read the article →
Form Abandonment: How to Find the Field Where People Give Up
How to measure form abandonment field by field, read a drop-off report, and decide what to fix first: field count, order, labels or validation.
Read the article →
How to Target Returning Visitors with Different Messages Than First-Timers
Show first-time and returning visitors different messages using visit frequency and days since the last visit, with recipes and the limits of tracking.
Read the article →
UTM Parameters Explained (and How to Match Landing Messages to Your Ads)
What each UTM parameter means, a naming convention that keeps reports clean, common tagging mistakes, and how to show visitors a message that matches the ad.
Read the article →
Micro-Conversions: The Small Signals That Predict a Sale
What micro-conversions are, four practical ones to track (pages viewed, key URLs, time on site, return visits), how to set thresholds and how to act on them.
Read the article →