Как сохранить SEO-позиции при миграции сайта?
Представьте: вы переезжаете на новый движок, а в день запуска видите пустые title и 404 на каждой странице. Потеря позиций по одному высокочастотному запросу может стоить до 200 000 руб. ежемесячно. Такая ситуация встречается на десятках проектов. Без правильного переноса SEO-данных и редиректов поисковая выдача обнуляется за несколько часов, а восстановление занимает месяцы. Наш подход — автоматизация экспорта, ручная валидация и подробный чек-лист. Автоматизация сокращает время переноса в 3-4 раза по сравнению с ручным копированием, а ручная валидация ключевых страниц исключает ошибки маппинга. Мы уже перенесли SEO-данные для 50+ проектов — от небольших блогов до интернет-магазинов с 15 000 товаров.
Как мы переносим мета-теги без потерь?
Основные причины потерь — разные форматы хранения мета-полей в старой и новой CMS, отсутствие маппинга URL и «забытые» редиректы плагинов. Например, в WordPress (Yoast) мета-теги лежат в wp_postmeta с ключами _yoast_wpseo_title, а в новом headless CMS — в поле seo.metaTitle JSON-объекта. Мы автоматически трансформируем структуру, сохраняя все связи. Для этого пишем Python-скрипт, который читает старую БД, маппит поля на новую схему и загружает через REST API. Это исключает человеческие ошибки и ускоряет перенос.
| Тип данных |
Пример поля |
Источник (WP) |
Приёмник (Strapi) |
| Meta title |
_yoast_wpseo_title |
wp_postmeta |
seo.metaTitle |
| Meta description |
_yoast_wpseo_metadesc |
wp_postmeta |
seo.metaDescription |
| Open Graph |
og:title, og:description |
_yoast_wpseo_opengraph-title |
seo.openGraph |
| Canonical |
canonical |
_yoast_wpseo_canonical |
seo.canonicalURL |
| Robots noindex |
noindex |
_yoast_wpseo_meta-robots-noindex |
seo.metaRobots |
| Alt-тексты |
alt |
wp_postmeta (attachments) |
Маппинг через ID медиафайла |
| Schema.org |
Article, Product, BreadcrumbList |
JSON-LD в контенте |
Импорт через API |
Ключевой момент: мы не просто копируем поля, а проверяем их корректность на этапе импорта. Например, длина meta description не должна превышать 160 символов — скрипт автоматически обрезает лишнее и сохраняет в журнал. Согласно Google Search Central, canonical URL обязателен для избежания дублирования.
Перечень переносимых данных
Помимо основных мета-тегов, мы переносим hreflang-атрибуты, canonical URL, разметку Schema.org, а также alt-тексты изображений. Каждый элемент критичен для сохранения позиций. Например, отсутствие canonical может вызвать дублирование страниц, что ведёт к штрафам за контент. Ручная проверка 100 страниц занимает около 5 часов, автоматизированная — 10 минут, что в 30 раз быстрее.
Почему редиректы критичны для SEO?
Даже одна «битая» ссылка может стоить нескольких позиций. Принцип: каждый старый URL должен возвращать 301 на релевантный новый. Согласно HTTP/1.1 specification, 301 редирект передаёт вес страницы. Мы не допускаем цепочек редиректов (301 → 302), глубже одного шага. Настройка через nginx map-файл даёт нулевую задержку и не нагружает CMS.
map $request_uri $redirect_uri {
default "";
"/old-page" "/new-page";
"/category/news" "/blog/news";
}
server {
if ($redirect_uri != "") {
return 301 $redirect_uri;
}
}
Для сравнения, плагин Redirection в WordPress создаёт 301 редиректы через PHP, что замедляет ответ сервера. nginx map работает на уровне ядра, обеспечивая минимальный TTFB.
| Метод |
Производительность |
Сложность настройки |
Поддержка |
| nginx map |
Высокая |
Средняя |
Любой nginx-сервер |
| .htaccess |
Средняя |
Низкая |
Apache |
| Плагин (Redirection) |
Низкая |
Очень низкая |
WordPress |
Как мы проверяем результат?
После импорта запускаем скрипт валидации, который обходит все старые URL из sitemap.xml и проверяет:
- Код ответа (301 или 200) — не 404 и не 500.
- Наличие
<title> и <meta name="description"> на целевых страницах.
- Совпадение canonical URL с целевым.
- Отсутствие цепочек редиректов.
Для самых важных страниц (landing, категории с большим трафиком) проводим ручную проверку: сравниваем старые и новые мета-теги, смотрим индексацию в Search Console. Типовые ошибки при миграции:
- Использование 302 вместо 301 (временные редиректы не передают вес).
- Забытые редиректы плагинов (например, Redirection не экспортирует все правила).
- Отсутствие маппинга для кастомных полей (ACF, Pods).
Все эти ошибки мы выявляем на этапе аудита и исправляем до запуска.
Как мы переносим SEO-данные: пошагово
- Аудит старой CMS — определяем все источники SEO-полей: плагины, кастомные метабоксы, ACF.
- Экспорт в универсальный JSON — скрипт на Python выгружает данные из БД WordPress (или другой CMS).
- Трансформация под новую CMS — маппинг полей:
_yoast_wpseo_title → seo.metaTitle, _yoast_wpseo_robots → seo.metaRobots.
- Импорт через REST API — пакетная загрузка с контролем ошибок (таймауты, дубликаты).
- Генерация редиректов — создание CSV-файла
old_url, new_url, 301 и nginx map-конфига.
- Валидация — проверка всех URL на 404, 301-цепочки, наличие мета-тегов и Schema.org.
Кейс: Мигрировали интернет-магазин с 15 000 товаров с WordPress (WooCommerce) на Strapi + Next.js. Старые URL категорий изменили структуру — /category/electronics → /catalog/electronics. Написали маппинг через CSV, загрузили 12 000 редиректов за 2 дня. Результат: позиции по 90% запросов не изменились, трафик вырос на 3% из-за ускорения сайта. Только за счёт автоматизации мы сэкономили клиенту 40 часов ручного труда, что при ставке 3000 руб./час составляет 120 000 руб.
При переносе 10 000 страниц каждый URL обрабатывается индивидуально.
Что входит в работу?
- Полная карта старых и новых URL (все страницы, включая архивные).
- Экспорт всех SEO-полей (title, description, OG, Schema.org, hreflang).
- Генерация и настройка 301-редиректов (nginx map или CSV).
- Импорт данных в новую CMS через API.
- Валидация с автоматическим отчётом (статусы, ошибки).
- Ручная проверка топ-20 страниц по трафику.
- Документация по процессу и передача доступов.
Сроки и стоимость
Полный перенос SEO-данных (экспорт, импорт, редиректы, валидация) занимает от 2 до 5 рабочих дней в зависимости от объёма и сложности. Стоимость рассчитывается индивидуально — зависит от количества страниц, числа CMS-полей и необходимости кастомных трансформаций. Свяжитесь с нами — оценим ваш проект за один день.
Почему выбирают нас?
- Опыт более 5 лет в веб-разработке и миграциях.
- 50+ успешных проектов по переносу SEO-данных.
- Гарантия сохранения позиций — если из-за нашей ошибки позиции упали, исправляем бесплатно.
- Сертифицированные инженеры по WordPress, Strapi, Next.js.
Хотите избежать потери трафика при миграции? Закажите аудит SEO-переноса прямо сейчас — получите консультацию и предварительный план работ в течение дня.
Редизайн и миграция сайта: смена CMS, сохранение SEO
Клиент пришёл через 6 недель после самостоятельного редизайна: «Мы переехали с WordPress на Tilda, трафик упал на 70%». Открываю Google Search Console — 847 страниц отдают 404, URL-структура полностью изменилась, не было ни одного 301-редиректа. Яндекс ещё не переиндексировал новый сайт, позиции рухнули. Восстановление заняло 4 месяца и обошлось в потерю выручки около 2 млн рублей за квартал. Наш опыт — более 7 лет и 80+ успешных миграций, гарантируем сохранение позиций при правильном подходе.
Почему миграции ломают SEO
Поисковики проиндексировали конкретные URL. Если /catalog/shoes/nike-air-max-270 превратился в /products/nike-air-max-270 без 301-редиректа — весь ссылочный вес страницы, весь трафик, все позиции уходят в никуда. Google говорит, что 301 передаёт ~99% PageRank, но на практике позиции восстанавливаются за 2–8 недель, а не мгновенно.
Чаще всего SEO ломают не из злого умысла, а потому что разработчик не думает о URL-структуре как о публичном API. Вот типичные поломки:
| Проблема |
Причина |
Решение |
| Дублированный контент |
Новый сайт открывается параллельно со старым |
Отключить индексацию dev-версии, настроить canonical |
| Потеря метаданных |
Title и description остались в старой CMS |
Экспорт через API, массовый импорт с проверкой |
| Изменение canonical |
Пагинация и фильтры сбросились |
Зафиксировать до разработки, внедрить в шаблон |
| Скорость просела |
Тяжёлые секции, неоптимизированные изображения |
Оптимизировать LCP, CLS, TTFB до запуска |
Как восстановить трафик после неудачной миграции?
Если трафик упал — действуйте немедленно:
- Краул нового сайта на 404 и сравнение с предмиграционным списком URL.
- Создание редиректов для всех потерянных страниц с трафиком >0.
- Проверка структурированных данных и мета-тегов на тестовой выборке.
- Ежедневный мониторинг Coverage в Search Console и позиций по топ-50 запросам.
- Если спустя 2 недели трафик не восстанавливается — глубокий аудит редиректов (транзитивность, цепочки, циклы).
В нашей практике такой случай: крупный интернет-магазин потерял 50% трафика при переезде с Битрикса на React + Strapi. За три дня восстановили 95% редиректов, через 3 недели трафик вернулся на 90% от исходного.
Предмиграционный аудит: что нельзя пропустить
До начала разработки нового сайта нужно:
- Полный краул текущего сайта через Screaming Frog или Sitebulb. Получить список всех индексируемых URL с трафиком из Google Search Console.
- Выгрузить все страницы с органическим трафиком >0 за последние 6 месяцев — это приоритет для редиректов.
- Зафиксировать все внешние ссылки (backlinks) на конкретные страницы — Ahrefs, Semrush.
- Сфотографировать текущие позиции по ключевым запросам — база для сравнения после миграции.
- Сохранить Core Web Vitals из Search Console за предыдущие 90 дней.
Таблица для фиксации:
| Этап аудита |
Инструмент |
Критичность |
| Сбор URL |
Screaming Frog + GSC |
Высокая |
| Трафик по страницам |
Google Analytics / Search Console |
Высокая |
| Внешние ссылки |
Ahrefs / Majestic |
Средняя |
| Позиции |
Яндекс.Wordstat / Serpstat |
Средняя |
| Core Web Vitals |
GSC CrUX |
Высокая |
Свяжитесь с нами для детального предмиграционного аудита — мы поможем выявить все риски и составить план действий.
Маппинг URL и редиректы
Для проекта с 200+ страницами создаём таблицу маппинга: старый URL → новый URL → статус (301, объединён с другой страницей, удалён). Каждая строка проходит проверку: реально ли контент переехал именно сюда.
В Laravel редиректы через конфигурационный файл и middleware, не через .htaccess — это быстрее и управляемо. Для WordPress → Next.js: редиректы настраиваются в next.config.js (статические) и на уровне Nginx/CDN для динамических. Старый .htaccess на shared хостинге с 500+ строками редиректов — особый ад. Каждый редирект проверяется последовательно, производительность падает. Переносим в Nginx map директиву или Redis-кэш для динамического поиска. Подробнее в Wikipedia: HTTP 301.
Миграция контента из разных CMS
WordPress → Headless CMS (Contentful, Strapi, Sanity):
WordPress REST API или WP All Export для экспорта постов, метаполей, медиафайлов. Скрипт миграции на Node.js: парсим экспорт, трансформируем структуру, загружаем через API CMS. Медиафайлы перегружаем в новое хранилище, обновляем ссылки в контенте. Типичная проблема — shortcodes в контенте WordPress ([gallery id="123"]): нужен парсер и трансформация в новый формат.
1С-Битрикс → современный стек:
Битрикс хранит контент в нестандартных таблицах с IBLOCK_ELEMENT_PROPERTY. Прямой SQL-экспорт через phpMyAdmin или Bitrix API. Трансформация — самая долгая часть из-за специфики структуры данных Битрикса.
Тяжёлые WYSIWYG → структурированный контент:
Годы редактирования в FCKEditor/TinyMCE оставляют inline-стили, нестандартные теги, сломанные атрибуты. HTML sanitize + трансформация в Markdown или Portable Text (Sanity) с ручной проверкой проблемных страниц.
| CMS |
Инструменты миграции |
Сложность |
Риски |
| WordPress |
WP All Export, WP-CLI, REST API |
Средняя |
Shortcodes, meta fields |
| 1C-Битрикс |
Bitrix API, SQL-экспорт |
Высокая |
Сложная структура, свойства инфоблоков |
| Joomla |
J2XML, прямая выгрузка из БД |
Высокая |
Устаревшие расширения |
| Tilda/Readymag |
Экспорт через API (ограничен) |
Средняя |
Нет полного доступа к контенту |
SEO-сохранение технических элементов
Структурированные данные (Schema.org) — если на старом сайте были Product, Article, BreadcrumbList разметки, они должны быть и на новом. Google Search Console → Enhancement reports покажут потерю rich snippets.
Sitemap XML: генерируется автоматически, отправляется в GSC через день после запуска. Старый sitemap остаётся до полной переиндексации.
hreflang для мультиязычных сайтов: если теги потерялись при миграции, через несколько недель начнутся конфликты между языковыми версиями в выдаче.
Open Graph и Twitter Card мета-теги — часто забывают при смене шаблона, страницы перестают корректно отображаться при шаринге в соцсетях.
Запуск и мониторинг первых недель
DNS propagation: переключение DNS занимает до 48 часов, планируйте запуск с запасом. Cloudflare как DNS-провайдер — propagation занимает минуты, не часы.
После запуска ежедневно мониторим: Search Console → Coverage (ошибки индексации), Analytics → органический трафик, сравнение с аналогичным периодом прошлого года, краулинг сайта на 404-ошибки.
Первые 2 недели — критический период. Если трафик падает на 30%+ — немедленный аудит редиректов и сравнение с предмиграционным краулом.
Чек-лист на запуск (спойлер)
- [ ] Все 301 редиректы работают и не образуют цепочек
- [ ] Sitemap отправлен в GSC и Яндекс.Вебмастер
- [ ] Прописаны canonical на всех страницах
- [ ] Проверено отображение Open Graph / Twitter Card
- [ ] Скорректированы robots.txt и мета-теги noindex
- [ ] Core Web Vitals в зелёной зоне (LCP <2.5s, CLS <0.1, INP <200ms)
Что входит в работу
Результаты, которые вы получаете:
- План миграции с маппингом URL и редиректов в формате Excel/Google Sheets.
- Настроенные 301 редиректы на серверном уровне (Nginx/Cloudflare/Vercel).
- Перенесённый контент с проверкой целостности: изображения, мета-поля, ссылки.
- Структурированные данные (Schema.org) на новом сайте, идентичные старым или улучшенные.
- Отчёт по SEO: динамика позиций через 1, 3 и 6 недель после запуска.
- Мониторинг Coverage в Search Console с уведомлениями об ошибках.
- Гарантия сохранения позиций: если трафик падает более чем на 15% в течение первого месяца — бесплатный аудит и коррекция.
Сроки и ориентиры
- Редизайн с миграцией небольшого сайта (до 100 страниц): 4–8 недель.
- Миграция e-commerce с 500+ страниц товаров: 8–16 недель.
- Только техническая часть миграции (редиректы, метаданные) без редизайна: 1–3 недели.
Стоимость рассчитывается индивидуально по объёму. Средняя экономия клиента за счёт сохранения трафика после миграции — от 300 000 до 500 000 рублей в год.
Получите консультацию по вашему проекту — мы ответим в течение дня. Закажите предмиграционный аудит вашего сайта и получите точную смету с планом редиректов. Свяжитесь с нами, чтобы обсудить детали.