Most stores that ask us for a Shopify store optimization checklist already have a list. The problem is the order. They spend a sprint on a homepage redesign while the mobile product page takes 4.1 seconds to render its main image, and the checkout drops UPI payments on the second attempt. Fix sequence matters more than fix count. So this list is roughly ordered by rupees returned per hour of work, based on what we keep finding when we open a store's theme and analytics for the first time.
Before you touch anything, get four numbers: mobile LCP on your best-selling product page, sessions-to-checkout rate, checkout completion rate, and COD share of orders. Those four tell you which section below to start with. Everything else is decoration.
Why the order beats the list
Quick arithmetic, because it changes how you prioritise. Say you do 60,000 sessions a month, convert at 1.4%, and your AOV is ₹2,100. That's 840 orders and about ₹17.6 lakh. Move conversion by 0.2 percentage points, which is a realistic outcome from a checkout and product-page pass, and you add 120 orders: 60,000 × 0.002 = 120. At ₹2,100 that's ₹2.52 lakh a month from work you do once.
Now compare that to a homepage refresh. Homepage sees maybe 30% of your traffic and most of those visitors are returning customers who already know what they want. Same effort, a fraction of the return. We say this to founders about once a week and it lands badly about half the time.
Speed: items 1 to 6
1. Measure the right page. Test the mobile product template of your top seller on a throttled 4G connection. Not the homepage. Not desktop. The homepage score is the one agencies show in pitch decks because it's the easiest to inflate.
2. Fix the LCP element first. On nine out of ten Shopify stores it's the first product image or the hero. Serve it at the actual rendered width, preload it, and take it out of any lazy-load rule. A 2.4s LCP going under 1.5s is normal once the image is sized correctly and the theme stops loading three font weights ahead of it.
3. Audit app scripts, including the dead ones. Uninstalling an app does not always remove its snippet from your theme or its script tag from your store. We routinely find code from apps that were removed two years ago still firing on every page load. Search the theme for leftover includes, then check your script tags via the admin.
4. Delete the hero carousel. Slide two and three get almost no engagement, and the slider library costs you render-blocking JavaScript for the privilege. One static hero, one clear offer.
5. Self-host fonts, two weights maximum. Regular and bold. If your brand guideline demands five weights, the brand guideline is costing you money.
6. Set up monitoring so it stays fixed. Speed regresses. Someone installs a review widget in October and nobody notices until January. If you don't want to check manually every fortnight, our SwiftStore app scans the store, fixes what it safely can and tracks the score over time. Either way, put it on a calendar. More detail on how we approach this work is on our Shopify speed optimization page.
Product pages: items 7 to 12
7. Show a real MRP. If you strike through a price, it should be a genuine maximum retail price. Inflated strikethroughs are a legal metrology problem in India and a trust problem everywhere. Repeat customers spot them.
8. Delivery date by pincode. Not "ships in 2-5 business days". A visitor in Guwahati and one in Andheri get very different answers, and the specific date reduces the number of people who add to cart, then go check your shipping policy, then leave.
9. Handle out-of-stock variants properly. Grey them out with the reason visible, don't silently allow selection and fail at checkout. If size M is your volume driver and it's out, a back-in-stock capture on that variant is worth more than most popups on the site.
10. Get eight or more reviews on every top seller, with photos. Volume matters less than recency and images. Two reviews from 2022 read worse than none.
11. Answer the question where it's asked. Fabric composition, wash care, karat, wattage, shelf life, whatever your category's dealbreaker is. Put it above the add-to-cart button, not in a collapsed tab at the bottom. Check your support inbox for the three questions people keep asking, then answer them on the page.
12. Six images in a fixed order. Product on white, scale reference, detail crop, in-use shot, back or reverse, and one that shows what's in the box. Consistency across the catalogue reads as competence.
Collections and search: items 13 to 16
13. Filter by how people actually shop. Not by your ERP's field names. Apparel buyers filter by occasion and fabric before size. Jewellery buyers filter by karat and weight. If your catalogue is past 300 SKUs and your only filter is price, that's where your lost revenue lives. Native Shopify filtering runs out of road quickly, and a dedicated filter and search app is usually the cheaper fix compared to a custom build.
14. Make search forgiving. Misspellings, plurals, Hinglish, and synonyms your customers use but your product titles don't. Pull your top 50 zero-result search queries from analytics. Every one of them is a customer who told you exactly what they wanted and got a blank page.
15. Set a sensible default sort. Manual order that nobody has touched since launch means your bestsellers sit on page three. Best-selling as the default, with manual pinning for the four products you're pushing this month.
16. Write collection copy for the query, not the category. A short paragraph above the grid that uses the words people search, and internal links to the two or three sub-collections that matter. This is dull work with a long tail. Our SEO and content team does most of it in bulk with metafields rather than page by page.
Cart and checkout: items 17 to 21
17. Test the payment failure path, not just the success path. Razorpay or whichever gateway you run, put through a real UPI transaction and let it time out. Where does the customer land? Can they retry without rebuilding the cart? Failed-then-abandoned is a large and mostly invisible leak in Indian checkouts.
18. Treat COD as a pricing decision. Take a store with 65% COD share and 22% RTO on those orders. Per 1,000 orders that's 650 COD, of which 143 come back. At ₹120 of forward plus reverse freight, 143 × 120 = ₹17,160 burned per 1,000 orders, before you count the packaging and the blocked inventory. Options that work: a ₹30 to ₹50 COD fee, prepaid discount of similar size, OTP verification on high-value COD, and switching COD off at the pincode level where your data says it's hopeless. Don't remove COD entirely unless you've tested it. In most Indian categories it still carries the majority of orders.
19. Set your free-shipping threshold off your AOV distribution. Look at where orders cluster, then set the threshold about 15% above the median order value. Round numbers picked from a competitor's site are guesswork.
20. Fix the address form. Pincode should autofill city and state. Phone field should validate 10 digits and reject the obvious junk. Bad addresses are RTO in slow motion.
21. Keep checkout extensions to two. One trust or delivery-date element, one order bump. Every extra block is another reason to pause. This is also where the honest answer about Shopify Plus comes up: if your only reason for upgrading is checkout customisation, check whether checkout extensibility on your current plan already covers it. We turn down Plus upgrades regularly for that reason, and the Shopify Plus conversation is a better one to have at ₹5 crore a year than at ₹50 lakh.
Trust and compliance: items 22 and 23
22. GST invoice, plain-language returns, working phone number. A returns policy written by a lawyer costs you sales. Write it in six lines with the actual window in days and who pays reverse shipping. Put a phone number in the footer that someone answers.
23. Category-specific marks where they apply. FSSAI licence number on food listings, BIS hallmark details for jewellery, ingredient and manufacturer information for cosmetics. This isn't conversion theatre. It's the stuff that gets a store delisted from marketplaces and generates chargebacks.
Retention and measurement: items 24 and 25
24. Three flows, done well, beat twelve half-built ones. Welcome with the offer you actually honour, abandoned checkout that acknowledges COD is available if it is, and a post-purchase sequence timed to when the product is genuinely used up or worn. The abandoned checkout email that mentions the specific item and its delivery date outperforms the generic "you left something behind" every time we've split it.
25. Reconcile GA4 against Shopify monthly. A 10 to 15% gap is normal. A 40% gap means your tracking is broken and every decision you've made from that dashboard is suspect. Check consent mode, check that the purchase event fires once rather than twice, and check whether your ad platforms are triple-counting the same order.
What we'd skip
Spin-the-wheel popups. Stacked exit intents. "14 people are viewing this" counters that display 14 at 4am. Live chat with nobody staffing it, which is worse than no chat. And full theme redesigns commissioned before anyone has read the checkout funnel data, which is the single most expensive mistake in this business.
If you want a second pair of eyes on where your store sits against this list, we do a free audit: mobile LCP on your real templates, funnel drop-off by step, and the three fixes we'd do first with rough effort against each. Takes us a few days. You get the findings whether or not you hire anyone.


