Traffic but no sales: how to find the leak that is costing you most
Five conversion leaks, the signal that reveals each, and a way to decide which to fix first — by what it is worth, not by what is easy.
That’s the short answer. The rest of this article is how you actually find which leak is costing you the most — because the fix that transforms one store barely moves another, and guessing is how brands burn a quarter optimising the wrong thing.
First, the reframe that changes everything
Most founders treat conversion rate as a fixed property of their store — a number they were dealt. It isn’t. It’s one of the most leveraged numbers in the business. Here’s the arithmetic.
Illustrative — not a result
| Conversion rate | Monthly orders | Monthly revenue |
|---|---|---|
| 0.5% | 50 | $3,000 |
| 1.5% | 150 | $9,000 |
| 2.5% | 250 | $15,000 |
Five times the revenue from 0.5% to 2.5% — same visitors, same ad budget, not one new ad run. The leverage was already sitting inside the funnel, unclaimed.
This is why “we need more traffic” is usually the wrong instinct: more traffic poured into a leaking store just leaks faster. Seal the leak first, and every visitor after it — paid or organic — is worth more.
The five leaks — and the signal that reveals each
A leak isn’t a vibe. Each one leaves a fingerprint in your data or on the page itself.
Leak 1 — A buried or missing trust signal
The buyer reaches the moment of decision — the add-to-cart button — and there’s nothing there to reassure them. No guarantee, no review count, no return policy in sight. Reviews might exist, but they’re far down the page where most buyers never scroll. The visitor hesitates, tells themselves “I’ll come back later,” and never does.
The signal: in a session recording or heatmap, watch how far buyers scroll. If engagement falls off a cliff before your social proof, they’re deciding without it. A high product-page-to-cart drop-off on a well-trafficked page is the tell.
Why it leaks: trust is consumed at the point of hesitation, not at the bottom of the page. A review a buyer never sees does zero work.
Leak 2 — A slow-loading product page
Your product page takes several seconds to become usable — especially on mobile, on a mid-range phone, on real-world mobile data. Every one of those seconds sheds buyers who will never tell you they left. Bloated apps, uncompressed hero images, and render-blocking scripts are the usual culprits.
The signal: run the page through PageSpeed Insights and read the field data (real Chrome users), not just the lab score — watch Largest Contentful Paint and Interaction to Next Paint. In GA4, compare conversion by device: if mobile converts at a fraction of desktop on similar traffic, speed is a prime suspect.
Why it leaks: speed is a conversion input, not a technical nicety. A buyer who bounces before the page renders never entered your funnel at all.
Leak 3 — Shipping cost revealed too late
The buyer moves through the whole flow believing one price, then meets a shipping charge on the final step. By then they’ve committed emotionally, they see an unexpected total, and they feel tricked — so they abandon.
The signal: your checkout abandonment rate is the headline number. Look specifically at the drop between the shipping step and payment. If a large share of carts die exactly where the shipping cost appears, you’ve found it.
Why it leaks: surprise at the last step reads as dishonesty, even when it isn’t. The cost isn’t the problem — the timing of the cost is.
Leak 4 — A weak or generic add-to-cart section
A product name, a price, and an “Add to cart” button — and nothing else doing any persuading. The buy box is where the sale is won or lost, and on most stores it’s the most neglected part of the page.
The signal: look at your add-to-cart rate. Then read your own buy box as a sceptical first-time visitor: does anything here answer why buy this, why now, why from you? If it’s just a spec and a button, it’s leaking.
Why it leaks: the buy box is the decision point. Generic there means you’re relying on the buyer to persuade themselves.
Leak 5 — A checkout that asks for too much, too soon
Forced account creation before purchase. A dozen form fields. A phone number demanded for a t-shirt. Every extra field and every unnecessary step is another chance for a ready buyer to reconsider and leave.
The signal: checkout funnel visualisation in GA4 or your checkout analytics. Watch completion step by step; the field or step where it collapses is your friction point.
Why it leaks: at checkout the buyer has already decided yes. Every additional demand is a fresh chance to change their mind — for no gain to you.
The principle that decides what to fix first
Here’s where most stores go wrong even after they’ve found their leaks: they fix the easiest one, not the most valuable one. Reordering the buy box is quick, so it gets done first — while the checkout losing a third of ready buyers sits untouched because it feels harder.
| Criterion | Prioritise by ease | Prioritise by revenue impact |
|---|---|---|
| What gets fixed first | Whatever is quickest to ship | Whatever the model says is worth most |
| What happens to the big leak | Deferred, often indefinitely | Addressed first, even though it is harder |
| How progress feels | Fast — several things shipped | Slow — one thing shipped |
| How progress reads in revenue | Usually flat | Concentrated where the money was |
The honest version: Ease is not worthless. When two fixes are close in estimated value, ship the easier one first — momentum is real and a stalled programme returns nothing. Ease is a tiebreaker; it is just never the deciding factor.
Estimate what each leak is costing you, then fix the biggest number first. A rough model beats a gut feeling:
monthly visitors × the conversion lift you’d expect × average order value = what the fix is worth
A worked example
Illustrative — not a result
| Before | After | |
|---|---|---|
| Conversion rate | 1.2% | 1.8% |
| Monthly orders | 120 | 180 |
| Monthly revenue | $7,200 | $10,800 |
Session recordings show buyers reaching the buy box and stalling: Leak 4. So the fix is scoped narrowly — pull three real trust signals up to the add-to-cart, rewrite the section to answer why this product, and handle the one objection that keeps recurring.
That’s the shape of real CRO. Not a redesign. Not more traffic. One leak, found and named, then closed.
The five-signal self-check you can run today
Run this yourself
Twenty minutes, five numbers, and you will know where your leak lives
- Product-page-to-cart rate Of everyone who views a product, what share adds to cart? Low here points at Leaks 1 and 4 — trust and the buy box.
- Cart-to-checkout rate Of carts, what share begins checkout? A gap here often means shipping surprise — Leak 3.
- Checkout completion, step by step Where exactly do ready buyers drop? That step is your Leak 5.
- Mobile vs. desktop conversion A wide gap on similar traffic points at speed — Leak 2 — or a mobile buy box below the fold.
- PageSpeed field data on your top product page Real-user LCP and INP, not the lab score. The lab score flatters you.
Write down where the biggest drop is. That’s your leak. Run the revenue model on fixing it. That’s your priority.
The bottom line
A store with traffic and no sales doesn’t need more traffic — it needs the one leak that’s quietly costing the most, found, named, and closed. The five above cover the large majority of what I see on high-traffic Shopify stores, and the self-check will point you at yours today.
Start with the numbers. The leak is already in your data, waiting to be named.