Почти у каждого SEO блогера есть статья про 301 редирект, а ведь многие его использовали 2-3 раза за всё время работы.
В нашей редакции этот вариант перенаправления задействуется очень часто и статистики по последствиям накоплено много. Об этом — расскажу ниже, а пока обязательная часть: что такое 301 редирект?
Это перенаправление посетителей и поисковых роботов с одного URL-адреса на другой в случае постоянной смены адреса.
Может использоваться как для отдельных адресов, так и для всего сайта в целом, например, когда меняем доменное имя или склеиваем www. версию с обычной.
С технической точки зрения — это ошибка, которую сервер возвращает, если запрашиваемая браузером или ботом страница перенесена на другой адрес.
Организовать на php очень просто:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://newdomen.com";);
exit();
?>
Как к 301 редиректу относятся поисковики, передаются ли санкции?
301 редирект передаёт странице по новому адресу все свойства, полученные ранее. Так можно передать вес, ссылочные показатели. Как показывает наша практика, и некоторые санкции тоже передаются, вопреки уверениям ряда «экспертов».
Поисковые системы рекомендуют быть осторожнее с редиректом при переезде:
Главное: это лучший способ перенести сайт или страницу на новый адрес и здесь больше всего шансов сохранить трафик.
Ещё есть такой фактор ранжирования, как возраст сайта. Видимо, он не передаётся.
Как настроить 301 редирект в .htaccess
При использовании сервер Апач, переадресацию можно настроить в файле .htaccess
Это крутая вещь, поскольку тут можно использовать массовые правила перенаправления.
Файл .htaccess скачиваем с сервера и открываем текстовым редактором. Далее добавляем нужный нам код.
Например, переезжаем на другой домен — на старом в корне размещаем .htaccess со следующим содержанием:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://newdomen.com/$1 [R=301,L]
Чтобы включить редирект используем RewriteEngine On , далее — код редиректа.
Вот код для переноса страницы внутри сайта:
Redirect 301 /oldpage.htm http://domen.com/newpage.htm
Переносим страницу на другой домен:
Redirect 301 /oldpage.htm http://newdomen.com/newpage.htm
Бывает, когда нужно отдать какому-то сервису определённый адрес, например, агрегатор новостей требует чтобы новости выдавались в newsrss.xml , а у нас они генерируются скриптом news.php
Redirect 301 /news.php http://domen.com/newsrss.xml
Тогда при обращении скрипта к newsrss.xml — скрипт получит данные из news.php.
Я уже упомянул о возможности задать массовое правило, для этого есть операторы регулярных выражений:
^ — ограничение слева;
$ — ограничение справа;
* — 0 и более символов;
+ — 1 и более символов;
. — любой символ;
\ — экранирование;
() — переменная;
[] — диапазон значений.
Сразу пример:
Новый доступен по двум адресам — с www и без www. Поисковики могут некорректно его индексировать, удалять дубли, в том числе и те, что хорошо стоят в выдаче, будет размываться ссылочная масса (особенно естественная).
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule (.*) http://site.ru/$1 [R=301,L]
Случается, что поисковик индексирует один и тот же документ по двум адресам или вовсе по «левому» адресу. Неприятно? Но поправимо. Надо просто средиректить один адрес внутри сайта на другой. Пример я уже привёл выше.
Если требуется средиректить мобильных пользователей. .htaccess может определить USER_AGENT и использовать для перенаправления:
RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]
RewriteRule (.*) http:/newsite.com/ [L,R=301]
Переезд на HTTPS (для всех страниц сайта):
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
Когда ресурс расширяется, иногда бывает уместным разделить адреса самого сайта и медиа. Например вынести картинки на сабдомен, размещённый на отдельном сервере. Так можно ускорить загрузку сайта. Например, наши jpg изображения в папке /img/, перенесём их на сабдомен img. — а чтобы не праить все страницы, сделаем редирект:
RewriteRule ^img/(.+)\.jpg$ http://img.domain.com/$1.jpg [R=301,L]
Для популярных CMS есть дополнения, плагины, которые помогают изменить структуру сайта, настроить .htaccess.
Как используем 301 ошибку мы
- У нашей редакции много статейников. Не всегда их судьба удачна, однако хорошие статьи, материалы мы используем даже если проект закрывается:
https://adne.info/perenos-statej-s-odnogo-sajta-na-drugoj/ - Если материал утратил актуальность, но есть похожий — более свежий. Этот способ помогает поднять страницы в выдаче.
- Старые отработанные новости, ставшие частью большой истории — могут прокачать её и SEO параметрами.
- Мы много экспериментируем, например на сабдоменах запускаем различные курсы, подписки, сервисы. В ряде случаем, через время становится очевидной необходимость их интеграции в основной проект.