· · how-to

Why isn't my Shopify store converting? Here's how to find out

Why isn't my Shopify store converting? Here's how to find out

If you’re reading this at midnight wondering why your Shopify store isn’t converting, the short answer is almost always one of four things:

  1. Wrong traffic. The visitors aren’t your buyers.
  2. Trust gap. They land on the product page and don’t believe you yet.
  3. Friction at the choice step. They want to buy, but the variant picker, size selector, or quantity field gets in the way.
  4. Friction at checkout. They added to cart, then bailed.

Each of these has a different fix. Confusing them is how merchants spend three weeks tweaking the homepage when the actual leak is a broken size selector on mobile. So before you change anything, figure out which one is yours.

This is a 30-minute diagnostic, not a 3-month project. You can do it tonight.

The four reasons your Shopify store isn’t converting

1. Wrong traffic

The visitors aren’t the people who would ever buy your product. This is by far the most common reason new Shopify stores get traffic but no sales — and it’s the easiest to misdiagnose, because the dashboard shows a healthy-looking pageview count and you assume the store is the problem.

What it looks like:

  • High bounce rate (visitors land and leave within a few seconds).
  • Very low time-on-page across the board.
  • Traffic spikes from sources you didn’t intend — random Reddit threads, off-brand TikTok virality, a viral tweet from someone who isn’t your customer, a paid ad that’s optimizing for the wrong audience.
  • Conversion rate is roughly the same on every page, regardless of which product or landing page they hit.

How to check it: Open Shopify Analytics → Acquisition → Sessions by traffic source. Then segment conversion rate by source. If your “Direct” traffic converts at 3% and your paid social converts at 0.1%, the paid social isn’t your store’s fault — it’s the audience.

What to do about it:

  • Cut the channels that don’t convert. Don’t try to “optimize” them yet.
  • Double down on the channels that do, even if they’re smaller.
  • For paid traffic specifically, watch where post-click visitors actually go. If everyone bounces immediately from the landing page, the ad creative is mismatched to the page.

If this is your problem, no amount of CRO work on the store will fix it. Stop testing button colors and go upstream.

2. Trust gap

The traffic is right. They land on a product page. They look at it for ten seconds. They leave without ever clicking “Add to cart.”

This is a trust problem. The visitor isn’t sure who you are, isn’t sure your product does what you say, isn’t sure they’ll get it on time, isn’t sure they can return it. So they don’t risk the click.

What it looks like:

  • Decent time-on-page on PDPs (15–60 seconds — long enough to read).
  • Low add-to-cart rate (under ~3% of PDP visitors).
  • Scroll depth on PDPs that gets to the reviews section, then bails.
  • Repeated PDP-to-PDP navigation without an add-to-cart (they’re shopping but not buying).

How to check it: Watch ten replays of visitors who reached your top product page and didn’t add to cart. You’re looking for the moment they start to leave — what’s on screen at that moment? It’s almost always the same thing across ten sessions: a missing review, an unclear shipping promise, a hidden return policy, a stock product photo that screams “this is dropshipped.”

A click heatmap on the same PDP will show you which trust elements visitors do engage with — and which they ignore.

What to do about it:

  • Reviews above the fold (or as close as your theme allows). Real ones, with photos.
  • Clear ship-time promise (“ships in 1–2 business days” beats “ships fast”).
  • Plain-language return policy linked from the PDP, not buried in the footer.
  • Original product photography on the bestseller, even if everything else is stock.
  • A “made by [your name]” or about-us link on the PDP if you’re a small brand — visitors trust humans more than logos.

3. Friction at the choice step

The traffic is right and the trust is there. They engage with the PDP. Then they hit the variant selector — size, color, scent, bundle — and something goes sideways. They click. They click again. They scroll up. They click a different variant. They leave.

This is the most fixable of the four, and the one merchants miss most often, because Shopify Analytics can’t see it. The funnel says “viewed PDP, didn’t add to cart” — but it doesn’t tell you they got stuck on the size dropdown.

