Перевели интернет-магазин пиломатериалов с Joomla на Битрикс — и стоимость конверсии упала почти вдвое. Разбираем проект по слоям

Делимся кейсом «ЛидерЛес»: что мы делали, где наступили на грабли и почему миграция превратилась в полноценную пересборку продукта. Внутри — техдолг, soft 404, открытые фильтры, калькулятор единиц измерения и YML-фиды для Яндекса.
Перевели интернет-магазин пиломатериалов с Joomla на Битрикс — и стоимость конверсии упала почти вдвое. Разбираем проект по слоям

Почему вообще пришлось всё переделывать

Привет. Мы — команда агентства Webcetera, и в этой статье расскажем про проект, который вели для «ЛидерЛеса» — интернет-магазина пиломатериалов: имитация бруса, строганая доска, вагонка, доска пола, блокхаус, планкен, обрезной и клееный брус, мебельный щит, палубная и террасная доска, фанера, погонаж, товары для бани — широкий каталог, где у каждой позиции свой набор параметров.

Сайт уже существовал и работал. Каталог показывался, заказы оформлялись, телефон звонил. Но изнутри всё выглядело иначе.

Стек был такой: Joomla 3.10 + VirtueMart. За годы жизни проект оброс слоем доработок: сторонние расширения, переопределения шаблонов, точечные правки под конкретные хотелки, накопленные стили и скрипты, HTML-мусор и переопределения логики поверх переопределений. Любая новая фича превращалась в детектив: «где это лежит, что от чего зависит, какой кэш мешает».

Перед нами встал классический выбор: апгрейдить старое или переезжать на новое.

Почему не обновили Joomla и не взяли WordPress

Сначала мы честно прикинули вариант с обновлением Joomla до актуальной версии. Беда в том, что прыгать пришлось бы через несколько мажорных версий. В таких ситуациях «обновление» — это не обновление, а почти полная переписка: проверять совместимость каждого расширения, переписывать переопределения, перенастраивать каталог, корзину, SEO, интеграции. По трудозатратам — тоже самое, что и новый сайт, только со старыми ограничениями в нагрузку.

WordPress мы отмели по другой причине. Для российского e-commerce сейчас зависимость от зарубежной экосистемы — это лишний риск: обновления, внешние сервисы, потенциальные блокировки. Не критично, но «зачем нам это», если есть альтернатива.

Выбрали 1С-Битрикс. Не потому что мы фанаты — а потому что:

  • это базовая CMS для российского e-commerce, специалистов на рынке найти легко;
  • типовые задачи каталога, SEO, фидов, интеграций закрываются «из коробки»;
  • риски, связанные с зарубежными сервисами, минимизируются;
  • товарные фиды и работа с Яндексом — родная история.
Важно. Цель была не «поменять CMS ради CMS». Цель — получить продукт, который можно нормально развивать ещё несколько лет вперёд.
Старый и новый стек
Старый и новый стек

Что в итоге сделали

Чтобы не интриговать — вот результаты до развёрнутого разбора:

  • стоимость конверсии снизилась почти в два раза;
  • количество оформленных заказов выросло;
  • поведенческие (отказы, глубина, время на сайте) улучшились примерно в полтора раза;
  • доля пустых звонков упала, нагрузка на продажников снизилась;
  • сайт переехал с Joomla 3.10 + VirtueMart на 1С-Битрикс;
  • появилась дизайн-система и нормальный каталог с открытыми фильтрами;
  • карточка получила калькулятор единиц измерения;
  • корзина похудела до одного обязательного поля — телефона;
  • настроены sitemap.xml и robots.txt, починен soft 404;
  • внедрена микроразметка schema.org (LocalBusiness, BreadcrumbList, Product, Offer, ItemList, OG, Twitter Card);
  • сделаны YML-фиды для Яндекс.Бизнеса, Яндекс.Товаров и Яндекс.Директа;
  • шрифт Inter переехал с Google Fonts на локальный хостинг;
  • подключена SmartCaptcha от Яндекса.
Главные изменения после миграции
Главные изменения после миграции

А теперь — как мы к этому пришли и где спотыкались.

Дизайн и дизайн-система: главное — не дизайн, а консистентность

Мы не ставили задачу сделать «вау». Магазин пиломатериалов — утилитарный продукт. Сюда приходят не любоваться, а проверить: «есть нужная доска, какие размеры, цена, как заказать». Поэтому делали максимально приземлённо:

  • убрать визуальный шум;
  • сделать структуру страниц предсказуемой;
  • повысить читаемость;
  • унифицировать карточки и категории;
  • развести акценты — кнопки и ключевые действия читаются сразу.

