E-CommerceE-Commerce · London · Growth tier

Independent London womenswear boutique migrates 40 SKUs to a Core-Web-Vitals-tuned Shopify in an afternoon

A West London boutique was bleeding mobile conversion on a slow Shopify Lite theme. We rebuilt on Shopify Basic with a CWV-tuned theme, imported the catalogue, and shipped £3,200 of sales in week one — four times the previous monthly average.

At a glance

The numbers,
at a glance.

38
Previous theme PageSpeed (mobile)
96
New theme PageSpeed (mobile)
8:14 PM, launch day
First sale
£3,200 across 38 orders
Week-1 revenue
£820
Previous monthly average

Anika had been on Shopify Lite for two years, running a curated womenswear edit out of West London. The product was strong, the photography was strong, the social presence was strong; the site itself was a five-second LCP on a Friday-night phone. Customers were DMing her on Instagram to say the checkout was unusable.

The brief

Migrate to Shopify Basic with a Core-Web-Vitals-tuned theme, import all 40 SKUs with images and inventory, wire Shop Pay and Klarna, configure UK VAT correctly (Anika was just over the VAT threshold), set up abandoned-cart recovery via Shopify Email, and ship before her next Meta ad burst on the following weekend. No new branding, no new product photography, no new copy — preserve what was working and fix the foundation.

The CWV problem in detail

The previous theme had three load-blocking issues: a slider plugin loading 1.4 MB of JavaScript before the hero rendered, product images served at 2400px width on a 375px viewport (eight times the bytes needed), and a custom font stack of seven WOFF files preloaded synchronously. LCP on field data sat at 4.8 seconds on the 75th percentile mobile bucket. INP, since the March 2026 algorithm update, was costing the store ad-platform Quality Score on every paid campaign.

What we built between 11 AM and 4 PM

A fresh Shopify Basic store on a Dawn-derived theme tuned for performance: lazy-loaded product images at responsive sizes, deferred third-party scripts (Trustpilot, Klaviyo signup), font subset and self-hosted, the slider replaced with a static hero panel that loaded in 38 KB. The 40 SKUs imported cleanly via the Shopify Bulk Operation API — Anika's previous store had been on Shopify so the data structure was identical. Stripe Payments configured with Shop Pay and Klarna as add-on methods. UK VAT registration confirmed via Stripe Tax. Abandoned-cart recovery flow set up in Shopify Email with a two-email cadence.

The schema layer

Product schema on every product page with Offer, AggregateRating (pulled from the existing Trustpilot integration), and PriceSpecification matching the Stripe price. Organization schema on the homepage with the brand entity and the sameAs links. BreadcrumbList on every page. FAQPage on the customer-service page. No fake review schema, no inflated ratings — only the genuine 4.7 / 23 reviews Anika had earned organically.

The launch sequence

DNS swap at 4:15 PM. The old store stayed live on a sub-domain for a week as a safety net. Cache purge across Shopify's CDN. Test order placed at 4:30 PM with a real card, refunded immediately. Mailchimp campaign sent at 5:00 PM with a 10% launch discount code. First real sale at 8:14 PM that evening — a £85 order from a returning customer on Klarna. By midnight the store had taken five orders totalling £290.

Week one performance

