· · cro

The complete guide to Shopify CRO

The complete guide to Shopify CRO

Shopify CRO — conversion rate optimization on Shopify — is the practice of finding where your store leaks visitors and systematically fixing the leaks. It is not “running A/B tests.” A/B testing is one tool of many, and for most Shopify stores it’s the wrong first tool. The first tool is looking: at your funnel ratios, at session replays, at heatmaps, at what your customers actually say. CRO is what you do with what you see.

This guide is the one I wish I’d had when I was running my first store. It covers what Shopify CRO actually is, the five surfaces where conversion gets won or lost, how to figure out where your specific leak is, the dozen fixes that move conversion most often, when formal testing is worth it, when to hire help, and a 30-day plan you can start tomorrow.

I’ll be honest where the data is honest and skeptical where it deserves skepticism. There’s a lot of generic CRO content on the internet that wasn’t written by anyone who actually ships on Shopify. This isn’t that.

What Shopify CRO actually is — and what it isn’t

CRO has a public-relations problem. The phrase has been gobbled up by agencies who sell month-long A/B testing engagements, and by SaaS companies that need you to believe their tool is what unlocks growth. The result is that “Shopify CRO” gets used as shorthand for “running experiments on button colors.”

That’s not what it is. CRO on Shopify is the discipline of:

  1. Knowing your funnel ratios at the surface level (sessions → ATC → checkout → purchase).
  2. Finding the biggest leak in that funnel.
  3. Watching real visitors at the leak step until you understand why it’s leaking.
  4. Shipping the fix.
  5. Verifying the fix actually moved the number.
  6. Going back to step 2.

Most of that is observation work, not experimentation. The “test it” step matters once you’ve burned through the obvious friction — but if you’re under $1M GMV/year, you almost certainly have not. The merchants who treat CRO as “watch and fix” outpace the ones who treat it as “test and iterate,” because the watch-and-fix loop ships a real change every week, while the test-and-iterate loop ships one statistically-valid change every quarter and the rest of the obvious problems sit there bleeding revenue.

A useful working definition: Shopify CRO is the work of removing reasons not to buy. Sometimes that’s a copy change. Sometimes it’s a checkout setting. Sometimes it’s a product that’s wrong for the audience you’re paying to send. Always it starts with looking.

The five surfaces that move Shopify conversion

There are five places where conversion gets made or broken. Most stores that have stuck conversion have a problem on exactly one of them — but they spend their effort on the wrong one because they haven’t diagnosed which.

1. Traffic quality (audience–store fit)

If the wrong people are landing on your store, no amount of on-page work will move conversion. This is the most-missed surface, because the dashboard shows a healthy session count and you assume the problem is the store.

Look for:

  • High bounce rate across the board with very low time-on-page.
  • Conversion rate that’s roughly equal across every product page (suggesting the visitor mix, not the page, is the problem).
  • Paid traffic that converts dramatically worse than organic.
  • Traffic spikes from sources that aren’t your buyers (a viral Reddit thread, a TikTok creator with the wrong audience).

What surfaces it: Shopify Analytics → Acquisition → Sessions by traffic source, segmented by conversion rate. If your paid social converts at 0.1% and your direct traffic converts at 3%, the problem isn’t the store; it’s the audience the ads are reaching.

What fixes it: cut the channels that don’t convert before “optimizing” them. Watch where post-click visitors actually go on your store using session replay. If everyone bounces from the landing page they hit, the ad creative is mismatched to the page; that’s the upstream fix.

If this is your problem, we wrote a longer take on diagnosing it.

2. Product detail page (PDP)

The PDP is where most Shopify conversion gets won or lost. Visitors who land on a PDP and don’t add to cart are doing one of three things: they don’t trust you yet, they can’t figure out which variant they want, or they hit a friction event you don’t know exists.

Look for:

  • Add-to-cart rate under ~3% on PDPs from warm traffic.
  • Scroll depth that gets to the reviews section and bails.
  • Rage clicks on variant selectors, swatches, or quantity controls (if your tooling surfaces them).
  • Repeated PDP-to-PDP navigation in the same session — visitors shopping but not buying.
  • Mobile add-to-cart rate that’s noticeably worse than desktop.

