Skip to content
Pixeltree

Field notes

Checkout Friction Audit: The 23 Points Costing You Sales

August 11, 2025

Checkout Friction Audit: The 23 Points Costing You Sales

Why most checkouts leak money in 23 specific places

The average ecommerce checkout abandonment rate sits somewhere between 68 and 74 percent depending on whose research you read. That number has barely moved in a decade. What has moved is the bar for what a "good" checkout looks like. A shopper who just bought sneakers on a native app yesterday arrives at your Shopify or WooCommerce checkout today expecting the same thumb-friendly, three-tap, wallet-first experience. When they hit a six-field address block and a forced account creation gate, they bounce.

Most checkout audits are vibes. Someone clicks through, says "it feels slow," and the team ships a new button color. This post is the opposite of that. It is a structured 23-point audit you can run against any Shopify or WooCommerce checkout in one sitting, grouped into a framework we call FRICTION-6. Every item has a specific thing to look at, a specific failure pattern, and a specific fix. No hand-waving.

If you want the TL;DR and then the work, here it is.

TL;DR

  • Checkout abandonment is almost never about price. It is about field count, surprise costs, and trust signals in that order.
  • The FRICTION-6 framework groups the 23 audit points into Fields, Routing, Identity, Costs, Trust, Inputs, Output, and Navigation.
  • Most stores can recover 8 to 18 percent of lost checkout sessions with a weekend of changes and zero new features.
  • Run the audit on mobile first, then desktop, then tablet. Never the other way around.

The field-count rule

The Baymard Institute has measured this across hundreds of checkouts and the number is remarkably stable: a typical US checkout shows between 14 and 15 form fields, and the achievable minimum is 8. Every field above 8 is a place where a tired thumb makes a typo, a password manager fumbles an autofill, or a shopper decides the whole thing is not worth it.

Audit points 1 through 5 live here.

1. Count every visible field. Not the ones you think are there. The ones a shopper actually sees and has to act on. On Shopify, open the checkout in an incognito window with a full cart and count: email, first name, last name, company, address 1, address 2, apartment, city, country, state, postal code, phone, shipping method radios, payment card number, expiry, CVC, cardholder name, billing same-as-shipping, marketing opt-in, terms checkbox. That is 20+ for a bad checkout. Your target is 11 or fewer before payment.

2. Collapse first name and last name into one "Full name" field. The split exists because of a 1990s database schema, not because shoppers think of themselves in two pieces. One field reduces typing time and tab count. Shopify checkout editor allows this on Plus, WooCommerce allows it with a filter on woocommerce_checkout_fields.

3. Kill the company field unless you sell B2B. If more than 5 percent of your orders are B2B, make it a conditional "Is this a business order?" toggle that reveals the field. Do not show it by default.

4. Kill the "Address line 2 / Apartment / Suite" field as a separate input. Merge it into a single address field with a one-line helper "include apt or suite number if applicable." Address autocomplete (see point 13) handles the structured split at submit time.

5. Kill the phone field unless shipping genuinely requires it. On Shopify, set phone to optional in checkout settings. On WooCommerce, unset billing_phone['required']. If your 3PL demands a phone for the label, keep it required but move it to the shipping step, not identity.

Guest vs account: stop forcing the choice at the wrong moment

Forced account creation is the single most studied checkout anti-pattern in the field. In 2008, Jared Spool published the "$300 million button" case study at a large retailer that removed forced registration and picked up that much in incremental revenue in a year. It is almost twenty years later and stores still do this.

Audit points 6 through 9.

6. Guest checkout must exist and must be the default path. Not a small link below a large "Create account" button. The form the shopper is already filling in IS the guest checkout. Shopify gets this right by default. WooCommerce requires enabling "Allow guest checkout" under WooCommerce > Settings > Accounts & Privacy.

7. Offer account creation AFTER purchase, not before. On the thank you page, one field: "Set a password to save this address for next time." Most stores see 20 to 40 percent post-purchase account creation rates with this pattern, versus 5 to 10 percent when forced upfront.

8. Do not mix "sign in" and "checkout" forms on the same screen. Returning customers click "Sign in." New customers look at a login form, panic, and leave. Keep sign-in as a small link at the top of the checkout that opens a modal or collapsible. The main form is always the fill-it-out form.

9. Remember returning customers via email. When a shopper enters an email that matches an existing account, silently pre-fill their last-used shipping address and payment method (not full card, just the saved token). Shopify does this natively through Shop accounts. WooCommerce needs a plugin or custom logic, and it is worth building.

See our companion piece on ecommerce CRO tests that beat best practices for how to A/B test the account-creation prompt without tanking your repeat-purchase metrics.

Payment method coverage

The payment method mix a shopper expects has changed faster than most checkouts have updated. In 2020, a credit card and PayPal was enough. In 2026, that same mix costs you the 18 to 30 percent of shoppers who default to a wallet (Apple Pay, Google Pay, Shop Pay) and the further 8 to 15 percent who expect Buy Now Pay Later on anything over $100.

