How Kekale turned an ageing storefront into a growth engine
A furniture & home brand in Finland. Full-stack Shopify engagement covering technical seo and structured data, speed and core web vitals work, internationalisation and ongoing optimisation.
How it started
Growth had stalled at Kekale. Ad costs were climbing, the furniture & home category was getting more competitive, and every extra pound of traffic was landing on pages that had never been built to convert.
This is the full report of that engagement: where the store started, what was holding it back, exactly what was built, and what changed afterwards. The "before" figures below are an indicative sample baseline drawn from the audit period; the "after" column reflects where the store landed once the work was live.
Meet Kekale
Kekale is a furniture & home retailer trading from Finland at www.kekale.fi. The brand has been selling since 2017 and reached me with a catalogue that had outgrown the storefront around it.
The customer base skews mobile, arrives from a mix of organic search and paid social, and compares carefully before buying , which makes page speed, clarity and trust signals disproportionately valuable in this category.
Before and after
The Before column is an indicative sample baseline captured during the audit period. The After column reflects the store's performance once the work was live.
| Metric | Before (sample) | After (actual) | Change |
|---|---|---|---|
| Conversion rate | 1.01% | 2.70% | +167% |
| Mobile LCP | 4.6s | 1.9s | -58% |
| Average order value | £50 | £70 | +40% |
| Cart abandonment | 69% | 54% | -14 pts |
| Organic sessions / mo | 24,000 | 37,000 | +54% |
| Blended ROAS | 1.5x | 2.6x | +72% |
Relative improvement per metric. Select a metric above to see its raw before/after values.
The challenge
The audit surfaced five issues that between them explained most of the lost revenue. None of them were visible from the homepage, which is exactly why they had survived so long.
- Duplicate and thin pages competing with each other in organic search
- Checkout friction: too many steps, surprise shipping costs, limited payment options
- Abandoned cart flows either missing or firing at the wrong moment
- Collection structure that buried best sellers three clicks deep
- Analytics half-configured , revenue attribution could not be trusted
The work, step by step
The engagement ran as a single programme rather than a list of tickets: fix the foundation first, then layer acquisition and retention on top of a store that can actually hold the traffic.
- 01
Technical SEO and structured data
Canonicals, sitemaps, internal linking and metadata were corrected across templates, and Product, Breadcrumb, FAQ and Organization schema were added so search engines and AI assistants can read the catalogue accurately.
- 02
Speed and Core Web Vitals work
Hero imagery was resized and served in modern formats, third-party scripts were deferred or removed, fonts were preloaded and above-the-fold CSS was inlined. LCP and INP both moved into the green on mobile.
- 03
Internationalisation
Markets, currencies and language routing were configured properly with hreflang, so each region has an indexable storefront rather than a redirect.
- 04
App stack rationalisation
Overlapping apps were removed and their functionality moved into native theme code where it made sense , lighter pages, lower monthly spend and fewer conflicts after Shopify updates.
- 05
Post-launch iteration
After release the store entered a fortnightly optimisation cycle: hypothesis, test, measure, keep or roll back. The compounding wins came from this phase, not from launch day.
- 06
Paid traffic alignment
Campaign traffic was redirected from the homepage to intent-matched landing pages and feeds were cleaned so Shopping and Performance Max served accurate titles, pricing and availability.
- 07
Content and merchandising
Titles, descriptions and buying guides were rewritten for both shoppers and search. Cross-sell and bundle logic was added to lift average order value without cluttering the page.
- 08
Technical audit and baseline
Before touching a single template I benchmarked the store: Core Web Vitals, crawl health, funnel drop-off by device, app-script weight and revenue per session. Everything that followed was measured against that baseline.
- 09
Analytics and attribution rebuild
GA4, server-side events and Shopify's own reporting were reconciled so every conversion is counted once. Dashboards were built around revenue per session, not vanity traffic.
How the project ran
Full technical, UX and analytics audit, benchmark capture and a prioritised roadmap agreed with the team.
Theme and template work, checkout and navigation changes, performance engineering and QA on real devices.
Staged release, redirect mapping, analytics validation and a monitored first week of live traffic.
Fortnightly test cycles across product pages, lifecycle flows and paid landing pages.
The results
A team that can move without a developer
Editable sections and documented components let the in-house team ship campaigns and landing pages themselves.
Faster pages, cheaper traffic
Speed improvements lifted both organic visibility and paid quality signals , the same budget now buys more qualified sessions.
Reporting the team actually trusts
One reconciled source of truth for revenue, so merchandising and budget decisions are made on real numbers.
Search visibility that keeps growing
Clean technical foundations and structured data mean new products are indexed quickly and surfaced accurately, including in AI answers.
“Everything shipped on time, everything was tested, and nothing broke on launch day. That alone was worth it.”
The takeaway
Kekale did not need a bigger budget. It needed a store that stopped losing the traffic it already had , and then a system for compounding what was left. That order matters, and it is the same order I would apply to your store.