What surfaces it: click and area heatmaps on your top three PDPs to see what visitors engage with and what they ignore; session replay to watch what happens between landing and leaving.

What fixes it: most PDP wins come from a small, predictable list — reviews above the fold, real product photography, plain-language ship times, return policy linked from the PDP, mobile variant pickers that work with your thumb instead of against it. The 12-fix list below covers the specifics.

3. Cart drawer + cart page

The cart is the second-most-leaky surface and the most overlooked. Visitors who reach the cart wanted to buy, and most of them still leave. The cart is also where merchants tend to add the most stuff — upsells, free-shipping bars, recommended products, recently viewed — and every additional element is another reason for the visitor to get distracted or stuck.

Look for:

  • Cart-to-checkout rate below ~70%.
  • Mobile cart abandonment far higher than desktop.
  • Cart-page sessions that scroll up and down without proceeding (something is making them hesitate).
  • Discount-code field that visitors interact with but never successfully apply.

What surfaces it: replays filtered to “added to cart, didn’t reach checkout.” Watch ten on mobile.

What fixes it: cart drawers benefit from fewer elements, not more. The free-shipping threshold notice (if you have free shipping at all) is the one positive addition. Everything else — product recommendations, recently-viewed, upsell modals — should earn its place by improving conversion in your data, not by being trendy.

4. Checkout

If you’re on Shopify, you’re using Shopify’s checkout, which is one of the best in the business. That doesn’t mean it’s friction-free for your customers. The checkout drop-off pattern in most stores has nothing to do with Shopify and everything to do with surprise shipping costs, missing payment options, and mobile-keyboard issues.

Look for:

  • Reached-checkout-to-purchase rate below ~40% (the Littledata Shopify benchmark sits around 47% for established stores).
  • Mobile-specific drop-off (desktop converts fine; mobile doesn’t).
  • High abandoned-checkout count in Shopify Admin.
  • Rage clicks on the address field, payment selector, or discount-code input.

What surfaces it: Shopify’s own analytics gives you the ratio. Replays filtered to “abandoned checkout, mobile” tells you why.

What fixes it: address autocomplete that works on mobile, multiple payment options enabled (Shop Pay, Apple Pay, Google Pay, PayPal), shipping shown before checkout, and discount-code field placement that doesn’t break the order summary on mobile. We have a deeper take in Shopify mobile checkout friction.

5. Post-purchase / retention

Most CRO content stops at “they bought.” That’s a mistake. Repeat-purchase rate is the conversion ratio that compounds — a 10% lift on first-time conversion is great; a 10% lift on second-purchase rate makes you a much more valuable business.

Look for:

  • 60-day repeat purchase rate. (Industry varies wildly; for non-consumables, 20–30% is decent.)
  • Email-capture rate at checkout.
  • Time between first and second purchase.
  • Whether your post-purchase email actually gets opened and clicked.

What surfaces it: Shopify Analytics’ returning-customer report; your email tool’s flow analytics.

What fixes it: a simple, useful post-purchase email flow (order confirmation, shipping update, “how it’s going” check-in two weeks in), a real reason to come back (subscription, refill cadence, related product), and not over-emailing the customer who just bought.

This guide is mostly about the first four surfaces, since they’re where most stuck-conversion stories live. Mention this fifth one because if your retention is broken, paid-acquisition CRO won’t save you.

The “where is the leak?” framework

Every Shopify store has limited time. The single biggest CRO mistake is spending that time on the wrong surface. So before you ship a single fix, figure out where you’re leaking most.

The framework is four tools, in order:

1. Shopify Analytics — the ratios. Open Online Store Conversion Over Time. Note the three numbers: sessions → reached cart, reached cart → reached checkout, reached checkout → purchase. The lowest ratio is your biggest leak. That’s your surface.

2. Session replay — the why. Now go to that surface and watch ten replays of visitors who didn’t make it through. You’ll see the same friction event repeat across multiple sessions. That’s your fix candidate. Replays are the unfair advantage in CRO; the merchants who watch them ship better fixes than the ones who don’t, every time. We covered the basics in What is session replay? and the friction-detection angle in Rage clicks and dead clicks.

