pimenov.ai

База знаний

SEO-миграция сайта без потерь трафика

Переезд сайта на новую платформу без потерь SEO-трафика: редиректы 301, sitemap, canonical, инвентарь URL, контроль в Вебмастере и GSC.

Опубликовано Обновлено

Переезд сайта на новую платформу, домен или CMS — один из самых рискованных моментов в жизни проекта. Плохо спланированная миграция вполне может стоить десятков процентов органического трафика. В индустрии описаны случаи, когда сайт до обращения к специалистам терял 44% органики — порядка 500 000 пользователей. И это не аномалия, а типичный исход миграции без плана.

Но если сделать всё правильно, миграция может не только сохранить, но и улучшить позиции. Практическое правило здесь — основная часть усилий уходит на планирование (условно ~70%) и лишь меньшая на исполнение. Это руководство покрывает обе части — от инвентаризации URL до post-launch мониторинга в Яндекс.Вебмастере и Google Search Console.

📌
Для кого: владельцы сайтов, разработчики и SEO-специалисты, которые планируют переезд на новый домен, CMS или платформу. Базовое понимание HTTP-кодов и работы поисковых систем желательно.

Когда нужна SEO-миграция

Не каждое изменение на сайте — миграция. SEO-миграция — это любое значительное изменение, которое может повлиять на видимость в поисковых системах:

Тип миграцииЧто меняетсяУровень рискаПример
Смена доменаАдрес сайта целиком🔴 Высокийshop.rumarketplace.ru
Смена CMS/платформыДвижок, часто — структура URL🔴 ВысокийWordPress → Next.js, 1С-Битрикс → Tilda
Переход на HTTPSПротокол🟡 Среднийhttp:// → https://
Редизайн с изменением URLСтруктура адресов, навигация🟡 Средний/catalog/item-123 → /products/item-name
Смена субдоменаЧасть домена🟡 Среднийblog.site.rusite.ru/blog
Обновление контентаТексты, метатеги, структура страниц🟢 НизкийМассовое обновление карточек товаров
⚠️
Главное правило: если URL не меняются — это не SEO-миграция, а обновление. Если хотя бы один URL меняется — вам нужен полный план миграции с редиректами.

Фаза 1: Инвентаризация (до переезда)

Перед любыми изменениями нужно зафиксировать текущее состояние сайта. Это ваша «точка отсчёта» — без неё вы не поймёте, что потеряли после переезда.

Экспорт всех URL

Соберите полный список URL, которые:

  1. Есть в индексе — Google Search Console → Покрытие → Действующие страницы; Яндекс.Вебмастер → Индексирование → Страницы в поиске
  2. Получают трафик — Google Analytics / Яндекс.Метрика → отчёт по страницам входа за последние 12 месяцев
  3. Имеют внешние ссылки — Ahrefs, Serpstat или аналог → бэклинки по доменам и страницам
  4. Есть в sitemap.xml — текущий файл sitemap
# Быстрый экспорт через Screaming Frog или curl
curl -s https://site.ru/sitemap.xml | grep '<loc>' | sed 's/<[^>]*>//g' > urls.txt

Фиксация метрик

Для каждой важной страницы зафиксируйте:

МетрикаГде взятьЗачем
Позиции по ключевым запросамGSC → Эффективность, Яндекс.Вебмастер → Поисковые запросыСравнение «до/после» по позициям
Органический трафикGA4, Яндекс.МетрикаОбнаружение просадок
Количество проиндексированных страницGSC → Покрытие, site:domain.ru в поискеКонтроль за переиндексацией
Внешние ссылки (backlinks)Ahrefs, Serpstat, GSC → СсылкиПроверка, что ссылочная масса не потеряна
Core Web VitalsPageSpeed Insights, GSC → Основные интернет-показателиНовый сайт не должен быть медленнее
💡
Совет: сохраните эти данные в таблицу. После миграции вы будете сверяться с ней каждую неделю. Без baseline-метрик вы не отличите нормальное колебание от реальной потери.

Фаза 2: Карта редиректов 301

Это самый критичный этап миграции. Карта редиректов — это таблица, в которой каждому старому URL сопоставлен новый. Без неё поисковые системы увидят 404 вместо ваших страниц, а вся накопленная ссылочная масса и возраст страниц будут потеряны.