Параллельно собрали дизайн-систему на переиспользуемых компонентах: кнопки, карточки, фильтры, формы, блоки товара, хлебные крошки, FAQ, CTA. Это не «потому что модно». Это потому что:

  • одинаковая логика элементов = пользователь быстрее ориентируется;
  • новые блоки собираются как из лего, а не рисуются с нуля;
  • меньше визуальной каши и меньше ошибок;
  • правка базового компонента распространяется на весь сайт.

В каталоге, где сотни карточек и десятки повторяющихся сценариев, это даёт почти физическое облегчение при поддержке.

Компоненты дизайн-системы — то, из чего собирается весь сайт
Компоненты дизайн-системы — то, из чего собирается весь сайт

Каталог: главное — не прятать фильтры

Самая частая ошибка в каталогах строительных материалов — фильтры в дропдауне. На старом сайте было именно так: пока сообразишь, что фильтр вообще есть, и раскроешь — теряется и время, и интерес.

Мы сделали фильтры открытыми. Пользователь сразу видит, какие параметры доступны: ширина, длина, толщина, сорт, тип древесины, единица измерения. По сути, фильтр в этой тематике — это ещё и сводка по ассортименту: «зашёл в имитацию бруса — сразу понял, что у меня тут есть».

Звучит банально. Но именно это даёт то, что не получается измерить одной метрикой:

  • меньше лишних кликов;
  • пользователь быстрее оценивает, есть ли вообще смысл сидеть на странице;
  • частник, прораб и оптовик получают одинаково удобный инструмент.
Фильтры на виду — пользователь сразу видит ассортимент по параметрам
Фильтры на виду — пользователь сразу видит ассортимент по параметрам

Карточка товара: тот самый калькулятор

Это, пожалуй, наша любимая продуктовая правка. В пиломатериалах разные люди считают по-разному:

  • частник — в штуках;
  • отделочник — в квадратных метрах;
  • строитель — в кубах;
  • погонаж — в погонных метрах.

Если сайт навязывает всем одну единицу — он перекладывает работу на пользователя. Человек либо мучается с пересчётом, либо звонит менеджеру, либо уходит. Все три варианта — плохо.

Сделали так, что в карточке можно выбрать удобную единицу. Логика зависит от категории:

  • отделочные — штуки и м²;
  • обрезной брус и т.п. — штуки и м³;
  • погонажные изделия — погонные метры и штуки.

Грабли, на которые наступили: первая версия пересчёта работала только при добавлении в корзину. Тестировщики обнаружили баг: пользователь добавил товар в штуках, в корзине передумал и захотел в м² — и приходилось удалять позицию, возвращаться в карточку и добавлять заново. Цепочка ломала весь сценарий. Переделали так, чтобы единицу можно было менять в реальном времени прямо в корзине, без удаления. Это снизило процент брошенных корзин на этом шаге.

Пользователь сам выбирает, как считать товар
Пользователь сам выбирает, как считать товар

Корзина: убрали всё, что можно убрать

Старая корзина была в духе нулевых: список товаров → «Далее» → форма с именем, телефоном, e-mail и ещё кучей полей → подтверждение оформления.

Мы свели это к одному экрану. В корзине пользователь видит:

  • товары и количество;
  • выбранные единицы измерения;
  • итоговую сумму;
  • форму оформления.

В форме оставили единственное обязательное поле — телефон. Всё остальное — опционально или уточняется менеджером уже при контакте. В этой тематике человек чаще хочет «оставить заявку и побежать дальше», а не вдумчиво заполнять анкету.

Один экран и один обязательный шаг до заявки
Один экран и один обязательный шаг до заявки

Доверие: отзывы, контакты, мессенджеры

Отдельная история — контакты. В 2025–2026 году нельзя считать, что у пользователя есть тот мессенджер, который удобен тебе. Поэтому мы сделали ставку на вариативность каналов связи:

  • звонок;
  • форма заявки;
  • чат;
  • обратный звонок;
  • доступные мессенджеры (плюс держим в уме новый российский Max);
  • физический адрес с подгрузкой Яндекс.Карт.

В карточках товаров появились отзывы из Яндекс.Карт. Это работает не как маркетинговый блок, а как социальное доказательство: «компания реальная, с ней уже работали, вот живые отзывы».

Несколько каналов связи + отзывы из Яндекс.Карт прямо в карточке товара.
Несколько каналов связи + отзывы из Яндекс.Карт прямо в карточке товара.

