Conversion
How to audit checkout abandonment step by step
Where buyers leave checkout, why, and what to change first: an audit using GA4 funnels, platform checkout reports and a walk through every stage on a phone.
By CartKernel · Published
Checkout abandonment is a step-level problem, and a single abandonment percentage cannot tell you which step. The audit below produces a number for every stage, a segment that isolates where the loss concentrates, and a cause list for each stage that you work through on a real phone. The output is a ranked list of fixes with revenue attached, which is a better starting point than a redesign.
Step 1: name the steps the way the platform records them
Checkout on most platforms fires a predictable sequence of events, and the audit follows them. On Shopify and in GA4 that sequence is checkout started, shipping information added, payment information added, and purchase. One-page checkouts still emit the same events as the buyer moves through sections. WooCommerce checkouts often collapse the middle steps into one page, so the sequence is checkout started, then purchase, with the drop in between needing form-level tracking to explain.
Separate the two abandonment figures before you start. Cart abandonment counts buyers who added something and never began checkout. Checkout abandonment counts buyers who began and did not finish. They have different causes and different fixes, and combining them hides both.
Step 2: pull the numbers from two sources and reconcile them
Build a funnel exploration in GA4 with the four events in order, closed funnel, over the last ninety days. Then open the platform’s own checkout figures: on Shopify the conversion breakdown reports sessions that added to cart, reached checkout and converted. The two will not agree, because consent choices and blockers thin out GA4, and why GA4 shows less than the store is worth understanding before you trust either. Use the platform’s figures for totals and GA4 for the step-by-step shape and the segments.
An illustrative shape, made up to show the method: 10,000 sessions, 800 reach checkout, 520 add shipping information, 400 add payment information, 300 purchase. The losses are 35 percent at the address step, 23 percent at shipping method, and 25 percent at payment. Each of those is a different problem, and the biggest is not always the cheapest to fix. If the events are not firing cleanly, that is a GA4 ecommerce tracking job before it is a conversion job.
Step 3: segment before you diagnose
Run the same funnel by each of these and look for the segment whose step conversion is furthest from the rest:
- Device, which is where most stores find their first answer.
- New against returning buyer.
- Traffic source, because paid social sessions behave differently from search sessions.
- Shipping country, which surfaces regions with poor rates or missing options.
- Cart value band, especially the band just under a free-shipping threshold.
- Discount code used or not.
- Product category in the cart, which catches items with shipping restrictions.
A store where mobile buyers from paid social drop at the address step has a different task from one where returning desktop buyers drop at payment. The segment is what turns the funnel into a diagnosis.
Step 4: walk each stage with the cause list
Now put the phone in your hand and go through the checkout as the losing segment would, cart already loaded. At each stage, check every cause below.
From cart to checkout started
- Shipping cost appears for the first time in the cart, or does not appear at all until the address is entered.
- The route to checkout is unclear: a drawer with a small link, a page with two competing buttons, express wallets above the main button.
- A discount code field invites the buyer to leave and search for a code.
- Cart edits are clumsy, so a buyer who wants to change a size leaves instead.
- Login is prompted before checkout, or the guest option is hidden below it.
Contact and address
- An account is required, or the guest path reads as second class. Whether checkout should require an account has a clear answer for most stores.
- No address autocomplete, and postal code validation that rejects valid formats.
- Fields without the autocomplete attributes browsers need to fill them, so the buyer types every line.
- A phone number demanded with no explanation of why.
- The buyer’s country missing from the dropdown, which is an international sales question rather than a form question.
- Errors shown at the top of the form while the buyer is at the bottom.
Shipping method
- The rate is higher than the buyer expected from the product page or the cart.
- Only one method, and it is the expensive one.
- No delivery estimate next to the price.
- The free-shipping threshold was never communicated, so the buyer under it feels a penalty. The free shipping threshold calculator helps set a level the margin can carry, and whether free shipping lifts conversion depends on how it is presented as much as whether it exists.
Payment
- Declines from the gateway, visible in the platform’s payment logs, often concentrated on one card type or one country.
- The wallets and local methods that segment uses are absent.
- Tax appears for the first time here and changes the total.
- Currency at payment differs from the currency shown on the product page.
- The card form breaks browser autofill or rejects spaces in card numbers.
- Authentication challenges that time out on slow connections.
- Error messages that say something failed without saying what.
Review and confirmation
- The order summary disagrees with the cart.
- A final surprise line item.
- A slow confirmation page that the buyer refreshes, creating duplicate orders or a fear of them.
Step 5: check the layer underneath
Some abandonment is technical. Load the checkout on a throttled connection and look for slow script bundles, layout shifts as fields load, and third-party apps injecting into checkout. Read the console for errors. Check the payment gateway’s status page for outages on the dates with the worst drop. On Shopify, everything customized in checkout now lives in checkout extensions, and an extension that fails quietly can block a step for a subset of buyers without any error the store sees.
Step 6: read the abandoned checkouts one by one
The platform keeps a list of abandoned checkouts with the cart contents, the step reached, the country and whether a recovery message went out. Read fifty of them. Patterns appear quickly: the same product with a shipping restriction, one province with no rate, a cart value that always sits just below the threshold, one payment method that never completes. This is the qualitative check on everything the funnel suggested.
Step 7: rank the fixes by revenue at stake
For each cause you have confirmed, estimate the revenue it holds: the sessions arriving at that step, multiplied by the share you believe the fix would recover, multiplied by the conversion rate of the steps that follow, multiplied by average order value. The estimate will be rough, and it does not need to be precise to sort the list. A missing delivery estimate at the shipping step and a declined card type at payment can then be compared on one scale rather than argued about.
Step 8: ship the obvious, test the rest
Bugs, missing methods and broken autofill get fixed without a test. Changes of layout, ordering and copy get tested where traffic allows, and how much traffic a test needs decides whether that is realistic for your store. Everything else ships in sequence with the funnel watched week by week.
Run the recovery flow in parallel, not instead. A well-built abandoned cart flow brings some buyers back, and how many messages it should have is a separate question. It does not fix the step that lost them.
The audit worksheet
| Stage | Metric | Segment with the worst figure | Confirmed causes | Revenue at stake | Fix and owner |
|---|---|---|---|---|---|
| Cart to checkout | Share of carts that begin checkout | ||||
| Contact and address | Share of started checkouts that add shipping info | ||||
| Shipping method | Share that add payment info | ||||
| Payment | Share that complete | ||||
| Technical | Errors, load time, gateway declines |
Fill it in once a quarter. A high checkout abandonment rate is almost never one thing, and the worksheet is what stops the fix being a guess. When it needs someone to work through it and make the changes inside the store, that is what our checkout optimization work is.