3. Heatmaps — the where on the page. Once you have a hypothesis from replays, confirm it with a click or area heatmap. If you think the size selector is broken on mobile, the click heatmap will show you whether visitors are clicking it at all and where their clicks land. We wrote about what heatmaps actually show on Shopify stores for the basics.

4. Surveys — the what they’re trying to do. When the replay doesn’t quite explain it, ask the visitor. Surveys triggered on specific pages or after a certain time on page can ask “what’s stopping you from buying?” or “did you find what you were looking for?” The answers are remarkably consistent inside a single store, and they often surface the real objection — usually something like “I wasn’t sure about the return policy” — that the merchant didn’t think to address. Propel’s survey tool supports page, product, and time-on-page triggers.

The four-tool stack is honest: each tool answers a different question, and you need all four (sometimes more, sometimes fewer) to get from “the conversion rate is bad” to “here’s the fix.” If you’re picking just one tool to start with, pick session replay — it’s the one that turns vague hypotheses into specific fixes.

A note on competitive tooling: Shopify CRO can be done with a lot of different stacks. If you’re choosing between session-replay tools, we wrote an honest comparison of the three you’ll see most. We make Propel Replays; we’ll tell you when one of the others is the better fit for you.

The 12 most common Shopify CRO fixes that actually move conversion

These are the changes that, in my experience and across the merchants I talk to running Replays, move conversion most often. None of them require a redesign. Most can ship in a single afternoon. For each one I’ll tell you what it is, why it works, and how to verify it actually moved the number — the verification step matters because half the “best practices” you read online don’t survive contact with your specific store.

1. Show shipping cost before checkout, not after

Shipping sticker shock at checkout is the single most cited reason for cart abandonment in surveys of consumers. The Baymard Institute’s checkout abandonment research puts “extra costs too high (shipping, tax, fees)” at the top of the list of reasons consumers gave for abandoning, at 48% in their most-recent compilation.

The fix: a shipping estimator on the cart page or drawer, or a clearly stated free-shipping threshold, or a flat-rate shipping line in the product copy. Anything is better than “they find out at checkout.”

How to verify: track abandoned-checkout rate week-over-week. The drop after the change is usually visible within a week if you have meaningful traffic.

2. Real product photography on your bestseller

Stock product photography reads as “dropshipped.” Even if your product is genuinely high-quality, a stock-style shoot kills trust. The bestseller is the place to spend the photography budget — every other product can be cleaned up later.

The fix: lifestyle shots, scale shots (next to a hand or familiar object), one shot of detail that proves the quality. Three good photos beat ten generic ones.

How to verify: PDP add-to-cart rate before and after. Watch ten replays on the new PDP and look for whether visitors actually scroll through the photo carousel — they will, if the photos are interesting.

3. Reviews above the fold on top PDPs

Reviews are a trust signal, and trust signals only work if the visitor sees them before deciding. Below-the-fold reviews don’t help the 60% of visitors who decide in the first ten seconds.

The fix: star rating + review count near the title, with a few real review snippets visible without scrolling. Real photos in reviews beat anything else.

How to verify: scroll-depth measurement on PDP and add-to-cart rate. If add-to-cart rate goes up and scroll depth doesn’t change, the change is doing what you wanted.

4. Mobile variant picker — visible swatches, not dropdowns

Variant dropdowns on mobile are a top-three friction event in the replays I watch. They’re small, they open under the keyboard, and on certain themes they don’t always show all options without scrolling inside the dropdown. Color and size variants in particular work much better as visible swatches or buttons.

The fix: theme settings let you switch most variant pickers from “dropdown” to “button” in two clicks. If your theme doesn’t, it’s worth the dev time.

How to verify: filter replays to mobile-PDP-no-ATC sessions and watch ten. The “stuck on the variant picker” pattern either disappears or it doesn’t.

5. Sticky add-to-cart on mobile PDP

On long mobile PDPs, the add-to-cart button is often off-screen by the time the visitor decides. A sticky add-to-cart bar at the bottom of the screen recovers some of those visitors who would otherwise have to scroll back up to convert.

The fix: most modern Shopify themes ship this as a setting. Toggle it on; check it doesn’t fight with any other sticky bar on your store.

