301-редиректы при переезде: как не превратить сайт в кладбище 404
Один к одному, без цепочек, не на главную. Как составить карту редиректов, где настраивать и как проверить, что ничего не потеряно.
Редирект — это не «настроить и забыть», а карта: со старого адреса на новый, один к одному. Ошибки здесь одинаковые у всех: всё на главную, цепочки, петли, редиректы на 404. Разбираем, как сделать правильно.
301 или 302
301 — «страница переехала навсегда», поисковики передают на новый адрес накопленный вес. 302 — «временно», вес остаётся на старом адресе. При переезде сайта нужны только 301. 302 ставят, когда действительно вернутся: акция, техработы.
Как составить карту
- Взять полный список старых адресов (см. чеклист).
- Для каждого найти страницу-преемника на новом сайте. Не «похожую», а ту же по смыслу.
- Если преемника нет — решить: оставить страницу (перенести) или отдать 410/404. Редирект на нерелевантную страницу поисковики считают «мягкой 404», пользы от него нет.
- Записать пары в таблицу. Это и есть карта.
Правила, которые ломают чаще всего
- Не на главную. Редирект 300 страниц на главную — это не сохранение, а уничтожение: главная не ранжируется по запросам внутренних страниц.
- Без цепочек. Старый → промежуточный → новый теряет часть веса и время. Если у сайта уже были редиректы, обновите их, чтобы вели сразу на конечный адрес.
- Без петель. A → B → A. Случается при смене http/https и www одновременно с переездом.
- Со слешем и без — одинаково.
/uslugiи/uslugi/должны вести в одно место. - Параметры.
?utm_source=…должен сохраняться при редиректе, иначе рекламные ссылки перестанут считаться. - Картинки тоже. Если у картинок были позиции в поиске по картинкам, их адреса тоже стоит перенаправить.
Где настраивать
На уровне сервера — nginx или .htaccess — быстрее всего и без нагрузки на WordPress. Плагины вроде Redirection удобнее для больших карт и для правок без доступа к серверу; на скорость они влияют мало, если редиректов не тысячи. Мы обычно делаем так: массовые правила (смена домена, https, www, слеши) — на сервере, точечные пары — в плагине, чтобы владелец сайта мог править сам.
Как проверить
Прогнать весь старый список через любой проверяльщик кодов ответа (Screaming Frog, Netpeak, curl в цикле). Норма: каждый адрес отдаёт либо 200, либо ровно один 301 на страницу с 200. Всё остальное — в работу.
| Было | Стало |
|---|---|
| /page12345678.html → 404 | /uslugi/montazh/ → 200 |
| /old/ → 301 → /new-old/ → 301 → /new/ | /old/ → 301 → /new/ |
| /catalog/* → / | /catalog/item-1/ → /katalog/item-1/ |