При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.
Что такое переадресация 301
Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.
Настроить код состояния HTTP 301 можно разными способами:
-
с помощью HTML и PHP;
-
через панель управления или плагины соответствующей CMS;
-
при помощи специальных скриптов (программ);
-
на уровне хостинг-провайдера;
-
внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.
Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.
Альтернативные методы переадресации
- Редирект 302. Применяется в случае временной переадресации с одного url на другой. При его использовании поисковая система индексирует все доступные версии сайта или страницы. Объединения ссылочного веса и внутренних метрик на приоритетном ресурсе не происходит.
- 307 Temporary Redirect рекомендуется применять в исключительных случаях. Например, при техническом обслуживании сайта, когда он недоступен некоторое время.
- Обновления Meta Refresh выполняют переадресацию не на уровне сервера, а непосредственно на сайте. Пользователь сталкивается с временной задержкой (обычно около пяти секунд), после чего для перехода на нужную страницу должен принудительно запустить определенную команду. Этот метод часто приводит к падению посетительского интереса и проседанию поисковых индексов.
- Редирект rel=«canonical». Позволяет сохранить доступ посетителям ресурса к контенту дублирующихся страниц. При этом для поисковиков наличие команды canonical на одной из страниц говорит о том, что только она подлежит индексации в поиске.
В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.
Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений.
В каких случаях используется постоянный редирект 301
-
Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.
-
Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.
-
Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.
-
Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.
-
Исключение дублирующихся страниц из индекса.
-
Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.
-
Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.
-
Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.
Создание постоянной переадресации 301 через настройки и плагины CMS
В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:
-
Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.
-
Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.
-
Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».
-
Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.
Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.
Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$ RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
Для Битрикс кодировка будет выглядеть следующим образом:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC] RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.
Но настроить редирект 301 довольно просто в базовом редакторе.
Настройка 301 редирект в .htaccess
Файл с расширением .htaccess – это дополнительный конфигурационный файл web-сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.
Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трех директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.
Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.
Предварительная подготовка
-
Для создания 301 редиректа перейдите в панель управления вашего сайта.
-
Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html, если используете WordPress). Если файл отсутствует, создайте его.
-
Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess.
<IfModule mod_rewrite.c> </IfModule>
-
Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.
-
Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].
Разберем наиболее распространенные варианты создания 301 редиректа через .htaccess.
Склейка зеркал сайта (www / без www)
Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.
В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess.
Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:
RewriteCond %{HTTP_HOST} ^www.name.site$ [NC] RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:
RewriteCond %{HTTP_HOST} ^v name.site$ [NC] RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
Редирект с http на https для всего сайта
В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https. Для этого в файл .htaccess добавьте:
RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Если данная конструкция не сработает, попробуйте другой вариант:
RewriteCond %{HTTPS} =on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Если редирект не работает и в этом случае, попробуйте такой вариант:
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} =/page.php RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
В результате пройдет перенаправление на https всех пользователей и поисковых систем.
Постранично
Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} !^/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Для одной страницы
Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} =/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Редирект сайта с https на http
Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:
RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://name.site/$1 [R=301,L]
Изменение домена
В том случае. если необходимо перейти на другой домен, при этом сохранив SEO-позиции, в файл .htaccess прописывают следующее:
RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC] RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC] RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
Редирект на страницу с другим url (без параметров)
Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв вес страниц. В этом случае в файл .htaccess прописывают следующее:
RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]
Редирект для url (с параметрами)
Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:
RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://name.site/articles.php? [R=301,L]
Редирект с index.php на главную страницу
В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/ RewriteRule ^index.php$ http://name.site/ [R=301,L]
Редирект со страниц со слешем на без слеша (для всего сайта)
Для избегания дублей в файле .htaccess используют следующую конструкцию:
RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} ![^/]$ RewriteRule ^(.*)/$ /$1 [R=301,L]
Или более короткий вариант:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L]
Редирект со страниц без слеша на слеш (для всего сайта)
Обратный вариант применяется, когда нужно использовать адреса со слешем.
RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
301 редирект с 404 Not Found
Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.
301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:
ErrorDocument 404 http://www.site.com/301.html
Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.
Финальный вид файла .htaccess
Пример файла htaccess, после добавления в него редиректов:
Options -Indexes ErrorDocument 404 /404.php php_flag register_globals off php_value pcre.recursion_limit 1000 #Условия 301 редиректа <IfModule mod_rewrite.c> RewriteEngine On # склейка зеркал RewriteCond %{HTTP_HOST} ^my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC] RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] # без слеша RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] </IfModule> php_value default_charset utf-8 AddType 'text/html; charset=utf-8' .html .htm .shtml
Синтаксис для регулярных выражений в .htaccess
. |
точка заменяет произвольный символ |
[abc] |
обозначает перечень знаков, совпадающих с буквами a, b, или с |
[^abc] |
список символов вне указанного диапазона (кроме a, b, с) |
* |
указывает на то, что предыдущий знак может повторяться 0 или больше раз |
[abc]* |
команда найдет идущие подряд символы из заданного набора |
[^abc]* |
приводит к противоположному эффекту |
.* |
заменяет любой набор символов |
«.*» |
ищет все подстроки между кавычками |
^ |
начало строки (когда используется в начале выражения) |
$ |
означает конец строки |
w |
цифра, буква или подчеркивание _ |
d |
заменяет любую цифру |
D |
может заменить любой знак, кроме цифры |
[0-9] |
для замены любой цифры |
[a-z] |
для всех букв от a до z в нижнем регистре |
[A-Z] |
для каждой буквы от A до Z в верхнем регистре |
[a-zA-Z] |
любая буква от a до Z во всех регистрах |
[a-Z] |
аналогично |
Важно учитывать, что настройка редиректа путем редактирования файла .htaccess доступна исключительно для веб-серверов Apache.
Другие способы создания переадресации 301
Через PHP
Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:
if($_SERVER['REQUEST_URI'] == "/index.php") { header("Location: /",TRUE,301); exit(); }
(в первой строке укажите старый url, а во второй — новый)
Второй способ – перенаправление при помощи отправки заголовков (скрипта):
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.newdomain.ru/newdir/newpage.htm"); exit(); ?>
ASP-редирект
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.new-url.com" response.end %>
ASP.NET редирект
Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:
<script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.new-url.com"); } </script>
ColdFusion редирект
<.cfheader statuscode="301″ statustext="Moved permanently"> <.cfheader name="Location" value="http://www.new-url.com">
JSP (Java) редирект
Данный способ подойдет для небольшой корректировки простых сайтов. Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав:
<script type="text/javascript" src="redirect.js"></script> <script type="text/javascript"> location="https://yandex.ru"; </script>
CGI-скрипт на PERL
$q = new CGI; print $q->redirect("http://www.new-url.com/");
Ruby on Rails
def old_action headers["Status"] = "301 Moved Permanently" redirect_to "http://www.new-url.com/" end
Редирект в Nginx
if ($host = 'www.domain.com' ) { rewrite ^(.*)$ http://domain.com$1 permanent; }
HTML-редирект
Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:
<meta http-equiv="refresh" content="5;https://livepage.pro">
Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.
Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.
Редирект 301 в панелях управления сервера
Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.
Cpanel
Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:
-
В строке «Тип» выбрать «Постоянный 301».
-
В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).
-
В строке «Перенаправляет на» указать для домена адрес http://example.ru.
-
В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».
-
Сохранить изменения кликом на «Добавить».
ISPmanager
В этой панели можно вручную править файлы nginx.config или .htaccess, но есть и встроенный механизм переадресации. Например, для настройки редиректа на https/http нужно снять галочку с соответствующего пункта в разделе «WWW-домены».
Автоматическое создание переадресации
При отсутствии знаний и опыта самостоятельной настройки редиректа можно воспользоваться сервисами автоматической генерации:
-
Seomagnifier — 301 для www;
-
301 Redirect Code Generator Tool — для доменов и страниц;
-
Generate .htaccess— для страниц, разделов сайтов, доменов.
Проверка корректности настроек 301 редиректа
Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.
Для автоматической проверки можно воспользоваться специальными сервисами:
-
Redirect Checker, bertal.ru или Header Checker Tool для тестирования отдельных страниц;
-
программой Screaming Frog Seo Spider, способной просканировать весь сайт.
Существует ряд ошибок, которые следует избегать при настройке редирект 301:
-
использование перенаправлений между страницами сайта без изменения их url в ссылках;
-
установка временной переадресации вместо постоянной;
-
неправильный выбор типа редиректа;
-
перенаправление файла robots.txt;
-
непонимание разницы между rel=canonical и кодом 301;
-
редирект на нерелевантный контент;
-
переадресация, которая не приводит к 200-й странице.
Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.
Заключение
Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.
Инструментов для настройки корректной работы Permanent Redirect 301 существует достаточно много. Наиболее удобный и правильный – внесение записей в файл .htaccess. Недостаток этого метода в том, что он доступен только для веб-серверов Apache. При использовании IIS придется настраивать web.config. Для создания сложных правил переадресации более всего подходит PHP, но в этом случае без помощи программиста не обойтись. Еще одним вариантом настройки 301 редиректа может быть обращение к хостинг-провайдеру с целью подключения услуги web-форвардинга.
Редиректы – это просто. Их используют для автоматического перенаправления пользователей с одного URL-адреса на другой. Но это, если смотреть на редиректы глазами тех, кто не утруждает себя вопросами поисковой оптимизации. С точки зрения SEO все сложнее. Редиректы напрямую соотносятся с продвижением в поиске и могут привести к множеству проблем, которые ухудшат представление сайта в Google и Яндексе. При этом от 301-редиректов никуда не деться: для каждого оптимизатора рано или поздно наступает момент, когда его настройка на сайте становится обязательной. Разбираем главные SEO-вопросы по этой теме в нашем FAQ.
Что такое 301-редирект
Это код ответа сервера, сообщающий, что исходная ссылка получила новый URL-адрес. Другими словами, код 301 указывает браузеру, что неактуальная страница (или весь сайт) окончательно перемещены в новое место. Перейдя по ссылке, с настроенным редиректом, или введя ее в браузерную строку – пользователь автоматически перенаправится на другой URL-адрес.
Почему 301-редирект так важен для SEO?
Каждая страница сайта имеет свой поисковый рейтинг, который определяет ее ранжирование, т. е. позиции в выдаче и количество трафика из поиска. Перенаправление через 301-редирект позволяет исключить из поискового индекса неактуальный URL и перенаправить поисковый вес со старой страницы на новую. Таким образом, актуальная версия URL-адреса сохранит в выдаче позиции прежней страницы и тот же объем поискового трафика. Если не заморачиваться с редиректом и просто создать новую страницу, ее рейтинг в Google и Яндексе придется прокачивать с нуля.
Резюмируя: 301-редиректы – это в первую очередь о сохранении SEO-потенциала сайта при замене старых URL-адресов, а не о простом автоматическом перенаправлении для удобства пользователей (хотя это тоже бывает важно).
Когда используют 301-редирект
Мы описали общую логику работы редиректов. Теперь – когда их используют на практике.
✓ Навсегда меняют URL-страницы
Это может быть актуально при смене CMS или переезде на самописный сайт; при изменении структуры ресурса или просто массовом обновлении URL-адресов, например, при переходе на систему ЧПУ.
✓ Переезд на новый домен
Бренд поменял название, возникла необходимость в смене доменной зоны или просто захотелось более звучный нейминг.
✓ Установка сертификата безопасности SSL
Переход с HTTP на защищенный протокол HTTPS влечет фактическое изменение адреса сайта и всех его страниц. Все запросы к старым версиям URL должны быть корректно перенаправлены на версии с HTTPS.
✓ Склейка страниц без WWW и WWW-версий
Страницы с одинаковым содержимым, но разной структурой URL-адреса (с WWW и без WWW) воспринимаются поисковыми роботами как дублированный контент. Это серьезная проблема для SEO, и ее решают через объединение двух страниц посредством 301-редиректа.
✓ Редиректы с безслешевых версий URL на слешевые
URL страниц по умолчанию имеют слеши в конце. Если мы убираем слеш, нужно настроить соответствующее перенаправление (/blog/statia/ →301→ /blog/statia). Не сделав это, поисковая система распознает безслешевый урл как абсолютно другой документ с тем же самым содержанием, что и страница со слешем. А как мы знаем, дубли – это очень плохо для SEO.
✓ Склейка двух и более страниц с похожим содержимым
В этом случае речь идет не о фактических дублях, а просто о похожих страницах. Например, такое делают, когда хотят аккумулировать трафик с двух-трех слабых или неактуальных статей на один качественный материал.
Это лишь самые распространенные сценарии использования 301-редиректа, о которых знает каждый опытный сеошник. Ниже мы еще поговорим и о менее очевидных примерах использования переадресации для увеличения поискового трафика на сайт.
Чем 301-редирект отличается от 302?
Существует несколько видов редиректов. Для нужд SEO применяют главным образом два: 301 и 302. Здесь все просто: если контент перенаправляют на новый URL навсегда – ставят 301 редирект. Для временного перемещения используют возможности 302 редиректа.
Выше мы рассмотрели типичные ситуации под 301-перенаправление. Теперь – коротко, когда используют 302 редирект.
✓ Перенаправление пользователей на актуальную для них версию сайта (с учетом ГЕО или языка).
✓ Проведение A/B-тестирования и получение обратной связи о новой (тестируемой) странице без ущерба для позиций старой.
✓ Временное перенаправление аудитории, например, на страницу с акционным предложением.
Это лишь часть примеров, которые помогают понять логику использования 302-редиректа — его ставят, когда планируют через какое-то время восстановить старую версию страницы.
Что происходит с индексацией страниц и ссылочными сигналами при 301 и 302 редиректах
Обычный пользователь не заметит разницы при перенаправлении через 301 и 302-редиректы, но для поисковиков эти отличия принципиальны. Алгоритмы по-разному обрабатывают 301-е и 302-перенаправления. Речь идет о вопросах индексирования страниц и перераспределении между ними ссылочных сигналов. Эти особенности в обработке 301 и 302 редиректов нужно знать, чтобы не навредить позициям страниц в поиске.
Индексация
Когда происходит перенаправление с одного URL-адреса на другой, в поисковом индексе остается лишь один документ.
✓ При 301-редиректе в индекс попадает новая (конечная) страница, на которую стоит перенаправление.
✓ При 302-редиректе в индексе остается первоначальный URL, с которого стоит перенаправление.
Касательно индексации страниц с 302-редиректом есть ряд нюансов. Поисковая система какое-то время воспринимает старые версии страниц как основные, но со временем начинает учитывать 302-редирект как постоянный. По крайней мере, так работает Google. Обычно это занимает несколько недель или месяцев, после чего страница, на которую стоит 302-редирект, залетает в индекс , а старая версия – удаляется. В исключительных случаях Google сразу индексирует 302-редиректы как 301.
Ссылочные сигналы
С точки зрения SEO-оптимизации куда важнее вопрос, что происходит с перераспределением ссылочного веса между страницами, связанными 301 и 302 редиректами.
В Google редиректы раньше «съедали» приблизительно 15-20% PageRank (цифры очень условные) при каждом перенаправлении. То есть, если вы делали перенаправление со старой страницы, например, с PageRank 50, то новый URL получал только 40 PR.
С 2016 Google прекратил официальное обновление PageRank (хотя сам принцип определения «ценности» страниц в том или ином виде продолжает работать и сейчас), и в этом же году Google пересмотрел свою позицию касательно обработки редиректов.
Таким образом, сейчас при использовании редиректов происходит полная консолидация всех сигналов — ссылочный вес между страницами перераспределяется без потерь.
Но здесь очень важно понять один момент: разные типы редиректов отличаются направлением передачи ссылочных сигналов.
✓ Для 301-редиректов ссылочные переносятся «вперед»
(то есть, вес от всех ссылок, проставленных на старую страницу, перетекает на новый URL)
✓ Для 302-редиректов ссылочный вес перераспределяется «назад»
(эффект от всех ссылок на новый URL-адрес будет усиливать рейтинг старой версии страницы)
Важно!
Для эффективного перераспределения ссылочных сигналов большое значение имеет релевантность двух страниц. Если редиректить URL сайта на тематически НЕблизкую страницу, то последняя не только не получит ссылочных сигналов, но и, вероятнее всего, будет учитываться как ложная ошибка (soft 404). Поэтому и 301, и 302 редиректы всегда должны связывать максимально релевантные документы.
Что происходит с позициями сайта после массового обновления URL
Массовое проставление редиректов – распространенная практика в SEO, к которой прибегают при любых доменных переездах или комплексном обновлении URL, например, при переходе на систему ЧПУ. Многих беспокоит, что в этом случае будет происходить с позициями и трафиком. По собственному опыту можем сказать, что изменения будут, но временные, и если вы все настроили правильно, о них не стоит переживать. После массового обновления URL сайт штормит в среднем одну-три недели, после чего позиции и трафик восстанавливаются до прежних показателей. Очень важно все делать комплексно, т. е. проставлять сразу все редиректы, а не делать перенаправления поэтапно. После этого 301-редиректы желательно массово не снимать на протяжении нескольких лет.
Как настроить 301-редирект
Существует несколько способов сделать 301-редирект, но самый общепризнанный метод — редактирование .htaccess (файла дополнительной конфигурации веб-сервера Apache).
Этот файл находится в корневой папке сайта:
Естественно, этот способ актуален исключительно для Apache-серверов. Но вряд ли здесь возникнут какие-либо проблемы: почти половина всех сайтов (46%) работает на этом ПО, так что, вероятнее всего, – и ваш тоже.
Мы не будем пытаться объяснять на пальцах сугубо практические вещи — лучше посмотрите, как настраивать редиректы с помощью файлов .htaccess в этом видео.
WP-плагины для автоматической настройки редиректов
Настроить редиректы на сайте можно и другими способами: посредством HTML и PHP или через специальные скрипты. Но это для тех, кто ориентируется на уровне кода (или готов с этим разобраться). Для всех остальных, у кого сайт работает на CMS, оптимальным решением будет использование плагинов. Возможно, этот способ не такой надежный, как другие варианты; в дополнение к этому, плагины – это всегда лишние нагрузки и источник потенциальных уязвимостей. Тем не менее никто не будет спорить, что это самый простой способ создания редиректов.
Популярные WP-плагины для настройки редиректов
Redirection – топовый WP-плагин для комплексной работы с редиректами. Помимо настройки перенаправлений (как простых редиректов, так и на основе разных условий), плагин умеет собирать статистику переадресаций, мониторить 404-ошибки, поддерживать регулярные выражения. Имеет русскоязычную версию. Систематически обновляется. Бесплатный.
Safe Redirect Manager — еще один популярный редирект-плагин для WP. По части дополнительных функций уступает вышеописанному варианту, но выигрывает с т. з. ресурсоемкости. Не имеет русскоязычной версии. Постоянно обновляется.
Quick Page – простой и нетребовательный в плане ресурсов плагин. Позволяет создавать быстрые 301-редиректы и перенаправления с тонкими настройками. Нет русской локализации. Бесплатный.
Как проверить редиректы на сайте
Для поиска редиректов и связанных с ними технических проблем используют SEO-анализаторы, онлайн-чекеры или браузерные расширения. Специальный SEO-софт – более продвинутый вариант; онлайн-сервисы и расширения – простые, но тоже рабочие инструменты для поиска редиректов.
Чем найти редиректы онлайн (бесплатно):
Webmasta
Быстро обрабатывает запросы в пакетном режиме, умеет находить цепочки редиректов, имеет русскоязычный интерфейс.
Redirectdetective
Чекер показывает перенаправления по заданному URL и не рассчитан на массовую проверку адресов, но хорошо подходит для детального анализа конкретной страницы. Например, он умеет показывать, на каком этапе в цепочке перенаправлений подхватываются cookies.
Httpstatus
Быстро проверяет коды состояний, http-заголовки и находит цепочки переадресаций. Есть удобные функции фильтрации и выгрузки результатов. Обрабатывает до 100 URL за одну проверку.
Браузерные расширения для проверки редиректов
- Link Redirect Trace (Chrome);
- Redirect Path (Chrome);
- Live HTTP Header (Mozilla Firefox, Chrome).
Многофункциональный SEO-софт
Это самые удобные и надежные инструменты для проверки редиректов. За использование таких программ придется платить. Но есть исключения. Например, популярный сервис Ahrefs позволяет бесплатно использовать часть функционала для своих сайтов. Речь идет об инструментах, входящих в пакеты Site Explorer и Site Audit. Чтобы получить к ним доступ, достаточно подтвердить владение сайтом. После этого в вашем распоряжении будет набор мощных инструментов для мониторинга проблем с редиректами (и не только). Как это работает.
Переходим на вкладку Site Audit:
↓
Сканируем ресурс или выбираем дату последнего обхода:
↓
Переходим к отчету Redirects:
Здесь доступны данные по всем редиректам и актуальным проблемам, о которых мы будем говорить далее.
Также здесь можно посмотреть детали по каждому редиректу (↓)
Какие проблемы могут быть связаны с 301-редиректами?
Некорректно настроенные редиректы могут повлечь проблемы с поисковой оптимизацией. Часто они долгое время остаются незамеченными и становятся неприятной неожиданностью после проведения технического аудита. Чтобы избежать таких ситуаций, узнаем врага в лицо и рассмотрим типичные ошибки переадресации.
Некорректные перенаправления с HTTP-версии на HTTPS
Все проекты должны использовать защищенный протокол HTTPS. Лишний раз напоминать эту избитую истину уже даже как-то неловко. Но наличием подписанного сертификата все не ограничивается. Если вы переехали на защищенную версию сайта, важно удостовериться, что переадресация между старыми HTTP- и новыми HTTPS-версиями работает правильно. Самый простой способ это сделать – проверить вручную.
Перейдите на домашнюю страницу – в адресной строке должен отображаться протокол https и иконка с замком. При изменении адреса сайта на HTTP и последующем вводе, браузер должен автоматически перенаправлять на защищенную HTTPS-версию.
Сразу скажем, это весьма топорный вариант проверки. Он может не показать, когда редирект с HTTP на HTTPS срабатывает не на всех страницах сайтах, например, на поддоменах. Еще один вариант проблемы – обратное перенаправление (HTTPS → HTTP). Получить более полную картину о состоянии настроенных редиректов помогает пакетное сканирование всех страниц сайта.
В Ahrefs некорректные перенаправления с HTTPS на HTTP можно увидеть в отдельном отчете:
Цепочки редиректов
Цепочками редиректов называют перенаправления не в один, а в два и более шага. Другими словами, когда между начальной и конечной страницами присутствует одна или несколько промежуточных переадресаций.
Формально поисковые системы умею обрабатывать такие связки редиректов. Например, для краулеров Google максимально допустимое количество редиректов в цепочке — до пяти URL. Но на практике от такого сложного синтаксиса нужно отказываться. В большом количестве подобные цепочки вызывают проблемы с индексацией, замедляют работу сайта и делают его неудобным для пользователей. В комплексе все эти факторы могут оказывать негативное влияние на SEO.
Вебмастера в курсе, что переадресацию логичнее настраивать прямо на конечный URL. Тем не менее зачастую цепочки переходов возникают непреднамеренно. Причиной может стать некорректная настройка файла .htaccess, особенности или неправильные установки CMS, а также заражение сайта вредоносными скриптами. В большинстве таких случаев генерация цепочек оказывается массовой, что с большей вероятностью может привести к пессимизации SEO. Помимо этого, многоуровневые перенаправления нередко становятся причиной возникновения циклических редиректов – это уже более серьезная уязвимость, о которой мы будем говорить ниже.
Находить цепочки редиректов умеет большая часть инструментов. Например, так их определяет вышеупомянутый онлайн-чекер Httpstatus:
А вот так связки переадресаций отображаются в Ahrefs:
В отчете Redirect chain доступны детали по всем URL в цепочке, включая конечную страницу переадресации
Как исправить цепочки редиректов
- Перенастроить редирект. Это самый очевидный способ: нужно убрать все промежуточные звенья и настроить редирект напрямую, между двумя страницами.
- Заменить внутренние ссылки. Если вы не хотите связываться с перенастройкой редиректов, можно пойти обходным путем и отредактировать на сайте внутренние ссылки, которые ведут на перенаправленные страницы. Так, несмотря на фактическое сохранение цепочки, поисковые роботы уже не будут тратить ресурсы на неэффективные обходы многоуровневых ссылок, а пользователи – выжидать долгого перехода после нажатия на линк.
Посмотреть все внутренние ссылки, которые стоят на цепочку перенаправлений, можно в столбце No. of href inlinks.
Далее нужно выгрузить список указанных страниц, и заменить на них внутренние ссылки, так чтобы они вели на целевой URL (конечный в цепочке редиректов).
Важно!
Исправление цепочек редиректов – это второстепенная задача. Если проблема носит массовый характер куда важнее попытаться понять, почему возникают такие перенаправления. В противном случае проблема, скорее всего, будет повторяться.
Циклические перенаправления
Циклические редиректы – это частный случай цепочек переадресаций, но они доставляют несопоставимо больше проблем для сайта.
Представим себе цепочку редиректов, в которой дублируется конечный URL-адрес:
При таком синтаксисе, попадая на последнюю страницу, цикл перенаправлений будет повторяться сначала:
В результате возникнет бесконечный цикл переадресаций, в ответ на что, подгруженный браузер будет выдавать ошибку ERR_TOO_MANY_REDIRECTS. В итоге пользователь вместо страницы будет видеть такое сообщение:
Обычно все онлайн-чекеры умеют распознавать циклические редиректы и определяют их как ошибку.
В Ahrefs такие ошибки называются Redirect loop и отображены в соответствующем отчете.
Чтобы устранить циклическую переадресацию, нужно исправить конечный (дублирующийся) URL в цепочке редиректов. А еще лучше – убрать всю связку, в которой больше двух элементов, о чем говорилось выше.
Захламленность карты сайта страницами с 301-кодами
Файл sitemap – это список XML-документов, которые указывают поисковым системам необходимые ориентиры для эффективной индексации. Поскольку страниц с кодом состояния 301 технически больше нет, поисковым системам не нужно рекомендовать их к обработке. В противном случае роботы могут продолжать совершать по ним обход, впустую расходуя краулинговый бюджет (лимиты индексирования). Помимо этого, Google использует данные sitemap как один из факторов при выборе канонических URL.
Такую проблему нельзя назвать серьезной, но большое количество технического мусора в sitemap, действительно, может ухудшать сканирование и приводить к тому, что важные страницы сайта долгое время будут оставаться незаметными в поиске. В целом, такого рода проблемы актуальны по большей части для крупных сайтов, от 10 000 страниц и выше. Но и относительно небольшим ресурсам, навести порядок в sitemap никогда не будет лишним.
Вот как это можно сделать:
- Выгружаем список всех URL из карты сайта.
- Прогоняем список через один из описанных выше онлайн-чекеров.
- Отфильтровываем URL с кодами состояния 301.
С Ahrefs все еще проще. Ошибки переадресации в карте сайта можно посмотреть в отдельном отчете (если они присутствуют).
Редиректы на 404-страницы
Еще одна потенциальная проблема для SEO – битые редиректы, т. е. переадресации, ведущие на несуществующие страницы (которые возвращают ответ HTTP с кодом 4XX или 5XX). В отличие от примеров выше, эта проблема чаще возникает не из-за неправильных настроек или заражений вирусами, а по естественным причинам, например, когда старые страницы удалены или перенесены в другие разделы. Таким образом, появление 404-страниц – естественный процесс, но запускать эту проблему не нужно.
Очевидно, что вместе с 404-страницей перестают работать и редиректы. Мы уже выяснили, что это плохо, как с точки зрения пользовательского опыта, так и с т. з. сканирования поисковыми роботами. Битые редиректы нужно периодически искать и исправлять, особенно на крупных и часто обновляемых сайтах, например, если это интернет-магазин.
В Ahrefs опцию пакетного сканирования на битые редиректы можно найти в том же инструменте Site Audit (отчет Internal pages → вкладка Broken redirect).
Как исправить битые редиректы?
Если страница была удалена непреднамеренно или непродуманно, ее можно восстановить. Как правило, это оправдано только в том случае, если на нее стояли обратные ссылки. На практике мало кто заморачивается с восстановлением и предпочитает просто деактивировать все внутренние ссылки, ведущие на битый редирект.
Использование 302-редиректов и Meta Refresh для постоянных переадресаций
Выше мы уже объяснили, почему не нужно использовать 302-редиректы в качестве постоянных перенаправлений. Из-за этого актуальная страница может не попасть в индекс + все ссылочные сигналы будут работать не в ее пользу.
В теории поисковые системы умеют распознавать ситуации, когда 302-редирект находится не на своем месте, и через какое-то время начинают обрабатывать его как 301. Но здесь лучше полагаться на себя, и лишний раз перепроверить, не стоят ли временные (302) редиректы на постоянно перемещенных страницах.
Иногда вместо 301-редиректа может быть использован метатег Meta Refresh, через который браузер получает команду перенаправлять пользователей на другой URL. Настройка перенаправлений Meta Refresh – нежелательная практика, от которой рекомендует отказаться сам Google.
Поэтому, если на сайте стоят такие переадресации, их нужно или убрать, или заменить на 301-редиректы.
Переходы из поиска на страницы с кодом 301
При создании 301-редиректа в индекс попадает конечная версия страницы, а предыдущая – удаляется. Соответственно, URL с кодом состояния HTTP 301 не должны получать трафик из поиска. Если это происходит, такие страницы будут отображены в отчете 3XX page receives organic traffic.
Рассматривать это именно как проблему уместно не всегда. Возможно, поисковые роботы еще не сделали обход сайта и не заменили версии страниц в индексе. Тем не менее если таких документов много, нелишним будет ускорить этот процесс, отправив соответствующие URL на переобход в вебмастерках. Также нужно убрать страницы с 301-кодами из Sitemap, о чем говорилось выше, и повторить отправку файлов.
Практические сценарии использования 301-редиректов для усиления SEO
После технического аудита, проведенного по описанным выше пунктам, на сайте не должно остаться серьезных проблем, связанных с 301-редиректами. Теперь будем говорить о том, как использовать эти перенаправлений для оптимизации SEO и увеличения трафика на сайт.
Склейка тематически близких страниц
Часто встречаются ситуации, когда на сайте есть несколько похожих страниц. Каждая из них присутствует в индексе (нет критичной каннибализации), ранжируется по запросам, имеет обратные ссылки и приносит свою долю трафика. Обычно это касается статей в блоге. В этом случае можно попробовать объединить несколько похожих страниц в одну при помощи 301-редиректа. Таким образом есть шанс консолидировать все SEO-факторы (позиции, ссылочные и пр.), и превратить две-три страницы со средними показателями в одну, которая будет работать намного лучше. Обычно это дает больше эффекта, чем стандартная актуализация.
Какой контент объединять?
Для начала отметим, что лучше НЕ проводить таких экспериментов с топовыми страницами, которые имеют высокие позиции и дают много трафика. Оптимальные кандидаты для объединения – тематически близкие страницы (фактор релевантности очень важен) с низкой и средней посещаемостью. Даже если что-то и пойдет не так, пессимизация этих статей вряд ли сильно отразится на KPI сайта.
В дополнение к этому склейка двух и более страниц – одно из классических решений при каннибализации запросов. Более того, такие статьи – это первоочередные кандидаты для объединения через 301-редирект. Больше о том, что такое каннибализация и как ее находить на сайте – читайте в отдельном материале.
Как склеивать похожие статьи?
Здесь действуют по ситуации. Например, когда есть две релевантные публикации, одна из которых откровенно слабая по трафику и поведенческим (но на нее есть обратные ссылки), ее имеет смысл перенаправить на более сильную статью, поставив 301-редирект.
Если обе публикации имеют слабые SEO-метрики или их содержание устарело, целесообразно написать новый материал (под актуализированный кластер семантики) и поставить на него перенаправления с двух старых статей. В этом случае, весь ссылочный капитал старого контента консолидируется и будет работать на продвижение актуального материала. В дополнение к этому переписанная статья улучшит поведенческие метрики за счет свежего содержания.
Перенаправление 404-страниц с обратными ссылками
Мы уже знаем, код ответа HTTP 404 сообщает, что запрашиваемой страницы не существует: она удалена, перемещена или в ее URL внесены изменения. В целом, когда битые документы присутствуют в умеренном количестве, в этом нет ничего критичного. А если вдобавок их остроумно задизайнить – это еще и развеселит пользователей (и улучшит поведенческие).
Тем не менее есть ситуации, когда 404-страница может стать проблемой для SEO. Во-первых, когда они массово залетают в индекс. Во-вторых, если речь идет о пропавших страницах, на которые стояли сильные обратные ссылки. Например, такое обычно бывает с интернет-магазинами. Они систематически удаляют карточки или целые разделы с товарами, на которые пользователи могли писать отзывы или обзоры на сторонних ресурсах. Поскольку 404-х страниц фактически не существует, любые ссылочные сигналы, которые сайт получает через них, являются бесполезными. Даже если не рассматривать такую ситуацию как ошибку, все равно – это грубый недочет SEO-оптимизации. Как его исправить?
Используем уже упомянутые отчеты Ahrefs. Открываем Site Audit → Internal pages и смотрим список всех ошибок 404 page.
Разворачивает детальный отчет по всем 404-страницам, найденным при сканировании.
Нажимаем на кнопку Manage columns и добавляем метрику No. of dofollow backlinks – она покажет все dofollow-ссылки, которые есть у 404-страниц. Если список 404 page большой, сортируем столбец в порядке убывания.
В инструменте Site Explorer (он тоже бесплатный для подтвержденных сайтов) можно посмотреть, где именно стоят внешние ссылки на битые страницы, а также оценить общую трастовость донора. Это поможет понять, будут ли полезными данные бэклинки для вашего сайта или нет.
Если ссылка хорошая, целесообразно поступить следующим образом (на выбор):
1. Перенаправить через 301-редирект 404-страницу на другой релевантный (!) документ на вашем сайте.
2. Воссоздать удаленную страницу с прежним содержимым по указанному URL-адресу. Можно использовать и другое наполнение, но главное, чтобы оно оставалось релевантным прежней версии.
Логика этих действий, думаем, понятна: ссылочные сигналы, передающиеся через трастовые бэклинки, не будут уходить в никуда. Но если восстановленное содержимое нерелевантно прежней версии 404-страницы, поисковые системы будут учитывать редирект как ложную ошибку (soft 404) и никакого положительного эффекта от такой переадресации для SEO не будет.
26 сентября 2019
20 352
7
Время чтения ≈ 19 минут
Содержание:
- Что такое редирект 301
- Для чего он нужен
- Способы настройки
- Настройка 301 редиректа в .htaccess
- Предварительная подготовка
- Склейка зеркал сайта
- Редирект http/https (с http на https, с https на http)
- Изменение домена
- Редирект на страницу с другим url (без параметров, с параметрами)
- Редирект с index.php на главную
- Редирект со страниц со слешем на без слеша (без слеша на слеш)
- Код 404 Not Found
- Как должен выглядеть файл .htaccess
- Постоянный редирект для Nginx (на «с www», на «без www»)
- Редирект для PHP
- Редирект в разных панелях управления хостингом
- 301 редирект для популярных CMS
- Автоматическое создание кода
- Циклическое перенаправление
- Проверка работоспособности
- Заключение
Во время работы с сайтом может возникнуть ситуация, требующая создания автоматического перенаправления с одного url-адреса на другой, которые принято называть словом «редирект». Это часто происходит при переезде ресурсе на новый домен, при переходе на обновлённый адрес, а также изменении адресов страниц. Чтобы пользователи смогли найти страницу по новому адресу, их должно автоматически «перекидывать» со старого адреса на новый.
Правильно сделать такое перенаправления поможет постоянный редирект или 301 Redirect. Что это такое и как настроить расскажем в этой статье.
Редирект — это процесс, при котором пользователь перенаправляется с неактуальной страницы на актуальную. Это может быть http и https или адрес с/без www. Редирект может выполняться как на сервере, так и в браузере. Но первый вариант считается предпочтительным, так как серверный редирект не замедляет загрузку страниц.
Permanent Redirect 301 («301 редирект», «постоянный редирект», «код состояния HTTP 301» или «301 редирект страницы») – один из двух наиболее распространённых видов редиректа, наряду с Temporary Redirect 302. Этот ответ сервера на запрос браузера или поисковой системы означает, что произошла перманентная переадресация страницы. Она больше не доступна по текущему адресу, так как переместилась на новый адрес навсегда. Её прежний url стал недействительным, а вес с него переместился на новый адрес.
Для чего он нужен
Правильная настройка 301 переадресации имеет особое значение для SEO-продвижения ресурса. Только при этом условии изменение домена или перемещение контента могут пройти без потерь в поисковых значениях. Поисковая система поймёт, что страница была перемещена по всем правилам, после чего сохранит её прежний вес и позицию в выдаче.
Также полезно знать как настроить редирект при следующих обстоятельствах:
- Переезд сайта на новый адрес. Нужно настроить перенаправление, чтобы все запросы к old_site.com перенаправлялись на new_site.com.
- Установка SSL-сертификата. Чтобы запросы к страницам, которые начинаются на http, перенаправлялись на адреса с префиксом
- Смена URL страницы. Это может быть связано с переходом на другую CMS или SEO-оптимизацией. Нужно, чтобы с example.ru/1hdkr5 был настроен редирект на example.ru/page_adress.
- Перенос разделов на субдомены. Было www.example.ru/example, а нужно example.site.ru.
- Для аккумуляции трафика с онлайн-бренда, расположенного в разных доменных зонах. Вебмастер покупает домены example.com, example.ru, example.net, example.org и example.biz и на четырех последних сайтах настраивает редирект на example.com.
- Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.
Способы настроить редирект 301
- Плагины для CMS. Особенно часто данный способ применяется для настройки 301 редиректа в WordPress.
- Настройка через PHP. Редирект осуществляется через задания дополнительного условия в PHP-скрипте. При обращении к корневому файлу php браузер получает указание открыть одну страницу вместо другой.
- Настройка при помощи HTML. Используется в случае, если необходимо изменить лишь одну страницу на статическом сайте. Редирект происходит путём добавления специальной метки (тега), в заголовок html-документа.
- JavaScript — операция через браузер. Скрипт загружается в ПО, это более медленный способ. Работает только при включенном JavaScript в браузере. Используются преимущественно для редиректа с задержкой, когда сначала посетитель сайта видит страницу с обратным отсчетом и текстом. Для настройки в тег <head> добавляется скрипт.
- Изменение файла .htaccess, отвечающего за дополнительную конфигурацию в серверах на Apache. Удобнее всего это сделать через панель управления хостингом.
Последний способ переадресации считается наиболее надежным, поэтому разберём его практически со всеми возможными вариантами.
Настройка 301 редиректа в .htaccess
Файл с расширением .htaccess – это дополнительный конфигурационный файл сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.
Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трёх директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.
Найти файл можно через панель управления хостинга (Cpanel, ISPmanager), либо использовать FTP-клиент. При любом варианте, нужно включить отображение скрытых файлов.
Предварительная подготовка
- Для создания 301 редиректа перейдите в панель управления вашего сайта.
- Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html). Если файл отсутствует, создайте его.
- Рекомендуем все условия редирект записывать в блоке IfModule дабы избежать ошибок при выполнении файла htaccess.
<IfModule mod_rewrite.c> </IfModule>
- Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine), при помощи команды:
RewriteEngine On
- Хостинги применяют по умолчанию 302 или любой другой 3xx редирект, В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].
Далее разберём наиболее распространенные варианты 301 редиректа через .htaccess.
Склейка зеркал сайта (www / без www)
Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.
В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу сайт будет зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess.
Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:
RewriteCond %{HTTP_HOST} ^www.name.site$ [NC] RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:
RewriteCond %{HTTP_HOST} ^v name.site$ [NC] RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
Редирект с http на https
Для всего сайта
В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https, для этого в файл .htaccess добавьте:
RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Если данная конструкция не сработает, попробуйте другой вариант:
RewriteCond %{HTTPS} =on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Если циклическое перенаправление на страницах осталось, попробуйте такой вариант:
RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Если редирект не работает и в этом случае, попробуйте такой вариант:
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} =/page.php RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
В результате пройдет перенаправление на https всех пользователей и поисковых систем, SEO значения при этом сохранятся.
Постранично
Бывают случаи, когда необходимо провести редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} !^/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Для одной страницы
Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:
RewriteEngine On RewriteCond %{HTTPS} =off RewriteCond %{REQUEST_URI} =/page.php RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Редирект с https на http
Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:
RewriteEngine On RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://name.site/$1 [R=301,L]
Изменение домена
В том случае если необходимо перейти на другой домен, при этом сохранив SEO позиции, в файл .htaccess прописывают следующее:
RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC] RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC] RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
Редирект на страницу с другим url (без параметров)
Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв SEO значения. В этом случае в файл .htaccess прописывают следующее:
RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]
Редирект для url (с параметрами)
В случае когда адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:
RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://name.site/articles.php? [R=301,L]
Редирект с index.php на главную
В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/ RewriteRule ^index.php$ http://name.site/ [R=301,L]
Редирект со страниц со слешем на без слеша (для всего сайта)
Для избегания дублей в файле .htaccess используют следующую конструкцию:
RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} ![^/]$ RewriteRule ^(.*)/$ /$1 [R=301,L]
Или более короткий вариант:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L]
Редирект со страниц без слеша на слеш (для всего сайта)
Обратный вариант применяется, когда нужно использовать адреса со слешем.
RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
301 редирект с 404 Not Found
Код 404 Not Found (страница не найдена) присваивается удалённой или несуществующей странице на сайте, а также часто возникает при попутке неправильно ввести url-адрес. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса, при виде ошибки.
301 редирект для страниц 404 Not Found сделать совсем несложно. Например, этот код перенаправит со всех 404-страниц на главную сайта:
ErrorDocument 404 http://www.site.com/301.html
Однако, делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.
Финальный вид файла .htaccess
Пример файла htaccess, после добавления в него редиректов.
Options -Indexes ErrorDocument 404 /404.php php_flag register_globals off php_value pcre.recursion_limit 1000 #Условия 301 редиректа <IfModule mod_rewrite.c> RewriteEngine On # склейка зеркал RewriteCond %{HTTP_HOST} ^my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC] RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.my_site.ru RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L] # без слеша RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] </IfModule> php_value default_charset utf-8 AddType 'text/html; charset=utf-8' .html .htm .shtml
Постоянный редирект для Nginx
Этот веб-сервер наиболее часто используется в VPS-хостинге в связке с сервером Apache. В нем 301 редирект настраивается добавлением строк в конфигурационном файле nginx.config в секции server.
C www на без www
server {#... if($host~ * www.(.*)) { set $host_without_www $1; rewrite ^ (.*) $ http: //$host_without_www$1 permanent; }#... }
Без www на с www
server {#... if($host~ * ^ [ ^ .] + .[ ^ .] + $) { rewrite ^ (.*) $ $scheme: //www.$host$1 permanent; }#... }
После сохранения изменений в файле нужно перезапустить сервер выполнением команды «service nginx restart».
Редирект для PHP
Этот вариант действует на уровне сервера. Он используется в тех случаях, когда редирект необходимо создать для большого количества страниц, не все из которых имеются на платформе.
- Загрузите файл index.php на жесткий диск.
- Сгенерируйте код.
- Вставьте код в текстовый файл, сохраните его и загрузите на сервер.
- Укажите основной URL в настройках сайта.
Редирект 301 в разных панелях управления хостингом
Cpanel
Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:
- в строке «Тип» выбрать «Постоянный 301»;
- в строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru);
- в строке «Перенаправляет на» указать для домена адрес http://example.ru;
- в блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www»;
- сохранить изменения кликом на «Добавить».
ISPmanager
В этой панели можно править файлы nginx.config или .htaccess, но есть в панели и встроенный механизм переадресации. Например, для настройки редиректа на https/http, нужно снять галочку с соответствующего пункта в разделе «WWW-домены».
Особенности редиректа для популярных CMS
WordPress
Для самой массовой CMS существуют десятки плагинов для создания постоянного редиректа. Наиболее популярные среди них: Redirection, Simple 301 Redirects, Quick Page, SEO Redirection и Safe Redirect Manager.
Для примера, разберём перенаправление через плагин Redirection. Его настройка производится через консоль сайта во вкладке «Инструменты» или через раздел плагинов. Чтобы сделать переадресацию, достаточно заполнить два поля — Source URL и Target URL. Соответственно, в первой графе будет указан старый адрес, во второй — новый, без или с www.
Сделать это можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключить к нему, потребуется использовать FTP-клиент. Процесс не отличается от общей инструкции для .htaccess.
OpenCart
Для Opencart редактируется файл .htaccess. Код переадресации выглядит так:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$ RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
Битрикс
Для перенаправления на новую страницу достаточно отредактировать файл .htaccess, внеся в него такой редирект:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC] RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
Joomla
В панели администратора этой CMS нужно перейти в раздел «Компоненты» => «Перенаправление». В окне можно настраивать правила редиректа для различных страниц, а также отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
MODX
Для гибкой настройки переадресации стоит использовать плагин Redirector.
Автоматическое создание кода
Если самостоятельно создать код не получается из-за отсутствия знаний и опыта, можно попросить помощи у специалиста технической поддержки или воспользоваться автоматическими онлайн-генераторами.
Серверы для генерации кода
- Seomagnifier — 301 для www.
- 301 Redirect Code Generator Tool — для доменов и страниц.
- Generate .htaccess— для страниц, разделов сайтов, доменов.
Циклическое перенаправление
Одна из самых распространённых проблем при настройке 301 редиректа — вероятность создания не одинарного перенаправления, а целой цепочки редиректов. Это может быть вызвано некорректной настройкой файла .htaccess, плагина CMS или прямым действием вируса. В очень вероятной перспективе такие «цепочки» приводят к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS».
Обнаружить циклическое перенаправление помогут бесплатные онлайн-сервисы проверки редиректа. Среди наиболее популярных:
- Prcy-info;
- Website Planet;
- Redirect Detective;
- Mainspy;
- Seogift.
Можно также установить специальные браузерные расширения для Google Chrome и Mozilla Firefox.
Действия при циклическом редиректе
- Если ошибка возникла в процессе настройки. Следует проверить корректность соблюдения правил работы 301 редиректа для конкретных адресов, по которым выдаётся ошибка.
- Если циклический редирект вызван вирусом. Когда зацикливание возникает при попытке открыть любой адрес на сайте, выход может быть один — откат к последней работоспособной версии, сохранённой в бекапе.
- Если зацикливание вызвано слишком длинной цепочкой редиректов (более пяти). Нужно сократить цепочку перенаправлений до одного шага.
Как узнать, что переадресация работает правильно
Проверить редирект лучше всего обычным тестированием. Нужно ввести в адресную строку браузера www.example.ru и нажать Enter. Если все правильно, то должен открыться сайт по адресу example.ru.
Для более точной информации можно использовать онлайн-сервисы отслеживания. С ними можно работать «в 1 клик» — достаточно просто вставить ссылку на интересующую страницу.
Для примера, разберём работу в сервисе Redirect Checker. После ввода ссылки перенаправления при нормальной работе внизу появится надпись «Everything seems to be fine», то есть «все работает». Сервис автоматически проверит редирект и сообщит, если он работает некорректно. Если переадресация не действует, пользователь увидит такие сообщения: «Редирект для домена больше не работает» или «Перенаправление не настроено».
Заключение
Для того чтобы поисковая система считала два разных адреса одним сайтом, должна работать постоянная переадресация. 301 редирект — удобный и надежный инструмент для оптимизации сайта, исправления ошибок и недоработок на сайте.
Использовать данный инструмент необходимо с осторожностью. Ведь неправильная настройка может привести к сбою в работе или потере поисковых позиций сайта.
Чтобы сайт после редиректа не только открывался по нужному адресу, но и работал без сбоев, ему нужна надёжная хостинг-площадка. Размещайтесь на VPS от Eternalhost, чтобы забыть о технических сложностях и полностью сосредоточиться на развитии своего интернет-ресурса!
Оцените материал:
[Всего голосов: 3 Средний: 3.7/5]
301 редирект нужен при «склейке» зеркал с www и без, при переводе сайта с HTTP на HTTPS, при переезде на новый домен, в случае изменения URL страницы и переносе её в другой раздел сайта. Как правильно настроить 301 редирект? Прилагаем инструкцию с примерами и шаблонами.
Что в статье:
- Краткая справка: что есть 301 редирект
- Как задать простой редирект в .htaccess: инструкция
- Самые распространенные 301 редиректы и их реализация
- Особенности 301 редиректа, о которых полезно знать
- Чего НЕ нужно делать при работе с 301 редиректом
Краткая справка: что есть 301 редирект
Простой код состояния 301 (Permanent Redirect), а в русскоязычном сегменте 301 редирект — это способ перенаправить пользователя со старого адреса страницы/ресурса на актуальный. Проделывается это на уровне сервера. В SEO сложно преувеличить ценность 301 редиректа — он помогает исключить из выдачи неактуальные URL, заменяя их новыми. В итоге сохраняется 90-99% ссылочного веса страниц и их позиции в выдаче поисковых систем.
Если перевести техническое взаимодействие на простой человеческий язык, то буквально происходит следующий диалог:301 редирект:— Запрашиваемую страницу я перенес вот сюда, на этот адрес. Это постоянное новое местоположение, возвращать мы её не будем.Браузер:— Хорошо, понял. Отправляю посетителя сразу туда.
Настройку можно осуществить разными способами: скриптами, через HTML и PHP, через редактирование файла .htaccess. О последнем варианте расскажем подробно.
Как задать простой 301 редирект в .htaccess: инструкция
.htaccess — файл, позволяющий менять глобальные настройки и конфигурации веб-сервера Apache.
Иногда для настройки редиректов необходимо связаться с саппортом хостинга.
В скачанном с сайта файле .htaccess все редиректы прописывайте в конце, после исходного содержимого
Пишем простой пример:
Redirect 301 / http://new-site.com
Разбираем:
- Redirect 301 — инструкция, говорящая о том, что страница перемещена;
- слэш / — указывает на то, что с верхнего уровня сайта (включая подкаталоги) всё будет переадресовано;
- http://new-site.com — новая страница/сайт.
Переадресуем конкретную страницу:
Redirect 301 /old/old.htm http://new-site.com/new.html
Переадресуем сайт:
RedirectPermanent / http://new-site.com
Переадресуем каталог:
RedirectPermanent /old-directory http://new-site.com/new-directory/
Памятка: распространенные 301 редиректы и их реализация
301 редирект, перенаправляющий с сайта www на сайт без www:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]RewriteRule ^(.*)$ [R=301,L]
или
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
301 редирект с /index.php на корень
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://site.com [R=301,L]
301 редирект с /index.html на корень
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
RewriteRule ^index.html$ http://site.com [R=301,L]
301 редирект с URL со слэшем в конце на URL без слэша:
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_URI} !..{1,10}$RewriteCond %{REQUEST_URI} !(.*)/$RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]
или
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_URI} !..+$RewriteCond %{REQUEST_URI} !/$RewriteRule (.*) http://www.site.ru/$1/ [R=301,L]
301 редирект со старого домена на актуальный домен:
RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]RewriteRule ^(.*)$ [R=301,L]
301 редирект со страницы на другую страницу:
RewriteRule ^dir/$ []()[R=301,L]
301 редирект с http на https:
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
301 редирект с https на http:
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
Избавляемся от дублей на сайте
Простой редирект поможет справиться с дублями страниц, засоряющими выдачу. Например, для поисковых систем адреса https://www.site.ru/ и https://www.site.ru — совершенно разные, поэтому нужно определиться, какой вариант использовать: со слэшем (/) или без.
С помощью 301 редиректа убираем слэш:
RewriteEngine OnRewriteCond %{HTTP_HOST} (.*)RewriteCond %{REQUEST_URI} /$ [NC]RewriteRule ^(.*)(/)$ $1 [L,R=301]
С помощью 301 редиректа добавляем слэш:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_URI} !(.*)/$RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Заменяем файлы .htm на файлы .html:
RewriteEngine onRewriteBase /RewriteRule ^(.*).htm$ $1.html [R=permanent]
Особенности 301 редиректа, о которых полезно знать
Методы редиректа с .htaccess срабатывают только на серверах с ОС Linux, с установленным Apache и включенным Mod-Rewrite. Кстати, .htaccess дополнительно нагружает сервер Apache, потому прописывать те же команды в hpptd.conf куда эффективнее, однако веб-мастерам редко предоставляют доступы к конфигурационным файлам.
На WordPress и некоторых схожих CMS наличествуют специальные модули, с помощью которых можно управлять редиректами. Поэтому если вы вдруг не обнаружили файл .htaccess, не торопитесь с выводами о том, что редиректов на сайте нет.
Избегайте исправления файла .htaccess напрямую через CMS сайта! В случае критической ошибки в действиях административная панель прекратит работу, а для восстановления потребуется FTP / SSH-доступ. Используйте для доступа к каталогам и файлам на сайте любой из FTP-клиентов, который вам удобен: FileZilla, WinSCP, FAR Manager, FireFTP, Total Commander, Cyberduck.
Запросите доступы FTP для проекта у менеджера по документам, зайдите на FTP-клиент, заполните окошки «хост», «имя пользователя», «пароль». В корневом разделе сайта найдите .htaccess, далее скачайте и сделайте бэкап перед началом работы.
«Склейка» и передача PR занимает довольно много времени (сроки зависят от скорости обработки роботами поисковых систем), поэтому не удаляйте старую страницу/сайт, пока не убедитесь в окончательном переносе.
Чего НЕ нужно делать при работе с 301 редиректом
- Не применяйте иные статус-коды ответа сервера в случаях, где требуется 301 редирект. Совет распространяется на настройку https, настройку зеркал сайта с www и т. д.
Самая частая ошибка, допускаемая по незнанию, — настройка временного 302 редиректа вместо постоянного 301 редиректа. В результате такой настройки роботы поисковых систем получают данные о том, что страницы перемещены на время, хотя это не так. - Опасайтесь запуска циклической переадресации. Из-за некорректной настройки .htaccess или неправильной работы плагина CMS может образоваться целая цепочка перенаправлений. Циклическая переадресация приводит к ошибке ERR_TOO_MANY_REDIRECTS при запросе перенесенной страницы.
- Не перенаправляйте запросы на страницу 404. Регулярно проверяйте сайт на битые ссылки.
- Не ставьте подряд два, три и более редиректов. Переизбыток перенаправлений увеличивает нагрузку на сервер, замедляя загрузку сайта. В результате теряется вес конечной страницы.
- Не настраивайте переадресацию для страниц с несколькими URL, которые относятся к разным каталогам. В качестве альтернативы применяйте rel=canonical.
- Не ставьте редиректы на похожие страницы, содержащие разную информацию. К примеру, на 2 схожих по характеристикам товара в интернет-магазине.
- Не применяйте редиректы в работе со служебными файлами. Файл robots.txt при любых переездах оставляйте доступным, чтобы роботы Гугла и Яндекса свободно его распознавали и обрабатывали.
Обязательно перепроверяйте результаты настройки. Работа с редиректами — дело тонкое, а от опечаток и ошибок, в итоге нарушающих работоспособность сайта, не застрахован никто. И помните о том, что браузеры кэшируют редиректы, поэтому проверку проводите только после очистки кэша. Удачи в реализации!
301 редирект помогает решать ряд специфических задач по перенаправлению трафика и ботов поисковых систем с одного документа на другой. Способов реализации этой возможности существует несколько, но обо всем по порядку.
Для чего используется 301 редирект?
Этот тип редиректа позволяет настраивать постоянное перенаправление с одного документа на другой. После переиндексации поисковой базы, в органической выдаче пользователям будет показываться новая страница.
Причины использования 301 редиректа:
- У сайта сменилось доменное имя, производится его перенос.
- Указание зеркал сайта, к примеру, с www и без. Также это актуально в случае установки SSL сертификатов.
- Сменился URL-адрес страницы с целью SEO-продвижения, например, в него были прописаны ключевые слова.
- Устранение проблем с дубликатами страниц.
- Переезд страницы на новый адрес, но при этом необходимо сохранить ее вес и пользовательский опыт.
301 редирект vs тег Canonical
Перед тем как понять, в каких случаях используется 301 редирект, а в каких тег Canonical, необходимо разобраться в ключевых их различиях.
Нет времени разбираться?
Комплексное продвижение в онлайне
Разрабатываем стратегии продвижения бизнеса в онлайне с пошаговым планом действий, и обеспечиваем его реализацию. Проектируем, реализуем, поддерживаем и развиваем сайты, приводим на сайт целевой трафик (реклама, SEO, email-рассылки), расширяем присутствие компании на сторонних площадках, настраиваем аналитику и проводим постклик анализ.
Ваш сайт:
При 301 редиректе происходит физическое перенаправление посетителя или поискового робота. Т.е., этот способ переадресации ориентирован как на ботов, так и на людей. Тег Canonical в свою очередь, предназначен исключительно для роботов. К примеру, у нас есть две страницы, обозначим их как 1 и 2, при этом, вторая является основной (канонической), а первая – дубликатом (содержание страниц идентично). Наша задача состоит в том, чтобы в поисковой выдаче ранжировалась основная страница, т.е. вторая, но при этом первая также должна работать. В этом случае, на помощь приходит тег Canonical, который позволяет указать поисковому роботу на каноническую страницу.
К слову, если на сайте содержатся дубли, но не указан тег Canonical, то поисковые алгоритмы их объединят в группу, после чего будет выбрана одна, которая появится в органической выдаче. Проблема заключается в том, что выбор часто падает не на целевой документ.
301 или 302 редиректы
Оба этих вида редиректов физически перенаправляют пользователей и роботов на альтернативные URL-адреса, однако, у них есть существенные различия. 301 редирект сообщает поисковым краулерам о том, что страница переехала на новый адрес на постоянной основе. А 302 – на временной, к примеру, на период проведения какой-либо акции.
Важно не допускать путаницы в использовании 301 и 302 редиректов, в противном случае, это негативно скажется на SEO-продвижении страницы или ресурса в целом.
Где настраивается 301 редирект?
Разберем наиболее популярные и универсальные способы настройки 301 редиректа на сайте.
Как настроить 301 редирект с помощью файлов сервера Apache
Внесение специальных правок в конфигурационные файлы сервера Apache – это наиболее распространенный способ настройки 301 редиректа. Отличия между этими файлами заключаются в том, что httpd.conf является главным конфигурационным файлом сервера, и все настройки в нем влияют на все директории. А правила из .htaccess относятся исключительно к той директории, в которой он находится.
Расположение файла httpd.conf варьируется в зависимости от типа операционной системы и версии Apache:
- FreeBSD (версия сервера 1.3) – /usr/local/etc/apache/httpd.conf.
- FreeBSD (версия сервера 2.2) – /usr/local/etc/apache22/httpd.conf.
- Убунта (версия сервера 1.3) – /etc/apache/httpd.conf.
- Убунта (версия сервера 2.2) – /etc/apache2/apache2.conf.
- Linux – /etc/httpd/conf/httpd.conf.
Привлекли 35.000.000 людей на 185 сайтов
Мы точно знаем, как увеличить онлайн–продажи
Применяем лучшие практики digital–продвижения как из вашей тематики, так и из смежных областей бизнеса. Именно это сделает вас на голову выше конкурентов и принесёт лиды и продажи.
Ваш сайт:
Через плагины в CMS
Настроить 301 редирект можно не только через конфигурационные файлы, но и с помощью специальных плагинов для CMS. Этот вариант подходит для пользователей, которые не хотят разбираться в параметрах файлов сервера.
WordPress
Вордпресс является самой популярной CMS системой, поэтому для него написано большое количество плагинов, с помощью которых можно настроить перенаправления.
Redirection
Плагин с широким функционалом, заточен исключительно под настройку редиректов. Вот часть функций, которые в нем представлены:
- Настройка переадресации со страницы 404-ошибки.
- Простая переадресация с одной страницы на другую.
- Создание сложных правил перенаправления с нескольких страниц на одну и прочее.
- Возможность автоматического добавления 301 редиректа при удалении или изменении страниц.
Плагин полностью бесплатен, прост в использовании, и при этом не затрагивает конфигурационные файлы сервера.
Simple 301 Redirects
Также простой плагин, но с менее богатым функционалом. Интерфейс представлен в виде двух полей: URL-адрес страницы-исходника и URL-адрес страницы, куда настраивается 301 перенаправление (исключительно). Его удобно использовать при переезде сайта с одного домена на другой, либо при небольшом количестве страниц, с которых требуется настроить 301 редиректы. Т.к. отсутствуют возможности настройки автоматических правил, для больших массивов адресов его использовать нецелесообразно.
SEO Redirection
В отличии от прошлого плагина, SEO Redirection позволяет настраивать все виды редиректов, а не только 301. В целом, это мощный инструмент, с большим количеством функций, со средней оценкой пользователей в 4 звезды. Есть возможность настройки автоматических правил, а также просмотра статистики по перенаправлением отдельно взятых URL-адресов.
Плагин SEO Redirection
Easy Redirect Manager
Плагин представлен в двух версиях: платной и бесплатной. Содержит весь необходимый функционал, подойдет как для новичков, так и для опытных пользователей.
Битрикс
В случае с Битриксом, настройка 301 редиректа возможна, например, через модуль «Редирект мастер» или же через правку файла .htaccess:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC] RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
Отредактировать сам файл можно напрямую через админку сайта:
Настройка 301 редиректа в Битриксе
Через PHP-условие
Данная возможность настройки 301 редиректов больше подходит для самописных CMS-систем, работающих на PHP. Для ее реализации необходимо добавить в код индексного файла (чаще всего index.php) функцию header() с указанием типа редиректа и Location – адреса сайта.
Принцип работы редиректов на основе PHP заключается в том, что браузер запрашивает индексный файл, далее сервер сообщает о том, что он перемещен в другое место. После чего, браузер направляет запрос по указанному адресу, получает ответ и отображает новую страницу.
Итак, перейдем непосредственно к настройке. Пример, 301 редирект с одного домена на другой:
$ref=$_SERVER["QUERY_STRING"]; if ($ref!="") $ref="?".$ref; header("HTTP/1.1 301 Moved Permanently"); header("Location: http://newdomain.ru/".$ref);
Обратите внимание, указывается только новый домен.
Настройка 301 редиректа с одной страницы на другую:
header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.domain.ru/catalog/page.htm");
Здесь указывается страница, на которую срабатывает перенаправление.
HTML-редирект
Подходит для статичных HTML-сайтов, у которых требуется настроить редирект на одну или несколько страниц. Этот способ подразумевает добавление в код специального метатега, разберем сценарии.
Редирект на другой домен:
<meta http-equiv="refresh" content="0;https://new-domain.ru">
Редирект на другую страницу:
<meta http-equiv="refresh" content="0;https://domain.ru/index2.html">
Параметр content отвечает за задержку, указывается число, равное секундам.
Правила настройки файла .htaccess для 301-редиректа
Правил настройки 301 редиректов существует достаточно много и применяются они в зависимости от поставленной задачи. Разберем самые популярные.
С одной страницы на другую
Короткая версия варианта:
Redirect 301 /primer-page1.html/ https://site.ru/primer-page1.html/
Развернутая версия:
RewriteCond %{REQUEST_URI} ^/primer-page1.html/$ RewriteRule ^.*$ https://site.ru/primer-page1.html? [R=301,L]
С главной страницы на каталог
Redirect 301 / https://site.ru/catalog
С каталога на главную
Redirect 301 /catalog https://site.ru
С одного домена на другой
RewriteEngine On RewriteCond %{HTTP_HOST} domain1.ru RewriteRule (.*) https://domain2.ru/$1 [R=301,L]
301 редирект с http на https
При установке SSL-сертификата, настраивается перенаправление с http на https:
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Либо альтернатива:
RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
301 редирект с www на без www
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC] RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
С без www на с www
RewriteEngine On RewriteCond %{HTTP_HOST} ^ domain.ru RewriteRule (.*) http://www. domain.ru/$1 [R=301,L]
301 редирект для отдельного IP-адреса
RewriteEngine On RewriteCond %{REMOTE_ADDR} 111.222.333.444 RewriteRule ^(.*)$ http://site.ru [R=301,L]
Перенаправление только с главной страницы сайта
В этом случае, 301 редирект будет срабатывать исключительно при посещении главной страницы сайта:
RewriteEngine On RewriteRule ^$ https://domain.ru [R=301,L]
Борьба с дубликатами
Два одинаковых URL-адреса, но у одного на конце есть слеш, а у другого он отсутствует. Для поисковых систем они будут разными, т.е. дубликатами. 301 редирект позволяет бороться с подобным явлением. Например, убираем слеш на конце адреса:
RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} ![^/]$ RewriteRule ^(.*)/$ /$1 [R=301,L]
Меняем отображение расширения страницы, к примеру, с .htm на .html:
RewriteEngine on RewriteBase / RewriteRule ^(.*).htm$ $1.html [R=permanent]
Перенаправление с 404 на главную страницу
ErrorDocument 404 http://www.site.com/301.html
Обратите внимание, требуется активация функции mod_rewrite с помощью команды RewriteEngine on, но, если применяется несколько правил перенаправления в одном .htaccess, то данная команда прописывается один раз.
Памятка по используемым символам и обозначениям
Директива RewriteCond определяет условие для правила RewriteRule при соблюдении которого, срабатывает редирект. Правила представляются в виде регулярных выражений.
Метасимволы:
- – экранирующий слеш, сохраняет символы, идущие после него в исходном виде.
- ^ – начало строки.
- $ – конец строки.
- ! – знак отрицания.
- . – любой символ.
- ( ) – применяется для обозначения группировки символов.
- # – комментарии.
Модификаторы:
Применяются для обычных символов, спецсимволов или их группировок. С помощью них можно изменять базовые значения.
- ? – ставится после символа, который может присутствовать или отсутствовать. Например, htm?l – под правило попадает и htm и html.
- * – ставится перед символом, который может повторятся от 0 (отсутствует полностью) до 65536 раз. Пример, htm*l, под правило попадают htm, html, htmm.
- + – аналогично предыдущему, но символ может повторятся от 1 до 65536 раз.
Флаги:
Указываются в квадратных скобках, перечисляются через запятую, представляют собой дополнительные опции.
- NC (nocase) – если правило срабатывает, то регистр символов не имеет значения.
- R (redirect) – прекращает процесс преобразования, возвращает ответ браузеру в виде редиректа.
- L (last) – данная ссылка является окончательной, при этом останавливается процесс преобразования.
Как проверить 301 редирект?
Для проверки единичной страницы, достаточно зайти на нее и визуально оценить процесс перенаправления. Другими словами, если при заходе на страницу произошел редирект на другой документ, адрес сайта в строке браузера поменялся, то все настроено корректно. Однако, при этом нельзя будет узнать какой тип редиректа сработал. Также этот способ усложнит проверку массива страниц. В этом случае, потребуется софт, либо специализированные сервисы:
- bertal.ru – сервис, который позволяет получить HTTP-заголовок страницы.
- Screaming Frog SEO – платная программа, которая позволяет сканировать сайт и находить редиректы.
Итак, мы подробно рассмотрели вопрос о том, как сделать 301 редирект, и показали наиболее универсальные способы. Надеемся статья была вам полезной.