Ниже вы найдете действенное руководство о том, как правильно сделать 301 редирект двадцатью различными способами. А так же краткое пояснение о том, как подобные манипуляции влияют на SEO (поисковую оптимизацию) вашего сайта.

Рассмотрим некоторые пояснения связанные с 310 редиректом

301 редирект или ошибка сервера-301, является ответом, указанным в HTTP заголовке и говорит о том, что старый адрес имеет новый путь на постоянной основе.

** 303-я ошибка указывает на временный путь переадресации.

Редирект — это перенаправление посетителя с одного сайта на другой автоматическим путем. Словом, пользователь оказывается совсем не на той странице, адрес которой он набирал в строке поиска.

Канал SEO блога в Telegtam

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

К примеру, смена адреса интернет-магазина ведет за собой большие потери, потому что часть посетителей будет потеряна. В данном случае скрипт решает эту задачу: пользователи также набирают прежний, знакомый им адрес, но переправляются на новую страницу. Редирект поможет в случае, когда происходит скрещивание нескольких доменных имен. Адрес сайта могут набирать, указав www или просто быстро набрав основное название, но именно при помощи скрипта попадают на одну и ту же страницу.

Функция редиректа полезна не только в качестве сохранения хорошей посещаемости интернет-магазинов. Продвижение сайта стоило владельцам немалых усилий, поэтому логично, что они стремятся сохранить позиции. Для создания более успешного предприятия в рамках интернет-магазина можно склеить несколько сайтов. Для этого применяют редирект. Данный способ реализации функции редиректа, с одной стороны, является очень быстрым и надежным, с другой — поисковые системы относятся к склеенным сайтам с подозрением.

Почему так происходит?

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

Наиболее опасны в этом контексте сайты, которые индексируются роботами, при этом направляя пользователя на тот ресурс, с которого происходит редирект. Но поисковые системы не всегда однозначно негативно воспринимают скрепленные сайты. Речь о функции 301-редирект.

Редирект-301 является услугой на уровне сервера. Он составляет исключение среди других аналогичных функций, поскольку практически все поисковые системы воспринимают его дружественно. В частности, крупнейший поисковый ресурс Google, который используют чаще всего, благосклонно перенаправляет услугой редиректа 301 на нужную страницу.

Причина успешного взаимодействия редиректа-301 с поисковыми ресурсами в том, что он коренным образом отличается от аналогичных услуг по оптимизации. Он составлен таким образом, что функционирует понятно для робота, коим является поисковая система. Редирект перенаправляет на нужный URL страницы однократно и окончательно.

Влияние 301-го редиректа на seo продвижение

Если вы решили перенаправить старые ссылки на новые, по средствам 301-й ошибки (moved permanently), вам возможно будет интересно узнать следующее:

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

2. При склейке адресов, новый url получает полный вес страницы, ссылочную массу и такие значения, как ТИЦ.
Подобный редирект — это наилучшее решение при переносе сайта на новую систему управления контента, если вы не хотите потерять позиции и рейтинг сайта. Мой seo-блог использует несколько видов 301 редиректа для перенаправления.

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


Собственно, давайте разбираться в вариантах сделать редирект (переадресацию) правильно.

Простой 301 редирект в .htaccess

Если ваш сервер (или хостинг) использует apache, переадресацию можно выполнить, через файл. htaccess. Этот способ, по-моему, самый простой и удобный из всех мною виденных. Важно! Не забудьте включить модули mod_alias (для поддержки правил Redirect, RedirectPermanent и RedirectMatch) и mod_rewrite в php.ini.

1. Простая переадресация со старых страниц на новые:

Redirect 301 /old/ http:// domain.com/new/
или 
Redirect permanent /old/ http:// domain.com/new/

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

2. 301 редирект в .htaccess для русскоязычных ссылок

Единственная разница, которая заняла у меня кучу времени, это потребность в точности сохранения документа в формате uft-8 без БОМ, что является очень важным моментом. Если вы сохраните в другом формате, вероятнее всего ваше перенаправление работать не будет.

В остальном все также:

 
Redirect 301 /старая ссылка/ http:// domain.com/new/
 или
Redirect permanent /старая ссылка/ http:// domain.com/new/

3. Редирект с помощью RedirectMatch

Похожий способ редиректа, который описан выше за исключением того, что в этом случае можно указывать перенаправление, если вы перевели сайт с движка на php на aspx.

RedirectMatch /(.*).php$ /$1.aspx

4. Перенаправление домена с www на не-www

Options +FollowSymLinks
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
 RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

еще вариант в более простом виде:

 Options +FollowSymLinks
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
 RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

5. Редирект запросов без www на с-www

 Options +FollowSymLinks
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
 RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]

так же решает аналогичную задачу:

 RewriteEngine On
 RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
 RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

6. Редирект ссылок со слешем на без для всего сайта

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

7. 301 редирект как в пункте 6, только наоборот

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

8. Убираем слэш в конце главной ссылки если она без www

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

9. Убираем слэш в конце главное ссылки, если она с www

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

10. Убираем с помощью правильного перенаправления /index.php (без GET)

RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

11. 301 редирект для всех адресов где есть index.php

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

12. Делаем переадресацию с динамического url на статический

вариант с GET

RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

вариант без GET

RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

13. Делаем переадресацию всех страниц домена на один url другого домена

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

14. Редиректы для SSL (перенаправление с http на https и наоборот)

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

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

301 Редирект с помощью скриптов

Очень многие осуществляют редирект с помощью скриптов. Небольшая подборка для разнообразия.

