Как сохранить 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-переноса прямо сейчас — получите консультацию и предварительный план работ в течение дня.