Audit points 10 through 12.

10. Express wallets above the fold. Apple Pay, Google Pay, and Shop Pay (on Shopify) or Link (on WooCommerce via Stripe) must render as large buttons at the top of the checkout, before any form fields. One tap, biometric auth, done. These buttons also pull shipping and billing from the wallet, so you skip 90 percent of field-count problems entirely for those shoppers. On Shopify, enable accelerated checkouts in Settings > Payments. On WooCommerce, the Stripe plugin exposes payment_request_button and Apple Pay domain verification.

11. Cover the one local method your market demands. iDEAL in the Netherlands, Bancontact in Belgium, Pix in Brazil, UPI in India, Klarna across Northern Europe. Pick the one that matches your top-three countries by revenue and add it. Do not add all of them. Paradox of choice applies at the payment step too.

12. Show accepted card brand icons next to the card input. Four small logos (Visa, MC, Amex, Discover or the regional equivalent) right next to the card number field. This is a trust cue, not decoration. Shoppers with an Amex in their wallet decide in two seconds whether your store takes it. If they have to start typing to find out, some of them do not start.

If you are on Shopify and want a deeper look at how payment method ordering affects repeat purchase, our Shopify development team has benchmarks across 40+ stores.

Shipping cost transparency

The Baymard abandonment survey has asked the same question every year for a decade: "Why did you abandon?" The top answer every single year is some variant of "unexpected costs at checkout." Shipping is the biggest one. Taxes and fees are next.

Audit points 13 through 15.

13. Show shipping cost or "Free shipping" on the product page AND the cart. Not just the checkout. A shopper who adds a $40 item and sees $12 shipping at the final step feels tricked. A shopper who saw "$12 shipping, free over $75" on the product page is deciding whether to add another item to qualify. Same cost, different emotional frame.

14. Show the free-shipping threshold as a progress bar in the cart. "$23 away from free shipping" with a filling bar. This is a single component and it lifts AOV by 5 to 15 percent on almost every store we have tested it on. Shopify has several free and paid apps; WooCommerce has wc_cart_progress snippets.

15. Surface delivery date estimates, not just shipping costs. "Standard: $6, arrives Apr 28 to Apr 30" beats "Standard: $6" every time. Shoppers buy against a calendar, not a shipping tier. If your 3PL can expose cut-off times, reflect them: "Order in the next 2h 14m for delivery by Friday."

Address autocomplete belongs here too. Google Places, Loqate, or Shopify's built-in address autofill collapse six fields into one in most cases. The shopper types "221 Baker" and taps a suggestion. Address 1, city, state, and postal code populate. Error rate on addresses drops by roughly half. If you are running WooCommerce without autocomplete, that is a same-afternoon fix.

Error and validation UX

Bad error handling is the most rage-quit-inducing part of a checkout. A shopper fills in 14 fields, taps "Place order," and gets a red banner that says "There was a problem with your submission" without specifying which field. They scroll, find nothing highlighted, retry, fail again, leave.

Audit points 16 through 19.

16. Validate on blur, not on submit. When a shopper tabs out of the email field, validate then. Red border and a specific message ("This does not look like a valid email") immediately, not after they have filled in 13 more fields and hit submit.

17. Never clear the form on error. This sounds obvious. You would be surprised how many custom WooCommerce themes silently blank the card number field on a decline because the re-render loses state. Test a deliberately failing card (4000 0000 0000 0002 in Stripe test mode) and watch what happens to the other fields.

18. Inline card errors with issuer language, not gateway language. "Your card was declined by your bank. Try another card or contact your bank." not "stripe_error: card_declined: generic_decline." Stripe Elements and Shopify's own card fields expose human-readable messages; use them.

19. Preserve cart and form state across browser refresh. LocalStorage the cart at minimum. A shopper whose phone backgrounded the browser and killed the tab should come back to a populated checkout, not a cleared one. Shop Pay and Woo's persistent cart cover some of this. Verify it works on your theme.

Mobile thumb zones

Over 70 percent of ecommerce traffic is mobile. Over 55 percent of ecommerce revenue is mobile. If your checkout was designed on a 27-inch monitor, it was designed for the minority.

Audit points 20 through 23.

20. The primary CTA must be in the bottom third of the screen, reachable by a right-handed thumb. Not floating top right. Not mid-screen requiring a grip shift. Sticky-bottom "Pay $84.20" button with the amount rendered in the button. Both Shopify checkout and Woo Blocks checkout support this out of the box; custom themes often break it.

21. Input fields must trigger the right keyboard. type="email" for email, inputmode="numeric" and pattern="[0-9]*" for card number and CVC, type="tel" for phone, autocomplete="cc-number" for the card field to trigger wallet autofill. A shopper who has to switch keyboard modes to type their CVC is a shopper who is thinking about your checkout instead of their purchase.

