📦Чек-лист миграции сайта без потери позиций: до, во время, после
Полный порядок переезда сайта — смена домена, протокола, структуры URL или движка. Что зафиксировать до, что проверить в день переключения и что мониторить месяц после.
Миграция — самая дорогая по последствиям операция в жизни сайта. Всё остальное можно откатить: не понравился текст — переписали, сломалась разметка — починили. Неудачную миграцию тоже можно откатить, но позиции к этому моменту уже уехали, а возвращаются они не так быстро, как терялись.
При этом миграция — операция полностью формализуемая. Здесь почти нет места суждению «а как лучше»: есть последовательность шагов, и если её выполнить, ничего не теряется. Проблемы возникают ровно там, где шаг пропустили.
Ниже — порядок, который я прогоняю целиком, независимо от масштаба переезда.
Сначала: какая у вас миграция
Слово «миграция» покрывает пять разных операций с разной степенью риска.
| Тип | Что меняется | Риск |
|---|---|---|
| Смена протокола (http → https) | Схема в URL | Низкий |
| Смена хостинга | Только IP | Низкий |
| Смена движка / редизайн | Вёрстка, иногда URL | Средний |
| Смена структуры URL | Все адреса внутри домена | Высокий |
| Смена домена | Всё | Высокий |
Самое опасное — комбинация. «Заодно переедем на новый домен, поменяем CMS и почистим структуру URL» — это три миграции одновременно, и когда что-то пойдёт не так, вы не поймёте, что именно. Делайте по одной. Если очень нужно всё — разнесите на два-три месяца.
Этап 1. До переезда: зафиксировать «как было»
Смысл этапа простой: после переключения вам понадобится с чем сравнивать. Половина паники «у нас всё упало» на деле оказывается «мы не помним, как было до».
1.1. Полный список текущих URL
Выгрузить все страницы, которые сейчас в индексе. Три источника, все три нужны, потому что они не совпадают:
- Sitemap.xml — что вы считаете своими страницами;
- Вебмастер → «Страницы в поиске» (или API-эндпоинт
search-urls/in-search/) — что Яндекс реально держит в индексе; - Краулер (Screaming Frog, Netpeak Spider или свой скрипт) — что реально доступно по ссылкам.
Разница между этими тремя списками — уже полезная информация. Страницы, которые есть в индексе, но которых нет в sitemap, при миграции потеряются тише всего, а трафик они приносили.
1.2. Снимок позиций и трафика
- Позиции по ядру — выгрузка на день до переезда;
- Трафик за 3 месяца помесячно и за 4 недели понедельно — из Метрики;
- Топ-100 страниц по трафику — отдельным списком, это ваш приоритет при проверке после.
1.3. Снимок технического состояния
robots.txt— сохранить текущий файл;- Карта редиректов, которые уже стоят (они могут сложиться в цепочку с новыми);
- Скорость: LCP/INP/CLS по ключевым шаблонам страниц — чтобы потом не гадать, замедлился ли сайт;
- Разметка Schema.org — какие типы где стоят.
1.4. Карта соответствия URL — главный артефакт
Таблица из двух колонок: старый URL → новый URL. Для каждой страницы из списка 1.1.
Правила, которые экономят месяцы:
- 1:1 везде, где возможно. Каждая старая страница → одна конкретная новая. Не «всё на главную».
- Массовый редирект на главную — худшее из решений. Поисковик трактует такой редирект как soft-404: страница не переехала, она исчезла. Весь накопленный вес теряется.
- Если новой страницы нет — редирект на ближайший по смыслу раздел. Если и его нет — честный 410 Gone, а не 404 и не редирект в никуда.
- Никаких цепочек. Старый URL → новый, одним переходом. Не старый → промежуточный → новый.
- Проверить таблицу на дубли и петли до переключения, а не после.
Для крупного сайта карта строится правилами (регулярками), но проверять всё равно нужно на выборке: взять 50 случайных URL и прогнать вручную.
Этап 2. Подготовка нового сайта — до переключения
Новый сайт должен быть полностью готов до того, как на него пойдёт трафик. Не «запустим и допилим».
- Тестовый контур закрыт от индексации. Не через
robots.txt— через HTTP-аутентификацию.Disallowна стенде не мешает роботу узнать о URL, а вот попадание стенда в индекс — реальная и частая беда; - Проверить, что
noindexсо стенда не уехал в прод. Это классика:<meta name="robots" content="noindex">в шаблоне, который забыли переключить. Отдельный пункт чек-листа именно потому, что стоит дорого; - Canonical указывают на новый домен, а не остались на старом;
- Sitemap.xml нового сайта собран и содержит только новые URL;
- Внутренние ссылки переписаны на новые адреса. Не оставляйте их на старые в расчёте на редиректы: это создаёт цепочку на каждом клике и жрёт краулинговый бюджет;
- Разметка перенесена, включая
@id— если идентификаторы сущностей завязаны на домен, их надо обновить согласованно во всех местах; - Аналитика стоит и проверена — счётчики Метрики и Google Analytics, цели, электронная коммерция;
- Скорость не хуже, чем была. Замер на стенде до переключения.
Этап 3. День переключения
Порядок операций имеет значение.
- Поднять 301-редиректы по карте соответствия. Именно 301 (постоянный), не 302. 302 говорит «я вернусь», и вес не передаётся.
- Проверить редиректы на выборке — минимум топ-100 страниц по трафику плюс 50 случайных. Проверять
curl -sIL, смотреть всю цепочку, а не только конечный код. - Открыть новый сайт для индексации — снять HTTP-аутентификацию, проверить
robots.txt. - Отправить sitemap нового сайта в Вебмастер и Search Console.
- В Яндекс.Вебмастере — «Переезд сайта» (Настройки → Переезд сайта). Это отдельный официальный механизм, он ускоряет склейку. При смене домена — обязательный шаг, который часто пропускают.
- В Google Search Console — «Изменение адреса» (Настройки → Изменение адреса). Аналогично.
- Не трогать старый домен. Он должен остаться зарегистрированным и отдавать редиректы минимум год. Год — не перестраховка: часть ссылок и часть индекса живут именно столько.
- Отправить ключевые URL на переобход — новую главную, разделы, топ-страницы. Через
recrawl/queueAPI, помня про суточную квоту.
Быстрая проверка редиректов
while read url; do
printf "%s -> " "$url"
curl -sIL -o /dev/null -w "%{num_redirects} redirects, final %{http_code}, %{url_effective}\n" "$url"
done < old_urls.txt
Что должно получиться: 1 redirects, final 200. Двойка в числе редиректов — цепочка, чинить. final 404 — дыра в карте. final 200 при нуле редиректов на старом URL — редирект не поднялся вообще.
Этап 4. Первая неделя после
Здесь главное — не паниковать и не дёргать.
Что нормально:
- Проседание позиций на 10–30% в первые 1–2 недели. Это ожидаемо при любой миграции с изменением URL. Поисковику нужно переобойти и переиндексировать сайт;
- Временный рост числа 404 в Вебмастере — робот ходит по старым адресам, которых уже нет в sitemap;
- Расхождение числа страниц в индексе: старые ещё не выпали, новые ещё не вошли.
Что ненормально и требует вмешательства:
- Позиции упали больше чем на половину;
- В индекс попал тестовый домен;
- Массовые 5xx в истории обхода;
- Редиректы отдают 302 вместо 301;
- Индекс нового домена не растёт вообще спустя неделю.
Что мониторить ежедневно:
- Диагностика в Вебмастере —
FATAL/CRITICAL; - История обхода — доля не-200 ответов;
- Страницы в поиске — по обоим доменам;
- Трафик по дням, в сравнении с прошлым месяцем.
Все четыре пункта закрываются одним скриптом на API Вебмастера — на время миграции это особенно окупается.
Этап 5. Месяц спустя — разбор
- Сравнить позиции с предмиграционным снимком по всему ядру;
- Найти страницы, которые не восстановились, и проверить каждую руками: правильный ли редирект, есть ли на неё внутренние ссылки, нет ли дубля;
- Проверить, что старые URL исчезают из индекса, а новые появляются — процесс должен быть виден на графике;
- Проверить внешние ссылки: часть площадок можно попросить обновить ссылку на новый адрес. Прямая ссылка сильнее ссылки через редирект;
- Проверить скорость на живом трафике, а не на стенде.
Полное восстановление после корректной миграции — от двух недель до трёх месяцев в зависимости от размера сайта. Если через три месяца не восстановилось — дело не в миграции, ищите причину отдельно.
Пять ошибок, которые встречаются чаще всего
- Редирект всего на главную. Убивает вес всех страниц разом. Всегда 1:1.
- 302 вместо 301. Одна цифра в конфиге, месяцы потерянного веса.
noindexуехал со стенда в прод. Сайт исчезает из индекса целиком за считанные дни.- Старый домен отпустили. Через полгода после переезда домен освобождается, редиректы умирают, накопленные ссылки указывают в пустоту.
- Миграция «заодно». Смена домена + смена структуры + редизайн в один день. Когда упадёт, причину не найти.
Итог
Миграция — это операция, где вся работа делается до переключения. Карта соответствия URL, снимок «как было», проверенные редиректы на стенде. Сам день переезда должен быть скучным: подняли конфиг, прогнали проверку, отправили sitemap.
Если день переезда получился интересным — значит, подготовку пропустили.