Home / Guides / Measurement

Measurement

Why is nobody buying from my Shopify store?

Sessions climbing, orders at zero. Before you rebuild the theme, work out whether you have a real sample, then find which step of the funnel is actually leaking.

Updated 10 Sep 2026 · ~2414 words · David Smith

The sessions counter moves. You refresh the orders page and it still says zero. You have read that the theme matters, that the photos matter, that the copy matters, and now you are at 11pm changing button colours with no idea whether any of it is the problem. The honest first question is not what to fix. It is whether you yet have enough traffic to know anything at all.

Direct answer: With fewer than about 300 qualified sessions, zero orders is normal statistical noise and you should not rebuild anything. Above that, pull the four funnel steps in Shopify Analytics and find the single worst drop: product page views, add to cart, reached checkout, order. In practice the leak is nearly always delivery cost appearing too late, a checkout that demands an account, photography that does not answer fit or scale, or traffic that was never shopping in the first place. Ads make all four more expensive, they do not cause them.

Do you actually have a sample?

Take a store that converts at a completely ordinary 1.8 percent of sessions. That is roughly one order for every 55 people who land. Now ask how often such a store shows a flat zero over a given number of sessions. It is straightforward arithmetic: the chance of no order is 0.982 raised to the power of the session count.

Sessions so farOrders you would expectChance a perfectly fine store still shows zeroWhat to do
500.9About 40 percentNothing. Keep going.
1001.8About 16 percentPlace a test order, then keep going.
2003.6About 2.6 percentStart reading the funnel.
4007.2Under 0.1 percentSomething is genuinely broken. Diagnose properly.
80014.4Effectively nilStop guessing and stop spending until you find it.

This is why the panic at 90 sessions is misplaced and the calm at 900 is dangerous. One in six new stores with a hundred visitors will see zero orders purely by chance, redesign the homepage, get their first sale a week later, and conclude the redesign worked. It did not. The clock did.

The funnel arithmetic that names the leak

In Shopify admin, open Analytics, then Reports, and set the range to the last 14 days. You want five numbers from the same window. Here is a real shape from a small apparel store that had been live a month.

StepCountRate against step aboveWorking targetRead
Sessions1,240n/an/aEnough to judge
Viewed a product64052%60 to 70%Slightly soft. Homepage sends people nowhere in particular.
Added to cart385.9%8 to 12%Weak but not the worst.
Reached checkout1437%50 to 70%Bad. Cost appears at the cart.
Placed an order214%40 to 60%Worst drop. Checkout itself.

Those targets are working rules of thumb from running stores, not a published study, and you should treat them as such. The value is not the target. It is the ranking. This store did not have a photography problem or a copy problem. It had 12 people who chose an item, saw the total, and walked. The shipping rate in Settings, then Shipping and delivery, was £5.95 on a £42 average basket and appeared for the first time on the shipping step of checkout. That is a 14 percent price rise announced at the last possible moment.

Delivery cost is the one that hides at the end

Any surprise cost at the final step reads as a trick, even when it is entirely reasonable. The fix costs nothing. State the delivery price and the free threshold in three places: the announcement bar, the product page under the add to cart button, and the cart drawer. If the number is embarrassing, that is useful information about your pricing, not a reason to hide it.

A shopper does not abandon because £5.95 is too much. They abandon because you waited until the last screen to mention it.

Two more checkout blockers are worth ten minutes each. In Settings, then Checkout, make sure customer accounts are optional rather than required, and strip the form back to what you genuinely need to fulfil. In Settings, then Payments, enable Shop Pay and at least one wallet, because a new brand asking for full card entry on a phone loses people who would happily have paid in two taps.

Trust, in the twelve seconds you actually get

A first time visitor is asking one question: will this parcel arrive and can I send it back. Answer it in plain sight. A real returns window and who pays for return postage. A delivery estimate in days. A contact method that is not only a form. A company address in the footer. Reviews that read like people wrote them, even if there are only four.

Photography sits in the same bucket. If you sell anything worn or placed in a room, the missing shots are almost always scale and texture: the item on a person or next to a known object, and one close crop where the fabric or finish is visible. A stack of studio cutouts on white looks tidy and tells the buyer nothing they need in order to risk £42.

If you are already paying for the traffic

Paid traffic changes the question from what is wrong to what can this ever earn. Run the maths before you blame the store. Suppose you spend £30 a day for 14 days at a £0.90 cost per click. That is £420 and roughly 466 clicks. At a healthy 2 percent that is nine orders. With a £48 average order and 60 percent gross margin, each order contributes £28.80, so nine orders return about £259 against £420 spent.

Read that again, because it matters more than any button colour. Even with a store working properly, that campaign loses £161 a fortnight. The problem is the relationship between click cost, order value and margin, not the theme. Work your true contribution per order first, using the method in true profit from Shopify ads, and if it comes out negative at realistic conversion rates, pause and change the offer rather than the layout. The pause ads decision tool runs the same logic in a browser.

One more paid-only trap: sending spend to products you cannot ship. A new store often advertises the item that ran out of the middle sizes in week one. That is covered in stop buying traffic for dead stock, and it is worth checking before you conclude the audience is wrong.

Do it yourself first

