Переход с Drupal на 1С-Битрикс — задача, которую мы решаем регулярно. Клиенты приходят с жалобами на сложности интеграции с 1С, отсутствие корпоративных инструментов (Битрикс24) или необходимость импортозамещения. Миграция с Drupal технически сложнее, чем с большинства других CMS, из-за гибкой, но нестандартной модели хранения данных. Одна из типичных ситуаций — интернет-магазин на Drupal Commerce, который перестал справляться с нагрузкой и требует интеграции с 1С. Перенос на Битрикс не только решает эти проблемы, но и сокращает время на обмен данными с учётной системой в 2-3 раза за счёт готовых модулей обмена. Наши клиенты экономят до 40% бюджета на разработку интеграций по сравнению с доработками Drupal. Свяжитесь с нами для аудита вашего проекта. Получите консультацию — обсудим детали вашего переезда.
Почему миграция с Drupal технически сложнее, чем с других CMS?
В Drupal 7 контент хранится через систему Field API. Каждое поле узла (node) хранится в отдельной таблице с именем вида field_data_{field_name} и field_revision_{field_name}. Основные таблицы:
-
node — базовая запись: nid, type, title, uid, status, created, changed.
-
node_revision — история ревизий.
-
field_data_body — тело материала: body_value, body_summary, body_format.
-
field_data_{custom_field} — произвольные поля, одна таблица на каждое.
-
taxonomy_term_data, taxonomy_vocabulary — таксономия (категории, теги).
-
file_managed — медиафайлы.
-
users, users_roles, role — пользователи.
В Drupal 8/9 архитектура схожая, но хранение через Doctrine DBAL и конфиги в YAML. Таблицы: node__body, node__field_{name} (одна таблица на поле, все ревизии в node_revision__*). Согласно официальной документации, такая структура обеспечивает гибкость, но усложняет прямую миграцию.
Проектирование структуры в Битрикс
Каждый тип контента (content type) Drupal становится инфоблоком в Битрикс. Таксономия — разделы инфоблока или свойства типа «Список». Поля node маппируем на свойства инфоблока.
Перед написанием скрипта составляем таблицу маппинга:
| Drupal |
Тип |
Битрикс |
Тип свойства |
field_data_body.body_value |
text_long |
DETAIL_TEXT |
— |
field_data_image.field_image_fid |
image |
PREVIEW_PICTURE |
— |
field_data_field_tags |
term_reference |
PROPERTY_TAGS |
Список |
field_data_field_price |
decimal |
PROPERTY_PRICE |
Число |
Скрипт миграции
Drupal 7: скрипт читает данные через PDO из MySQL-базы Drupal. Для каждого node:
SELECT n.nid, n.title, n.created, b.body_value, b.body_summary
FROM node n
LEFT JOIN field_data_body b ON b.entity_id = n.nid AND b.bundle = 'article'
WHERE n.type = 'article' AND n.status = 1
Затем для каждого поля — отдельный JOIN или подзапрос. Результат — массив данных для CIBlockElement::Add().
Медиафайлы. В Drupal файлы регистрируются в file_managed с полем uri формата public://photos/image.jpg. Физически файл лежит в sites/default/files/photos/image.jpg. Копируем файлы, регистрируем через CFile::SaveFile(), привязываем к элементу.
Таксономия. Термины таксономии (taxonomy_term_data) переносим как разделы инфоблока или как значения свойств типа «Список». Если в Drupal у одного материала несколько терминов из одного словаря — создаём свойство «Множественное» в Битрикс.
Как перенести мультиязычный сайт?
Drupal имеет встроенную мультиязычность через модули i18n (Drupal 7) или встроенный Content Translation (Drupal 8+). Переводы хранятся в field_data_* с разными language-значениями. Битрикс поддерживает мультиязычность через инфоблоки с LANGUAGE_ID или через разные сайты в одной установке. Если сайт мультиязычный — этот этап требует отдельного проектирования.
Views и блоки
Drupal Views — динамические списки материалов с фильтрацией и сортировкой. В Битрикс их аналог — компонент bitrix:news.list с параметрами фильтрации. Прямого переноса Views не существует: каждый View анализируется вручную и реализуется как компонент или кастомный код.
Блоки Drupal (region/block) — в Битрикс это области ($APPLICATION->ShowPanel()) и компоненты в шаблоне. Структура страниц переносится при разработке дизайна, не при миграции данных.
Модули Drupal без аналогов
Webform → формы через bitrix:form. Commerce (Drupal Commerce) → модули catalog + sale. Rules → бизнес-процессы Битрикс или обработчики событий. Feeds (импорт) → агент или cron-задача Битрикс.
Как сохранить SEO-позиции при переезде?
Ключевой элемент — 301 редиректы. Мы создаём карту соответствия старых URL Drupal новым адресам в Битрикс. Дополнительно настраиваем sitemap, robots.txt, передаём мета-теги из полей Drupal. Для изображений сохраняем alt-тексты и имена файлов.
Как выполнить миграцию: пошаговый план
- Аудит базы данных Drupal: анализ структуры, типов контента, объёмов.
- Проектирование инфоблоков и маппинг полей: полная схема соответствия.
- Разработка скрипта миграции: PHP-скрипт на PDO, обработка всех сущностей.
- Перенос медиафайлов: копирование файлов с сохранением путей и атрибутов.
- Настройка SEO-редиректов: генерация .htaccess с 301 редиректами.
- Тестирование и верификация данных: сверка количества элементов, проверка ссылок.
- Документация и обучение администраторов: передача знаний.
- Поддержка после миграции: техническое сопровождение на 2 недели.
Сроки
| Этап |
Типовые сроки |
| Аудит типов контента и полей |
1–2 дня |
| Проектирование инфоблоков и маппинг полей |
1–2 дня |
| Разработка скрипта миграции |
3–6 дней |
| Перенос медиафайлов |
1–2 дня |
| Мультиязычность (при наличии) |
2–3 дня |
| SEO-редиректы |
1 день |
| Тестирование и правки |
1–2 дня |
| Итого |
10–18 рабочих дней |
Drupal — одна из самых сложных для миграции CMS именно из-за нестандартной структуры хранения и обилия возможных модулей. Реальный срок всегда уточняется после аудита исходной базы данных. Чтобы оценить объём работы для вашего проекта, получите консультацию — мы проведём аудит и предложим план миграции под ключ. Гарантируем качество и сохранение позиций.
Миграция сайтов на 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 день. Оценим ваш проект бесплатно — напишите нам для расчёта.