Главная / Создание сайта / Блог / Зачем нужен 301 редирект и как правильно использовать

Зачем нужен 301 редирект и как правильно использовать

Иногда приходится перенести страницу или вообще весь сайт на другой 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?

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

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

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

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

Дата публикации: 21 июля, 2015
    Отзывы и комментарии:


Если проблему можно разрешить, не стоит о ней беспокоиться. Если проблема неразрешима, беспокоиться о ней бессмысленно.
© Далай Лама

Супер-предложение!

Купить виртуальный хостинг для сайта и домен с бесплатным тестовым периодов 1 месяц!

Подробнее

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

Читайте также
05 февраля, 2013
Клуб Apple — мир Стива Джобса в одном месте
16 апреля, 2016
Типичные ошибки при редизайне сайта
15 июня, 2013
10 простых советов как завести свой личный блог
18 апреля, 2016
Как установить код счетчика Google Analytics на сайте
16 декабря, 2014
Создать логотип для компании бесплатно: реально?