301 редирект — что это, для чего и когда использовать

301 редирект — редирект, который «склеивает» показатели веб-ресурсов и перенаправляет посетителей с одного адреса на другой. При этом человек попадает на новый URL автоматически, а поисковики не занижают его позиции.

Когда применяют 301 редирект?

Случается, нужно переместить старый адрес на новый. К примеру, если архитектура сайта изменилась или был куплен новый домен. ИКС (Яндекс), позиции в выдаче или вес страниц при этом, конечно, терять нежелательно. А еще посетители могут попытаться зайти на сайт, по памяти вводя адрес… Как сберечь трафик в такой ситуации? Лучшее решение — 301 SEO редирект. Он переадресует старый URL на новый, передав ему все параметры, а человек будет машинально переходить на актуальный адрес.

Есть много способов реализовать 301 редирект. Самый простой и популярный — настроить 301 redirect в системном файле htaccess.

В чем отличие 301 от 302 редиректа?

С позиции поисковой оптимизации, 301 redirect стоит применять во всех без исключения случаях, когда необходимо переадресовывать посетителей и поисковики на новый URL. 302 redirect лишь временно переадресовывает на другой URL. Такой серверный ответ не объясняет поисковикам, что адрес неактуален, потому в поиске он будет отображаться по предыдущему и по настоящему URL.

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

Как сделать переадресацию сайта? Есть такие способы:

301 редирект с www на без www. Чаще всего настройка редиректа нужна, когда веб-ресурс доступен по двум адресам в одно и то же время. В индексе возникают дубли страниц, а это препятствует продвижению ресурса (4 разных варианта);

RewriteCond %{HTTP_HOST} ^www.site.com.ua$

RewriteRule ^(.*)$ http://site.com.ua/$1 [R=301,L]

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

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

RewriteCond %{HTTP_HOST} ^www\.site\.ru

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

RewriteCond %{HTTP_HOST} ^www.(.*)

RewriteRule ^(.*)$ http://%1/$1 [R=301,L,QSA]

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

RewriteCond %{HTTP_HOST} ^site.com.ua$

RewriteRule ^(.*)$ http://www.site.com.ua/$1 [R=301,L]

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

RewriteRule ^(.*)$ http://www.vash_sait.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^site\.ru

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

301 редирект со старого URL на актуальный. Когда необходимо убрать страницу, на которую ссылается много ресурсов, можно настроить переадресацию на идентичную по содержанию. Это поможет сберечь ссылочную массу и передать вес страницы новому адресу;

Redirect 301 /oldpage.html http://www.site.com/newpage.html

RewriteCond %{QUERY_STRING} ^_route_=staryi-url-bez-domena$

RewriteRule ^(.*)$ http://domen.ru/polnyi-url? [R=301,L]

RewriteBase /

RewriteRule ^old-page.html$ new-page.html [R=301,NC,L]

Редирект с http на https;

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP:HTTPS} !on [NV]

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

RewriteCond %{HTTP:HTTPS} !on [NV]

RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R]

RewriteCond %{HTTP:HTTPS} !on [NV]

RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L]

RewriteRule ^/(.*):NOSSL$ http://%{SERVER_NAME}/$1 [R,L]

RewriteCond %{HTTP:HTTPS} off [NV]

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

Обратный редирект с https на http

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:SSL} =1 [NC]

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

redirect с URL со слешем на без него;

RewriteCond %{HTTP_HOST} (.*)

RewriteCond %{REQUEST_URI} /$ [NC]

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

Редирект с URL со слешем на без него исключая админ панель, либо любую необходимую страницу сайта;

RewriteCond %{HTTP_HOST} (.*)

RewriteCond %{REQUEST_URI} !^/admin/*$

RewriteCond %{REQUEST_URI} /$ [NC]

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

Редирект, позволяющий добавить слеш в конец URL;

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$

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

Редирект, убирающий множественный /// внутри URL http://site.com//////catalog;

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /{2,}

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

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$

RewriteRule . %1/%2 [R,L]

редирект, убирающий множественный /// внутри URL www.site.com/catalog////page-1.html;

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$

RewriteRule . %1/%2 [R=301,L]

redirect, позволяющий убрать дубль главной с index.php;

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]

RewriteCond %{THE_REQUEST} ^.*/index.php

RewriteRule ^(.*)index.php$ http://site.com.ua/$1 [R=301,L]

редирект, позволяющий убрать дубль главной с index.html;

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.html$ http://my-site.com/ [R=301,L]

Позволяет убрать дубль главной с /home;

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /home\ HTTP/

RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]

RewriteCond %{THE_REQUEST} ^GET\ .*/home\ HTTP

RewriteRule ^(.*)home$ /$1 [R=301,L]

Редирект для каталогов;

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

если URL старого каталога начинается сразу после домена: www.site.com/old-catalog/;

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

Грамотно настроенный 301 редирект поможет избежать потерь ссылочной массы, позиций в поисковой выдаче, трафика и предотвратит возникновение страниц-дубликатов, битых ссылок и т.д.