CWV в цифрах: что дал headless для УралМеталл
Автор: WebGoodPeople
Проблема до миграции
УралМеталл — крупный дистрибьютор металлопроката с каталогом более 20 000 артикулов. До миграции сайт работал на стандартном фронтенде 1С-Битрикс: тяжёлые PHP-компоненты, генерация страниц на сервере, фильтры через SQL-запросы к инфоблокам. Результат — стабильно плохие показатели Core Web Vitals.
Замеры в Google PageSpeed Insights показывали LCP в диапазоне 6–8 секунд на мобильных устройствах. CLS скакал от 0.18 до 0.31 из-за динамически подгружаемых баннеров и блоков фильтрации. INP превышал 400 мс — страница «зависала» при первом взаимодействии. Google Search Console фиксировала статус «Плохо» по всем трём метрикам для 94% страниц каталога.
Параллельно контент-команда жаловалась на другое: любое изменение шаблона карточки товара требовало правки PHP-компонента, тестирования и деплоя. Новый тип фильтра — в среднем 3 недели от задачи до публикации. Редакторы не могли самостоятельно обновить структуру листинга без разработчика.
Что было сделано
Решение — headless-архитектура с сохранением бэкенда. Битрикс и синхронизация с 1С остались нетронутыми: они по-прежнему служат источником данных и системой управления заказами. Мы вынесли фронтенд на Next.js 14 (App Router, React Server Components) и заменили поиск и фильтрацию на Elasticsearch 8.
Схема данных: 1С передаёт изменения в Битрикс по расписанию, Битрикс через агент индексирует изменённые товары в Elasticsearch, Next.js запрашивает ES напрямую для каталога и поиска, тонкие PHP-эндпоинты Битрикса отдают корзину, авторизацию и оформление заказа. Страницы категорий генерируются с ISR и перегенерируются раз в 10 минут — без ручного вмешательства.
Результаты Core Web Vitals
Через 6 недель после запуска замеры показали следующее:
- LCP: с ~7 сек до 1.3 сек на мобильных (страница категории, первый экран)
- CLS: с 0.24 до 0.02 — устранён за счёт зарезервированных размеров изображений и skeleton-заглушек
- INP: с 430 мс до 68 мс — React Server Components убрали лишний клиентский JavaScript
- PageSpeed Score (mobile): с 23 до 81
- PageSpeed Score (desktop): с 54 до 97
Google Search Console перевела 89% страниц каталога в статус «Хорошо» в течение 8 недель после индексации обновлённых URL.
SEO-результаты
Органический трафик через 6 месяцев после миграции вырос в 3,5 раза по сравнению с аналогичным периодом годом ранее. CWV — часть истории, но не вся: параллельно были проработаны теги title/description, добавлена разметка хлебных крошек и Schema.org для товаров.
Конкретные числа из GSC: 1 847 новых низкочастотных запросов попали в топ-20 за 6 месяцев. CTR вырос с 2,1% до 2,7% (+0,6 п.п.) — вероятно, за счёт более быстрой загрузки в мобильной выдаче. Количество проиндексированных страниц каталога увеличилось с 4 200 до 6 900 — Googlebot стал обходить сайт глубже после улучшения скорости ответа.
Бизнес-эффект
Скорость работы контент-команды изменилась принципиально. До миграции добавление нового типа фильтра занимало 3 недели: разработчик, QA, деплой компонента. После — 2 дня: нужно лишь добавить поле в маппинг ES и обновить React-компонент фильтра, не трогая бэкенд.
Публикация новых категорий и акционных страниц ускорилась втрое. Редактор создаёт страницу в Битрикс, ISR подхватывает изменение через 10 минут. Разработчик в процессе не участвует.
Главный урок
Улучшение CWV само по себе не двигает позиции — это распространённое заблуждение. Рост органики в 3,5 раза объясняется комбинацией трёх факторов: скорость (LCP в зелёной зоне → лучший краулинг), краулабельность (SSR/ISR → Googlebot видит контент без исполнения JS) и полнота контента (все характеристики товаров отдаются в HTML, а не подгружаются AJAX). Убери любой из трёх — эффект будет в разы меньше.
Подробный разбор проекта: УралМеталл — headless-каталог с 20 000 SKU.
Хотите понять, что тормозит ваш каталог? Запишитесь на бесплатный Catalog Probe — за 3 дня покажем точки роста.