CWV by the Numbers: What Headless Did for UralMetall
Author: WebGoodPeople
The Problem Before Migration
UralMetall is a large steel distribution company with a catalog of over 20,000 SKUs. Before the migration, the site ran on a standard 1C-Bitrix frontend: heavy PHP components, server-side page generation, and catalog filters built on SQL queries to iblocks. The result was consistently poor Core Web Vitals scores.
Google PageSpeed Insights measurements showed LCP in the 6–8 second range on mobile devices. CLS fluctuated between 0.18 and 0.31 due to dynamically loaded banners and filter blocks. INP exceeded 400ms — the page froze on first interaction. Google Search Console flagged 94% of catalog pages as "Poor" across all three metrics.
At the same time, the content team had a separate complaint: any change to a product card template required editing a PHP component, testing, and deployment. A new filter type took an average of 3 weeks from task to publish. Editors could not update the listing structure without a developer.
What Was Done
The solution was a headless architecture that preserved the backend. Bitrix and the 1C sync remained untouched as the data source and order management system. We moved the frontend to Next.js 14 (App Router, React Server Components) and replaced search and filtering with Elasticsearch 8.
The data flow: 1C pushes changes to Bitrix on schedule, Bitrix uses an agent to index changed products into Elasticsearch, Next.js queries ES directly for catalog and search, and thin Bitrix PHP endpoints handle cart, authentication, and checkout. Category pages are served with ISR and regenerate every 10 minutes without manual intervention.
Core Web Vitals Results
Six weeks after launch, measurements showed:
- LCP: from ~7s down to 1.3s on mobile (category page, above the fold)
- CLS: from 0.24 to 0.02 — eliminated by reserving image dimensions and using skeleton placeholders
- INP: from 430ms to 68ms — React Server Components removed unnecessary client-side JavaScript
- PageSpeed Score (mobile): from 23 to 81
- PageSpeed Score (desktop): from 54 to 97
Google Search Console moved 89% of catalog pages to "Good" status within 8 weeks of the updated URLs being indexed.
SEO Results
Organic traffic grew 3.5× over 6 months compared to the same period the previous year. CWV improvement is part of the story — but in parallel, we also worked on title/description tags, added breadcrumb markup, and implemented Schema.org for products.
Specific numbers from GSC: 1,847 new long-tail queries entered the top 20 within 6 months. CTR rose from 2.1% to 2.7% (+0.6 pp) — likely due to faster loading in mobile search results. Indexed catalog pages grew from 4,200 to 6,900 — Googlebot crawled deeper after the speed improvement.
Business Impact
The content team's velocity changed fundamentally. Before migration, adding a new filter type took 3 weeks: developer, QA, component deployment. After — 2 days: just add the field to the ES mapping and update the React filter component without touching the backend.
Publishing new categories and promotional pages became 3× faster. An editor creates a page in Bitrix, and ISR picks up the change within 10 minutes. No developer needed in the process.
The Key Lesson
Improving CWV alone does not move rankings — that is a common misconception. The 3.5× organic growth comes from the combination of three factors: speed (LCP in the green zone → better crawling), crawlability (SSR/ISR → Googlebot sees content without executing JS), and content completeness (all product attributes served in HTML, not loaded via AJAX). Remove any one of the three and the impact drops dramatically.
Full project breakdown: UralMetall — Headless Catalog with 20,000 SKUs.
Want to find out what is slowing down your catalog? Sign up for a free Catalog Probe — we will identify growth opportunities in 3 days.