Идея сравнения
Перед переездом вы обходите старый сайт и сохраняете список адресов со свойствами. После — обходите новый сайт. Затем по карте соответствий сопоставляете страницы и смотрите, что изменилось. Так находятся потерянные страницы, неверные перенаправления и изменения содержимого.
Что сопоставлять
| Свойство | Что проверяем | Что считаем проблемой |
|---|---|---|
| Наличие адреса | Старый адрес ведёт на новый | Ошибка 404 вместо перенаправления |
| Код ответа | 301 и конечный 200 | 302, цепочки, ошибки 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"])
Скрипт читает два обхода и карту соответствий и печатает расхождения: страницы, которых нет на новом сайте, и страницы с изменившимся заголовком. Формат таблиц зависит от краулера, названия столбцов подставьте свои.
Типичные расхождения
- Страницы без пары. Старый адрес не попал в карту: нужно добавить или решить, что он не нужен.
- Новые страницы, которых не было. Возможно, технические дубли или страницы с параметрами.
- Изменение заголовков. При смене структуры допустимо, но требует проверки, что смысл сохранён.
- Потерянные страницы в карте сайта. Их нужно вернуть в файл.
Порядок исправления
- Сгруппируйте расхождения по типам и посчитайте число страниц.
- Начните с массовых причин: ошибка в правиле сервера, шаблоне или карте.
- Исправьте и повторите сверку.
- Зафиксируйте результат: сколько страниц сопоставлено успешно.
Сверку повторяют. После запуска, через неделю и через месяц: часть проблем проявляется позже. Общий порядок переезда — в статье про чек-лист переезда на 25 пунктов, а массовую проверку кодов — в статье про скрипт проверки кодов ответа.
Частые вопросы
Зачем сравнивать обходы до и после переезда?
Чтобы доказать, что каждая старая страница нашла новый адрес, и найти потерянные страницы, неверные перенаправления и изменения содержимого.
Что нужно для сверки?
Два обхода — старого и нового сайта — и карта соответствий старых и новых адресов.
Когда повторять сверку?
После запуска, через неделю и через месяц: часть проблем проявляется не сразу.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.