Traffic but no sales

You have traffic. Where are the sales going?

Visitors are arriving and leaving without buying, and your admin will not tell you why — it reports the outcome, not the moment it went wrong. That moment is on a specific page, at a specific step, and it is findable.

70.22%of carts are abandoned
That is the documented average across 50 studies spanning 2006 to 2025 — it has barely moved in two decades. If your store converts poorly, it is not an outlier. The useful question is not why 70% leave, it is which part of that 70% you could actually have kept.

Source: Baymard Institute — average of 50 studies, 2006–2025

Traffic with no sales is a diagnosis problem

The instinct when sales are flat is to buy more traffic. That is the expensive answer and usually the wrong one — if a storefront converts at a fraction of what it should, more visitors means paying more to lose more. The cheaper question is which part of the visit fails, and storefront visits fail in a small number of well-known places.

  • The landing moment: the page does not answer why-this-product fast enough, and the visitor leaves in seconds
  • The product page: price, shipping, sizing or trust questions go unanswered, and the answer sits further down than anyone scrolls
  • The variant step: the option a shopper wants is out of stock, mislabelled, or takes too many taps on mobile
  • The cart: shipping cost or a free-shipping threshold appears late and reframes the whole decision
  • The checkout entry: the shopper commits, hits friction, and does not come back
Not all of that 70% was ever yours to win

58%

Left for a reason on your site

Cost surprises, friction, unanswered questions — the addressable half

42%

Was never going to buy

Browsing, price-comparing, saving for later

Baymard's 2025 survey found 42% of abandoners were simply not ready to buy. Chasing them is wasted effort. The other 58% left because of something that happened on the page — and that is the only half worth instrumenting.

Source: Baymard Institute — 2025 checkout survey; 11,777 participants across nine studies

Why your analytics has not told you already

Your Shopify admin reports totals — sessions, conversion rate, revenue. Those are outcomes. They tell you the patient has a fever, not where the infection is. To locate the failure you need what happened inside the visit: where attention landed, how far people scrolled, what they clicked that was not clickable, and which step they were on when they gave up. That is behavioral data, and by default nobody is collecting it on your store.

  • Totals tell you that something is wrong, never where
  • Averages hide the segment that is actually failing — usually mobile
  • A conversion rate is one number standing in for five different decisions
  • The visit that left is the one carrying the answer, and it is gone unless it was recorded

Baymard's own figure for “checkout too long or complicated” is 17% of abandoners — a checkout problem, not a product problem. Cart Overview is where that shows up as a step rather than a total. Read on →

How to find your leak this week

Work in this order. It is deliberately narrow — trying to look at everything at once is why most merchants abandon the exercise after two days.

  • Split mobile from desktop before looking at anything. Most storefront traffic is mobile and most storefront problems are mobile-only.
  • Take the funnel first: find the step with the steepest drop, and start there rather than at the page you personally dislike.
  • Read the heatmap for that page. Look for what gets clicked that is not clickable, and what you built that nobody touches.
  • Watch replays of sessions that reached that step and left, not a random sample. Ten targeted replays beat a hundred random ones.
  • Compare converted against non-converted sessions on the same page. The difference between those two is your hypothesis.
  • Change one thing, measure it against revenue, and only then move to the next.
Doing that by hand vs running it continuously
With DynoWebBy hand
Finding the stepFunnel is built from storefront events on install; drop-off ranked by stepWire custom events per template, rebuild after each theme change
Getting from finding to fixEach finding arrives with a specific change you preview before it goes liveTranslate the observation into a brief, queue it, wait for the sprint
Knowing it workedMeasured against a holdout, reported as net revenueCompare last month to this month and hope nothing else moved
Cost of a cycleContinuous — the loop runs whether or not you have time this weekAbout a week per cycle, most of it waiting

Where the other one wins: Doing it by hand costs nothing but time, and it teaches you your own store in a way a dashboard never will. If you have one page you already suspect and a free afternoon, open a replay tool and go look — you do not need us for a single hypothesis.

Questions

Before you install

How much traffic do I need before this is worth doing?

Enough that a pattern is visible rather than a handful of anecdotes. Speed and technical problems show up immediately at any volume. Behavioral patterns need enough sessions per template to be more than noise — for most stores that is about a week, and for low-traffic stores it can be several.

My conversion rate looks normal. Is there still a leak?

Probably, and it is worth checking by segment. A blended rate that looks acceptable often hides mobile converting at a fraction of desktop, or one traffic source converting at zero. The average is what makes it invisible.

Is it my theme?

Sometimes, but less often than merchants assume. Themes are usually competent and the failure is specific — one stranded element, one confusing variant control, one cost that appears too late. Replacing a whole theme to fix one of those is expensive and tends to introduce new problems.

What if I find the problem but cannot build the fix?

That is the common case, and it is the reason the found-but-unfixed list exists in the first place. Every DynoWeb finding arrives with the change attached, previewable against your theme, so applying it does not need a developer or a sprint.

Find out where the visits are going.

Install from the Shopify App Store and run it on your own traffic.