Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Транслит для загранпаспорта ГОСТ 7.79 ISO 9 Блог Вопросы и ответы Создать URL
Практика

Сравнение адресов до и после переезда

Сверка «до» и «после» превращает переезд из надежды в проверенный результат. Разберём метод и скрипт.

Идея сравнения

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

Обойтистарый сайтдо переездаСоставитькартусоответствийОбойтиновый сайтСопоставитьи разобратьрасхождения
Обойтистарый сайтдо переездаСоставитькартусоответствийОбойтиновый сайтСопоставитьи разобратьрасхождения
Порядок сверки

Что сопоставлять

Что сверять после переезда
СвойствоЧто проверяемЧто считаем проблемой
Наличие адресаСтарый адрес ведёт на новыйОшибка 404 вместо перенаправления
Код ответа301 и конечный 200302, цепочки, ошибки 5xx
Заголовок и H1Сохранение смыслаПропали или сильно изменились
Канонический адресУказывает на новый адресУказывает на старый или отсутствует
ИндексируемостьСтраница открыта для индексацииПоявился запрет, которого не было
Внутренние ссылкиВедут на новые адресаОстались ссылки на старые

Карта соответствий

Основа сверки — таблица «старый адрес — новый адрес». Как её вести, описано в статье про таблицу переездов, а как строить при смене системы — в статье про миграцию между CMS.

Скрипт для сверки

import csv

def load(path):
    with open(path, newline="", encoding="utf-8") as f:
        return {row["url"]: row for row in csv.DictReader(f)}

old = load("old_crawl.csv")
new = load("new_crawl.csv")

with open("mapping.csv", newline="", encoding="utf-8") as f:
    mapping = list(csv.DictReader(f))

for pair in mapping:
    old_row = old.get(pair["old"])
    new_row = new.get(pair["new"])
    if new_row is None:
        print("НЕТ НОВОЙ:", pair["old"], "->", pair["new"])
    elif old_row and old_row["h1"] != new_row["h1"]:
        print("H1 ИЗМЕНЁН:", pair["new"])

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

Типичные расхождения

  • Страницы без пары. Старый адрес не попал в карту: нужно добавить или решить, что он не нужен.
  • Новые страницы, которых не было. Возможно, технические дубли или страницы с параметрами.
  • Изменение заголовков. При смене структуры допустимо, но требует проверки, что смысл сохранён.
  • Потерянные страницы в карте сайта. Их нужно вернуть в файл.

Порядок исправления

  1. Сгруппируйте расхождения по типам и посчитайте число страниц.
  2. Начните с массовых причин: ошибка в правиле сервера, шаблоне или карте.
  3. Исправьте и повторите сверку.
  4. Зафиксируйте результат: сколько страниц сопоставлено успешно.

Сверку повторяют. После запуска, через неделю и через месяц: часть проблем проявляется позже. Общий порядок переезда — в статье про чек-лист переезда на 25 пунктов, а массовую проверку кодов — в статье про скрипт проверки кодов ответа.

Частые вопросы

Зачем сравнивать обходы до и после переезда?

Чтобы доказать, что каждая старая страница нашла новый адрес, и найти потерянные страницы, неверные перенаправления и изменения содержимого.

Что нужно для сверки?

Два обхода — старого и нового сайта — и карта соответствий старых и новых адресов.

Когда повторять сверку?

После запуска, через неделю и через месяц: часть проблем проявляется не сразу.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также