What it looks like:

  • Rage clicks on size selectors, swatches, or quantity arrows.
  • Repeated PDP visits in the same session (they’re cycling between variants).
  • Add-to-cart rate that drops sharply on products with more variants than the bestseller.
  • “Out of stock” UX that doesn’t tell visitors which variants are available.
  • On mobile, dropdowns that are too small to tap or open under the keyboard.

How to check it: Filter your replays to “viewed PDP, no add-to-cart” and watch ten. If a third of them rage-click on the same UI element, you’ve found your fix. A click heatmap on the variant area will confirm it.

What to do about it:

  • Replace dropdowns with visible swatches/buttons where you have room.
  • Add a size guide link inline next to the size selector — not in a tab that nobody opens.
  • Make out-of-stock variants visibly disabled, not invisible. Visitors who can’t see “out of stock” assume the product is broken.
  • Test the variant flow on a real iPhone, not in your browser’s mobile-emulator. The real device exposes friction the emulator hides.

4. Friction at checkout

They add to cart. They reach checkout. They bail.

By the time someone gets to checkout, they wanted to buy. So checkout abandonment is almost always preventable — it’s friction, not lack of intent. Shopify’s native checkout is good, but it’s not perfect, and the moments where it breaks are remarkably consistent across stores.

What it looks like:

  • Strong add-to-cart rate but low completed-checkout rate.
  • High abandoned-checkout count in Shopify Admin.
  • Mobile-specific drop-off — the desktop checkout converts fine, mobile doesn’t.
  • Rage clicks on the address field, payment selector, or discount-code input.
  • Customers who reach the “review” step and never click “Pay now.”

How to check it: Filter replays to “abandoned checkout” and watch ten on mobile. The same friction event will show up three or four times across those ten sessions. That’s your fix.

What to do about it:

  • Address autocomplete that actually works on mobile (some themes break this).
  • Show shipping cost before checkout, not after. Sticker shock at checkout is a top-three abandonment cause.
  • Multiple payment options — Shop Pay, Apple Pay, Google Pay, PayPal. Cards-only is a friction tax.
  • Discount-code field that doesn’t refocus the keyboard or hide the order summary on mobile.
  • Clear post-discount totals (visitors don’t trust a “total updates after entering code” UX).

For a deeper dive on this one, see our companion post on Shopify mobile checkout friction.

The 30-minute audit you can do tonight

You don’t need a three-month CRO engagement. You need to actually look at your store the way a visitor sees it. Here’s the order:

Step 1 — Pull the ratios (5 minutes). Open Shopify Analytics → Reports → Online Store Conversion Over Time for the last 7 days. Note the conversion rate. Note the add-to-cart rate. Note the reached-checkout rate. These three ratios tell you which of the four reasons is yours: a weak ATC rate points to (1), (2), or (3); a weak reached-checkout-to-purchase rate points to (4).

Step 2 — Watch five abandoned-cart replays (10 minutes). Filter to sessions that added to cart but didn’t purchase. Watch five at 2x speed. Don’t take notes the first pass — just watch. By the third one you’ll start seeing the same friction event repeat.

Step 3 — Watch five “viewed PDP, no ATC” replays (10 minutes). Same drill, on the choice step. Look for rage clicks, dead clicks, and cycling between variants. The pattern shows up fast.

Step 4 — Open a click heatmap on your highest-traffic PDP (3 minutes). What’s hot? What’s cold? Are visitors clicking things you didn’t think were interactive? Are they ignoring your CTA?

Step 5 — Pick one fix to ship this week (2 minutes). Not five. One. The fix that comes up in the most replays. Ship it. Watch a new batch in seven days. Repeat.

That’s the loop. It works. The merchants who do this consistently outpace the ones who read more CRO articles.

What other Shopify merchants say about this exact pattern

When we read through real Shopify App Store reviews of merchants doing this work, the same theme keeps coming up: the data they had wasn’t telling them why. Here’s how one merchant put it:

“A MUST HAVE APP for any Shopify store. Shows issues that data simply does not reveal.”

— Goodness Tea, on the Shopify App Store

