The scenario
The store sells nebulisers, walking aids, bath safety equipment and first-aid kits in Kuwait, on a bilingual Shopify build with KNET, Tabby and cash on delivery at checkout. Five years in, a small team, and a product mix that ranges from a twelve-dinar first-aid kit to a much larger mobility aid bought once and rarely returned to soon after.
The paid side of the business was healthy: Google search and Instagram were bringing in people who were already looking for exactly what the store sold. What happened after the click was the problem. The product pages read fine on a laptop and broke quietly on the phone in Arabic, and the checkout asked for an address the way a form does, not the way a Kuwaiti actually gives one.
- Monthly revenue band
- pending client sign-off
- Average order value
- pending client sign-off
- Fulfilment
- Own stock, local courier, next-day delivery inside Kuwait City and Hawalli
- Team
- Three staff covering orders, delivery coordination and WhatsApp
Traffic the ads had already paid for, leaving at the door
The funnel read was blunt once we split it by language and device. Arabic mobile sessions — the largest single segment — converted well below English desktop sessions, and the gap was too wide to explain by audience quality alone. Something on the page itself was costing orders, and it was costing them specifically to the customers the store's own ads were working hardest to bring in.
Session recordings on the three busiest product pages showed the same pattern within the first few sessions: right-to-left layout breaking around the price and the delivery estimate, a payment section that only appeared at checkout rather than on the page itself, and no expiry date or batch photo visible anywhere before a shopper had to scroll twice.
None of it was a traffic problem, and none of it needed a bigger budget to fix. The store was paying full price for visitors and then asking those same visitors, in the one language most of them actually read, to trust a page that did not answer the one question this category is built on: is this real, and is it still good.
What we did — the pages and offers we tested
The losers are here on purpose. A test with only winners was never a test.
Batch photo and expiry date, above the fold
Winner"Batch photo and expiry date, right under the price."
- Format:
- Product page block: photo, expiry date and registration reference, no scrolling required
This answered the question session recordings showed people looking for and not finding: whether the item on the page is the same item that arrives, and how much life it has left. Adding it above the fold rather than in a policy tab lifted add-to-cart on the three pages it shipped to first, and it did the most on the items with the widest range of expiry-related WhatsApp questions.
Right-to-left checkout with an address that matches how Kuwait actually addresses
Winner"Area, block, street — one field each, no guessing."
- Format:
- Checkout form rebuilt phone-first with separate area, block and street fields
The old checkout used a single free-text address line, and the recordings showed people typing, deleting and typing again before giving up. Splitting it into the fields Kuwait actually addresses by, and fixing the right-to-left layout underneath it, was the single biggest lift on checkout completion of anything tested, larger than any offer change.
Payment badges moved from checkout onto the product page
Winner"KNET, Tabby or cash on delivery — see it now, not at checkout."
- Format:
- Payment method icons added to the product page next to the price
First-time buyers were abandoning at checkout after discovering the payment options only there, which reads as a late surprise on a purchase they were already unsure about. Showing the same badges next to the price removed one more reason to hesitate before the cart, and it helped cash-on-delivery orders complete at a noticeably higher rate.
A stock-scarcity countdown on the product page
Lost"Only a few left — order before it's gone."
- Format:
- Countdown-style low-stock banner above the add-to-cart button
This is a familiar fashion-retail pattern that read wrong here. On a nebuliser or a mobility aid, urgency framing came across as pressure on a decision people were already treating carefully, and it measurably increased bounce on the pages it ran on rather than add-to-cart. It was pulled within the first week of the test rather than left to run its course.
A buy-two bundle offer on single-use devices
Lost"Buy two, save on the pair."
- Format:
- Bundle pricing block offering a discount on a second identical unit
A nebuliser or a mobility aid is usually bought once, for one specific need, and a second identical unit is not something most households want at any price. The offer drew almost no uptake and complicated the page for everyone else scanning past it, which told us the fix here had nothing to do with the offer and everything to do with the page it sat on.
What we did — the optimizations, in order
Read the funnel by language and device before touching anything
We split analytics and store data by Arabic versus English and mobile versus desktop, and mapped exactly where the drop between product page, cart and checkout was widest for each combination.
Why: A single store-wide conversion number hides the fact that two very different funnels are running under one URL. The Arabic mobile gap was the whole problem here, and finding it first meant the rest of the work went to the page that actually needed it.
Watch real sessions on the three busiest product pages
Recordings and heatmaps on the three product pages taking the most paid traffic, in both languages, focused on where a visitor paused, scrolled back or left mid-scroll.
Why: Numbers tell you where people leave; sessions tell you why. Watching a handful of real Arabic mobile sessions surfaced the broken right-to-left price block and the missing expiry information faster than a week of dashboard staring would have.
Fix the floor: speed, right-to-left, payment visibility
Mobile load time first — compressing images and removing unused apps — then the right-to-left layout break around price and delivery, then the payment badges and the batch and expiry block on the product page itself.
Why: These four fixes touch every visitor regardless of what page they land on, which is why they came before any test. A store cannot learn anything from an offer test running on top of a broken layout, because the layout is eating the signal the test is supposed to produce.
Test the page and the offer, one variable at a time
The batch-and-expiry block, the payment badges, a stock-scarcity banner and a two-unit bundle were each tested against the same baseline page, two live tests per template at most.
Why: Running more than two live tests on one template makes it impossible to say which change actually moved the number. Keeping to two at a time is what let us confidently call the countdown banner a loser instead of an ambiguous result buried under three other changes.
Rebuild checkout around how Kuwait actually addresses itself
A phone-first form, separate area, block and street fields instead of one free-text line, sane cash-on-delivery fee logic, and a WhatsApp fallback link for anyone who abandons the form.
Why: An address field built for a country with postcodes is the wrong shape for Kuwait, and it was quietly failing every visitor, not just the ones who complained. The WhatsApp fallback also caught a handful of orders a broken form would otherwise have lost outright.
Time the review ask after the product has actually been used
Order confirmation moved to WhatsApp, and the review request rescheduled to arrive roughly ten days after delivery instead of the day the order shipped.
Why: A review asked for on shipping day only ever describes the box. Waiting until the item has been used a few times produces a review a hesitant future buyer actually trusts, which is exactly the kind of proof this category converts on.
Keep a weekly test log so nothing gets re-run by accident
Every test's hypothesis, result and decision went into one shared log the team reads weekly, including the two tests that lost and why they lost.
Why: Without a written log a small team re-runs the same countdown-banner idea a year later because nobody remembers it already failed. The log is what turns one round of testing into a habit instead of a one-off project.
What changed
The headline number is in the table above, and it moved for a boring reason: the store stopped losing Arabic mobile visitors to a page that did not answer their actual question before the layout itself lost them. Checkout completion moved more than the product-page changes alone, which points at the address field as the single most expensive fix on the list.
The offer tests told a clearer story than the page tests did. Every winner was a piece of information the customer already wanted and could not find — the expiry date, the payment badge, the address that made sense — and every loser was a retail trick borrowed from a category where urgency and bundles behave differently. Health products convert on certainty, not pressure.
Cash-on-delivery share held roughly steady rather than falling, which mattered to the team: the goal was never to push people off cash on delivery, only to stop losing the ones who would have paid by KNET or Tabby if they had trusted the page enough to try.
What we would do next
First, extend the batch-and-expiry block to every product in the catalogue rather than the three pages it launched on, since the pattern that worked there had nothing product-specific about it.
Second, test a shorter guest checkout against the current form now that the address fields are fixed, because the next leak is likely account creation, not the layout underneath it.