The scenario
The brand sells laundry concentrate, floor cleaner and bathroom-cleaning bundles in Kuwait, direct to consumer, on a Shopify store with KNET, Tabby and cash on delivery. One founder runs the site, the ads and customer replies personally, and the product itself is heavy: a full bundle order is several kilograms of liquid, which changes what a normal delivery and a normal return actually cost.
Paid traffic had been growing steadily on Meta and Google Shopping, and the founder's read of the account was that the ad platforms were underperforming, because sessions kept arriving without turning into the order volume the spend implied. The site had not been touched since launch beyond adding new products.
- Monthly sessions band
- pending client sign-off
- Average order value
- pending client sign-off
- Fulfilment
- Own stock, local courier, heavy-carton delivery across Kuwait
- Team
- One founder, one delivery coordinator
The traffic was fine. The site was quietly turning it away
The funnel read split by device and language told a different story than the founder expected. On desktop and in English the site behaved reasonably. On mobile in Arabic, where more than half of sessions actually landed, the picture was worse at almost every step: slower to load, a right-to-left layout that had never been checked properly, and a checkout that assumed a shopper who already knew the delivery fee logic for a heavy carton.
Session recordings on the three product pages carrying the most paid traffic showed the same three things repeatedly. The add-to-cart button sat below the fold on a mid-range phone once the Arabic price and delivery text wrapped onto an extra line. The bundle savings, the whole reason to buy more than one bottle, were never shown until the cart page. And the payment badges — KNET, Tabby, cash on delivery — appeared only at the final checkout step, after most of the drop had already happened.
None of this was a traffic problem, and no amount of new creative was going to fix a page that hid its own best argument. The site was answering the shopper's questions one screen too late, on the device most of its actual customers were using.
What we did — the pages and offers we tested
The losers are here on purpose. A test with only winners was never a test.
Move the price-per-litre and delivery promise above the fold
Winner"KD ‹per litre›, delivered in ‹days› — right under the price, not on the cart page."
- Format:
- Product-page layout test, mobile Arabic template
The session recordings showed shoppers scrolling down looking for exactly this before ever touching the add-to-cart button. Putting the price per litre and the delivery promise where the eye already was removed a full extra scroll from the mobile Arabic path, which is where the funnel read said the worst drop was happening.
Bundle as the default selection, single bottle as the alternative
Winner"Most households choose the 3-bottle bundle" pre-selected on load
- Format:
- Offer test, product page and cart
The single bottle had been the default for two years even though bundles carried a better margin and a lower delivery cost per bottle. Defaulting to the bundle, with the single bottle still one click away, lifted the average order value enough to absorb the heavy-carton delivery cost without raising the delivery fee itself.
Sticky add-to-cart bar on mobile
WinnerA fixed bottom bar showing price and "Add to cart" that follows scroll
- Format:
- Sticky element test, mobile only
Once the price and delivery promise moved up the page, the original add-to-cart button was still buried below the product description for a shopper who kept reading. A sticky bar removed the need to scroll back up and measurably shortened the path from landing to cart on mobile.
Removing the cash-on-delivery fee entirely
Lost"No delivery fee, even cash on delivery" storewide for two weeks
- Format:
- Offer test, storewide
A reasonable hypothesis that lost, and it lost for a specific and expensive reason: cash-on-delivery orders on heavy cartons already had a meaningfully higher failed-delivery rate than prepaid orders, because a courier turned away at the door on a bulky item is a wasted trip either way. Removing the fee increased cash-on-delivery volume without increasing completion, and it made every failed drop-off more expensive rather than less likely.
A comparison table against the single-bottle price at the co-op
Neutral"See the price per litre against the shelf price" collapsible table on the product page
- Format:
- Page content test, product page
A quiet win rather than a dramatic one. The table did not move add-to-cart rate much on its own, but it measurably reduced the number of pre-purchase WhatsApp questions asking whether the bundle was actually worth it, which freed the founder's time for the messages that were already close to an order.
Address form redesigned by area, block and street
WinnerDropdown for area, then block, street and house number fields, phone number first
- Format:
- Checkout form test
The original checkout used a single free-text address field, which produced enough unusable addresses on heavy-carton orders that the delivery coordinator was calling roughly one in five customers before dispatch just to clarify where the house was. Structuring the form the way Kuwait actually addresses itself cut that call volume and the delivery delays that came with it.
What we did — the optimizations, in order
Read the funnel by device and language, not as one number
We split analytics and store back-end data by device and by language between product page, cart, checkout and payment, instead of looking at one blended conversion rate for the whole store.
Why: The blended number looked mediocre but not alarming. Split by mobile Arabic, it showed a leak nearly twice as steep as the desktop English path, which is the split that told us where to actually spend the first two weeks.
Watch real sessions on the three highest-traffic product pages
Recordings and heatmaps on the three product pages carrying the most paid traffic, in both languages, over two weeks before changing a single pixel.
Why: This is where the below-the-fold button, the hidden bundle savings and the late-appearing payment badges actually surfaced. None of those three were visible in analytics numbers alone; they were only visible watching a real thumb scroll past them.
Fix speed, layout and payment visibility before touching the offer
Compressed the hero images, removed two unused apps slowing the theme, corrected the right-to-left rendering that had never been checked properly, and moved the price, delivery promise and KNET/Tabby/cash-on-delivery badges above the fold on every product page.
Why: These fixes touch every visitor regardless of which offer or landing page they arrive through, so they had to happen before any test, or the test results would have been contaminated by a floor that was still broken for half the audience.
One variable at a time, two live tests per template maximum
Ran the bundle-default test, the cash-on-delivery fee test and the comparison-table test in sequence rather than together, so each result could be attributed to a single change.
Why: The cash-on-delivery fee test would have looked like a straightforward win on completion rate alone if it had run at the same time as the bundle-default test; reading it in isolation is what surfaced the failed-delivery cost that made it a loss.
Rebuild checkout for how Kuwait actually addresses itself
Replaced the free-text address field with area, block, street and house-number fields, moved the phone number to the top of the form, and added a WhatsApp fallback link for a customer who abandons the form.
Why: A heavy-carton order that arrives at the wrong address is not a minor inconvenience; it is a courier turned away and a delivery that has to be rebooked. Structuring the address field the way it is actually written on a Kuwaiti ID or bill removed most of the ambiguity that was causing that.
Time the review ask after the product has actually been used
Moved the automated review request from the day the order shipped to two weeks later, and added a WhatsApp order confirmation with a refill reminder tied to the product's typical consumption cycle.
Why: A review requested the day a cleaning bundle ships is a review of the delivery, not the product. Waiting until a household has actually gone through most of a bottle produces reviews that speak to strength and value, which is exactly what the product-page comparison table needed to cite.
Keep a weekly test log with the decision, not just the result
A single running document listing each test, its hypothesis, the result and what was kept, killed or escalated, shared with the founder every week rather than in a single end-of-engagement report.
Why: Without a written log, a founder running the site alone tends to re-run the cash-on-delivery fee idea again next year, having forgotten why it was killed. The log is what makes the loss reusable instead of just avoided once.
What changed
The table above carries the numbers, and the shape matters here as much as the size: the improvement came almost entirely from the mobile Arabic path, the one that had been leaking hardest, while the desktop English path barely moved because it did not need to. That is the sign the fix landed on the right leak rather than a general uplift that would have shown up everywhere equally.
The floor fixes — speed, right-to-left layout, payment visibility — moved fastest, inside the first two to three weeks, because they touch every visitor. The offer tests took longer to read conclusively given the order volume, and the clearest lesson among them was the cash-on-delivery fee test: a change that looked generous and completion-friendly on paper turned out to be quietly expensive once the failed-delivery cost on heavy cartons was counted properly.
Average order value moved as a side effect of the bundle-default change rather than as its own goal, which is usually the healthier way for it to move — a shopper choosing more product because the maths made sense, not because a bigger basket was pushed on her at checkout.
What we would do next
First, apply the same area/block/street address structure to the account's WhatsApp ordering flow, which still uses free-text addresses and carries the same failed-delivery risk on heavy cartons.
Second, test a refill-subscription option at checkout rather than only as a follow-up message, since the consumption cycle for this product is predictable enough to sell the second order at the moment of the first.