Правила составления

ПравилоПочему важноПример
1:1 маппингКаждая старая страница → конкретная новая страница с аналогичным контентом/catalog/shoes/nike-air → /products/nike-air-max
Только 301, не 302301 сигнализирует о постоянном переезде и переносит индексацию на новый URL. При 302 поисковики считают переезд временным и оставляют в индексе старый URL. Вес передают оба типа, но 302 тормозит переиндексацию и склейкуRedirect 301 /old-page /new-page
Нет цепочек редиректовA → B → C теряет вес и замедляет краулинг. Максимум одно перенаправлениеПроверить, что новый URL не редиректит дальше
Нет редиректа всего на главнуюGoogle трактует массовый редирект на / как soft-404 — вес не передаётсяЕсли страница удалена — 410, не 301 на главную
Держать редиректы 12+ месяцевПоисковикам нужно время на переиндексацию. Снять раньше = потерять весНе удалять правила из .htaccess/nginx после запуска

Формат карты

Старый URL                          → Новый URL                         Статус
/catalog/shoes/nike-air              → /products/nike-air-max            301
/blog/2024/best-running-shoes        → /articles/best-running-shoes      301
/about/team                          → /company/team                     301
/promo/black-friday-2023             → (удалена)                         410

Реализация на сервере

# Nginx — постраничные редиректы
server {
    # ...
    location = /catalog/shoes/nike-air {
        return 301 /products/nike-air-max;
    }

    # Паттерн для категорий
    location ~ ^/catalog/(.*)$ {
        return 301 /products/$1;
    }
}
# Apache .htaccess
Redirect 301 /catalog/shoes/nike-air /products/nike-air-max
RedirectMatch 301 ^/blog/([0-9]{4})/(.*)$ /articles/$2
# Next.js — next.config.js
module.exports = {
  async redirects() {
    return [
      {
        source: '/catalog/shoes/nike-air',
        destination: '/products/nike-air-max',
        permanent: true, // 301
      },
      {
        source: '/blog/:year/:slug',
        destination: '/articles/:slug',
        permanent: true,
      },
    ]
  },
}
⚠️
Антипаттерн: JavaScript-редиректы. window.location.href = "/new-page" не передаёт SEO-вес. Поисковые боты могут не исполнить JS. Всегда используйте серверные 301-редиректы.

Ловушка .htaccess: редиректы молча не работают

Частый сценарий: на старом хостинге был Apache, и за годы в .htaccess накопились сотни правил — редиректы, rewrite, заголовки. При переезде файл копируют на новый сервер, где стоит Nginx. А Nginx .htaccess не читает вообще — не ругается, не предупреждает, просто игнорирует. Все 301-редиректы и правила перестают работать одномоментно и беззвучно.

Опаснее всего то, что сайт при этом выглядит рабочим: главная открывается, новые страницы отвечают. Поломку выдают только старые URL — вместо 301 они отдают 404 или голый 200, и через пару недель поисковик начинает осыпать индекс.

⚠️
Правило: правила редиректов не переносятся между серверами копированием файла. Их нужно переписывать под синтаксис нового сервера — .htaccess (Apache) → server-блок в конфиге (Nginx) → next.config.js (Next.js) и т.д.

Как продиагностировать:

# 1. Узнать, какой сервер на самом деле обслуживает сайт
curl -sI https://new-site.ru | grep -i server
# Server: nginx  → .htaccess не работает, правила нужны в конфиге Nginx
# Server: Apache → .htaccess читается

# 2. Проверить, что старый URL реально отдаёт 301, а не 404/200
curl -sI https://new-site.ru/old-page | grep -iE 'HTTP|location'
# Должно быть: HTTP/1.1 301 + Location: /new-page

Нюанс: на некоторых панелях (ISPmanager, ряд хостингов) Nginx стоит фронтендом перед Apache, и тогда .htaccess может частично работать через Apache-бэкенд. Ориентируйтесь не на «у меня вроде Apache», а на фактический ответ curl по старым URL.


Фаза 3: Техническая подготовка нового сайта

Перед запуском новый сайт должен быть полностью готов с точки зрения SEO. Краулеры не дают «испытательный срок» — они начинают оценивать сайт сразу.

