Техническая база сайта

301-редирект: как переехать на новый адрес и не потерять трафик

Ещё говорят: редирект 301, постоянное перенаправление, 301 redirect, переадресация

Коротко

301-редирект — ответ сервера «страница переехала навсегда», после которого браузер и робот идут на новый адрес. Поисковик со временем заменяет старый адрес новым в индексе и переносит на него накопленные сигналы: ссылки, возраст, позиции. Это основной инструмент переезда и склейки дублей.

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

Чем 301 отличается от соседних кодов

КодСмыслЧто делает поиск
301переехало навсегдазаменяет адрес в индексе, переносит сигналы
302временнооставляет в индексе старый адрес
404не найденопостепенно выбрасывает адрес из индекса
410удалено навсегдавыбрасывает быстрее, чем 404
200 + canonicalстраница есть, но главная — другаярекомендация, не обязательство

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

Когда он нужен

  • Переезд на новый домен или на HTTPS.
  • Склейка www и без www, адресов со слешем и без — разбор в статье про дубли.
  • Смена структуры адресов: был /uslugi/seo/, стал /services/seo/.
  • Удаление страницы, у которой есть близкий аналог.
  • Объединение двух похожих страниц в одну.

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

Как настраивается

На Apache — в .htaccess, на nginx — в конфиге сервера, в WordPress — плагином или кодом темы. Плагин удобнее для точечных правок, конфиг надёжнее для массовых: он не зависит от базы и работает быстрее.

Примеры
# Apache, .htaccess — одна страница
Redirect 301 /staraya-stranica/ https://site.ru/novaya-stranica/

# Apache — весь сайт на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# nginx — переезд домена
server {
  server_name old-site.ru;
  return 301 https://new-site.ru$request_uri;
}

Ошибки, которые съедают трафик

  1. Цепочки старый адрес ведёт на второй, тот на третий. Каждое звено — задержка и потеря; робот может не дойти до конца. Цепочки схлопывают до одного перехода.
  2. Петли два адреса перенаправляют друг на друга. Страница не открывается вообще, и это видно только по коду ответа.
  3. Всё на главную массовый редирект удалённых страниц на главную. Поиск распознаёт это как ошибку, а человек не находит того, за чем пришёл.
  4. Редирект вместо склейки дублей фильтров фильтр нужен посетителю — его закрывают каноническим адресом.
  5. Снятый редирект через год «уже не нужен» — и весь накопленный вес старых адресов пропадает разом.
  6. Старые адреса в карте сайта адреса с редиректом не должны попадать в sitemap.xml.
Редирект со старого адреса нельзя снимать «за ненадобностью». Пока на него есть чужие ссылки и чьи-то закладки, он продолжает приносить трафик — а снятие обнуляет всё накопленное разом.

Сколько ждать переноса

Для отдельной страницы — обычно недели: сначала переобход старого адреса, потом замена в индексе. Для целого домена — месяцы, и провал трафика в первые недели считается нормальным. Ускоряют дело переобход в Вебмастере, IndexNow и внутренние ссылки, ведущие сразу на новые адреса.

Проверять стоит по коду ответа: страница может выглядеть переехавшей, а сервер при этом отдавать 302 или 200 с редиректом на JavaScript. Последний поисковик как перенос не воспринимает.

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

Передаёт ли 301-редирект вес полностью?

Google заявлял, что потерь при 301 нет. На практике перенос всё равно не мгновенный и зависит от того, насколько новая страница близка старой по смыслу: редирект на нерелевантную страницу работает как 404.

Как долго держать редирект?

Минимум год, а лучше постоянно. Пока на старый адрес есть внешние ссылки и он остаётся в чьих-то закладках, редирект приносит трафик. Снятие возвращает 404 и обнуляет накопленное.

Можно ли редиректить с одной страницы на несколько?

Нет, редирект всегда ведёт на один адрес. Если старая страница объединяла несколько тем, выбирают ближайшую по смыслу, а остальные разделы подтягивают ссылками с новой страницы.

Что делать со страницами, которым нет замены?

Отдавать 404 или 410. Это нормальный ответ: поисковик спокойно выбрасывает такие адреса. Массовый редирект на главную хуже — он выглядит как попытка обмануть и всё равно не сохраняет позиции.

Что значит код ответа 301?

Сервер сообщает: страница переехала навсегда, новый адрес указан в заголовке Location. Браузер сразу идёт туда, а поисковик со временем заменяет старый адрес новым в выдаче. Все коды на тройку — перенаправления: 301 постоянное, 302 и 307 временные.

Замедляет ли 301-редирект сайт?

Один редирект — это один лишний запрос к серверу, обычно десятки миллисекунд, человек их не замечает. Проблемой становятся цепочки: старый адрес ведёт на промежуточный, тот на новый. Каждое звено добавляет запрос, а робот длинную цепочку может не пройти до конца. Поэтому редирект ставят сразу на конечный адрес.

Переходит ли фильтр поисковика на новый домен через редирект?

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

Что читать дальше

Дальше практика

Проверим редиректы перед переездом

Соберём карту старых адресов и проверим, куда они ведут: цепочки, петли и потери видно сразу.