Некоторые примеры лучшей практики создания 301 редиректа с учетом SEO продвижения сайта

27 октября

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

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

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

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

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

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

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

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


7 основных этапов для локального SEO

Теперь вы должны сместить свое внимание на органическое локальное SEO, и, как уже упоминал

Продвижение сайта компании ООО “Гера”

Моя первая работа, как SEO оптимизатора сайта компании. Задача: Разработать стратегию

Комментарии

  • Андрей

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

    • Андрей

      Смотря на чем работает сайт, если вы используете популярные CMS, то вероятнее всего есть готовые решения. Если это какой-то самопис, то можно использовать .htaccess, что не является оптимальным решением, лучше написать небольшой скрипт и связать редиректы с базой данных… но тут сложно описать в двух словах.

Добавить комментарий

Ваш адрес email не будет опубликован.

Подпишитесь на email рассылку

Не пропускайте обновление блога, получая только актуальные рассылки с новыми статьями.