sitemap.xml

  • Содержит только новые URL (не старые)
  • Все URL — каноничные версии (https, с/без www — единообразно)
  • Формат соответствует стандарту sitemaps.org
  • Размер: до 50 000 URL или 50 МБ на файл, используйте sitemap index для больших сайтов
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://new-site.ru/products/nike-air-max</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

robots.txt

  • Разрешить краулинг всех важных разделов
  • Указать путь к sitemap.xml
  • Не блокировать CSS, JS и изображения — поисковики должны видеть рендеренную страницу
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/

Sitemap: https://new-site.ru/sitemap.xml
⚠️
Критическая ошибка: оставить Disallow: / в robots.txt на продакшене. Это случается, когда robots.txt со стейджинга попадает в продакшен-деплой. Проверяйте robots.txt сразу после запуска.

Canonical-теги

Каждая страница должна иметь <link rel="canonical">, указывающий на её каноничную версию:

<head>
  <link rel="canonical" href="https://new-site.ru/products/nike-air-max" />
</head>
  • Canonical должен указывать на новый URL, не на старый
  • На всех версиях страницы (http/https, www/без www) canonical одинаковый
  • Для пагинации: каждая страница каноничная сама на себя (Google отказался от rel=prev/next)

Open Graph и метатеги

При миграции часто теряются:

Что проверитьГдеПоследствия потери
Title<title> в <head>Потеря позиций по целевым запросам
Description<meta name="description">Падение CTR в выдаче
H1Основной заголовок страницыПотеря релевантности
og:title, og:description, og:image<meta property="og:...">Битые превью при шаринге в соцсетях и мессенджерах
Структурированные данные (JSON-LD)<script type="application/ld+json">Потеря расширенных сниппетов в выдаче
Hreflang<link rel="alternate" hreflang="...">Неправильная языковая версия в выдаче
💡
Совет: экспортируйте все метатеги старого сайта через Screaming Frog (или curl + парсинг) и сверьте с новым сайтом 1:1. Автоматизируйте проверку скриптом — вручную на 500+ страницах это нереально.

Фаза 4: Запуск и регистрация в поисковых системах

Google Search Console

  1. Добавить новый сайт как свойство в GSC (если сменился домен)
  2. Подтвердить владение — через DNS-запись, HTML-файл или тег
  3. Подать заявку на смену адреса (Settings → Change of Address) — только при смене домена. GSC покажет проверку: 301-редиректы, подтверждение обоих сайтов
  4. Отправить новый sitemap.xml — Sitemaps → Add a new sitemap
  5. Проверить покрытие — через 2–3 дня в разделе Pages появятся данные о новых URL

Яндекс.Вебмастер

  1. Добавить новый сайт в Вебмастер и подтвердить права
  2. Указать переезд — Индексирование → Переезд сайта → ввести новый домен. Яндекс начнёт склейку доменов (занимает 2–4 недели)
  3. Отправить sitemap.xml — Индексирование → Файлы Sitemap
  4. Проверить ответы сервера — Индексирование → Проверка ответа сервера → ввести старые URL и убедиться, что ответ 301
  5. Настроить регион (если нужно) — Информация о сайте → Региональность
💡
Совет: не удаляйте старый сайт из GSC и Вебмастера. Оставьте оба свойства — старый для мониторинга редиректов, новый для отслеживания индексации. Старый понадобится минимум 6 месяцев.

Фаза 5: Post-launch мониторинг

Первые 4–8 недель после запуска — критический период. Трафик может просесть на 10–20% даже при идеальной миграции. Задача — отличить нормальное «переходное» падение от реальной проблемы.

Еженедельный мониторинг

Что проверятьИнструментКрасный флаг
Индексация новых URLGSC → Pages, site:new-domain.ruКоличество проиндексированных страниц падает, а не растёт
404 ошибкиGSC → Pages → Not found, серверные логиМассовые 404 на страницах с трафиком
Работа редиректовScreaming Frog, curl -I old-url302 вместо 301, цепочки, битые редиректы
Позиции по ключевым запросамGSC → Эффективность, SerpstatПадение позиций по топовым запросам более чем на 10 позиций
Органический трафикGA4, Яндекс.МетрикаПадение более 30% без восстановления через 2 недели
Склейка доменов в ЯндексеВебмастер → Переезд сайтаСтатус «Переезд не подтверждён» через 2+ недели
Core Web VitalsGSC → Основные интернет-показателиМассовое появление «Плохих URL»

