Перенос между CMS: сохранение контента и SEO-позиций

WordPress с 10 000 записей, headless-архитектура для мультиканальной публикации — типичный сценарий, где прямой экспорт-импорт ломает SEO и структуру. Схемы данных несовместимы, медиафайлы в привязках, Rich Text теряет форматирование. Мы решаем эту задачу через ETL-пайплайн с батчингом и повторной о

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Перенос между CMS: сохранение контента и SEO-позиций
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

WordPress с 10 000 записей, headless-архитектура для мультиканальной публикации — типичный сценарий, где прямой экспорт-импорт ломает SEO и структуру. Схемы данных несовместимы, медиафайлы в привязках, Rich Text теряет форматирование. Мы решаем эту задачу через ETL-пайплайн с батчингом и повторной обработкой. За 5 лет провели 30+ миграций — от WP→Strapi до Drupal→Contentful. Экономия бюджета достигает 40% (до 200 000 руб. на проекте с 5000 записей) за счёт автоматизации в сравнении с ручной миграцией. Наша команда имеет 10+ лет опыта в веб-разработке, что гарантирует надёжность переноса.

Обычный дамп базы не работает: 60% времени уходит на трансформацию. Маппинг типов контента, перестройка таксономий, конвертация Rich Text — каждый этап требует своего подхода.

Как подготовить данные к миграции?

Первый шаг — инвентаризация. Собираем схему: типы контента, поля, таксономии, метаданные. Для WordPress это посты, страницы, пользователи, шорткоды; для Contentful — модели и локали. Маппинг делаем вручную с участием вашей команды — это гарантирует 100% перенос.

Маппинг типов контента

Тип данных WordPress Strapi Sanity
Пост wp_posts.post_type = 'post' Post collection post document
Страница wp_posts.post_type = 'page' Page collection page document
Метаполе wp_postmeta Dynamic zone metadata object

Такой маппинг ложится в основу скриптов трансформации.

Почему ETL-пайплайн быстрее ручного переноса?

ETL — Extract–Transform–Load — позволяет автоматизировать даже сложные преобразования. Батчинг по 50 записей с задержкой 500 мс ускоряет процесс в 3 раза по сравнению с поштучной обработкой. Пример скрипта:

// scripts/cms-migration.ts interface MigrationConfig { source: 'wordpress' | 'contentful' | 'ghost'; target: 'strapi' | 'contentful' | 'sanity'; contentTypes: ContentTypeMapping[]; } async function migrate(config: MigrationConfig) { const extractor = getExtractor(config.source); const transformer = getTransformer(config.source, config.target); const loader = getLoader(config.target); for (const mapping of config.contentTypes) { console.log(`Migrating: ${mapping.sourceName} → ${mapping.targetName}`); const items = await extractor.extract(mapping.sourceName); const transformed = items.map(item => transformer.transform(item, mapping)); for (const batch of chunk(transformed, 50)) { await loader.load(mapping.targetName, batch); await delay(500); } } } 

Миграция Rich Text

Самый сложный этап — трансформация форматов. HTML → Portable Text (Sanity) или Markdown (Contentful) требует рекурсивного парсинга DOM. Блоки изображений, встраиваемые шорткоды — каждый элемент обрабатывается по правилу. Например, для переноса 15 000 изображений из WordPress в Strapi потребовалось 2 дня на батчинг и перелинковку.

// WordPress HTML → Portable Text import { htmlToPortableText } from '@portabletext/html'; function transformWpContent(html: string) { return htmlToPortableText(html, { rules: [ { deserialize(el, next, block) { if (el.tagName === 'IMG') { return block({ _type: 'image', _key: Math.random().toString(36).slice(2), src: el.getAttribute('src'), alt: el.getAttribute('alt'), }); } }, }, ], }); } 

После загрузки контента генерируем маппинг редиректов и настраиваем 301 редиректы.

const redirects = oldPosts.map(old => ({ source: old.url, destination: newPosts.find(n => n.slug === old.slug)?.url ?? '/blog', permanent: true, })); 

Что делать с SEO-структурой после миграции?

Старые URL, мета-теги, карты сайта — всё переносится без потери позиций. Используем 301 редиректы и лог ошибок. Как указано в документации WordPress, корректные редиректы критичны для сохранения PageRank. Если вы планируете миграцию, свяжитесь с нами — мы поможем спланировать бюджет и сроки.

Основные сложности миграции

Rich Text с вложениями

В WordPress контент хранится как HTML с встроенными шорткодами. В Contentful — на Markdown, в Sanity — Portable Text. Алгоритм рекурсивно парсит DOM и собирает блоки.

SEO-структура

Переносим мета-теги, заголовки, карты сайта. Настраиваем 301 редиректы для сохранения позиций. Настройка редиректов в Strapi описана в официальном плагине Redirects.

Даунтайм

Минимизируем простой до 15 минут за счёт параллельной записи и переключения DNS.

Пользователи и права

Импортируем аккаунты, роли и подписки, обеспечивая бесшовную аутентификацию.

Процесс работы

  1. Аудит — инвентаризируем контент, схему, SEO-теги, медиа.
  2. Маппинг — составляем соответствия типов контента и полей.
  3. Разработка скриптов — пишем ETL-пайплайн под вашу пару CMS.
  4. Тестовая миграция — прогоняем на копии, проверяем целостность данных и метаданных.
  5. Боевой запуск — выполняем перенос в окно с минимальным трафиком.
  6. Пост-миграция — мониторинг ошибок 404, корректировка редиректов, передача документации.

Сроки

Объём контента Срок
до 500 записей 1–2 недели
500–5000 записей 2–4 недели
5000+ записей от 4 недель

Стоимость рассчитывается индивидуально — пишите, оценим проект за один день. Получите консультацию инженера по миграции.

Чек-лист постмиграции

  • Проверить 301 редиректы для топ-100 страниц
  • Сверить количество записей в старой и новой CMS (count)
  • Протестировать формы, поиск, фильтры
  • Загрузить карту сайта в Search Console
  • Настроить мониторинг 404

Что входит в работу

  • План миграции и маппинг.
  • Скрипты ETL с учётом вашей CMS.
  • Настройка 301 редиректов и карты сайта.
  • Тестирование на staging и мониторинг после запуска.
  • Документация (список редиректов, схема данных, инструкция).
  • Поддержка 30 дней после миграции.

Свяжитесь с нами для консультации по переносу вашего сайта — оценим бюджет и сроки за один день. Закажите миграцию сейчас, чтобы обсудить детали без обязательств. Гарантируем сохранность данных и нулевой даунтайм.