22. Do not cover the submit button with the keyboard. On iOS Safari, a focused input pushes the viewport up but a fixed-position button can end up underneath the keyboard. Use env(safe-area-inset-bottom) and position: sticky with scroll padding. Test on a real iPhone, not just Chrome DevTools' responsive mode.

23. Tap targets must be at least 44 by 44 CSS pixels. Apple's HIG minimum, reconfirmed by Google's Material spec. Radio buttons for shipping methods, payment method selectors, and the "edit cart" link all tend to be too small on custom themes. Measure them.

Our product page CRO patterns post covers the thumb-zone question upstream of checkout, since the same rules apply to add-to-cart buttons.

The FRICTION-6 framework

The 23 points above map to six categories. Memorize these and you can audit any checkout in your head.

F — Fields. Count, collapse, kill. Points 1 through 5. R — Routing. Guest vs account, returning-customer flow. Points 6 through 9. I — Instruments. Payment methods and wallet coverage. Points 10 through 12. C — Costs. Shipping, tax, and delivery transparency. Points 13 through 15. T — Trust signals and error handling. How you talk to shoppers when things go wrong. Points 16 through 19. I/O — Input and Output on mobile. Thumb zones, keyboards, viewport. Points 20 through 23.

The sixth category some people expect to see is "Navigation," meaning the cart-to-checkout-to-thank-you flow. We fold it into Routing because in practice the issues overlap.

Typical lift when fixed

The numbers below are medians from stores we have worked on or public case studies. Your results will vary with traffic mix, AOV, and starting baseline. These are not promises; they are reference points so you can prioritize.

Friction type fixedTypical checkout completion lift
Forced account creation removed10 to 30 percent
Field count reduced from 15+ to 11 or fewer6 to 12 percent
Express wallets added above the fold8 to 20 percent on mobile
Shipping cost shown before checkout4 to 9 percent
Delivery date estimates added3 to 7 percent
Address autocomplete added2 to 5 percent plus error reduction
Inline field validation replacing submit-only3 to 6 percent
Sticky bottom CTA on mobile4 to 11 percent on mobile
Local payment method added in top market5 to 15 percent in that market

Stack-ranked like this, the first five items on the list cover most of the gap between a bad checkout and a good one. The rest is compounding.

What to do this week

If you read this and want to act, do this in order. Not all of it. This in this order.

  • Monday: run the 23-point audit on your own checkout on a real phone in an incognito session with a full cart. Record a video. Note every point that fails.
  • Tuesday: fix the field-count issues (points 1 through 5). These are almost always config changes, not dev work, on both Shopify and WooCommerce.
  • Wednesday: enable express wallets above the fold and confirm Apple Pay domain verification (point 10). Test with a real Apple Pay card on a real iPhone.
  • Thursday: add shipping cost and free-shipping threshold to the cart (points 13 and 14). Pick one plugin or snippet and ship it.
  • Friday: turn on guest checkout and move account creation to the thank-you page (points 6 and 7). Watch your completion rate over the next 14 days.

FAQ

Does Shopify Plus let me edit the checkout enough to do all of this? Yes. Shopify Plus exposes checkout.liquid and Checkout Extensibility via custom apps and UI extensions. Non-Plus Shopify stores can still do 18 of the 23 points through Settings, theme edits, and Checkout UI extensions. The remaining 5 (field-level changes, custom validation) require Plus.

What about WooCommerce Blocks vs the legacy checkout? Use Blocks if you are starting new. It is faster, mobile-better out of the box, and easier to extend with filters like woocommerce_blocks_checkout_update_order_from_request. Legacy checkout is fine if you already have it working but most of the mobile points (20 through 23) require more custom CSS there.

How do I know which of the 23 points is my biggest leak? Funnel analytics. Shopify exposes checkout step completion in Analytics > Reports > Conversion by checkout step. WooCommerce needs GA4 with enhanced ecommerce events or a plugin like Metorik. Find the single step with the largest drop-off and start there, not at the top of this list.

Will any of this hurt repeat purchase rate? Removing forced account creation can feel like it would. In practice, post-purchase account creation with a one-field password prompt produces more accounts than forced creation, because fewer shoppers abandon before becoming customers at all. More first purchases is a bigger number than a marginally higher account rate on a smaller base.

How does this work apply to headless or custom checkouts? The framework is identical. Headless gives you more control, which means more ways to break things and more ways to fix them. Our CRO team and WooCommerce development team run this audit on headless builds weekly; the 23 points are platform-agnostic. The implementation details differ, the failure modes do not.

One-page resource

Get the Vendor Recovery Checklist.

The 12 steps every displaced maker should take in the next 30 days. Delivered in your inbox.

No spam. Unsubscribe any time.

Ready to put this into motion?

Book a 15-min call