Типичные проблемы и решения

ПроблемаПричинаРешение
Массовые 404Пропущены URL в карте редиректовДополнить карту, особенно для URL с трафиком и бэклинками. Приоритет — страницы с внешними ссылками
Дублирование контентаСтарый и новый сайт доступны одновременноУбедиться, что старый домен отдаёт 301 на новый. Проверить canonical на новом сайте
Позиции не восстанавливаются через 4 неделиНеправильные canonical, noindex, проблемы с контентомПроверить curl -I на проблемных URL. Убедиться, что контент идентичен или лучше старого
Яндекс не склеивает доменыРедиректы настроены после подачи заявки, или не все URL редиректятСначала настроить ВСЕ 301-редиректы, потом подать заявку заново
Потеря расширенных сниппетовСтруктурированные данные не перенесеныПроверить JSON-LD через Rich Results Test

Антипаттерны

АнтипаттернПочему плохоЧто делать вместо
Запускать миграцию без инвентаризацииНе знаете, что теряете — не сможете восстановитьЭкспорт всех URL, метрик и бэклинков ДО начала работ
Делать 302 вместо 301302 сигнализирует о временном переезде: поисковики держат в индексе старый URL и медленнее переносят сигналы на новыйВсегда 301 для постоянных переездов
Перенести .htaccess на сервер с другим ПОНа Nginx/Caddy файл .htaccess молча игнорируется — все редиректы и правила ломаются, но сайт выглядит рабочимОпределить тип нового сервера (curl -I) и переписать правила под его синтаксис
Редиректить всё на главнуюGoogle и Яндекс трактуют это как soft-404. Вес не передаётсяПостраничный маппинг 1:1. Если страница удалена — 410 Gone
Снять редиректы через месяцПоисковики не успели переиндексировать. Ссылочная масса теряетсяДержать 301-редиректы минимум 12 месяцев
Менять контент одновременно со структуройНевозможно понять, что вызвало просадку — редиректы или новый контентСначала переезд с сохранением контента, потом улучшения
Забыть про Яндекс.ВебмастерЯндекс использует свой механизм склейки доменов. Без заявки переезд может занять месяцыПодать заявку на переезд в Вебмастере сразу после настройки 301
Не проверять robots.txt на продакшенеСтейджинговый Disallow: / попадает в продакшен — весь сайт закрыт от индексацииПервая проверка после деплоя — curl https://new-site.ru/robots.txt

Чеклист

Pre-launch

Экспортированы все URL текущего сайта (индекс, sitemap, Analytics)
Зафиксированы baseline-метрики: трафик, позиции, бэклинки, Core Web Vitals
Составлена карта редиректов 301 — постраничный маппинг 1:1
Карта проверена: нет цепочек, нет массовых редиректов на главную
Новый сайт имеет корректные Title, Description, H1 для каждой страницы
Open Graph теги (og:title, og:image, og:description) перенесены
Структурированные данные (JSON-LD) перенесены
Canonical-теги указывают на новые URL
sitemap.xml содержит только новые URL
robots.txt разрешает краулинг, содержит ссылку на sitemap
Внутренние ссылки обновлены — указывают на новые URL напрямую, а не через редиректы
Проверены Core Web Vitals нового сайта

Launch

301-редиректы развёрнуты и проверены (curl -I для топ-20 страниц)
Проверен тип нового сервера (curl -I); правила редиректов перенесены в его формат, а не просто скопирован .htaccess
robots.txt на продакшене корректный (не Disallow: /)
Старый сайт отдаёт 301, а не 200
SSL-сертификат работает корректно

Post-launch

Новый сайт добавлен в GSC и Яндекс.Вебмастер
Подана заявка Change of Address в GSC (при смене домена)
Подана заявка на переезд в Яндекс.Вебмастере (при смене домена)
Отправлен новый sitemap.xml в оба инструмента
Настроен еженедельный мониторинг: 404, индексация, позиции, трафик
Через 2 недели: проверена склейка доменов в Яндексе
Через 4 недели: сравнены метрики с baseline
301-редиректы запланированы к сохранению минимум на 12 месяцев
Связались с владельцами ключевых внешних ссылок для обновления URL

Полезные ссылки


По теме

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov