301 редирект в SEO
Редирект 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]
С помощью таких не хитрых махинаций мы избавимся от дублей страниц, тем самым улучшив нашу внутреннюю оптимизацию и соответственно качество сайта.
Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂
Рекомендую к прочтению

Принесу пользу вашему проекту
Заявка на бриф
Заполните несколько полей
Есть ли разница между
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
и
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
?
Интересует такой вопрос. Если я переведу ЧАСТЬ страниц на новый домен перейдет ли ссылочная масса, тиц и пр новому сайту. Старый тоже планируем использовать но по другому…
Артем, нет не перейдет.
Только при полной склейке показатели могут перекинуться.
Огромное тебе спасибо!!!!! была проблема с дублями в Джумла. Правил сначала Самостоятельно файл htaccess, избавился почти от всего, НО, почему то осталась главная страница и http://www.site.ru и http://www.site.ru/index.php при переходе с главного логитипа страницы. прописал твое решение в htaccess и наконец то полностью избавился от дублей. Спасибо, ты просто красаучик… Подробнее »
301 редирект для мультиязычного сайта на Joomla 3 c 303 редиректом Здравствуйте, уважаемые! Прошу помочь решить следующую насущную для мультиязычного сайта на Joomla 3 и, думаю, многих других CMS, проблему: При создании нескольких языковых версий сайта средствами мультиязычности самой CMS получается следующее: http://domain.ru -с русским языком http://domain.ru/ru/-русская версия сайта(является основным… Подробнее »
Спасибо большое!
Благодаря вашему труду получилось наконец-то настроить редирект и избавиться от дублей! Все мы знаем, что поисковики не очень любят дубли страниц, так как идет двойная индексация, благодаря описанному выше способу редиректа с помощью .htaccess эту проблему получилось решить и избавиться от дублей с слэшем на конце.
Редирект и переадресация на index.html очень важная штука. Редирект с www на без www очень удобен. Содержательно, все кратко и понятно объяснили. Очень полезная статья. Возьму на заметку.
Я к своему сайту тоже планирую подключить редирект. Статья очень полезная, во всяком случае для меня, т.к. о редиректе до этого честно говоря не слышала. Зеркал у меня нет, но поменять адрес страницы — это вполне необходимая для жизни вещь. Насчёт переадресации на index.html тоже спасибо, а то такие вещи… Подробнее »
С удовольствием бы использовала Редирект 301 для своего сайта. Раньше интересовалась, но полезной статьи не попадалось. А тут достаточно все точно объясняется. Мне кажется, что стоит попробовать разные методы и Редирект с www на без www, и в обратном значении тоже. Что бы понимать что к чему. А то так… Подробнее »
Я думаю эта статья будет полезна многим , кто имеет ( как я например) или собрался делать сайт , а так я считаю , Редирект 301 эта одна основ построения сайтов , которую должен уметь делать каждый владелец сайтом . Кстате полность согласен что это очень полезная вещь , так… Подробнее »
Правильно автор указал, что редирект это очень полезная вещь. На самом деле без него никуда. Постоянно в сети происходят переадресация с сайта на сайт из-за чего теряется оптимизация того или иного ресурса. Так что управлять редиректом стоит уметь каждому уважающему себя seo спринтеру, дабы улучшить качество сайта. Отдельная благодарность автору… Подробнее »