HTTP/1.1 301 Moved Permanently Location: https://new.com/new-k/new.htm 
PHP редирект 
<?php header(“HTTP/1.1 301 Moved Permanently”); 
header(“Location: https://new.com/new-k/new.htm”); 
exit(); ?>

15. ASP редиректы

<%@ Language=VBScript %>
 <%
 Response.Status=“301 Moved Permanently”
 Response.AddHeader “Location”, “https:// seo-blog.com”
 response.end
 %>

17. ASP.NET редирект

<script runat=“server”>
 private void Page_Load(object sender, System.EventArgs e)
 {
 Response.Status = “301 Moved Permanently”;
 Response.AddHeader(“Location”,“https://new.com”);
 }
 </script>

18. ColdFusion редирект

<.cfheader statuscode=“301” statustext=“Moved permanently”>
 <.cfheader name=“Location” value=“https://seo-blog.com”>

19. JSP (Java) редирект

<%
 response.setStatus(301);
 response.setHeader( “Location”, “https://new.com/” );
 response.setHeader( “Connection”, “close” );
 %>

20. CGI PERL

$q = new CGI;
 print $q->redirect(“https://new.com/”);
 Ruby on Rails
 def old_action
 headers[“Status”] = “301 Moved Permanently”
 redirect_to “https://new.com/”

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

Для размещения 301 переадресации на серверах Apache, достаточно изменить, как описано выше файл .htaccess. Если вы не понимаете, как это работает и незадачливые символы в описании выше для вас большая загадка — обратитесь к хостинг-провайдеру или напишите вопрос в комментария.

Как сделать 301 редирект (переадресацию) в WordPress с помощью плагина

Очень многие используют одну из самых популярных CMS WordPress. По разным причинам нам может понадобиться сделать редирект внутри сайта. Например, эта необходимость возникла у меня при переносе сайта на новый домен.

Самым оптимальным решением оказался плагин для WordPress, который решил все мои задачи. Минусом этого плагина была только ручное формирование списка ссылок для редиректа.

В целом плагин для WordPress вполне меня устраивает и по сей день.

В место заключения

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

Author

Профессиональный интернет-маркетолог с опытом работы в сфере более 8 лет. Стремлюсь к рациональному мышлению. Провожу индивидуальные консультации, тренинги и авторские курсы, связанные и онлайн продвижением.

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

  1. Андрей Reply

    Здравствуйте. Подскажите, пожалуйста, если мы один старый сайт разносим на два новых. Поэтому часть страниц нужно редиректить на один домен, а часть на другой, а часть вообще оставить и никуда не редиректить. Можно ли такое реализовать, правильно ли это будет в плане seo-оптимизации и есть ли у вас какие-то советы, как такое лучше сделать?

    • Андрей Ролдугин Reply

      Да, возможно, конечно. О редиректе написанно в этой статье, каких-то дополнительных советов, нет. Единственное, я бы не оставлял некоторые ссылки вообще без редиректа, что бы не появилась 403 ошибка.. но это не принципиально важный вопросы, которые влияют на ранжирование сайтов. Так что делайте смело под пользователя, а не под робота.

      • Андрей

        Большое спасибо за оперативный ответ. Если вы не против, то задам ещё несколько вопросов. Так выходит, что на новых сайтах урлы абсолютно не соответствуют старым, также и структура категорий новых интернет-магазинов сильно изменилась. Я так понимаю, что в таком случае общего какого-то правила для всех страниц не напишешь. Нужно только отдельно для каждой страницы указывать, что сайт1.ком/категория2 редиректить на сайт2.ком/категория14, а сайт1.ком/категория5 редиректить на сайт2.ком/категория7 и так для каждой страницы. И такое в .htaccess не напишешь. Правильно я понимаю? И второй вопрос, если мы из нескольких старых категорий теперь делаем одну новую, нет ли проблемы в том, что на одну новую страницу будут редиректить несколько старых?

      • Андрей Ролдугин

        1.Это вполне можно написать в .htaccess, кто вам мешает? Но обычно, если сайт на CMS я это делаю через php class для редеректа. То есть заношу все старые урлы в БД и через php делаю редирект. На мой взгляд, это самый удобный способ.
        2. Проблем быть не должно. Тем более если новый сайт лучше оптимизирован, работает быстрее и более интересен пользователям и соответственно быстро индексируется. Вес перейдет тоже быстро и проблем не возникнет.

  2. Андрей Reply

    Андрей, подскажите, пожалуйста, как можно настроить редирект отдельных страниц сайта и главной, оставив одну-единственную страницу открытой? Например, home и страницы 1-5 — настроил в .htaccess
    Redirect 301 / http://www.newsite.com
    Redirect 301 /page1 http://www.newsite.com/page1

    Redirect 301 /page5 http://www.newsite.com/page5

    Работает, но page 6 выбрасывает 404 на новом домене, хотя про неё в .htaccess ни слова. Убираешь первую строчку редиректа главной — страница 6 открывается, но и главная не переадресуется, конечно. Хелп. )

    • Андрей Ролдугин Reply

      Нужно смотреть конкретный сайт, так все ответы будут пальцем в небо.

  3. Андрей Reply

    Подскажите, как можно настроить редирект с сайта Google site?
    Мне сказали так цена клика заметно будет меньше, но разобраться сам не могу, тк не сильно силен в языках.

  4. Марлен Reply

    Redirect 301 /old/ http:// domain.com/new/
    или
    Redirect permanent /old/ http:// domain.com/new/

    не сработало(
    путем долгих поисков нашел вариант
    RewriteEngine On
    RewriteRule ^(.*)old$ http:// domain.com/new/ [R=301]

  5. Наталья Reply

    здравствуйте. как вписать сразу несколько редиректов в .htaccess. сколько раз вписывать адрес сайта ?

Write A Comment