Дальше — SEO. И тут было больно. Чек-лист «что нашли при аудите старого сайта»:

  • sitemap.xml не работал;
  • robots.txt содержал лишние или некорректные строки, часть нужных страниц блокировалась;
  • soft 404 — несуществующие страницы отдавали 200, краулинговый бюджет уходил в мусор;
  • дубли title у категорий;
  • description либо отсутствовали, либо были «для галочки»;
  • SEO-текстов в категориях по сути не было.

Что мы починили:

  • пересобрали sitemap.xml, выкинули лишнее, сослались на него из robots.txt;
  • переписали robots.txt: открыли то, что должно быть в индексе, закрыли то, что должно быть закрыто;
  • настроили корректные статусы для несуществующих страниц — больше никакого soft 404;
  • переписали title и description по категориям с учётом региона (для пиломатериалов это половина успеха — пользователь ищет поставщика «рядом с собой»);
  • собрали нормальные SEO-тексты для категорий — не «вода», а ответы на реальные вопросы;
  • добавили FAQ-блоки в категориях на основе поисковых подсказок Яндекса.

Грабли: при настройке canonical в первом подходе мы перекрыли часть параметрических URL, которые на самом деле должны были индексироваться (по сезонным посадочным). Поймали это через неделю на падении показов по нескольким запросам, откатили правило, переписали аккуратнее с учётом фильтрового SEO.

Микроразметка: дала ровно тот эффект, на который рассчитывали

Расставили schema.org по всему сайту:

  • LocalBusiness — телефон, адрес, график, базовые данные о компании;
  • BreadcrumbList — JSON-LD на всех страницах;
  • Product + Offer на карточках — название, цена, валюта, наличие;
  • ItemList на страницах категорий;
  • Open Graph и Twitter Card — для красивых превью при пересылке ссылок.

Проверили всё валидатором Яндекса — ошибок не было. После этого товары начали аккуратнее подтягиваться в товарные блоки Яндекса.

Проверка структурированных данных — без ошибок
Проверка структурированных данных — без ошибок
Хлебные крошки в JSON-LD — сигнал для поисковика о вложенности
Хлебные крошки в JSON-LD — сигнал для поисковика о вложенности

YML-фиды: одно и то же, но в трёх каналах сразу

После переезда на Битрикс мы наконец смогли нормально генерировать YML-фиды и раскинуть их по трём направлениям:

  1. Яндекс.Бизнес — карточка компании показывает не только контакты, но и ассортимент. Локальный e-commerce это очень любит.
  2. Яндекс.Товары — товары попадают в органические товарные блоки в выдаче. Дополнительная точка видимости.
  3. Яндекс.Директ — товарная реклама на основе того же фида. Не нужно вручную поддерживать кампании по каждой позиции.

Один XML-файл — три канала продаж. Это то, ради чего вообще стоило переезжать на нормальную CMS.

Производительность: убрали то, что не должно было загружаться

После переезда стек стал чище: меньше лишних скриптов и стилей, без HTML-мусора. Сверху прикрутили:

  • кэширование (то, что в Битриксе работает из коробки, но надо настроить);
  • lazy loading для картинок и тяжёлых блоков;
  • отложенную загрузку сторонних скриптов;
  • приоритизацию загрузки — сначала то, что нужно для принятия решения (товар, цена, кнопка), потом всё остальное;
  • локальную загрузку шрифта Inter — убрали Google Fonts.

Про шрифт отдельно. Кажется мелочью, но в российских реалиях внешние шрифты — это лотерея: задержки, нестабильность, иногда блокировки. Локальный хостинг закрывает вопрос раз и навсегда.

Время загрузки и метрики Core Web Vitals
Время загрузки и метрики Core Web Vitals

SmartCaptcha вместо «выбери все картинки со светофором»

Поставили SmartCaptcha от Яндекса. Логика простая: в большинстве случаев пользователь её не видит — проверка идёт автоматически через API. Видимая капча всплывает только при подозрении на бота.

Спам-заявки упали, реальные пользователи перестали бесить капчей в момент отправки формы. Дёшево и сердито.

Почему стоимость конверсии упала почти вдвое

Мы не верим в «волшебную одну фичу, которая всё подняла». Эффект пришёл от того, что несколько слоёв продукта улучшились одновременно:

  • открытые фильтры → быстрее понятен ассортимент;
  • подробные описания и FAQ → меньше пустых звонков;
  • калькулятор единиц измерения → проще посчитать заказ;
  • одношаговая корзина → проще оформить заявку;
  • отзывы + Яндекс.Карты + контакты → больше доверия;
  • производительность → меньше уходов до загрузки;
  • техническое SEO → лучше индексация и больше органики;
  • YML-фиды → больше точек контакта (карточка организации, Товары, Директ).