0 of 8 done. Ticks stay on this device. When they are all ticked you know exactly what a desk would be doing for you.

Do it yourself first

Give this an hour and do it in order. Open Shopify admin, go to Analytics, then Reports, and write down the five funnel numbers for the last 14 days on paper. Divide sessions by 55 to get your expected order count. If that is under two, close the laptop and go and get more qualified traffic, because there is nothing to diagnose yet.

If it is above two, turn each step into a percentage of the step above and circle the worst one. Then go to Analytics, then Reports, and open sessions by landing page. Everything you do next applies to the single page taking the most traffic, not the homepage out of habit.

Now switch your phone off wifi onto mobile data, load the store as a stranger would, add an item, and pay with a real card all the way to the thank you page. Note every point at which you hesitated, and note the exact second the delivery cost first appeared. Refund yourself afterwards. Check the order landed in Orders and that the confirmation email arrived, because a broken notification is a surprisingly common cause of a store that seems dead.

Finally, fix one thing. Show the delivery cost earlier, or allow guest checkout, or add the two missing photographs. Leave it alone for another 400 sessions on that landing page, then pull the same five numbers. Changing five things at once means you learn nothing and repeat this evening in a fortnight.

Where Ralph fits

Ralph is for the stage after this one, when paid traffic is already running and your ads and your stock disagree. He puts variant level cover next to spend and stages exclusions or product set changes for your approval, which is described in how Ralph handles out-of-stock sizes and SKUs. He is not autonomous black-box spend and he is not a bid micro-optimizer, so he will not rescue a campaign whose maths never worked, and he is not open for self-serve use yet: that is a waitlist, not a fix for tonight.

What this is not

This is not conversion rate optimisation in the testing sense. Split testing needs thousands of sessions per variant to say anything, and a store with 1,200 sessions a fortnight will never reach significance on a button. It is also not the same problem as a store whose orders fell off a cliff after months of trading, which is usually a tracking break, a price change or a traffic source drying up, and is diagnosed by comparing periods rather than by tearing the funnel apart. Fix the obvious leaks with judgement now. Test later, when you have the volume to earn an answer.

Diagnose a Shopify store with traffic and no sales

  1. Pull 14 days of funnel numbers. In Shopify admin open Analytics, then Reports. Record sessions, sessions that viewed a product, sessions that added to cart, sessions that reached checkout and orders for the same 14 day window.
  2. Check the sample size. Divide sessions by 55. That is roughly how many orders an ordinary store would expect. If the answer is under two, you have a sample problem, not a store problem.
  3. Find the worst drop. Convert each step into a percentage of the step above it. The single largest gap against a sensible target is the only thing you work on today.
  4. Place a real order on a phone. Switch off wifi, browse to the store on mobile data, add an item, pay with a real card and note every moment you hesitate. Refund it afterwards.
  5. Fix the delivery message. Put the delivery cost and free shipping threshold on the product page and in the cart drawer. Check the rates in Settings, then Shipping and delivery, match what you say.
  6. Clear the checkout blockers. In Settings, then Checkout, allow guest checkout and keep required fields to the minimum. In Settings, then Payments, enable Shop Pay and one wallet.
  7. Re-measure after 400 sessions. Leave the change alone until the top landing page has taken another 400 sessions, then pull the same five numbers and compare.

Questions people actually ask

why is nobody buying from my shopify store

Usually one of four things: you do not have enough sessions yet to expect an order, the traffic is browsing rather than shopping, the shipping cost appears too late, or the product page does not answer the obvious objections. Pull your 14 day funnel in Analytics, then Reports, and fix the step with the worst drop first.

shopify store no sales what am i doing wrong

Most likely nothing structural. At 100 sessions a store converting at a perfectly ordinary 1.8 percent still shows zero orders about one time in six. Get to roughly 400 sessions on the same page before you rebuild anything, then read the funnel rather than your feelings about the design.

why wont anyone buy from my online store

The three repeat offenders are delivery cost shock at the last step, missing trust signals such as a real address, returns terms and contact details, and photography that does not show scale, fit or texture. Buy from your own store on a phone using mobile data and you will usually spot at least one of them.

shopify store getting traffic but no sales

Split the traffic by landing page and source. Traffic from a viral post, a giveaway or broad interest targeting often has no purchase intent at all. Compare add to cart rate by source: if one source carts and the others do not, the store is fine and the traffic is the problem.

launched shopify store zero sales

In the first fortnight, treat it as a measurement problem. Confirm the store is not password protected, place one test order yourself, check payments are live in Settings then Payments, and confirm orders would be recorded. Then get to a few hundred qualified sessions before drawing conclusions.

Should I pause my ads while I fix the store?

If the checkout is broken or delivery cost is hidden, yes, pause and fix, because you are paying for traffic that cannot convert. If the store works and the sample is small, keep a small daily budget running so you keep collecting data. The pause ads decision tool walks the same logic.

If you want stock, ads and the morning list in one place: that is what we built Ralph for. A growth operator for Shopify, with review before anything ships. Not magic. Fewer tabs. See Ralph · Docs

Written by David Smith

David leads Must Be Agency, a small team that has run growth and paid media for real Shopify brands, and builds Ralph. These guides come out of running those accounts, not out of a keyword tool.