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 дня покажем точки роста.

Расскажите нам о своем проекте

Наши офисы

  • Россия
    Россия, Санкт-Петербург, Рижская улица, 5, корп. 1 офис 402
    +7 (967) 555-90-32
  • Казахстан
    Алма-Ата
    +7 (707) 340-29-12