Shopify cart abandonment: how to actually find out why
Cart abandonment is one of the most-studied numbers in ecommerce. Baymard Institute’s running average across 49 studies puts the abandonment rate at roughly 70%, and that figure has been stable for the better part of a decade. Every Shopify store has it. Yours has it. The question is never “is my cart abandonment too high” — it almost certainly is, by some definition. The question is why.
There are five reasons customers abandon, and only one or two of them are yours. The diagnosis problem is figuring out which.
The five buckets
When a Shopify customer adds to cart and doesn’t buy, it’s almost always one of these:
- Shipping or tax shock — they saw a number at checkout that was meaningfully higher than the number they had in their head.
- Account-creation friction — checkout asked them to create an account when they wanted to buy as a guest.
- Missing trust signals — the checkout looked unfamiliar, sketchy, or different enough from what they expected that they second-guessed the purchase.
- They weren’t ready — they were comparison shopping, browsing on a phone, or saving the cart for later. There’s no fix at checkout for this one. The fix is recovery.
- Checkout UX bugs — broken address autocomplete, hidden discount field, payment picker confusion, a stuck “Continue” button on mobile. We covered this one in detail in the mobile checkout friction post.
The mistake most merchants make is assuming it’s all five at once and trying to fix everything. It’s almost never all five. It’s usually one dominant cause and one or two minor ones. The diagnosis is figuring out the dominant one before you spend a sprint on the wrong fix.
1. Shipping and tax shock
This is the single most-cited reason for cart abandonment in Baymard’s checkout research, and it has been for years. The customer sees a price on the product page, something close to it on the cart, and then at checkout the total jumps. Shipping appears. Tax appears. The number they decided to pay isn’t the number they’re being asked to pay.
What it looks like in a replay: the customer reaches the shipping step, pauses on the totals for several seconds, and clicks back. Or they close the tab. The pause is the tell — they’re doing math, and the math doesn’t match what they expected.
Heatmap signal: clicks on the cart total or the shipping line, then clicks on the back arrow.
2. Account-creation friction
If your checkout requires an account before purchase, you’re almost certainly losing buyers who would have completed as guests. Baymard’s research consistently flags forced account creation as one of the top abandonment causes. Shopify’s standard checkout supports guest purchase out of the box, but some merchants flip it off in settings without realizing the cost.
What it looks like in a replay: the customer reaches the email/account step, hesitates, sometimes types an email and then deletes it, sometimes just closes the tab. They’re not abandoning the product. They’re abandoning the relationship.
3. Missing trust signals
Some customers abandon because the checkout doesn’t look like they expected. The store is new to them, the brand is unfamiliar, the design looks different from the product page they were on a moment ago, the payment options don’t include a wallet they recognize. None of this is rational — but the decision to buy from a stranger online is partly emotional, and the emotional read of a checkout matters.
What it looks like in a replay: the customer reaches checkout, scrolls up and down examining it, sometimes opens a new tab (probably to Google your store name plus “review” or “scam”), and then doesn’t come back.
4. They weren’t ready
Plenty of people add to cart with no intent to buy right now. They’re comparison shopping. They want to remember the item. They got distracted. They’re on the bus. Industry abandoned-cart research consistently puts “just browsing” at or near the top of the list — Baymard’s checkout reasons survey has it as one of the most common explanations customers give when asked.
You can’t fix this at checkout, because there’s nothing to fix. The fix is recovery: the abandoned-cart email, the retargeting ad, the SMS. We’ll come back to that.
5. Checkout UX bugs
If shipping isn’t the leak, account creation isn’t the leak, trust isn’t the leak, and the customer wasn’t just browsing — you have a UX bug. Address autocomplete that doesn’t autocomplete. A discount-code field three taps deep. A payment picker that overwhelms instead of guiding. A stuck button on iOS Safari with the keyboard open.
We wrote a diagnostic post specifically on mobile checkout friction that walks through each of these. If you’ve ruled out the other four and you’re staring at a mobile-heavy abandonment problem, start there.
The diagnosis playbook
Five buckets. Most merchants stop here, pick whichever bucket sounds like their store, and start fixing. Don’t do that — guessing is how you spend a sprint on shipping when your real problem is account creation. Watch the actual sessions instead.
Step 1: Filter your replays to abandoned-cart sessions. Propel Replays filters this natively because Shopify exposes “reached cart, didn’t reach order confirmation” as a customer-level fact. You don’t need to instrument anything. Pick the segment, hit go.
Step 2: Watch ten of them at 1.5x speed. Just ten. The AI summary on each replay gives you a two-sentence narrative before you press play, so you can skip the sessions where the customer obviously got distracted and didn’t engage with the cart at all.
Step 3: Look for the same friction event three or more times. If three of the ten abandoners pause on the shipping step, that’s your bucket. If three of them bail at the account screen, different bucket. The pattern emerges fast — usually inside the first six or seven replays.
Step 4: Cross-check with a heatmap on the cart drawer and the cart page. Click and area heatmaps show you where attention is going on the cart, which is often where the doubt starts. If lots of clicks are landing on the shipping line in the cart, customers are double-checking the number before they even reach checkout. Useful corroboration.
Step 5: Cross-check with a survey targeted by time-on-cart-page. Propel’s survey triggers are page-based, product-based, collection-based, and time-on-page — so the right pattern here is a time-on-cart-page trigger that fires after, say, 30 or 45 seconds of someone hovering on the cart without proceeding. (Propel doesn’t ship exit-intent triggers, and honestly, time-on-page is a steadier signal anyway — exit-intent fires once and is gone.) Ask one question: “What’s holding you back from completing your order?” The answers come back annotated to the actual replay, so you can watch what the customer did and read what they thought they were doing in the same view.
By the end of step 5 you have three signals — what they did, where they looked, what they’d say if asked. If those three agree, you have your dominant cause. If they disagree, you have a more interesting problem, and you watch ten more replays.
What to fix in what order
Once you have the dominant cause, fix in this order. The order is calibrated for impact-per-hour, not for impact-per-fix.
- Show shipping cost on the cart page or the product page — before checkout. A free-shipping threshold notice (“Free shipping over $75 — you’re $12 away”) is even better. The fix is a small theme edit, sometimes an app, sometimes both. Highest leverage of any single change you can make.
- Allow guest checkout if you don’t already. Shopify settings, two clicks, no engineering. Verify with a private-window purchase that the email step doesn’t force account creation.
- Move the discount-code field above the order summary if you’re seeing customers hunt for it. If you’re not seeing that, leave it collapsed.
- Add real trust signals — your real return policy near the cart, real shipping guarantees, real payment-method logos. Stock badges from a generic trust-badge app rarely move anything; what moves the needle is signaling that your specific store is legitimate.
- Fix the UX bugs. The mobile checkout post lists the common ones. Fix them in the order they appeared in your replays.
Don’t do all five at once. Do one, ship it, watch the next two weeks of cart-to-checkout conversion. Then do the next one.
Recovery: the safety net, not the fix
Abandoned-cart email is its own conversation. The basic shape:
- Email 1: ~1 hour after abandonment. Friendly nudge, image of the product, link back to the cart.
- Email 2: ~24 hours later. Slightly more urgent, sometimes a small incentive (“here’s a code if you forgot something”).
- Email 3: ~72 hours later. Last-call framing, sometimes a stronger incentive.
Klaviyo’s published benchmarks across abandoned-cart flows consistently show open rates well above the average for marketing email — these flows are some of the highest-performing in any sender’s account. Shopify’s own abandoned checkout recovery feature ships with the platform if you don’t have a dedicated email tool yet. SMS works too, especially for urgent reminders.
Two warnings:
- Recovery is not the fix. It’s the safety net. If your dominant cause is shipping shock, recovery emails won’t change the math — the customer still didn’t want to pay $14 in shipping the first time, and they still don’t. Fix the upstream cause first, then layer recovery on top.
- Don’t pretend recovery rates are conversion lift. A recovery flow that “saves” 5% of abandoners is good. But that 5% would, on the margin, have come back anyway in some quantity. Treat recovery rates as a floor on the lift, not a ceiling.
What Propel sees that Shopify Analytics doesn’t
Shopify Analytics will tell you that you have a 72% cart abandonment rate. It won’t tell you which step. It won’t tell you whether the customer paused on shipping for six seconds before bailing. It won’t surface the one $400 cart that almost completed yesterday and walked. It won’t show you that the customers who made it to the address step almost all completed, but the ones who never left the cart drawer almost never did.
That gap is what session replay fills.
The other thing Propel adds on top: insight alerts for the high-value abandoned carts and abandoned checkouts specifically. Instead of scrubbing through 500 replays this week, you see the ten where someone almost spent meaningful money and walked. Watch those first, on the theory that the patterns at the top of your funnel are usually patterns elsewhere too — and that one $400 cart is worth more recovered than four $40 carts.
What real merchants actually say about this
The pattern of “I knew something was wrong and the analytics couldn’t tell me what” is the most common feedback we hear, almost word-for-word, from merchants who switch on Replays. The cleanest version of it:
“Helped me fix quite a bit on my site I didn’t realize was causing issues for customers.”
— Hair Dance (App Store review)
That’s the whole job, in one sentence. The analytics show you the abandonment rate. The replay shows you which fix matters.
The 30-minute playbook
If you want the smallest possible version of this exercise, do it tonight:
- Open Replays. Filter to abandoned-cart sessions.
- Watch the first ten at 2x speed.
- Read the AI summaries first; skip past the obviously-distracted ones.
- Write down which of the five buckets you saw most often.
- Pick the highest-leverage fix from the list above. Ship it on staging.
- Push it live. Check cart-to-checkout conversion in two weeks.
If you want to go further, layer a time-on-cart-page survey on top to capture what the customers themselves would say. And if you want the broader diagnosis — for the merchants whose problem isn’t actually cart abandonment but a flatter conversion-rate problem upstream — why isn’t my Shopify store converting is the place to start. For the wider CRO frame, see the Shopify CRO guide, and for benchmarking your number against your category, the average ecommerce conversion rate post is the comparison point.
Cart abandonment isn’t a number to lower. It’s a question you haven’t answered yet. Ten replays, one survey, and an honest look at your shipping math gets most stores 80% of the way to the answer.
Propel Replays is free up to 750 pageviews a month. Install in under 30 seconds, no theme edits, no GTM. The first replay you watch tonight will tell you more about why customers abandon than the dashboard has all year.