How to verify: mobile add-to-cart rate before/after. The lift is usually small but real (1–3% in my anecdotal experience), and free.

6. Plain-language return policy linked from the PDP

A vague or missing return policy is a trust kill. “30-day returns, no questions asked” written in plain English on a page linked from every PDP outperforms a five-paragraph legal-style policy buried in the footer.

The fix: write the policy the way you’d explain it to a friend. Link to it from every PDP, near the price.

How to verify: PDP-to-cart conversion rate. The visitors who needed the reassurance will move; the rest were never going to anyway.

7. Shop Pay enabled (and used as the default fast-checkout)

If you’re on Shopify and you don’t have Shop Pay enabled, turn it on. Shopify reports that Shop Pay checkouts convert measurably better than guest checkouts on average, particularly on mobile. The merchant doesn’t pay extra; the visitor gets a faster checkout. Free win.

How to verify: it’s already in Shopify’s payment settings; the lift will show up in the checkout-completion rate.

8. Real trust badges in checkout (not stock-image ones)

“As seen in” logos for publications you’ve actually appeared in, real customer review counts, real warranty terms — yes. Generic “100% Satisfaction Guaranteed” badges and clip-art lock icons — no. Visitors have learned to ignore the stock ones; the real ones still work.

The fix: pull one or two real signals into the checkout sidebar (Shopify’s checkout customization is more flexible than it used to be on Plus, and there are extension apps for non-Plus). One real signal beats five fake ones.

How to verify: checkout completion rate. If you’re on Plus and you can A/B this through Shopify’s checkout extensibility, do it; otherwise just measure week-over-week.

9. Cart drawer free-shipping threshold notice

If you offer free shipping at $X, the cart drawer should tell the visitor how far they are from it (“Add $14 more for free shipping”). This is the highest-ROI cart drawer addition there is, because it gives a specific, achievable next action that increases AOV and reduces shipping-sticker-shock-at-checkout in one move.

The fix: most themes ship this. Many cart drawer apps add it. Worth turning on.

How to verify: AOV + checkout completion. Both should improve.

10. Address autocomplete that actually works on mobile

Some themes break Shopify’s native address autocomplete on mobile, or replace it with a slow third-party widget. Shopify’s native version is fast and good. If yours isn’t, fix the theme.

The fix: test your checkout on a real iPhone in airplane-mode-off conditions, with a real US/UK/CA/AU address. If autocomplete suggestions don’t appear after the first three characters of the street name, the theme is breaking it.

How to verify: replay the mobile checkout flow yourself; check the address-field interaction rate in replays.

11. Discount-code field above the fold (if you use codes)

A common mistake: hiding the discount-code field where the visitor has to expand a “Have a code?” link to see it. Visitors with a code want it visible. Visitors without a code aren’t going to be tempted to go find one — that’s an old wives’ tale, and the data on it is mixed at best.

The fix: keep the discount field visible and labeled clearly. Make the redemption work without a page reload.

How to verify: discount-code-redeemed rate week-over-week.

12. Out-of-stock variants visibly disabled, not invisible

If a size or color is out of stock, show the visitor that it’s out of stock — greyed out, with a “Notify me” option. Hiding the variant entirely is much worse: visitors assume the product itself is broken, or that you don’t carry their size.

The fix: theme setting on most modern Shopify themes. If yours doesn’t have it, a small theme tweak.

How to verify: PDP bounce rate before/after.

That’s twelve. None of them are exotic. None require A/B testing infrastructure. And in the merchants I see using Replays well, the cumulative impact of working through this list (or one like it) is usually a 0.3–0.7 percentage-point lift on overall conversion rate over a quarter — which on a $1M store is real money.

When to bring in formal A/B testing — and when not to

Honest take: most Shopify stores under $1M GMV/year should not be running formal A/B tests. The math doesn’t work.

Here’s why: to detect a 10% relative lift in conversion rate (e.g. from 2.0% to 2.2%) at 95% statistical confidence, you generally need somewhere between 10,000 and 30,000 visitors per variant, depending on baseline rate and traffic noise. (The Optimizely sample size calculator is a useful gut-check.) A store doing 200 visitors a day will need 50–150 days to run a single test on a single change. By the time the test concludes, you could have shipped ten obvious fixes through the watch-and-fix loop.

