Traffic but no sales almost always comes down to one of four things: the traffic isn't real, the traffic is real but wrong, the product page doesn't answer the buyer's next question, or checkout is quietly rejecting people. Before you redesign anything, pull three numbers from Shopify Analytics: sessions, add-to-cart rate, and checkout completion rate. The stage where the drop-off is worst tells you which of those four problems you have. Everything else is guessing.
We run this diagnosis often enough that the pattern is boring. A founder is spending ₹2 to ₹4 lakh a month on Meta, seeing 30,000 sessions, and getting 200 orders. The instinct is to blame the theme. The theme is rarely the biggest leak.
Do the funnel arithmetic first, because it names the problem for you
Take a store doing 30,000 sessions a month with an average order value of ₹1,900.
- Add to cart: 1,050 sessions, so 3.5%
- Reached checkout: 480, which is 46% of carts
- Orders: 210, which is 44% of checkouts
- Overall conversion: 0.7%
Now look at where the biggest absolute loss sits. Between cart and checkout you lose 570 people. Between checkout and order you lose another 270. That second number is the cheaper fix, because someone who has typed their pincode into checkout has already decided to buy. Push checkout completion from 44% to 60% and you get 480 × 0.60 = 288 orders. That's 78 extra orders on the same traffic, or about ₹1.48 lakh a month at that AOV. No new ad spend.
Compare that to the theme redesign someone quoted you for. The redesign might lift add-to-cart. It won't touch a checkout that's failing because your COD option is hidden behind a minimum cart value.
Stores we work on with mobile-heavy Indian traffic usually settle between 1% and 2% overall. If you're at 0.4%, something specific is broken, not everything vaguely.
Check whether the traffic exists at all
Open Shopify Analytics and Google Analytics side by side for the same 30 days. If GA4 shows 40,000 sessions and Shopify shows 26,000, you have a measurement problem, a bot problem, or both, and half your conversion rate is fictional.
Things we find in this pass:
Bot and datacentre traffic. Sessions with a 100% bounce, one pageview, zero scroll, clustered in odd hours. Shopify's own reports filter some of this. Third-party traffic sources do not.
Bought traffic. If anyone on the team has ever paid for "guaranteed visitors" or installed an app that swaps traffic between stores, your sessions number is decoration.
Meta engagement traffic. Campaigns optimised for link clicks or engagement send people who tapped an ad by accident. They arrive, they leave. If the objective isn't Purchase or at least Add to Cart, the traffic was never buyers.
Your own team. Warehouse staff, the founder checking the site nine times a day, the developer. Small stores can have 5% of sessions coming from three IP addresses.
Awkward case: if you run a .in and a .com on the same catalogue, or a separate landing-page domain, cross-domain tracking will split one buyer's journey into two sessions and make both conversion rates look bad. We get this wrong on the first pass more often than we'd like.
Intent mismatch: the traffic is real and still worthless
An organic post ranking for "how to store silk sarees" brings people who own sarees. They are not shopping. Neither is the audience clicking a reel that went semi-viral because of the music.
Segment sessions by landing page and source, then look at add-to-cart rate per segment. You'll usually find two or three sources doing 4% to 6% add-to-cart and one source doing 0.3% while contributing 40% of your traffic. That one source is why your blended conversion rate looks terrible. It isn't a site problem. It's an allocation problem.
The same applies to search. Ranking for broad informational queries builds an audience over years. It doesn't pay this quarter's ad bill. If you want organic traffic that converts, the pages to build are comparison, category and buying-guide pages that sit close to the transaction, which is most of what we do on SEO and content projects.
Where Indian checkouts leak
Checkout drop-off in India has a shortlist of causes and they're all fixable in a week.
COD is off, restricted, or priced badly. A large share of first-time buyers on Indian D2C stores will not prepay. If you switched COD off to reduce RTO, the conversion drop is not a mystery, it's a consequence. Better: keep COD, charge ₹49 to ₹79 for it, and offer a 5% prepaid discount. You shift the mix toward prepaid without losing the buyer who was never going to enter card details.
Shipping cost appears at the last step. A ₹90 shipping charge revealed after address entry kills more orders than a ₹90 price increase on the product. Show it earlier or fold it into the price and say shipping is free.
Payment method failures. UPI intent flows on mobile fail differently across app versions. Pull your Razorpay or gateway dashboard and look at attempted versus successful transactions by method. If UPI success is at 70% and cards are at 92%, you have a technical failure, not a persuasion failure. Retry logic and a second gateway as fallback recover a real chunk of it.
Pincode serviceability surprises. Nothing burns goodwill faster than accepting a pincode on the PDP and rejecting it at checkout. Validate once, early, against the same courier data.
Forced account creation. Still switched on in stores we audit. Turn it off.
Speed, but only the part that matters
Speed matters most for paid traffic on mid-range Android phones on 4G. That's the majority of Indian D2C sessions. The metric to watch is Largest Contentful Paint on mobile, on your top three landing pages, not your homepage.
An LCP of 4 seconds on a Meta-traffic landing page means a good share of the clicks you paid for never see the product. Getting it under 2 seconds is usually a matter of resizing a hero image that's being served at 2000px wide into a 390px viewport, deferring the review widget and the chat bubble, and deleting the three apps whose scripts still load even though the app was uninstalled last year.
If you want to see what's costing you before you commit to a project, SwiftStore scans the store, fixes the mechanical stuff and tracks the score over time. Theme-level surgery, render-blocking scripts and image pipelines are the harder half, and that's what speed optimisation work actually involves. Chasing a green Lighthouse score for its own sake is a waste of a fortnight. Chasing LCP on the pages your ads point at is not.
The product page isn't answering the next question
People with intent leave a PDP because something they need to know isn't there. Sit with the page and ask what a first-time buyer would want that they can't find in five seconds:
- When will it arrive at their pincode? Not "3 to 7 business days". A date.
- What does return and exchange actually cost them?
- For apparel, what does the size chart say in body measurements, and is there a fit note from someone with their build?
- For food, FSSAI licence number, ingredients, shelf life
- For anything above ₹5,000, whether the price includes GST and whether a GST invoice is available
- Reviews with photos, on the product, not on the homepage
The other quiet killer is the fifth image. Most stores stop at three studio shots. Scale photos, packaging shots, a hand holding the product, a 15-second video. Add-to-cart moves when someone can judge size and finish without asking.
People searching your store are your warmest traffic, and most stores waste them
Site-search users convert at a multiple of browsers because they've told you exactly what they want. Then Shopify's default search returns nothing for a misspelling, or the collection page has 400 products with no filter for the one attribute that matters.
Open your search terms report. Look for high-volume queries returning zero results. Those are orders you declined in writing. On stores past a couple of hundred SKUs, adding proper filters and a search that tolerates typos and synonyms tends to be the highest-return week of work available, which is why we built FilterPro after doing it by hand too many times.
This matters less if you have 30 products. Be honest about which store you are.
Sometimes the offer is the problem
The unwelcome version: if your funnel numbers are healthy at every stage and orders still don't come, the site isn't broken. Your price against the competitor two tabs over is. Or your product photography looks like a marketplace listing while you're asking premium prices. Or you're a new brand asking for ₹4,000 with no reviews, no returns policy anyone would trust, and a Gmail address in the footer.
No amount of CRO fixes that. Run a small test: same product, same traffic, price down 15% for two weeks, or add a no-questions 15-day return. If conversion jumps, you had a value problem, and you now know what it costs you.
The 40-minute check to run this week
- Shopify Analytics, last 30 days: note sessions, add-to-cart rate, checkout completion rate. Find the worst stage.
- Same three numbers split by traffic source. Kill or refocus anything under 1% add-to-cart that's eating budget.
- Gateway dashboard: success rate by payment method. Anything under 85% is a bug.
- Your top landing page on a real mid-range phone, on mobile data, not office wifi. Time it.
- Site search report: zero-result queries.
- Buy something yourself with COD selected, on your phone, and count the taps.
That sixth step finds more problems than the other five together. Do it before you brief anyone on a redesign.
If you'd rather have someone else read the numbers, our free store audit covers the funnel, the checkout config and the mobile speed profile, and tells you which of the four problems you actually have.


