Переезд сайта на 431 страницу без потери адресов

Точка А
АВТО-ПОЛИШ — сеть из трёх детейлинг-центров в Москве для автомобилей массового сегмента. Старый сайт на MODX накопил 431 страницу, из них 313 — карточки работ в портфолио. Цены жили в таблицах, которые никто не решался трогать.
Любая правка — телефон, цена, новая работа в портфолио — означала «позвать разработчика, пересобрать сотни страниц, выкатить». А в поиске у сайта уже были позиции, которые нельзя было потерять при переезде.
Сделать новый сайт, который заказчик ведёт сам, и переехать на него, не потеряв ни одного адреса из поиска.
Решение
Две версии одного бренда — светлая массовая и тёмная премиальная, как базовая и Pro-модель у Apple.
Прайс, который не врёт
160 услуг × 5 классов кузова — от седана до минивэна. Цены раз в час подтягиваются из учётной системы заказчика: поменяли там — поменялось на сайте. Поиск по прайсу понимает «руль», «фара», «сколы» — раньше по таким запросам находилось ноль позиций.

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

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



Чему научил переезд
Однажды при пересборке со всех 486 страниц пропал заголовок — а сайт продолжал честно отвечать «всё в порядке». После этого появились автоматические сторожа: сборка проверяет каждую страницу и не выпускает сайт с такими ошибками.
Карту редиректов делали постранично, а не «всё старое — на главную»: 430 адресов ведут точно в своё новое место, последний — через промежуточный шаг. Позиции — это актив, и обнулять его ради редизайна нельзя.
Результат
«Раньше любая правка означала «позвать разработчика, пересобрать сотни страниц, выкатить». Теперь — открыть админку.»
Скриншоты
Кликните, чтобы открыть крупно.