The “data” here is Shopify Analytics, GA4, Meta Ads Manager — the dashboards every merchant already has. They show what (the conversion rate, the bounce, the drop-off step). They don’t show why (the broken size selector, the misleading shipping copy, the iOS-only bug). That gap is the diagnostic gap, and it’s where most stuck-conversion stories live.

Another merchant said the same thing, plainer:

“Helped me fix quite a bit on my site I didn’t realize was causing issues for customers.”

— Hair Dance, on the Shopify App Store

The pattern in both quotes: they didn’t know the issue existed until they watched a session. That’s the diagnostic gap closed in one sentence.

The tools that actually help

Honest accounting of what each tool is for:

  • Shopify Analytics is for the ratios. Use it to find where the leak is — at the PDP, the cart, or the checkout step.
  • Session replay is for the why. Once you know where the leak is, watching ten sessions through that step almost always reveals the cause.
  • Heatmaps are for the where on the page. Click and area heatmaps show you which elements visitors engage with and which they ignore.
  • Surveys are for the what they’re trying to do. When the replays don’t quite explain it, ask the visitor directly. (Note: in Propel and most tools, surveys trigger on page, product, or time-on-page rules, not on exit-intent — so place them where visitors will see them before they leave, not as a last-ditch popup.)

We make a Shopify-native version of these tools — Propel Replays — built specifically for Shopify merchants. Free up to 750 pageviews per month, 0ms impact on Core Web Vitals, install in under 30 seconds. Replays can be filtered by every Shopify customer field (cart value, customer tag, UTM, device, country, order count) so the “why is this segment not converting” question has a real answer. We also ship click and area heatmaps and time-triggered surveys, in case you want to watch where eyes go and ask the visitor what they were stuck on.

If you want the founder framing — what to actually look for as a solo or small-team Shopify operator — we wrote that up at /for-shopify-founders.

Closing

If you’ve been staring at a 1.2% conversion rate wondering what’s broken, you don’t need a strategy doc. You need to open one replay tomorrow morning. The answer is almost always in plain sight — the broken size selector, the missing trust signal, the iOS Safari bug — and you just haven’t watched a session yet.

Spend 30 minutes on the audit above. Pick one fix. Ship it this week. Watch ten more replays next Friday. The stores that do this loop consistently are the ones that compound.

The first replay you watch usually pays for itself.

Frequently asked questions

What are the main reasons a Shopify store gets traffic but no sales?
Almost always one of four things: wrong traffic (the visitors aren't your buyers), a trust gap (they don't believe you yet), friction at the choice step (the variant picker or size selector gets in the way), or friction at checkout (they added to cart, then bailed). Each has a different fix — confusing them is how merchants spend three weeks tweaking the homepage when the real leak is a broken size selector on mobile.
How do I tell if my problem is wrong traffic versus a broken store?
Open Shopify Analytics → Acquisition and segment conversion rate by traffic source. If your direct traffic converts at 3% and your paid social converts at 0.1%, the paid social isn't your store's fault — it's the audience. Wrong traffic shows up as similar bounce and conversion across every product page; a broken store shows up as concentrated drop-off at one step.
How long does this diagnostic take?
About 30 minutes. Five minutes to pull the funnel ratios in Shopify Analytics, ten minutes to watch five abandoned-cart replays, ten minutes to watch five viewed-PDP-no-ATC replays, three minutes on a click heatmap of your top PDP, two minutes to pick the one fix to ship this week. It's a diagnostic, not a three-month project.
How many replays do I need to watch to find a pattern?
Five to ten per surface is usually enough. By the third or fourth replay you'll start seeing the same friction event repeat — a stuck size selector, a missing trust signal, the same shipping-step pause. The pattern emerges fast when it's there.
Should I fix everything I find at once?
No — pick one. The fix that comes up in the most replays. Ship it this week, watch a new batch in seven days, then move to the next. The merchants who run this loop consistently outpace the ones who try to fix five things in parallel and never finish any of them.
#shopify #cro #conversion-rate

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