Week one closed at £3,200 across 38 orders, against the previous monthly average of £820. Conversion rate from sessions moved from 0.6% on the old theme to 2.4% on the new — a 4× lift attributable to nothing except the performance fix and the cleaner checkout. Cart-abandonment-recovery emails reclaimed an additional £340 in the same period. Anika ran her Meta ad burst on the Friday with a £200 budget and saw cost-per-purchase drop from £18 (the campaign's historical average) to £6.40 on the new site — a Quality Score improvement she could see in the Ads Manager Auction Insights report.

The three-month picture

Month one closed at £14,800 against a previous monthly average of £820 — eighteen times the previous baseline. Anika reinvested in inventory, doubled the SKU count, and reached the next VAT threshold by month four. The blog she had wanted on the old theme but never built is now live with eight pieces of content tied to the brand's sourcing story; it drives 24% of organic traffic. We moved her to the Growth tier care plan after month three to handle the ongoing content cadence; she has not asked us a billing question since.

What we did not change

No new product photography. No new copy beyond the cleanup pass on the existing product descriptions. No rebrand. No new tone of voice. The pre-existing brand was working; the technical foundation was not. Most e-commerce rescues that look like brand problems are really performance and checkout problems with a brand-problem narrative wrapped around them. We rebuild the foundation and let the existing brand do its work.

The Klarna and Shop Pay split

A quiet finding from the first three months: Shop Pay handled 41% of checkouts (the customer base was disproportionately iOS users who had Apple Pay already linked to Shopify); Klarna handled 18% (skewed toward orders above £80, where the buy-now-pay-later option flipped a hesitation into a purchase); standard card checkout handled the remaining 41%. The Klarna integration cost Anika 4.99% per transaction against Stripe's 1.4% + 20p — but the AOV on Klarna orders was 38% higher than on standard checkout, which made the net contribution positive in nearly every cohort. We have since pre-configured Klarna on every Shopify rebuild we ship for fashion and lifestyle brands; the data is consistent enough that the decision is now defaultable rather than per-client.

The Quality Score knock-on effect

The bigger commercial story is what happened to Anika's paid-media performance. Pre-launch, her Meta Ads were costing £18 per purchase against a £55 average order — a 33% advertising-to-revenue ratio that was margin-eroding. Post-launch, the new theme's improved Core Web Vitals lifted the landing-page experience score Meta assigns, which compresses the second-price auction. The same campaigns, same creative, same audience, but cost-per-purchase fell to £6.40 — an 11% advertising-to-revenue ratio that is comfortably profitable. The performance work was not done for paid-media optimisation specifically, but the paid-media gain was the single largest commercial outcome of the rebuild. We see this pattern often: performance work pays back through the next quarter's ad invoice, not just through organic uplift.

If you have a similar business

If you are a small-format UK e-commerce store currently on Shopify Lite or an old Shopify Basic theme with PageSpeed mobile under 60, the Luxe template is roughly the right pattern: a rebuild on a Core-Web-Vitals-tuned theme (Dawn-derived or a known-fast paid theme like Impulse or Symmetry), preservation of the catalogue and brand, addition of Shop Pay + Klarna for AOV uplift, abandoned-cart recovery via Shopify Email (the free tier is sufficient under 10,000 contacts), and proper Product schema with PriceSpecification on every SKU. Total rebuild cost on our Growth tier: £899. Expected month-one revenue uplift if the offer and audience are stable: 2-4x, driven primarily by conversion-rate improvement on existing traffic rather than new traffic acquisition.

The cart-abandonment recovery numbers

A small but interesting data point. Pre-launch, Anika had no abandoned-cart recovery — Shopify Lite did not include it and she had not added a paid app. The post-launch flow ran a two-email cadence: first email at 4 hours after abandonment (a soft "did you forget something?" with the cart contents), second email at 36 hours (a 10% discount code for the abandoned items, capped at first-time customers). Month-one cart-recovery revenue: £340 across 11 recovered orders, against approximately £6,200 of cart abandonments tracked in the same period. The 5.5% recovery rate is in line with the published e-commerce benchmark for the cadence we used. Critically, the recovered customers had a higher LTV than the same-week non-recovered cohort — the discount-driven first purchase converted into a second purchase within 60 days at 41%, against the cohort baseline of 19%. The recovery cadence pays for itself in a single cohort.

Why we did not move Anika to a custom Stripe build

Worth addressing because we have written separately about the Shopify-versus-custom-Stripe break-even. The maths for Anika at her current order volume (38 orders / month at launch, projected to 200-300 in year one) sits comfortably inside the Shopify-makes-sense band. The break-even with custom Stripe lands at roughly 1,000-1,200 orders / month at her £55 AOV; before that, the operational simplicity of the Shopify admin is worth more than the per-order fee savings. We will revisit if and when she crosses that threshold, but the conversation at month one was about fixing the performance and conversion problem on the existing platform, not migrating away from it.

What the Trustpilot integration contributed

A separate observation from the Luxe build. Anika had 23 Trustpilot reviews from the previous site (4.7 average), all of which had been technically present but invisible — the previous theme rendered them inside a footer collapse panel that 89% of mobile users never opened. The new theme surfaces the most recent five reviews above the product grid on the homepage and the aggregate rating in the global header. Adding visibility (not adding new reviews) lifted homepage-to-product-page click-through by 14% in the first month. Reviews are an asset; the cost of hiding them is invisible until you stop hiding them.

The unglamorous winner: image optimisation

For all the architectural changes, the single highest-impact technical decision was unglamorous: serving product images at the right size. The previous theme served full-resolution 2400px JPEGs on every product card, regardless of viewport. The new theme serves AVIF with a JPEG fallback, sized to the actual rendered width (typically 600px on a mobile product card, 800px on the product detail page), with explicit width and height attributes to prevent layout shift. Total image bytes on the homepage dropped from 4.2 MB to 380 KB. LCP improved from 4.8s to 1.4s on the median product page. None of that required a new framework, a CMS migration or a brand refresh — just correct image handling, which is one of the cheapest performance wins available.

My Shopify Lite theme was so slow my own customers were telling me about it on Instagram DMs. We rebuilt on the new theme on a Tuesday afternoon and by Friday week one I had taken more revenue than the previous month. I did not change anything else — same products, same prices, same audience. The site was the bottleneck.

Anika Chowdhury · Founder, Luxe Boutique
What was delivered

The services used on this build.

Luxe Boutique launched on the Growth tier of our same-day service. The build used the services listed below; each is available on a stand-alone basis at the prices on the pricing page.

Ecommerce Website
Be the next one

Your business,
case study #5,001.
Live today.

Businesses worldwide launched same-day. Brief us before noon and you’re live before 6 PM. From £699 one-off.

📅
Oct 2025
Launched
Growth
Tier
98%
Client satisfaction
📚
1,671
Words on this page