Most "checkout CRO best practices" articles are wrong, or at best incomplete. The reason is selection bias. Agencies publish case studies of the tests that worked, not the ones that didn't, and merchants reading those case studies can't tell which of the wins were real and which were noise from underpowered tests on small samples.
We ran fourteen actual A/B tests across eight Shopify Plus stores over six months, with proper sample-size planning and pre-registered hypotheses. AOVs ranged from $80 to $2,400. Categories included apparel, beauty, home goods, and B2B-leaning DTC. This is what actually moved the needle, what didn't, and what the answer "depends" on.
The methodology, briefly
Eight Shopify Plus stores. Each store agreed to run a subset of the tests; not every test ran on every store, but every test ran on at least four. We powered each test for a minimum detectable effect of 2% on conversion rate at 80% statistical power and 95% confidence — meaning the test ran until either the effect crossed that threshold or we accumulated enough samples to confidently call no-effect.
Tests ran for a minimum of 14 days to capture weekday/weekend variance and a maximum of 6 weeks (we cut tests at 6 weeks even if not significant, because Shopify checkout extensibility releases were causing platform variance over longer windows).
Sample sizes ranged from 8,400 sessions on the smallest test to 78,000 on the largest. Median test had ~22,000 sessions in each variant.
We aggregated results across stores using a fixed-effects meta-analysis — meaning each store's lift counts proportional to its sample, and we report the pooled effect with a confidence interval. The four wins below crossed the 95% threshold in every store. The three losses crossed the 95% threshold in the negative direction in every store. The four "depend" tests had genuinely mixed results that we now believe map to specific store characteristics.
This is not a peer-reviewed study. It is one agency's data. The results are useful as priors, not as proof.
The four wins
The first win is express checkout above the fold. Specifically: Apple Pay, Google Pay, Shop Pay, and PayPal Express buttons placed at the TOP of the checkout page, immediately after the order summary, before the email field. Mean lift across eight stores: +6.4% conversion rate. The default Shopify checkout places these buttons below the contact-info block, requiring users to scroll past the form fields they're trying to skip. Moving them above unlocked roughly 1 in 16 incremental orders.
A nuance: this win is concentrated in the mobile cohort. On desktop, the lift was +3.1%; on mobile, +9.2%. Mobile users have express-checkout payment methods set up far more often and the friction-reduction is bigger.
The second win is address autocomplete on the shipping form. Google Places autocomplete, integrated through a Shopify checkout UI extension that fires after the user types 4+ characters in the address line. Mean lift: +3.8%. The friction reduction is obvious — address entry is the single largest drop-off step in checkout, with 22% of users exiting here on average. The autocomplete cuts the median time-to-complete by 11 seconds and reduces "incomplete address" form-validation errors by 60%.
The third win is specific trust badges, not generic ones. We tested "100% Secure Checkout — SSL Encrypted" (the generic version) against "FREE 30-day returns • Ships from Texas, USA • Customer service: live chat 9-5 ET" (the specific version). The specific version won at +2.9% CVR. Generic security badges had no measurable effect. The signal that matters to users is concrete operational reassurance, not vague security theatre.
The fourth win is dynamic shipping urgency. A small banner in the checkout sidebar that says "Order in the next 2h 14m for shipping today" — with a real countdown tied to the merchant's actual cutoff time — produced a +2.1% lift across the six stores that ran it. The win is concentrated in carts above the merchant's free-shipping threshold (where the user is incentivised to complete now rather than postpone). Below the threshold, the lift was statistically zero.
The three losses
The first loss was the "one-page checkout collapse" pattern. Shopify allows checkout customisation through extensibility; we tested collapsing the standard three-step flow (contact → shipping → payment) into a single scrollable form. Across five stores, the lift was -1.7% — small but statistically significant. Users got disoriented; the visible "step 2 of 3" affordance turns out to provide useful navigation.
This is one of the most-recommended "best practices" in the CRO blog ecosystem and it didn't work in our data. Possible explanations: Shopify's three-step flow is already quite optimised, and collapsing it loses progress signalling that users genuinely use; mobile keyboards interact poorly with long forms (each focus shift on iOS scrolls the viewport); and users cognitively chunk the flow into three discrete decisions, not one.
The second loss was the cart-page exit-intent popup. -2.4% CVR. Exit-intent popups can work on collection pages or product pages — that's a separate question — but not at the cart stage. A user at the cart has decided to buy; interrupting them to capture an email or push a discount creates friction at exactly the wrong moment. The discount can also become an "I'll come back later" signal — users dismiss the popup, leave, and don't return.
The third loss was the always-visible "Free shipping over $X" header bar at the top of checkout. -0.8% CVR (small but consistent across six stores). The bar is useful on product pages where it nudges AOV; at checkout, it reads as a reminder of cost rather than a deal. If the user is below the threshold, it surfaces a missed opportunity; if above, it's just visual noise.
The four "depends"
Four tests had genuinely mixed results that mapped to store characteristics rather than test execution.
Express pay vs guest checkout default. Stores with high mobile traffic (>65%) won by defaulting to express pay. Stores with desktop-skewed B2B traffic won by defaulting to guest checkout. The right choice depends on the cohort.
BNPL (Buy Now Pay Later) position. Affirm, Afterpay, and Klarna placement. High-AOV stores ($300+) won by surfacing BNPL prominently in the cart. Low-AOV stores ($80 and below) saw -2% from prominent BNPL placement; the financing message reads as expensive-thing-warning on a low-cost cart.
Gift wrap upsell at checkout. Won on home/giftable categories (+1.4%). Lost on apparel and beauty (-0.8%). Category-dependent.
Post-purchase NPS or feedback survey. Lifted repeat purchase rate when the survey was branded as a customer service follow-up. Hurt repeat purchase rate when the survey looked like a generic NPS prompt. Framing matters more than presence.
Why most "best practices" articles are wrong
Two failure modes account for most of the bad CRO advice circulating in 2026.
First, agency case studies report wins from individual stores without controlling for sample size or external variance. A 12% lift from a 2-week test on a $300K/year store is not statistically distinguishable from random noise. The same lift would be useful evidence on a $50M store running a 6-week test — but it's almost never the same lift in the same direction at that scale, because what worked on the small store was usually sensitive to a specific cohort.
Second, "checkout best practices" frequently come from B2C-DTC stores in the AOV $50-200 range and get applied to B2B-leaning stores at AOV $500+. The behaviours are different. B2B users are buying for someone else, often on a procurement timeline, often on a desktop. The friction-reduction wins still apply but the urgency and framing wins don't transfer.
We treat any single-store case study below 20K sessions per variant as anecdote, not evidence. The A/B testing literature is clear on this: at typical CVR baselines (1-3%), 20K sessions is the minimum for detecting a 5% relative effect at 80% power. Below that, you're measuring noise.
Test design pitfalls we hit (and you will too)
Three statistical traps bit us during this study, and they bite every CRO program we audit.
The first is peeking. The merchant looks at the test dashboard on day three and sees the variant is up 8%. They ask "can we ship it?" The honest answer is no — at three days, sample size is far below threshold and the variance is wide. Stopping a test early because the early signal looks good is the single most common way to convince yourself something works that doesn't. We pre-register every test with a planned sample size and a planned end date, and we don't look at lift until the threshold is hit. Looking at lift before then is fine for sanity checks (is the variant rendering correctly? are users actually seeing it?) but the lift number itself is hidden from the merchant.
The second is novelty effects. Any change to the checkout page produces an initial bump in conversion just because the change is unfamiliar. Users who pattern-match through checkout suddenly slow down, look more carefully, and complete the purchase at a higher rate for 7-10 days. After the novelty fades, the lift either persists (a real effect) or evaporates (a novelty artifact). Tests shorter than 14 days will catch the novelty bump and miss the steady-state. We had two tests in this study that looked like wins at day 10 and turned into losses by day 28.
The third is Simpson's paradox. A test that wins on the aggregate can be losing in every individual cohort, if the cohort sizes shifted between variants. The classic case: an express-pay variant ranks higher overall, but only because the variant skewed mobile (where express-pay wins) and the control skewed desktop (where it loses). When the test ends, the merchant ships the variant. Mobile traffic continues to win, but desktop traffic loses, and the post-launch lift is smaller than the test predicted. We split-test by device cohort always, and report cohort-specific lift alongside the aggregate.
What we didn't test (and why)
Three categories of intervention we deliberately didn't test in this study, and the reasons matter.
We didn't test discount codes or coupon strategies. Discount tests are notoriously messy because the lift is partly conversion (real users who would not have bought, now buying) and partly margin transfer (users who would have bought at full price, now paying less). Untangling them requires either matched-sample contribution analysis or pre-purchase intent data, neither of which most stores have. We do help merchants design discount programs as separate engagements, but they don't fit into a clean A/B framework.
We didn't test trust-page redesigns or about-page content changes. These pages are visited too rarely (typically <5% of users) for meaningful sample sizes within a reasonable test window. The right tool for those decisions is qualitative — usability testing on 10-12 users, not A/B testing on 20K sessions.
We didn't test Shopify Functions discount API -driven price calculations against legacy script-editor-based ones. The transition from Script Editor to Functions is a forced migration, not a CRO question, and benchmarking the two against each other doesn't yield actionable advice — by the time you'd act on it, Script Editor is gone.
Running this analysis on your store
The 90-day plan we use with merchants who want to translate this into their own program:
Day 1-15: instrument. Make sure your A/B testing tool (Shopify's native experiments, GrowthBook, or a third-party) is firing correctly across the checkout pages. Test the instrumentation by running a 50/50 null test — same content in both variants — for two weeks. Confirm no statistically significant difference. If there is one, your tool has a setup bug.
Day 16-45: ship the baseline four wins. Express checkout above the fold, address autocomplete, specific trust badges, dynamic shipping urgency. These don't need to be tested individually — the meta-analysis says they each work; ship them. Track the cumulative impact in your CrUX-equivalent funnel report.
Day 46-90: run the "depends" tests on YOUR store. BNPL placement, gift wrap, default checkout type, NPS framing. Each test gets at least 14 days, ideally 28. Power them for 5% minimum detectable effect.
After 90 days, you should have shipped 4 baseline wins and have data on 2-3 store-specific decisions. At that point the marginal returns from generic CRO advice drop steeply, and the next 90 days is about your specific cohort: re-engagement flows, cart-abandonment recovery email cadence, returning-customer accelerators. That's a different study.
For the foundational layer that the CRO data sits on — checkout-stage performance specifically — the theme performance playbook covers the LCP and INP work. Slow checkout pages convert worse independently of the CRO interventions; if your checkout is loading in 4 seconds, fix that first, then run these tests.
For the B2B-flavoured version of these questions, B2B checkout extensions guide covers the Net-30, PO field, and per-account pricing patterns. The CRO landscape there is genuinely different.
If you want to run this program on your store and want help with the test design, instrumentation, or implementation of the four baseline wins, talk to us . We package this as a 90-day fixed-scope engagement under performance + CRO services . The output is a documented runbook your team can run quarterly without us, plus implementation of the baseline wins.
The most important thing this study taught us — and the reason we run it again on a new cohort every 12 months — is that the checkout CRO landscape genuinely changes with platform updates. Shopify ships new checkout extensibility primitives on a quarterly cadence; what we measured in 2024 with the legacy `checkout.liquid` is not what we measure now. Your priors should age out. Re-run the baseline.
Work with us
Thinking about your next Shopify project?
We build and migrate Shopify stores for brands that care about performance. If this article sparked something, tell us what you’re working on.
Start a conversation