Редиректы и входящие ссылки в SEO
На ваш сайт могут ссылаться другие ресурсы.
Внешняя ссылка ведет на конкретный адрес,
например /catalog/laptops/.
Если вы меняете URL без редиректа,
чужие сайты продолжают ссылаться
на старый адрес - а он уже не работает
или не получает вес.
Разработчик отвечает за то, чтобы при смене адреса внешние ссылки не «обнулились». Для этого нужны правильные редиректы.
301 и 302 при смене URL
Если страница переехала навсегда,
нужен постоянный редирект 301.
Он говорит поисковику: старый URL
замените новым и передайте ему
накопленный вес, в том числе
с внешних ссылок.
HTTP/1.1 301 Moved Permanently
Location: https://example.com/catalog/notebooks/
Временный редирект 302 для постоянного
переезда опасен: поисковик может
оставить в индексе старый адрес,
на который как раз ведут внешние ссылки.
Вес на новую страницу не перейдет полностью.
Пример: раздел переименовали
с /laptops/ на /notebooks/.
Настройка в .htaccess:
RewriteEngine On
RewriteRule ^laptops/?(.*)$ /notebooks/$1 [R=301,L]
Теперь внешняя ссылка на старый адрес
пройдет через 301 и отдаст вес
новой странице.
Цепочки редиректов
Если внешний сайт ссылается на
/old/, а у вас цепочка
/old/ → /mid/ → /new/,
часть веса теряется на каждом шаге.
Робот может и не дойти до конца.
/old/ -> /mid/ -> /new/
Правильно сразу вести на финальный URL:
/old/ -> /new/
Проверить цепочку:
curl -I -L https://example.com/old/
Флаг -L покажет все переходы.
Должен быть один 301 на конечный адрес.
Переезд раздела
При переносе целого раздела внешние ссылки могут вести на десятки старых URL. Нужна карта: старый адрес → новый адрес.
Для каждой пары - свой 301
или общее правило, если структура
меняется по шаблону:
RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]
После деплоя проверьте несколько
старых URL, на которые точно
есть внешние ссылки. Если хотя бы
один отдает 404, вес с этого
адреса теряется.
Практические задачи
Почему при смене URL важен
301, а не 302,
если на старый адрес ведут
внешние ссылки?
Дан ответ сервера для старого URL, на который ссылаются другие сайты:
HTTP/1.1 302 Found
Location: https://example.com/new-page/
Страница переехала навсегда. Объясните, в чем ошибка и исправьте ее.
Внешние ссылки ведут на /old/.
Сейчас работает цепочка:
/old/ → /temp/ → /final/.
Объясните, в чем проблема,
и перепишите редирект.
Раздел /blog/ переезжает
на /articles/.
Напишите правило 301
в .htaccess для всего раздела.