Last updated: November 4, 2026
Say 1,000 people add a product to the cart this month, 400 of them reach the checkout page, and 280 pay. One report calls that a 72% abandonment rate and sends you to rewrite your reminder emails. A second report calls it a 30% checkout abandonment rate and sends you to fix the payment step. Both numbers come from the same month, and they point at different problems with different fixes. Cart abandonment vs checkout abandonment is not a vocabulary question. It decides whether you spend next week on product pages and shipping prices, or on the checkout form and the payment gateway.
This guide gives the two definitions, shows how WooCommerce itself records each stage, explains why mixing them distorts your rate, works through the arithmetic with round numbers, and matches each stage to the fixes and the recovery emails that apply to it.
Key takeaways
- Cart abandonment: the shopper added to cart and left before starting checkout. Checkout abandonment: the shopper started checkout and left before paying.
- WooCommerce records neither as a status. A cart is a session, a started checkout becomes a pending payment order only when submitted, and nothing in between is kept without a plugin.
- One combined rate hides which stage is leaking. Measure the two separately and the fix usually becomes obvious.
- Across 50 studies the documented average cart abandonment rate is 70.22% (Baymard, 2025). A checkout abandonment rate is a smaller number measured from a smaller group.
- Cart abandoners respond to product and shipping changes. Checkout abandoners respond to form, trust and payment changes, and to a reminder with a link back to a saved cart.
What does cart abandonment mean?
Cart abandonment is when a shopper adds at least one product to the cart and leaves the store without starting checkout. It measures intent that did not turn into an attempt to buy. A high cart abandonment rate points at price, shipping cost, delivery time, comparison shopping or simple browsing, not at the checkout form.
The definition most payment companies use is the same. Stripe's guide, updated July 2026, says cart abandonment "is when an online shopper abandons their purchase without ever starting checkout". The important word is "starting". The moment a shopper opens the checkout page, they leave this category and enter the next one.
A large share of cart abandonment is not a problem you can fix. The Baymard Institute reports that 42% of US online shoppers abandoned a cart because they were "just browsing". Among the rest, the top reasons it lists are extra costs too high (40%), delivery too slow (20%), not trusting the site with card details (19%), being asked to create an account (18%), and a long or complicated checkout (17%). Notice that only the last three are checkout problems. The first two happen before checkout starts.
What does abandoned checkout mean?
Checkout abandonment is when a shopper starts the checkout, usually by opening the checkout page or typing an email or address, and leaves before the payment goes through. It measures a buying attempt that failed. A high checkout abandonment rate points at the form, the shipping options shown at checkout, trust, account requirements, or the payment step itself.
Stripe defines it as when a shopper "enters the checkout funnel, starts filling in shipping or payment details" and exits before the transaction completes. In WooCommerce terms this group splits again, and the split matters for recovery:
- Opened checkout, typed nothing, left. Invisible to core WooCommerce. A plugin that records the visit sees it as a checkout page view with no order.
- Typed an email or address, left. Still invisible to core WooCommerce, but a recovery plugin that reads fields as they are typed now has an address to email.
- Submitted the form, payment never completed. Visible in core WooCommerce as a pending payment order, which the order statuses documentation describes as received but with no payment made, "generally awaiting customer action".
- Submitted the form, payment declined. Visible as a failed order.
How does WooCommerce record each stage?
WooCommerce keeps a cart as part of the shopper's session, saves it to the account for logged-in customers, and creates an order only when the checkout form is submitted. There is no abandoned cart record, no abandoned checkout record and no "abandoned" status. The statuses it has are Draft, Pending payment, Processing, Completed, On hold, Failed, Cancelled and Refunded.
| Stage | Shopper did | What core WooCommerce keeps | What a recovery plugin adds |
|---|---|---|---|
| Cart abandonment | Added to cart, never opened checkout | Session cart (temporary). Saved cart for logged-in customers only | A saved cart record with products and value, time of last activity, source of the visit |
| Checkout abandonment, early | Opened checkout, left before submitting | Nothing | The same saved cart plus the email if it was typed, a reminder email with a link back |
| Checkout abandonment, late | Submitted checkout, did not pay | Pending payment order, or Failed order | A payment link for the pending order, a reminder |
| Recovered | Came back and paid | Processing or Completed order | The order counted as recovered, only once paid |
Two details from the WooCommerce documentation are worth knowing. The block checkout creates a draft order at place-order time, and a daily cleanup deletes inactive drafts, so drafts are not a list you can use. And the Order Attribution feature records the source of an order only when the order is placed, so an abandoned checkout has no attribution data in core. The guide to seeing abandoned carts covers what you can and cannot find in the admin.
Why does mixing the two distort your rate?
Because the combined number is dominated by browsers who never meant to buy, and it hides a checkout problem that affects a much smaller, much more valuable group. A store can have a normal 72% combined rate and a broken checkout at the same time, and the combined number will not move enough to tell you.
A worked example, not a customer result. Two stores each have 1,000 carts and 280 orders, so both show a 72% combined abandonment rate.
| Store A | Store B | |
|---|---|---|
| Carts started | 1,000 | 1,000 |
| Reached checkout | 400 | 700 |
| Paid orders | 280 | 280 |
| Cart abandonment rate (left before checkout) | 600 of 1,000 = 60% | 300 of 1,000 = 30% |
| Checkout abandonment rate (left during checkout) | 120 of 400 = 30% | 420 of 700 = 60% |
| Combined rate | 72% | 72% |
Store A loses people before checkout: shipping cost, price, delivery time. Store B gets people to checkout easily and loses six in ten of them there, which is a form or payment problem. The same combined rate, the opposite fix. If both owners read only the combined number, Store B spends a month on product photos while its checkout keeps failing.
What is a good cart abandonment rate?
For cart abandonment, anything near the documented average of 70.22% is normal, and stores selling considered or expensive products run higher. For checkout abandonment there is no equally well-documented benchmark, so compare your own rate week to week and treat any rise as a signal. A checkout rate above about half of those who start is worth investigating on any store.
Baymard's average is calculated from 50 studies and was last updated in September 2025. It measures cart abandonment in the broad sense, so it is the figure to compare your combined or cart-stage rate against, not your checkout-stage rate. Stripe's guide and most others cite the same figure. No equally sourced average exists for checkout abandonment alone, which is one more reason to track your own.
How to measure each one in WooCommerce
You need three counts for a period: shoppers who added to cart, shoppers who reached checkout, and paid orders. Core WooCommerce gives you only the third. A conversion funnel or a cart recovery plugin gives you the first two. Then cart abandonment is one minus checkout reached over carts, and checkout abandonment is one minus orders over checkout reached.
- Pick a period of at least a week so weekday patterns do not skew it.
- Read "added to cart" visits from your funnel report. In StorePinger this is the conversion funnel step after the product page, and it counts guests as well as logged-in shoppers.
- Read "reached checkout" from the same funnel.
- Read paid orders from WooCommerce > Analytics > Orders, with the default settings that exclude pending, cancelled and failed.
- Cart abandonment rate = (carts minus checkout reached) divided by carts.
- Checkout abandonment rate = (checkout reached minus paid orders) divided by checkout reached.
- Split both by device and by source. A checkout rate that is fine on desktop and terrible on mobile is a form layout problem. A cart rate that is terrible from one ad campaign is a landing page or price promise problem.
Write the two rates down weekly. The absolute numbers matter less than the direction, and a change in one rate while the other holds still is the clearest signal a store gets.
Which fixes apply to which stage?
Cart abandonment responds to showing total cost early, clear delivery times, visible returns terms and product page detail. Checkout abandonment responds to guest checkout, fewer fields, the expected payment methods, visible trust signals and a checkout that works on a phone. Applying checkout fixes to a cart problem, or the reverse, wastes the effort.
| Reason (Baymard, share after excluding browsing) | Stage it hits | Fix |
|---|---|---|
| Extra costs too high (40%) | Cart, and early checkout when shipping is only revealed there | Show shipping and tax estimates on the product and cart pages, offer a free-shipping threshold |
| Delivery too slow (20%) | Cart | State delivery dates on the product page, offer a faster option |
| Didn't trust the site with card details (19%) | Checkout | Known payment methods, visible security and returns information, a clean checkout design |
| Site wanted an account (18%) | Checkout | Enable guest checkout |
| Checkout too long or complicated (17%) | Checkout | Remove optional fields, one page, autofill-friendly |
| Website errors or crashes (17%) | Checkout | Test checkout on a phone weekly, watch session recordings of failed checkouts |
The guide to reducing cart abandonment goes through each fix in detail. StorePinger's conversion funnel shows the step where shoppers leave, and its session recordings, stored on your own hosting with inputs masked, show what a shopper saw on that step.
Which recovery email applies to which stage?
Only shoppers you can identify can be emailed, which in practice means logged-in customers and guests who typed an email during checkout. So recovery emails are mostly a checkout abandonment tool. For cart abandonment the lever is a "save your cart" prompt that collects an address before checkout, and the product and shipping fixes above.
In StorePinger the sequence is two automatic reminder emails, 3 and 24 hours after the cart goes quiet by default, each with a one-click link that restores the cart, plus a month-start reminder. Shoppers who are leaving before checkout see a "save your cart" email box, which is how a cart-stage abandoner becomes someone you can write to. Coupons are separate and never sent automatically: you choose a discount and the carts it applies to, and each shopper gets a unique one-time coupon that expires. Our abandoned cart email examples show wording for each message, and the cart recovery page explains the flow.
For the late checkout stage, a pending payment order, the right message is not a reminder but a payment link. StorePinger sends payment links for pending and draft orders so the shopper can pay without rebuilding the cart.
How do the two stages look in a live store?
In a live view, cart abandonment is a visitor with items in the cart who navigates away or goes quiet. Checkout abandonment is a visitor sitting on the checkout page for several minutes, or leaving it. Watching a few of each for a week teaches you more about the difference than any definition, because you see what the shopper did just before leaving.
A worked example, not a customer result. On a Tuesday afternoon the live visitors view shows 14 people on the store. Three have a product in the cart and are reading other product pages: that is normal browsing, and two of them will leave with the cart full. One has been on the checkout page for four minutes with a $160 cart. If that visitor leaves, the cart is saved and the first reminder goes out automatically. The session recording, when you watch it the next morning, shows the shipping options loading twice and a postcode field rejecting a valid postcode. That is a checkout abandonment with a cause you can fix in an hour, and it would have been invisible in a combined rate.
The same live view tells you which source the abandoners came from. If most of the checkout abandonment comes from one paid campaign, the campaign is promising something the checkout does not deliver, such as free shipping. Sales by source shows orders and revenue per channel, so the campaign's real return is visible next to its abandonment.
Does the block checkout change anything?
Not the definitions, but it changes what core WooCommerce keeps. The block checkout creates a draft order when the shopper submits, and a daily cleanup removes drafts that are no longer active, so an abandoned block checkout leaves no lasting record. A recovery plugin that reads the email as it is typed works on both the classic and the block checkout.
StorePinger works with the classic and block WooCommerce checkout. Whichever one you use, check your plan covers cart recovery: saving carts, the reminder emails, the save-your-cart box, cart offers and payment links are Pro and Agency features. The free plan covers live visitors, the world map, visitors by country, today's visitors and page views.
Common mistakes
- Reporting one combined rate. It hides which stage leaks. Report two.
- Comparing your checkout rate with the 70% average. That average is for carts. Your checkout rate should be far lower.
- Treating browsers as a problem. Baymard's 42% "just browsing" share is not recoverable by any checkout fix.
- Sending reminder emails as the only response to cart-stage abandonment. Most cart-stage abandoners never gave you an address.
- Revealing shipping at checkout. It moves a cart problem into the checkout numbers and makes the checkout look worse than it is.
- Measuring on desktop only. Most checkout failures are mobile layout failures. Split by device.
- Counting a recovery before it is paid. A clicked link is not an order. Count recovered orders only once paid.
Conclusion
Cart abandonment and checkout abandonment are two leaks in two different pipes. The first is mostly intent that never became an attempt, driven by cost, delivery and browsing, and it is normal for it to sit near 70%. The second is an attempt that failed, driven by the form, trust and payment, and it should be far lower. WooCommerce records neither on its own, so the first job is to get the three counts, carts, checkouts and orders, from a funnel or a recovery plugin and to calculate both rates weekly. Then match the fix to the stage. If you want the funnel, the saved carts, the reminders and the payment links in one place inside WordPress, the StorePinger cart recovery page shows how the pieces fit together, and the sales by source report tells you which channel's shoppers abandon most.