Миграция сайта с Joomla на 1С-Битрикс: пошаговая инструкция и сроки
Joomla — универсальная CMS с гибкой структурой расширений. Большинство сайтов на ней — корпоративные порталы, новостные издания, каталоги без полноценной коммерции. Когда бизнес вырастает и нужен полноценный интернет-магазин с интеграцией 1С, CRM и ERP — начинают смотреть в сторону Битрикс. Задача переноса при этом нетривиальная: в Joomla нет единой модели данных, всё зависит от установленных расширений. Мы берём на себя полный цикл миграции: от аудита до финального тестирования. Под ключ восстанавливаем структуру, SEO и функциональность.
Почему миграция с Joomla на Битрикс — сложная задача?
Главная проблема — нестандартизированная схема данных Joomla. В базе почти всегда есть кастомные расширения — VirtueMart, HikaShop, JEvents, Phoca Gallery. Каждое хранит данные в собственных таблицах. Например, VirtueMart использует jos_virtuemart_products, а HikaShop — jos_hikashop_product. Мы на этапе аудита составляем карту расширений и определяем, какие данные критичны для переноса.
Аудит исходного сайта
Прежде чем писать скрипт миграции, проводим инвентаризацию. В Joomla данные хранятся в таблицах с префиксом (обычно jos_ или произвольный):
- Статьи —
jos_content, поля: title, alias, introtext, fulltext, catid, created, modified, metadesc, metakey, images (JSON).
- Категории —
jos_categories (общая таблица для всех типов контента, фильтр по extension = 'com_content').
- Пользователи —
jos_users, jos_user_profiles, jos_usergroups.
- Меню —
jos_menu, jos_menu_types.
-
Теги —
jos_tags, jos_contentitem_tag_map.
Если стоит VirtueMart — отдельные таблицы jos_virtuemart_products, jos_virtuemart_product_prices, jos_virtuemart_categories. Если HikaShop — свои jos_hikashop_product. Выясняем это на этапе аудита и строим план переноса под конкретную конфигурацию.
Структура данных в Битрикс
Новостные материалы и статьи Joomla переносятся в инфоблоки (b_iblock_element). Для корпоративного сайта обычно создают инфоблоки «Новости», «Статьи», «Блог» с нужными свойствами. Категории Joomla → разделы инфоблока (b_iblock_section).
Если на Joomla стоял VirtueMart и нужен перенос в интернет-магазин Битрикс — подход такой же, как при миграции с OpenCart: товары в инфоблок каталога, цены в b_catalog_price.
Страницы меню Joomla конвертируются в пункты меню Битрикс через компонент bitrix:menu — структура хранится в файлах .menu.php по директориям сайта.
Как перенести контент без потерь?
Основная масса данных — статьи. Схема переноса:
- Читаем
jos_content JOIN jos_categories — получаем статью с путём категории.
- Создаём раздел инфоблока через
CIBlockSection::Add() если он ещё не создан (сохраняем маппинг catid → SECTION_ID).
- Создаём элемент инфоблока через
CIBlockElement::Add(): NAME = title, PREVIEW_TEXT = introtext, DETAIL_TEXT = fulltext, CODE = alias, ACTIVE_FROM = created.
- Мета-теги прописываем в свойства элемента или через модуль
main в таблицу b_iblock_element_property.
Изображения в Joomla хранятся в поле images как JSON: {"image_intro":"images/catalog/photo.jpg","image_fulltext":""}. Парсим JSON, скачиваем файлы, регистрируем через CFile::SaveFile().
HTML-контент. В Joomla редакторы часто вставляют нестандартные шорткоды расширений — {loadmodule mod_name}, {phocagallery ...} и т.п. Перед переносом прогоняем контент через регулярки, убираем нераспознаваемые теги или заменяем их на аналоги Битрикс (компоненты в тексте через <?$APPLICATION->IncludeComponent(...)?> нежелательны — лучше убрать и вынести логику отдельно).
Пользователи
jos_users хранит пароли в bcrypt — алгоритм совместим с PHP password_hash(). Битрикс умеет работать с bcrypt, если настроить BX_SECURITY_SESSION_CACHE_MODE. Но стандартный путь — создать пользователей через CUser::Add() со временным паролем и разослать письма на сброс. Группы Joomla (jos_usergroups) маппим на группы Битрикс.
SEO и редиректы
Joomla строит URL по шаблонам компонентов. При включённом SEF-адаптере URL выглядит как /news/category-alias/article-alias.html или /news/article-alias. Без SEF — /index.php?option=com_content&view=article&id=42&catid=5.
Формируем таблицу соответствий старых и новых URL. Для каждой статьи старый URL определяется по alias и пути категорий. Новый URL в Битрикс зависит от настроек ЧПУ компонента. Редиректы прописываем через UrlRewriter::add() или в конфиге веб-сервера.
Особое внимание — sitemap.xml и robots.txt. Если у сайта был накоплен SEO-вес, не меняем структуру URL без 301-редиректов.
Расширения без прямых аналогов
| Joomla-расширение |
Аналог в Битрикс |
| JComments / K2 Comments |
Модуль forum или кастомный компонент |
| AcySailing (рассылки) |
Модуль subscribe |
| Akeeba Subscriptions |
Кастомная разработка или модуль sale |
| JEvents |
Инфоблок с типом свойств «Дата» |
| Phoca Gallery |
Компонент bitrix:photogallery |
Что входит в работу при миграции
Мы предоставляем полный комплект:
- Детальный аудит текущей CMS и расширений.
- Схему переноса данных: какие таблицы маппируются, какие требуют кастомной обработки.
- Скрипты миграции (PHP-консольные команды) с тестированием на копии сайта.
- Перенос изображений, медиафайлов и их привязка к элементам.
- Настройка SEO-редиректов (301) для всех страниц.
- Перенос пользователей с группами доступа.
- Финальное тестирование и обучение вашей команды работе с Битрикс.
Сроки
| Этап |
Типовые сроки |
| Аудит расширений и структуры данных |
1–2 дня |
| Проектирование инфоблоков и свойств |
1 день |
| Написание и отладка скрипта миграции |
2–4 дня |
| Перенос изображений и медиафайлов |
1–2 дня |
| Перенос пользователей |
0,5 дня |
| Настройка SEO-редиректов |
1 день |
| Финальное тестирование |
1 день |
| Итого |
7–11 рабочих дней |
Срок увеличивается, если на Joomla стоял VirtueMart с большим каталогом (более 5000 товаров) или использовалось много нестандартных расширений с собственными таблицами.
Мы гарантируем сохранность данных и прозрачный процесс. Оценим ваш проект бесплатно — напишите нам, и наш инженер проведёт аудит за 1 день.
По данным официальной документации Битрикс, инфоблоки v2.0 поддерживают до 16 млн элементов — этого достаточно для крупных каталогов. Наш опыт подтверждает стабильность при нагрузке до 100 000 товаров с включённым торговым каталогом.
Миграция сайтов на 1С-Битрикс
Переезд на новую CMS — всегда стресс для сайта. Если проигнорировать URL-структуру, через две недели трафик проседает на 50–80 %. WordPress генерит /product/item-name/, OpenCart — /index.php?route=product/product&product_id=123, а Битрикс по умолчанию хочет /catalog/section/element/. Без карты 301-редиректов поисковики фиксируют массовые 404. Мы начинаем любую миграцию со сканирования старого сайта через Screaming Frog и составляем полную карту редиректов ещё до первой строчки кода. Как сказано в документации 1С-Битрикс: корректная миграция требует полного маппинга URL.
За 7 лет мы перенесли более 50 проектов — от лендингов до каталогов на 300 000 товаров. Средний срок — 2–8 недель. Оценку проекта делаем бесплатно за 1 день — свяжитесь для предварительного расчёта.
Какие CMS мы переносим на Битрикс?
За годы работы данные мигрировали с десятков систем.
Блоги и корпоративные сайты: WordPress / WooCommerce → 1С-Битрикс. Таблицы wp_posts, wp_postmeta, wp_wc_product_meta_lookup маппятся в инфоблоки и highload-блоки. Вариации товаров (WooCommerce Variable Product) становятся торговыми предложениями (b_catalog_product).
Интернет-магазины: OpenCart / ocStore → 1С-Битрикс. Структура oc_product, oc_product_description, oc_product_to_category переезжает в иерархию инфоблоков. Мультиязычность OpenCart преобразуется в языковые версии свойств. Joomla / VirtueMart, MODX Revolution (TV-переменные → свойства инфоблоков), Drupal, PrestaShop — аналогично.
SaaS-платформы: Tilda, InSales, Shopify, Wix, Squarespace. Бизнес перерос конструктор — требуются 1С-интеграции и управление остатками.
Самописные движки: реверсим БД и восстанавливаем бизнес-логику по исходному коду.
Что переносится?
Контент: страницы, статьи, новости → информационные инфоблоки. Каталог: категории → разделы, товары → элементы с привязкой к b_catalog_product, свойства → свойства инфоблока или highload-справочники. Изображения, отзывы, FAQ.
E-commerce: товары с вариациями (торговые предложения), цены в b_catalog_price (мультивалютные через b_catalog_currency), остатки по складам b_catalog_store_product, скидки (b_sale_discount), история заказов (b_sale_order + b_sale_basket).
Пользователи: клиентская база — b_user + UF-поля. Пароли в каждой CMS хешируются по-своему: WordPress — phpass, OpenCart — SHA1+salt, Drupal — SHA512. Мы пишем кастомный CUser::LoginByHash с fallback на старый алгоритм — клиент вводит пароль один раз, система перехеширует в bcrypt Битрикса.
SEO-данные: мета-теги, alt-теги, URL-структура. Главная задача — сохранить все URL или проставить 301-редиректы.
Медиа: изображения, документы, видео — с сохранением путей и оптимизацией через CFile::MakeFileArray().
Как происходит миграция?
| Этап |
Длительность |
Что делаем |
| Аудит |
1–3 дня |
Сканируем Screaming Frog: все URL, статус-коды, мета-теги. Анализируем структуру БД, кастомные доработки, интеграции. Составляем карту переноса. |
| Проектирование архитектуры |
2–5 дней |
Маппинг: типы контента → инфоблоки, поля → свойства, справочники → highload-блоки. Архитектура должна быть удобна для администрирования в Битрикс. |
| Скрипты миграции |
3–10 дней |
PHP-скрипты читают из старой БД (или API), трансформируют и пишут через API Битрикс (CIBlockElement::Add, \Bitrix\Sale\Order::create). Запускаем повторно при тестировании. |
| Staging |
1–2 дня |
Полный перенос на тестовый сервер. Проверяем целостность: количество товаров, свойства, URL, фильтры. |
| Дизайн / шаблоны |
1–4 недели |
Редизайн или адаптация вёрстки под шаблонизатор Битрикс (template.php, result_modifier.php). |
| 301-редиректы |
1–2 дня |
Полная карта в .htaccess или nginx.conf. Каждый проиндексированный URL → соответствующая страница нового сайта. |
| Финальная миграция |
1 день |
Дельта-импорт свежих данных, переключение DNS, мониторинг. |
| Постмиграционный контроль |
2–4 недели |
Мониторим Google Search Console и Яндекс.Вебмастер: индексация, позиции, crawl errors. |
Как сохранить SEO-позиции?
Потеря органического трафика — главный страх, и он обоснован. Вот как мы его избегаем.
Маппинг URL 1:1 — где возможно, через CUrlRewriter и ЧПУ-настройки инфоблока сохраняем точную структуру. Где нельзя — 301. Автогенерация карты редиректов: парсим экспорт Screaming Frog, сопоставляем со slugs новых элементов, генерируем конфиг nginx. Каждый редирект проверяется curl -I после переключения.
Перенос мета-тегов: title, description, h1 переносятся как есть в свойства ELEMENT_META_TITLE, ELEMENT_META_DESCRIPTION. Canonical: rel="canonical" через SEO-компонент Битрикс. Дубли отсекаем: www/без www, http/https, параметры сортировки. Sitemap: новая sitemap.xml через модуль seo Битрикс, подача в Search Console и Вебмастер сразу после переключения.
Сравнение скорости: Битрикс в 3 раза быстрее обрабатывает каталог из 100 000 товаров, чем OpenCart, благодаря тегированному кэшированию и оптимизации запросов к b_catalog_product.
Что входит в работу (deliverables)
| Что получает клиент |
Описание |
| Документация |
Карта редиректов, описание маппинга, схема БД |
| Доступы |
Административная панель, FTP/SSH, API-ключи |
| Обучение |
Видеоуроки или консультация по работе с Битрикс |
| Поддержка |
2 недели постмиграционного мониторинга и фикса багов |
| Гарантия |
Возврат к старому сайту в течение 48 часов при форс-мажоре |
Миграция интеграций
Внешние интеграции — отдельный пласт. Мы переподключаем:
- Платёжные системы —
sale.paysystem с сохранением истории транзакций.
- Доставка — настройка
sale.delivery.handler (СДЭК, Почта России).
- CRM — привязка к Битрикс24 или сохранение текущей через REST API.
- 1С — настройка обмена через CommerceML. Часто это главная причина миграции на Битрикс.
- Email-маркетинг — перенос подписчиков, шаблонов, вебхуков.
- Аналитика — e-commerce tracking под новую структуру dataLayer.
Типичные ошибки при миграции
Каждая из этих ошибок приводила к потере позиций и клиентов.
Потеря URL без редиректов — самый разрушительный промах. /product/123 вместо /catalog/item-name.html — без 301 это массовые 404 и обвал трафика. Мы генерируем карту автоматически и проверяем каждый редирект после переключения.
Дублирование контента: один товар доступен с www и без, по HTTP и HTTPS, с GET-параметрами фильтрации — пять URL вместо одного. SEO-вес размывается. Настраиваем canonical, 301 для вариаций, robots.txt с Disallow для параметров.
Битые изображения: абсолютные URL в контенте (src="https://old-site.ru/img/photo.jpg"), потеря качества при пережатии. Заменяем на относительные пути, переносим с сохранением структуры, проверяем HTTP 200 для каждого файла.
Потеря мета-тегов и микроразметки: title, description, Schema.org могут не перенестись или перенестись криво. Делаем полный маппинг и проверку на staging.
Отвалившиеся формы и интеграции: сменились ID, API-ключи, вебхуки. Составляем реестр всех интеграций до начала и проверяем каждую после.
Мобильная версия: старый m.site.ru → адаптивный Битрикс. Без редиректа мобильных URL — 404 для мобильных пользователей. Учитываем в карте редиректов.
Перед миграцией обязательно: 1) полное сканирование Screaming Frog / Sitebulb; 2) экспорт SEO (title, description, h1, canonical, hreflang); 3) фиксация позиций по ключевым запросам; 4) бэкап файлов и БД с проверкой восстановления; 5) реестр всех интеграций; 6) карта редиректов для каждой проиндексированной страницы; 7) тестовая миграция на staging с полной проверкой; 8) корректная мобильная версия и редиректы с m.site.ru; 9) новая sitemap.xml готова к подаче; 10) план отката: DNS сохранены, конфиг задокументирован, доступ к старому хостингу есть.
Сроки и экономия
| Тип проекта |
Сроки |
Комментарий |
| Информационный сайт (до 500 стр.) |
2–4 недели |
Контент + дизайн + редиректы |
| Интернет-магазин (до 10 000 товаров) |
4–8 недель |
Каталог + заказы + интеграции |
| Крупный магазин (100 000+ товаров) |
2–4 месяца |
Кастомные скрипты + нагрузочное тестирование |
Экономия: после миграции вы перестаёте платить за лицензию старой CMS и поддержку устаревшего кода. Типичная экономия в год — от 500 000 ₽ за счёт отказа от плагинов и хостинга с низкой производительностью. Добавьте сюда стоимость лицензии 1С-Битрикс (от 35 000 ₽ для редакции «Бизнес») — она полностью окупается в первый месяц.
Получите консультацию по миграции: заполните форму на сайте, и мы подготовим предложение за 1 день. Оценим ваш проект бесплатно — напишите нам для расчёта.