The client had built a genuinely good product — a DTC home goods brand with strong organic social and a loyal core audience. Their growth had plateaued not because demand was lacking but because their storefront was losing visitors before they ever formed an intent to buy. Speed and messaging were the culprits. Neither was obvious from inside the business.
The Diagnosis: Two Problems, One Root Cause
The store had a 6.4-second Largest Contentful Paint on mobile — the primary device for traffic from their Instagram and TikTok channels. A 6.4-second LCP means most users on a standard mobile connection are watching a blank or partially-loaded screen for over six seconds before seeing anything meaningful. On mobile, where attention is scarce and alternatives are one swipe away, six seconds is a lifetime.
The messaging problem was subtler. Session recordings showed that users who stayed past the load were browsing product pages without adding to cart — a pattern that typically indicates a gap between product interest and purchase confidence. The product descriptions were feature-led (dimensions, materials, care instructions) and said nothing about outcomes or the scenarios in which the product belonged in a customer's life.
Key Diagnosis
Mobile LCP of 6.4s was killing the majority of traffic before it converted. For users who stayed, feature-led product copy was failing to bridge the gap between product interest and purchase intent.
The Performance Fix: 1.9 Seconds
We audited every asset on the critical render path and identified four primary performance culprits: unoptimised hero images (the largest single contributor — multiple JPEGs over 2MB each), a third-party review widget loading synchronously in the head, an unused animation library adding 180kb to the initial bundle, and no lazy loading on below-the-fold product images.
Image Pipeline Rebuild
We migrated all product and hero imagery to a WebP pipeline with responsive srcsets — serving images at the exact dimensions required by each breakpoint rather than loading a single large image and resizing in the browser. Hero images dropped from an average of 2.3MB to 94kb at mobile sizes. This single change accounted for the majority of the performance improvement.
Third-Party Script Audit
The review widget was deferred to load after the page's interactive state. The animation library was removed and replaced with CSS transitions for the three animations actually in use. A tag management audit identified six additional third-party scripts loading on every page that served no measurable function — analytics duplicates, an abandoned A/B testing tool, a deprecated chat widget. All six were removed.
The Messaging Fix: Outcome Before Feature
We rewrote product copy using a three-layer structure: the opening sentence describes the specific scenario in which this product is the right choice; the middle section translates each feature into its customer-relevant benefit; the closing section addresses the most common purchase objection (typically: is this the right size, will this work in my space, how will it arrive).
For a linen duvet cover, the original opening was: "100% stonewashed linen, available in 8 colours." The rewrite: "The cover that makes every morning feel like a hotel, however your room actually looks." Same product. Entirely different relationship to purchase intent.
Product Page Layout Refinement
We restructured the product page above-the-fold hierarchy: imagery on the left (unchanged), right column with outcome statement first, price second, size selector third, add-to-cart fourth. The previous layout had size selector immediately below the title — putting the decision before the desire. Moving it below the price and outcome statement changed the emotional sequence from 'choose' to 'want, understand, choose, buy'.
Add-to-cart rate
Before
3.8%
After
5.4%
Mobile LCP
Before
6.4s
After
1.9s
Revenue per session
Before
£2.10
After
£2.69
Checkout initiation rate
Before
51%
After
68%
Why 30 Days Was Enough to Know
The measurable impact arrived within 30 days because performance improvements are not probabilistic — they are deterministic. Removing 4.5 seconds of load time doesn't have a confidence interval. It is a change in the fundamental experience of arriving at the store. The messaging improvements showed up more gradually as the changes compounded across indexed pages and returning visitors, but the trajectory was clear within two weeks.
- WebP image pipeline with responsive srcsets eliminated the largest single performance bottleneck
- Third-party script audit removed six redundant scripts with no measurable impact on functionality
- Outcome-first product copy bridged the gap between product interest and purchase confidence
- Product page hierarchy was restructured to lead with desire before decision
- All changes were implemented in a two-week sprint — no platform migration, no new features
“We knew our site was slow. We didn't know how much it was costing us. The 41% lift in add-to-cart in the first month showed us exactly what we'd been leaving behind.”
— Founder, DTC Home Goods Brand
The Lesson for E-commerce
Performance and messaging are not separate concerns. They both answer the same question that every store visitor is asking: is it worth my time to stay here and find out more? A slow site answers that question before the visitor has even seen the product. Feature-led copy answers it wrong after they have. Fix both and the conversion rate takes care of itself.
Takeaway
Before running paid campaigns to a store with a mobile LCP above 3 seconds, fix the store. You are paying to drive traffic into a funnel that is losing the majority of it before it even begins.