A/B testing is the right tool when:

  • You’re past the obvious-friction phase (most surfaces are reasonably tight).
  • You have enough traffic that a test concludes in 2–4 weeks.
  • The change is genuinely contested (people inside your team disagree on which is better).
  • The change is risky enough that “ship and see” isn’t safe.

A/B testing is the wrong tool when:

  • Your conversion rate is below 1% (you have a mountain of obvious friction; fix that first).
  • You have less than ~10,000 sessions a month (test won’t conclude in time to be useful).
  • The change is obvious (don’t test “should we add reviews to the PDP” — just add them).
  • You’re testing button colors. Testing button colors at low traffic is the canonical example of CRO theater.

For most stores I talk to, the right answer is: don’t run formal A/B tests. Watch your replays, ship obvious fixes, measure week-over-week. Once you’re at $5M+ and you’ve burned through the obvious stuff, then test.

When to hire help

CRO is one of the few skills where the question “should I hire someone?” has a non-obvious answer.

The DIY answer. If you’re a founder running a store under $1M, you should do CRO yourself for at least the first year. The reason isn’t cost — it’s that you’ll learn more about your customers in three months of watching replays than any consultant can teach you. Shopify CRO is mostly judgment, and judgment compounds with reps. Watch the replays. Ship the fixes. Get good.

Freelance CRO auditor (~$1,500–$5,000 one-time). Useful when you’ve plateaued and need a second set of eyes. A good auditor will spend a few hours in your store, watch your replays, and write up a list of fixes prioritized by likely impact. The good ones earn their fee back in 60 days. The bad ones write generic recommendations that read like a SaaS blog post.

CRO agency (~$3,000–$15,000/month). Worth it for stores doing $5M+ that have already done the obvious work and want a continuous testing program. Most agencies under that line will sell you process — testing methodology, dashboards, hypothesis docs — that costs more than it generates. Ask for case studies of stores your size; if every case study is a $50M+ brand, you’re not their customer.

Shopify dev / theme expert (~$75–$200/hr). Less “CRO” and more “fix the things CRO surfaces.” When your replay reveals that the variant picker is broken on iOS Safari and you don’t speak Liquid, this is who you call. Cheap and high-leverage.

Head of Growth / in-house CRO lead (~$100k–$180k/year). Realistic at $10M+ and beyond. Below that, the role doesn’t have enough surface area to justify; the founder or marketing lead can wear the hat.

The honest version: most Shopify stores in our sweet spot ($10k–$5M GMV/year) get more from a $30/month tooling stack and 2 hours a week of founder time than from any agency engagement. Spend the money on tools and your own time first. We have a positioning page for CRO leads and one for Shopify founders if you want the per-audience framing.

The 30-day Shopify CRO sprint

Concrete plan. You can start tomorrow. You’ll know whether it worked in five weeks.

Week 1 — Diagnose

Day 1 — pull the ratios. Open Shopify Analytics → Online Store Conversion Over Time for the last 30 days. Note: sessions → reached cart, reached cart → reached checkout, reached checkout → purchased. Identify the lowest ratio of the three. That’s your surface.

Day 2 — install the diagnostic stack. If you don’t have session replay yet, install Propel Replays (or another tool — whichever you prefer; the analysis is the same regardless of vendor). Free up to 750 pageviews/month, 0ms hit on Core Web Vitals, and you’ll have your first replay within 30 minutes.

Days 3–5 — watch. Filter replays to the surface you identified on day 1. Watch 20 sessions on mobile, 10 on desktop. Don’t take notes the first ten. By session 15 you’ll start seeing the same friction event repeat — that’s your fix candidate. Run a click heatmap on the same page to confirm.

Day 6 — list 3 fixes. Pick the friction events that came up in the most replays. Write them down as specific changes (“change variant picker from dropdown to swatches on PDP,” not “improve PDP UX”).

Day 7 — pick the one with highest expected impact and lowest implementation cost. Ship it Monday.

Weeks 2–3 — Fix

