If you build or maintain Shopify stores — freelance, agency, or in-house — "we're getting traffic but nobody's buying" is a ticket you'll get eventually, and it doesn't come with a stack trace. Nothing's broken in the way a 500 error is broken. The store just quietly isn't converting, and the client wants to know why by end of day.
"I'm getting traffic but no sales" is also one of the most common posts on the Shopify community forums, and almost every answer to it defaults to the same short list — trust, price, product pages, checkout, speed — thrown out all at once with no ranking. That's not that useful when you're staring at analytics at midnight trying to figure out where to actually spend the next hour. Here's the order that tends to matter most, roughly most-likely-cause first, so you check the cheap, common things before the expensive, rare ones.
1. Check whether the traffic is real and matched to what you sell
Before touching the store at all: open analytics and look at where the traffic is actually coming from. A flood of visits from a single unfamiliar referrer, sessions lasting a few seconds, or geography that makes no sense for the product is often bot traffic or a paid-traffic source pulling in the wrong audience — not a store problem at all. This is the single most common blind spot, because it's tempting to treat "traffic" as automatically meaning "real potential customers," and it often isn't. If the traffic is real but simply isn't the buyer (wrong platform, wrong ad targeting, wrong audience for the product), no amount of page-level polish fixes that — the fix is upstream, in where the traffic comes from.
2. Check for cost shock at checkout
This is the best-documented conversion killer in ecommerce generally, not just for small stores. Baymard Institute's cart-abandonment research — a large-scale, ongoing study, not a marketing-blog stat — finds that of shoppers who abandon a cart for a reason other than "just browsing," the top cause by a wide margin is extra costs (shipping, tax, fees) being too high, cited by 40% of respondents; not being able to see or calculate the total cost up front is a separate, additional reason further down the same list. If shipping cost isn't visible until the final step, or the product price doesn't already account for the shipping reality, the store is asking the customer to commit emotionally and then hitting them with a number they didn't budget for. Show shipping cost or a real estimate on the product page or cart — not just at the last screen.
3. Check whether the product page actually answers the buying questions
A visitor lands, looks at the product page for a few seconds, and leaves without adding to cart. The most common reason isn't the product — it's that the page didn't answer the basic questions fast enough: what is this, exactly, what does it cost, is it available, and what happens after clicking buy. If the product photos are thin, the description is vague, or the buy button isn't obviously the buy button, this is where a real visitor quietly gives up — no error, no bounce that's easy to diagnose, just a decision not to bother.
4. Check trust signals — but the real ones, not decorative ones
If a customer is unfamiliar with the store, they're evaluating "is this a real, safe place to give my card details to" whether they say so or not. The same Baymard dataset backs this up directly: 19% of shoppers cite "I didn't trust the site with my credit card information" as a reason for abandoning. The fix here isn't a wall of badge icons — it's the boring, verifiable stuff: real contact information, a specific return policy, and reviews if there are any.
5. Check checkout itself for friction
Run a real test order, on mobile, all the way to the payment screen. Forced account creation, a discount code box that doesn't work, an unclear total, or a broken payment method are all silent killers — the customer doesn't complain, they just close the tab. This is far enough down the list because if traffic quality, cost shock, product pages, and trust are all fine, most stores' checkout is basically Shopify's own checkout, which is solid by default. It's a real issue, just less commonly the root cause than the first four.
6. Check speed and mobile rendering
Slow load times and mobile layout breakage cost sales, but they tend to matter less than the items above unless the store is genuinely broken on a phone or takes several seconds to become usable. Worth checking, worth fixing where cheap, but don't spend a week chasing a perfect speed score before checking items 1–5.
7. Check the offer itself
If everything above has been gone through and traffic still isn't converting, it's worth honestly asking whether product-price-market fit is the actual issue — not a page problem at all. This is the least comfortable item on the list and the one people check last, which is exactly why it belongs last here too: rule out everything cheaper and more fixable first.
What this means
This is a diagnostic order, not a verdict — working through it in sequence tells you where to look first, not which one is definitely wrong before you've actually checked. And it's bounded by what's visible from the outside: this list (and the free tool below) only sees what a public visitor sees — the homepage, product pages, checkout flow up to the point of payment. It can't see the store's admin, its actual order data, or its ad account, so if the real problem lives in one of those, no amount of front-end diagnosis will surface it. Worth ruling out the items above first regardless, since they're the ones most stores actually have wrong.
We build a free tool that runs roughly this same checklist automatically: send in a Shopify store URL, it goes through the homepage and a couple of product pages and tells you plainly which of these is actually the likely problem, emailed back same-day. Try the free store roast — no card needed, one round per store. There's also a paid €29 Full Audit (every product page, rewrites, a prioritized fix list) if you want the deeper pass, but it's entirely optional — the free roast doesn't depend on it.
Top comments (0)