Top.Mail.Ru

Что такое редирект и как он спасает сайты от хаоса

1
Что такое редирект и как он спасает сайты от хаоса

Адреса страниц в интернете часто меняются. И для этого могут быть самые разные причины. Например, старый сайт переехал на новый движок, раздел с товарами переименовали, или компания сменила домен. 

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

Если ничего не сделать, то посетитель сайта рано или поздно увидит ошибку 404, решит, что всё сломалось, и уйдёт. Чтобы этого не случилось, придумали редирект. Это такой механизм, который автоматически перенаправляет пользователя со старого адреса на новый. 

Давай разберёмся, как это работает, зачем нужно и как настраивать эту штуку, чтобы не наломать дров.

Что происходит в момент редиректа

Представьте, что вы пришли на работу по привычному адресу, а при входе в офис висит табличка: «Мы переехали в соседнее здание, вход с другой стороны». Благодаря этой информации вы не останетесь в растерянности стоять, не понимая что делать. В итоге вы пойдете туда, куда указывает информация на табличке. Редирект работает ровно так же, только роль таблички выполняет веб-сервер, а перемещение происходит за долю секунды.

Технически это выглядит так. Вы вводите в браузере старый адрес или переходите по старой ссылке. Браузер, как прилежный почтальон, стучится к серверу и говорит: «Отдай мне страницу по такому-то пути». Сервер проверяет свои записи и видит, что этой страницы тут больше нет, но есть инструкция: «Всех, кто сюда пришёл, отправлять на новый адрес». 

Далее сервер отвечает браузеру специальным кодом и сообщает новый URL. Браузер понимает команду, мгновенно перестраивает маршрут и загружает уже нужную страницу. Пользователь чаще всего даже не замечает этой замены.

Ключевых кодов, которые сообщают браузеру «что делать дальше», два. 

  • Первый — 301, постоянный переезд. Он говорит поисковикам и программам: «Запомните новый адрес, старому больше не доверяйте, весь вес ссылок передается новой странице». 
  • Второй — 302, временный переезд. Его используют, когда страницу отправили на ремонт или тестируют новый дизайн. В этом случае поисковик понимает: старый адрес ещё вернётся, поэтому индексировать и запоминать новый пока рано.

Зачем тратить время на настройку

Прежде всего важно понимать, что недоступность сайта, даже временная, это не просто техническая проблема. В итоге она может сильно ухудшить репутацию среди клиентов и испортить SEO-показатели сайта. Когда человек попадает на «Страница не найдена», то вряд ли обрадуется. Он пришёл за статьёй, товаром или номером телефона, а в ответ ничего не получил и только зря потратил время. Снова завоевать его доверие будет непросто. 

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

Три частые ситуации, когда без редиректа никуда

  • Первая — полное изменение домена. Например, если бизнес провел ребрендинг, и сайт переехал на новое имя. Важно не просто запустить новый сайт, а позаботиться о каждом, кто помнит старый адрес. Каждая страница старого домена должна указывать на соответствующую страницу нового.
  • Вторая — изменение структуры. На старом сайте адрес статьи выглядел как `site.ru/2023/04/10/news-title`, а на новом стал `site.ru/blog/news-title`. Если просто удалить старые страницы, десятки материалов выпадут из поиска. 
  • Третья — битые ссылки с чужих ресурсов. На какой-нибудь форум пять лет назад кто-то поставил ссылку на твой материал. Страница обновилась, адрес сменился, а ссылка на форуме осталась прежней. 

Как сделать редирект без паники и магии

Способов настроить перенаправление много, и выбор зависит от того, на чём работает сайт. Самый универсальный и быстрый путь для большинства проектов заключается в правке файла `.htaccess`. Он лежит в корне сайта и работает как список команд для сервера Apache, на котором крутится существенная часть интернета.

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

Переезд всего сайта на новый домен

Ситуация: старый домен закрывается, весь трафик нужно перелить на новый. В файл `.htaccess` старого сайта добавляют такую конструкцию:

«`apache

RewriteEngine On

RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]

RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]

«`

Давайте расшифруем этот код, чтобы стало более понятно: 

  • Первая строка просто включает механизм преобразования адресов, без неё ничего не заработает. 
  • На второй строке описано условие: «Если хост, на который пришёл пользователь, — это `old-site.ru`». Конструкция `[NC]` означает, что регистр букв не важен. 
  • Третья строка означает действие: «Возьми всё, что было в адресе после домена, и перенеси на `new-site.ru`, сохранив путь и страницу». Человек, открывший `old-site.ru/contacts`, попадёт на `new-site.ru/contacts`.

Склейка адресов с www и без

Поисковики видят `site.ru` и `www.site.ru` как два разных сайта. Чтобы указать, какой из них главный, используют такое правило:

«`apache

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

«`

Здесь логика обратная: всех, кто пришёл на адрес с `www`, переводят на адрес без `www`. Если тебе по какой-то причине удобнее наоборот, просто поменяй домены местами. 

Редирект отдельной страницы

Если нужно перенаправить не весь сайт, а только один конкретный материал, правило будет проще:

«`apache

Redirect 301 /old-page /new-page

«`

Здесь мы прямо указываем серверу, что старый путь меняется на новый. Важно помнить, что старый путь — это всё, что идёт в адресе после домена. Если страница была по адресу `site.ru/catalog/old-item`, то и указывать нужно `/catalog/old-item`.

Сначала проверяйте, а потом включайте

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

Также обязательно убедитесь, что старый адрес отдаёт код 301, а не 302. Сделать это можно через инструменты разработчика в браузере на вкладке «Сеть». Если страница переехала навсегда, код должен быть 301. Только так поисковик поймёт, что старый адрес можно удалить из индекса и заменить его новым.

Похожее

Все статьи
138655 (3)

Что такое снапшоты и чем они отличаются от бэкапов

Снапшоты и бэкапы — два термина, которые при разговорах о серверах и хранении данных нередко сливаются во что-то одно. В реальности между ними такая же разница, как между сохранением в компьютерной игре и эвакуацией ценностей в бункер. Задача в целом…

124877

Какая CMS лучше подходит для разных типов сайтов

Выбор системы управления сайтом — это всегда компромисс в какой-то степени компромисс между сложностью, доступностью и привычностью. Нельзя просто так взять и сказать: «Вот конкретно именно эта CMS самая лучшая».  Под каждую задачу есть свой инструмент. Поэтому более корректно спрашивать:…