Ship the top fix in week 2. Verify it shipped (check on a real device, watch a replay of a real visitor using the new flow). Move to the second fix.

In week 3, ship fix #2. By the end of week 3, you’ve shipped two real changes — that’s already more progress than 80% of stores manage in a month, because most stores get distracted between “diagnose” and “ship.”

If something breaks (a fix tanks conversion rather than lifting it), revert it. Take the lesson. Don’t rationalize the bad result.

Week 4 — Measure

Compare week 4 against week 1 — same day-of-week, same hour-of-day where possible. Look at:

  • Conversion rate on the surface you fixed.
  • Add-to-cart rate, reached-checkout rate, completed-checkout rate.
  • Mobile vs desktop separately (most fixes affect one disproportionately).

If the number moved, ship more fixes from your list. If it didn’t, watch more replays — your first hypothesis was wrong, and the second pass through the data usually surfaces what you missed.

End of week 4: you have either shipped two fixes that worked, or you’ve learned that your hypothesis was wrong and have a better one. Both outcomes are progress. Restart the loop.

The merchants who run this loop continuously — diagnose, fix, measure, repeat — are the ones whose conversion rate compounds over a year. The ones who do it once and move on don’t get the compounding effect.

Closing

The single hardest thing about Shopify CRO is not knowing what to do. It’s making yourself actually look at what your visitors are doing, instead of guessing.

Your dashboards tell you the what. Your replays tell you the why. The fix is almost always in plain sight — a broken size selector, a missing trust signal, an iOS Safari bug, a shipping line that wasn’t there. The merchants who win at CRO aren’t smarter than the ones who don’t. They just look more often.

If you only do one thing after reading this guide, start watching your replays. The first one you watch usually pays for itself.

If you want a Shopify-native session-replay tool to do that with, Propel Replays is the one we make. Free up to 750 pageviews per month, 0ms impact on Core Web Vitals, install in under 30 seconds. Replays filterable by every Shopify customer field — cart value, customer tag, UTM, device, country, order count — so the question “why isn’t this segment converting?” gets a real answer. We also ship click and area heatmaps, AI-summarized replays, and time-triggered surveys, in case you want the full diagnostic stack in one place.

Whatever tool you pick, install something. The merchants who don’t watch their replays are the ones still wondering why their store doesn’t convert.

Frequently asked questions

What is Shopify CRO actually?
The discipline of removing reasons not to buy. In practice that's: knowing your funnel ratios at the surface level (sessions → ATC → checkout → purchase), finding the biggest leak, watching real visitors at the leak step until you understand why it's leaking, shipping the fix, verifying it moved the number, and going back to step two. Most of that is observation work, not experimentation.
Should I be running A/B tests on my Shopify store?
Probably not, if you're under $1M GMV/year. The math doesn't work — to detect a 10% relative lift in conversion at 95% confidence, you generally need 10,000-30,000 visitors per variant. A store doing 200 visitors a day will need 50-150 days for a single test. Watch your replays, ship obvious fixes, measure week-over-week instead. Test once you're past the obvious-friction phase.
Where do most Shopify stores leak conversion?
Five surfaces: traffic quality (audience-store fit), the product detail page, the cart drawer and cart page, the checkout, and post-purchase retention. Most stuck-conversion stories live on one specific surface — but merchants spend their effort on the wrong one because they haven't diagnosed which.
Should I hire a CRO agency?
Worth it for stores doing $5M+ that have already done the obvious work. Below that, most agencies will sell you process — testing methodology, dashboards, hypothesis docs — that costs more than it generates. A founder running a store under $1M should do CRO themselves for at least the first year; you'll learn more about your customers in three months of watching replays than any consultant can teach you.
What's the single highest-leverage CRO fix on Shopify?
Showing shipping cost before checkout, not after. Baymard's research consistently puts 'extra costs too high (shipping, tax, fees)' at the top of the list of reasons consumers gave for abandoning, at 48%. A free-shipping threshold notice on the cart, a shipping estimator, or a flat-rate line in product copy all beat 'they find out at checkout.'
#cro #shopify #conversion-rate #guide

See what your customers actually do.

Install Propel Replays on your Shopify store in under a minute. Free up to 750 pageviews a month.

Install free on Shopify