Разработка сайта мебельной фабрики: Миграция на Joomla 4.4.9 под ключ
В Апреле 2023 года осуществлена комплексная миграция корпоративного сайта и каталога мебельной фабрики (производство столов и стульев) с платформы WordPress на высокопроизводительную архитектуру Joomla 4.4.9. Проект потребовал полного редизайна, изменения структуры базы данных, внедрения динамической мультирегиональности и масштабной SEO-оптимизации. Итоговые трудозатраты на первую фазу составили 1076 человеко-часов (ч/ч).

Сводные результаты проекта (До и После)
Миграция и рефакторинг структуры позволили кратно увеличить видимость проекта в поисковых системах. Восстановлено позиционирование бренда: по запросам типа «фабрика Собрание» ресурс занимает 1-ю позицию в выдаче Яндекса и Google.
| Метрика | До миграции (WordPress) | После миграции (Joomla 4.4.9) | Динамика / Результат |
|---|---|---|---|
| Индексация в Яндекс | 9 страниц | 285 страниц | Рост в 31 раз за счет кластеризации и гео-страниц |
| Индексация в Google | 0 страниц | 93 страницы | Снятие фильтров, успешное ранжирование |
| Суточный трафик | До 10 посетителей | 45-70 посетителей | Стабильный органический прирост целевой аудитории |
| Видимость ключей | 0 запросов | 2 654 запроса | Охват широкого семантического ядра |
Серверная архитектура и базовая платформа
Сайт перенесен на выделенный VPS-сервер, оптимизированный под работу ресурсоемких e-commerce проектов. Конфигурация серверного окружения:
- ОС: Linux CentOS (hosted-by.ihc.ru.vps 3.10.0-1160.41.1.vz7.183.5 #1 SMP).
- Веб-сервер: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips.
- Стек: PHP 8.0.25 с поддержкой современных стандартов кэширования и компиляции.
- Платформа: Модифицированное ядро Joomla (сборка мигрирована до актуальной ветки 4.4.9), по функциональности и безопасности не уступающее энтерпрайз-решениям уровня 1C-Bitrix.
Инженерия мультирегиональности и гео-таргетинга
Внедрен сложный программный модуль мультирегиональности, критически важный для федерального продвижения мебельной фабрики. Система работает на основе динамической подмены контента и URL-маршрутизации.
- Генерация директорий: При выборе пользователем города (в основном меню) система формирует виртуальную директорию (например,
/moscow/). Это создает физически уникальный URL для поисковых систем. - Макро-подмена ключей: Текстовый контент, мета-теги (Title, Description) и H1 динамически меняют топонимы в нужных падежах (например, замена базового ключа на «купить стул в Москве»). Копирайт в футере также адаптируется под регион.
- Интеллектуальный свитчер контактов: Номер телефона в шапке сайта автоматически меняется на местный городской номер выбранного региона. Если в выбранном городе нет физического представительства, система выводит федеральный номер 8(800).
- Развитие сети: Создан детализированный раздел «Контакты», включающий 87 уникальных страниц. Вручную сгенерировано и интегрировано через API более 60 интерактивных Яндекс.Карт с точными координатами магазинов-партнеров.
Архитектура каталога и eCommerce функционал
Реализована B2B/B2C структура интернет-магазина, учитывающая специфику оптовой и розничной торговли мебелью.
Структура и навигация категорий
Категории товаров настроены на вывод 12 позиций на страницу с дефолтной сортировкой по наименованию. Внедрен расширенный модуль подбора по параметрам (фильтр характеристик), формирующий статические URL для посадочных страниц (Smart Filter). Для внутренней перелинковки разработан встраиваемый модуль вывода подкатегорий, визуально стилизованный под хэштеги (#). Модифицирован алгоритм формирования микроразметки «Хлебные крошки» (Breadcrumbs) для корректного отображения сниппетов в Яндексе и Google.
Интеллектуальная карточка товара
Карточка мебели спроектирована как полноценный Landing Page с высокой конверсионной способностью:
- Динамические атрибуты: Внедрен конфигуратор товара. Выбор параметра (например, цвета обивки стула или материала столешницы) мгновенно подменяет основное изображение продукта (при наличии соответствующего SKU) и пересчитывает цену.
- Дифференцированное ценообразование: Настроен алгоритм объемных скидок (Tier Pricing). Предусмотрен автоматический переход от розничной цены к оптовой в зависимости от количества товара в корзине (например: 1 стул — 5900 руб., от 10 стульев — 5500 руб./шт.).
- UX элементы: Вывод даты последнего обновления карточки, счетчика просмотров и рейтинга (звезды). Внедрена кнопка «Помощь при заказе» (аналог «Купить в 1 клик» / «Перезвоните мне») для сбора быстрых лидов.
- Структуризация данных: Контент разделен на табы (Вкладки): Описание, Характеристики, Отзывы, Видеообзоры (инфраструктура подготовлена, видео скрыты до этапа продакшена).
- SEO-навигация: В блоке товара реализована кольцевая перелинковка с анкорными ссылками на «Предыдущий» и «Следующий» товар в категории для ускорения краулинга поисковыми ботами. Контент жестко привязан к региону сессии пользователя.
Корзина, Checkout и Личный кабинет
Процесс оформления заказа адаптирован как для физических, так и для юридических лиц. Разработка интернет-магазина включила создание генератора документов.
- При выборе юридического лица или оптового заказа система автоматически формирует макет счета на оплату по безналичному расчету (с реквизитами) и отправляет его на почту и в личный кабинет. Для розницы подготовлен шлюз электронной оплаты.
- Внедрена система промокодов и индивидуальных классов скидок (группы пользователей: Розница, ОПТ-1, ОПТ-2, Дилер). При вводе кода корзина пересчитывает итоговую сумму счетов.
- Личный кабинет синхронизирован с корзиной: доступно отслеживание статуса заказа, история покупок и логистика перемещения товара. Разработан калькулятор доставки (находится на стадии калибровки тарифов руководством).
UX/UI Главной страницы и информационные блоки
Главная страница переработана в модульный дашборд. В верхней части размещен управляемый маркетинговый слайдер (тизерный блок). Интегрирован гео-зависимый блок с выводом 4 акционных предложений. Основной товарный грид состоит из 4 автоматизированных модулей:
- Обновление моделей: Триггером служит изменение и сохранение карточки товара в админ-панели.
- Лучшие товары: Модуль парсит количество транзакций и выводит хиты продаж (бестселлеры).
- Высокий рейтинг: Вывод товаров на основе пользовательских оценок из модуля отзывов.
- Новые поступления: Автоматический вывод последних добавленных в базу артикулов.
Создана необходимая корпоративная инфраструктура: разделы Вакансии, Партнеры, Команда, Акции, Блог о материалах, Блог производства. Написан контент для страниц Сертификаты, Гарантии, Доставка, Оплата. Внедрен полный пакет юридических документов (Оферта, Политика обработки данных, Согласие пользователя).
Внутренняя и внешняя SEO-оптимизация
Для достижения заявленных показателей видимости проведен колоссальный объем работ с контентом и ссылочным профилем.
Внутренняя оптимизация (On-Page SEO)
Проведена полная кластеризация семантического ядра. Составлено и опубликовано 74 экспертных LSI-текста для категории «Стулья» (каждый объем не менее 3500 символов без пробелов). Сформирована структура карты сайта, состоящая из 46 файлов XML для обхода ограничений поисковых систем на количество ссылок в одном файле. Подключены системы сквозной аналитики: Яндекс.Метрика и Google Analytics с настройкой целей на формы «Перезвоните мне» и транзакции корзины.
Внешняя оптимизация (Linkbuilding & Off-Page)
Проведена агрессивная стратегия наращивания ссылочной массы. Обработано более 5 000 000 обратных ссылок.
| SEO Метрика (Ahrefs / Majestic) | До старта работ | После 1 этапа оптимизации |
|---|---|---|
| Траст сайта (Trust Flow) | 2.22 | 2.48 (активная фаза роста) |
| Domain Rating (DR) | 5 | 13 |
| Backlinks (Внешние ссылки) | 140 | 24 000 |
| Linking websites (Доноры) | 21 | 1 400 |
Использованные технологии
| Технология | Версия / Статус | Назначение |
|---|---|---|
| Joomla! | 4.4.9 (мигр. с WordPress) | CMS, управление архитектурой и базой данных. |
| PHP | 8.0.25 | Высокопроизводительная серверная логика. |
| Apache | 2.4.6 | Веб-сервер, модуль mpm-itk для изоляции процессов. |
| Yandex Maps API | v2.1 | Генерация 60+ интерактивных карт для раздела контактов. |
| AcyMailing / Custom | - | Компонент сбора подписчиков и массовой email-рассылки. |
Дорожная карта развития (Фаза 2: Оценка до 2436 ч/ч)
В связи с расширением номенклатуры (каталог более 100 000 товаров) и требованиями масштабирования B2B-направления, сформирован план доработок на следующие 6 месяцев.
Техническая доработка (Внутренние системы)
- Создание параметров, карточек и написание SEO-текстов для категории «Столы». Вывод модулей со столами на главную страницу.
- Разработка модуля кредитного калькулятора (покупка в рассрочку/кредит).
- Интеграция модуля онлайн-консультанта (JivoSite) и калькулятора доставки транспортными компаниями непосредственно в карточку товара.
- Модернизация системы отзывов: добавление функционала загрузки пользовательских фотографий и многофакторной оценки.
- Разработка и внедрение плагина электронной коммерции для эквайринга и функции «Покупка в 1 клик».
- UX/UI расширения: блоки «Сопутствующие товары», «Недавно смотрели», кнопки Share (соцсети), триггерный модуль «Exit Intent» (удержание при попытке закрыть вкладку).
- Интеграция ERP: Разработка единого модуля синхронизации складских остатков и цен с базой 1С.
- Разработка плагина генерации прайс-листа в формате PDF (по запросу оптовиков).
- Создание механизма проверки статуса заказа по трек-коду без обязательной регистрации.
- Разработка YML-фидов: Написание скриптов для автоматической потоковой выгрузки товаров на маркетплейсы Яндекс.Маркет и Avito.
Стратегия внешнего продвижения (Оff-Page)
- Продолжение линкбилдинга: крауд-маркетинг (массовая регистрация аккаунтов и постинг на профильных форумах), сабмиты в трастовых каталогах.
- Аутрич: закупка профильных гостевых статей по высокочастотным коммерческим запросам.
- Оптимизация поведенческих факторов: контролируемая симуляция пользовательской активности (ПФ) для форсирования 2654 собранных ключей в Топ 1-3 Яндекса. Инвестиции в выделенное оборудование и алгоритмы обхода антифрод-систем.
- SERM: системная публикация отзывов о продукции на внешних ресурсах (Яндекс.Карты, Отзовик, iRecommend) для повышения конверсии.
Развернуть полный вид сайта мебельной фабрики на Джумле 4

Примечание: текущее состояние и внешний вид действующего сайта могут отличаться от представленных в данном кейсе, так как после завершения и сдачи проекта заказчик мог внести самостоятельные изменения.
Вопросы и ответы по данному сайту
Как реализован алгоритм смены номера телефона при смене города?
Модуль мультирегиональности фиксирует выбор города пользователем, записывая данные в сессию. На уровне вывода шаблона отрабатывает PHP-скрипт, который обращается к базе данных региональных представительств. Если для выбранного city_id существует локальный номер, он выводится в DOM-дерево. Если city_id не имеет привязанного номера, отрабатывает условие else, выводящее дефолтный федеральный номер 8(800).
Почему для создания 87 страниц контактов использовались разные карты, а не одна с множеством меток?
Для локального SEO критически важно наличие узкоспециализированных страниц (например, "Купить стулья в Рязани"). Размещение индивидуального iframe Яндекс.Карт с конкретной гео-меткой на каждой из 87 страниц дает четкий сигнал поисковым роботам о физическом присутствии бизнеса по конкретному адресу, что значительно повышает ранжирование в локальной выдаче.
Каким образом 46 файлов карты сайта (Sitemap.xml) улучшают индексацию?
Поисковые системы устанавливают лимиты на размер файла Sitemap (обычно 50 МБ или 50 000 URL). При динамической мультирегиональности количество URL (Товары × Категории × 87 Регионов) превышает базовые лимиты. Разбивка на 46 индексных файлов (Sitemap Index) гарантирует, что краулеры Яндекса и Google корректно прочитают и проиндексируют 100% сгенерированных региональных страниц.
Как работает функция автоматической генерации счета по безналичному расчету?
При оформлении заказа (Checkout) добавлен переключатель типа плательщика (Физ. лицо / Юр. лицо). При выборе "Юр. лицо" открываются дополнительные обязательные поля (ИНН, КПП, Название компании). После подтверждения заказа компонент корзины передает эти данные вместе с массивом товаров в специальный PHP-шаблон (PDF-генератор), который формирует документ счета с факсимиле и реквизитами фабрики, прикрепляя его к транзакционному email.
Что означает генерация прайс-листа в PDF и зачем она нужна?
Это запланированный B2B-функционал. Плагин будет собирать актуальные данные из базы данных Joomla (артикул, фото, название, оптовая цена) и «на лету» компилировать их в PDF-файл. Оптовые дилеры смогут скачивать всегда свежий прайс-лист для работы с конечными розничными покупателями в своих салонах, без необходимости запрашивать его у менеджеров фабрики.
Как работает подмена параметров и изображений в карточке товара?
Функционал реализован через механизм связанных артикулов (дочерних товаров). Главный товар содержит атрибуты (например, "Цвет обивки"). Каждому значению атрибута присвоено отдельное изображение. При клике на цвет, JavaScript перехватывает событие, меняет src главной картинки на привязанную к атрибуту и делает AJAX-запрос для обновления цены, если этот цвет стоит дороже базового.