В результате выросло и количество, и качество заявок. Люди стали чаще оформлять заказ и реже звонить с базовыми вопросами вроде «а сколько это в метрах».

Перевели интернет-магазин пиломатериалов с Joomla на Битрикс — и стоимость конверсии упала почти вдвое. Разбираем проект по слоям

Поведенческие: проверили через Вебвизор

После запуска мы не стали расслабляться — продолжили смотреть Вебвизор, карту кликов и карту скроллов. По ключевым метрикам:

  • отказы — снизились;
  • глубина просмотра — выросла;
  • время на сайте — выросло;
  • взаимодействие с каталогом — активнее;
  • целевые действия — больше;
  • обращения — осмысленнее.

По ряду показателей улучшение примерно в полтора раза. Это для нас важнее, чем «красивее картинка».

Поведенческие после миграции — глубже, дольше, осмысленнее
Поведенческие после миграции — глубже, дольше, осмысленнее

На каких граблях мы наступили (и что бы посоветовали)

Если коротко — главные уроки этого проекта:

  1. Миграция «один в один» — это ловушка. Если просто перетащить контент на новую CMS, вы потратите бюджет и не получите эффекта. Миграция имеет смысл только как пересборка продукта.
  2. Сначала техническое SEO, потом всё остальное. Если sitemap, robots, статусы и canonical настроены криво, всё, что вы делаете сверху, работает на 50%.
  3. Canonical для фильтров — самая частая ошибка. Перекрыли лишнее — потеряли посадочные. Лучше проверять руками каждый шаблон URL.
  4. Тестируйте сценарии редактирования, не только создания. История с пересчётом единиц в корзине — типичный кейс: добавление работало, изменение нет. Всегда смотреть оба пути.
  5. Корзина любит минимум. Каждое лишнее поле — это часть пользователей, которая не дойдёт до отправки. Если можно собрать данные на этапе разговора с менеджером — собирайте там.
  6. Внешние ресурсы — это риск. Google Fonts, сторонние CDN, чужие шрифты и иконки. В российских условиях лучше держать всё локально.
  7. Контент категорий ≠ «вода для поисковиков». Если страница отвечает на реальные вопросы, она снижает нагрузку на менеджеров. Это деньги, а не SEO-метрики.

Что в работе дальше

Запуск — не финал. Сейчас в плане:

  • Автоматический расчёт доставки. В пиломатериалах он зависит от веса, габаритов, объёма, типа машины, маршрута и ограничений по разгрузке. Цель — дать хотя бы приближённую оценку прямо на сайте.
  • Выбор покраски материала. У заказчика есть услуга покраски в нужный цвет — хотим вшить это в путь оформления заказа: выбор товара → выбор цвета → передача менеджеру.
  • Отдельные калькуляторы под задачи: расчёт имитации бруса на стену, вагонки на помещение, доски пола, террасной доски, материала для бани.
  • Блог — для информационных запросов («чем сосна отличается от лиственницы», «как выбрать сорт древесины», «как хранить материал»). Это и трафик, и прогрев аудитории.

Главный вывод

Если миграцию делать как простой перенос — получите ту же боль на новой CMS. Если миграцию использовать как повод пересобрать продукт — на выходе будут не «новый сайт», а новые метрики: дешевле заявка, больше заказов, меньше пустых звонков.

В нашем случае — стоимость конверсии упала почти в два раза, поведенческие улучшились в полтора, а команда продаж клиента перестала тратить часть времени на «а сколько метров в этой штуке». Мы считаем это успехом.

Если у вас похожий проект — устаревший движок, тяжёлая поддержка, просевшее SEO, — пишите в комментариях, расскажем подробнее по любому из блоков выше. Команда Webcetera.

Подробная версия этого кейса — в нашем блоге: webcetera.ru/blog. Там больше скриншотов и технических деталей, которые не уместились в формат VC.

Я рассказываю про разработку, миграции и e-commerce-проекты ещё в двух местах — выбирайте, где удобнее:

  • Telegram — t.me/webcetera — основной канал с разборами кейсов, заметками о фронте, бэке и продуктовых решениях.
  • Max — max.ru/id730604103085_biz — тот же контент в новом российском мессенджере, для тех, кто переезжает с Telegram или хочет дублирующий канал без VPN-сюрпризов.
3