PrivateFX

Для чего нужен 301 редирект и как его сделать

301redirect

Иногда приходится перенести страницу или вообще весь сайт на другой URL-адрес. Для этого используется 301-й, постоянный редирект. То есть, переходя по старым ссылкам (по внутренним или с внешних ресурсов), люди и поисковые роботы будут попадать на новый URL адрес. 301 редирект осуществляет склейку старого и нового URL адреса. При этом, старый урл перестаёт индексироваться (в этом состоит отличие 301-го от 302-го, временного редиректа). Это бывает необходимо в следующих случаях.

1. Если на сайте есть дубли страниц. Например, в блогах на WordPress часто появляются многочисленные дубли с адресами, включающими “?replytocom”, которые формируются из-за незначительной (на первый взгляд) кнопки «ответить».

301redirect-1

В итоге получается масса одинаковых страниц (равная числу комментариев), которые благополучно индексируются Google и заносятся в дополнительные результаты выдачи.

301redirect-2

Запрет в Robots.txt здесь, как правило, не помогает, и сайт пессимизируется.

Чтобы этого не происходило, все адреса с “?replytocom” и подобными «хвостами» склеиваются с одной и той же страницей, а сами дубли удаляются и изменяется код, который их формирует.

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

3. Если требуется произвести склейку домена с www и без www. Это нужно сделать ещё на начальном этапе развития сайта, чтобы он стал доступен только по одному URL. Дело в том, что ссылки вида www.mysite.ru/* и mysite.ru/* различаются, хотя и ведут на одни и те же страницы. Результат – ненужные дубли. Помимо этого, пользователи будут ставить на вас линки с www и без, что приведёт к размытию ссылочной массы, так как поисковики проиндексируют только 1 тип ссылок. Для предотвращения таких нежелательных последствий на помощь приходит 301 редирект.

4. Если вы переносите сайт со старого домена на новый. Причины бывают разными (плохая «карма» доменного имени, смена доменной зоны, например, с .ru на .рф и т.п.). 301 редирект помогает сохранить трафик и избежать битых ссылок.

Как сделать перенаправление 301

Все манипуляции происходят в файле .htaccess, который находится обычно в корневой папке на хостинге. Перед всеми редиректами следует в отдельной строке указать правило «RewriteEngine On».

Для перенаправления страниц сайта с www на url без www существует следующий код:

RewriteCond %{HTTP_HOST} ^www.moj-sajt.ru$ [NC]

RewriteRule (.*) http://moj-sajt/$1 [R=301,L]

Чтобы задать обратное перенаправление, следует поменять в коде значения так, чтобы стало “^moj-sajt.ru$” и “http://www.moj-sajt.ru/”.

Если на сайте имеются дубли с указанием категории в URL и без, и мы хотим, чтобы они стали доступными только по одному адресу, пропишем подобное правило:

RewriteRule ^(.*)catalog/page.html$ http://moj-sajt.ru/page.html [R=301,L]

В этом случае страница, которая открывалась ранее по адресу catalog/page.html, будет перенаправляться на moj-sajt.ru/page.html. И мы получим более короткий URL.

Заметим, что в коде используются операторы: «^» «$» — ограничения справа и слева соответственно, «*» — любая последовательность и количество символов (начиная с 0), “()” – это переменная. В выражении (.*) точка обозначает любой единичный знак. Если вы хотите больше углубиться в понимание этого синтаксиса, тогда необходимо обратиться к документации относительно правил RewriteRule. Можно поступить и проще: воспользоваться генератором редиректов для htaccess — http://www.webconfs.com/htaccess-redirect-generator.php.

Если вы по какой-то причине поменяли URL адрес страницы (с постом, например), то необходимо применить такое правило:

RewriteRule ^(.*)staraya-stranica.htm$ http://mysite.ru/novaya-stranica.htm [R=301,L]

Отметим, что 301-й редирект можно поставить и без задания правил RewriteCond и RewriteRule. Так, например, для перенесения на другое доменное имя прописывают следующее:

Redirect 301 / http://novoe-imya.ru

А для смены урл страницы пишут:

Redirect 301 /staraya-stranica.html http://my-site.ru/novaya-stranica.html

Вся разница в том, что в коде используются разные правила, при этом оба варианта абсолютно корректны.

В каких ещё случаях ставится редирект 301?

  • если нужно убрать дубль главной по адресу “mysite.ru/index.php” или “mysite.ru/main.html”;
  • для изменения «хвоста» (суффикса) страниц, например, с “html” на “htm” или с “my-site.ru/stranica.html/” на “mysite.ru/stranica.html”;
  • для переноса группы страниц из одной категории в другую;
  • для объединения двух сайтов;
  • для перенаправления с поддомена на домен 2-го уровня и пр.

Как проверить корректность кода?

Просто перейдите на старый адрес. Если браузер перенаправит вас на другой урл, то редирект работает нормально. Если этого не случается, попробуйте почистить кэш и повторить попытку. Когда и это не помогает, ищите проблему в самом коде.

Также, стоит проверить ответ сервера: он должен выдавать «301».

Заметим, что для окончательного перемещения страниц на новый URL используется именно 301-й редирект, а не 302-й. Во втором случае перенаправление носит временный характер, и это даёт сигнал поисковикам о продолжении индексирования старых страниц, в то время как новые URL поисковыми ботами игнорируются.

Нравятся статьи? Подписывайтесь на рассылку!

1 Star2 Stars3 Stars4 Stars5 Stars (Пока оценок нет)
loadingЗагрузка...
Логотип сайта

5 комментариев

  1. Про реакцию поисковых систем еще напиши при применении редиректа. На сколько я знаю, яндекс не очень расторопно склеивает страницы, при этом можно получить просадку по трафику

  2. Спасибо за статью! Сейчас решила изучать новое, и углубляюсь в настройку сайта. Ваша статья помогла немножко разобраться!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписатьсяi без комментирования.