301 редирект в SEO

Обновлено: 22 мая, 2020

Редирект 301 или 301 Permanent Redirect — это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!

Так же при 301 редиректе происходит склейка тИЦ (читаем что такое тиц) и PR — т.е. вы можете сохранить старое значение на новом адресе. Вы можете нисколько не потерять в глазах поисковых систем. Давайте перейдем от теории к практике.

Как настроить 301 редирект в htaccess

Файл под названием .htaccess находится в главной категории вашего сайта. Это служебный файл, в котором мы будем указывать правила склейки. Открываем файл блокнотом (рекомендую notepad++, чтобы не было проблем с кодировкой). Не забывайте, что это один из важных пунктов в работе SEO специалиста.

Общий шаблон для .htaccess, которым мы будем пользоваться:

Options +FollowSymLinks
  RewriteEngine On
  #Здесь указываем правила

Все правила записываются в виде:

RewriteCond [Сравнение] [Условие] [Флаги]
RewriteCond [Сравнение] [Условие] [Флаги]
RewriteRule [Шаблон] [Подстановка] [Флаги]

Теперь непосредственно займемся переадресацией и разберем конкретные примеры.

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

Примеры использования 301 редиректа

Редирект с index.php на главную

Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html

Склеиваем алиасы сайта

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

RewriteCond %{HTTP_HOST} ^vash-sait.com$ [OR,NC]
RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]

Обратите внимание на первые 2 строки, там указано зеркало в зоне .com, если у вас иная или несколько зон, то добавляем правила.

Редирект с www на без www

Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:

RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Редирект с домена без www на домен с www

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

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

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории

Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:

RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]

Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:

RewriteRule old-category /(.*) / old-category /$1 [R=301,L]

Редирект на новую страницу

Самый простой редирект со страницы на страницу, для это просто пропишите так:

Redirect 301 /old-post.html http://new-site.ru/new-post.html

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

Редирект для url с параметрами

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

RewriteCond %{QUERY_STRING} sort=articles
RewriteRule .* http://site.ru/page.php? [R=301,L]

Работаем с расширениями

Убираем .html из url (для удаления .php не забудьте заменить $1.html на $1.php):

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

Меняем .php на .html в урлах и наоборот (не забываем поменять местами в коде):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Правильный 301 редирект на новый домен

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

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site\.ru
RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L]

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

Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂

В SEO с 2010 года. С 2013 года работаю как частный SEO-эксперт, продвигаю свои и клиентские сайты, а так же веду блог Romanus.ru.
Что мне еще стоит почитать?

Рекомендую к прочтению

4.6 5 votes
Рейтинг статьи
Подписаться
Уведомление о
79 Комментарий
Inline Feedbacks
View all comments
Алекс
6 лет назад

Есть ли разница между
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
и
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
?

Артем
6 лет назад

Интересует такой вопрос. Если я переведу ЧАСТЬ страниц на новый домен перейдет ли ссылочная масса, тиц и пр новому сайту. Старый тоже планируем использовать но по другому…

Роман
6 лет назад

Огромное тебе спасибо!!!!! была проблема с дублями в Джумла. Правил сначала Самостоятельно файл htaccess, избавился почти от всего, НО, почему то осталась главная страница и http://www.site.ru и http://www.site.ru/index.php при переходе с главного логитипа страницы. прописал твое решение в htaccess и наконец то полностью избавился от дублей. Спасибо, ты просто красаучик… Подробнее »

myhelpers
7 лет назад

301 редирект для мультиязычного сайта на Joomla 3 c 303 редиректом Здравствуйте, уважаемые! Прошу помочь решить следующую насущную для мультиязычного сайта на Joomla 3 и, думаю, многих других CMS, проблему: При создании нескольких языковых версий сайта средствами мультиязычности самой CMS получается следующее: http://domain.ru -с русским языком http://domain.ru/ru/-русская версия сайта(является основным… Подробнее »

Борис
7 лет назад

Спасибо большое!

Благодаря вашему труду получилось наконец-то настроить редирект и избавиться от дублей! Все мы знаем, что поисковики не очень любят дубли страниц, так как идет двойная индексация, благодаря описанному выше способу редиректа с помощью .htaccess эту проблему получилось решить и избавиться от дублей с слэшем на конце.

Александр
7 лет назад

Редирект и переадресация на index.html очень важная штука. Редирект с www на без www очень удобен. Содержательно, все кратко и понятно объяснили. Очень полезная статья. Возьму на заметку.

Ася
7 лет назад

Я к своему сайту тоже планирую подключить редирект. Статья очень полезная, во всяком случае для меня, т.к. о редиректе до этого честно говоря не слышала. Зеркал у меня нет, но поменять адрес страницы — это вполне необходимая для жизни вещь. Насчёт переадресации на index.html тоже спасибо, а то такие вещи… Подробнее »

Аня
7 лет назад

С удовольствием бы использовала Редирект 301 для своего сайта. Раньше интересовалась, но полезной статьи не попадалось. А тут достаточно все точно объясняется. Мне кажется, что стоит попробовать разные методы и Редирект с www на без www, и в обратном значении тоже. Что бы понимать что к чему. А то так… Подробнее »

Михаил
7 лет назад

Я думаю эта статья будет полезна многим , кто имеет ( как я например) или собрался делать сайт , а так я считаю , Редирект 301 эта одна основ построения сайтов , которую должен уметь делать каждый владелец сайтом . Кстате полность согласен что это очень полезная вещь , так… Подробнее »

Анастасия
7 лет назад

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

79
0
Поговорим на эту тему? Пиши комментарииx