301 редирект: переадресация на все случаи жизни
Содержание:
- Что такое 301-редирект?
- Важно знать: отличия 301, 302, 307 редиректов
- Где настраивается 301-й редирект?
- htaccess, или httpd.conf для Apache
- Через плагины в CMS
- PHP-условия
- JSP (Java) редирект
- Редирект в nginx
- HTML-редирект
- How to: 6 важных советов по перенаправлению
- Перенаправление старой страницы на новую
- Переезд на новый домен – оптимальное перенаправление
- Перенаправление домена с версией www на версию без www (и наоборот)
- Перенаправление домена с http версией на версию https
- Переадресация страницы с верхним регистром на нижний
- Переадресация страницы со слешем на страницу без “/” (и наоборот)
- Проверка корректности настройки 301 редиректа
- Основные ошибки при использовании редиректов
- 301 редирект и Canonical: что и когда уместно
- Влияние 301 редиректа на SEO
- Заключение: подводим итоги
Работая над оптимизацией и продвижением сайта возникает вопрос о настройке 301-редиректа. Данный скрипт устроен довольно просто и используется для перенаправления одной веб-страницы на другую. В данной статье мы рассмотрим, что такое 301-редирект и как правильно его настроить.
Что такое 301-редирект?
Начнем с самого начала. Редирект – это скрипт, который принудительно перенаправляет пользователя сайта с выбранной им страницы на другую. То есть, набирая в адресной строке браузера один адрес, попадаешь совсем на другой. Но это совсем не значит, что содержимое страницы обязательно будет иным. Однако, на многих некачественных сайтах случается и такое.
301-редирект устроен довольно-таки просто. Скорее всего, сложно понять, как он относится к поисковой оптимизации. Удивительно, что с помощью такого скрипта можно превратить потерю в победу, точнее привлечь на свой ресурс еще больше трафика. Важно правильно настроить 301-редирект, но об этом позже.
Узнаем, в каких случаях актуально такое перенаправление:
- Удаление ресурса;
- Перенос сайта на другой домен;
- Непосредственное изменение структуры URL;
- Объединение, склейка двух сайтов зеркал;
- При смене CMS;
- Отказ от использования www в начале URL.
Важно знать: отличия 301, 302, 307 редиректов
Рассмотрим самые используемые редиректы в чем их отличие и где применяются:
- 301 Moved Permanently. Данный редирект представляет способ постоянную переадресацию, которая передает 90-99% веса ссылки. Перенаправление говорит, что ресурс был перенесен на новый адрес, где предыдущий УРЛ считается устаревшим. То есть в данном случае перенос страницы осуществляется без потери веса ссылки.
- 302 Found/Moved Temporerily. Совершенно другой тип перенаправления, означающий временную переадресацию. Разница в том, что такой перенос практически не передает ссылочного веса. В связи с тем, что интернет работает на основе нескольких протоколов, в двух вариантах данного стандарта, код ответа сервера будет различаться: HTTP 1.0: 302 с ответом сервера “Moved Temporarily” (Временно перемещен) – веб-документ временно перенесен на другой URL-адрес; HTTP 1.1: произошло изменение в ответе сервера на «Найдено» – веб-документ был найден.
- 307 Moved Temporarily. HTTP 1.1 Only. Данный код перенаправления означает, что сейчас запрашиваемый ресурс доступен по другому адресу, но потом все равно вернется на прежний URL. К слову, 307 также, как и 302, страница не кэшируется.
Это далеко не все типы переадресации. В арсенале оптимизаторов есть и другие типы редиректов. К примеру, обновление метаданных или через JavaScript. Но в данном случае они запускаются на страницах, а не на сервере. К таким переадресациям желательно прибегать лишь в крайних случаях, поскольку ими злоупотребляют спамеры.
Где настраивается 301-й редирект?
Настроить переадресацию можно несколькими способами. Все зависит от движка сайта. Рассмотрим самые популярные варианты.
htaccess, или httpd.conf для Apache
Самый простой и популярный метод, для его осуществления которого нужно просто создать файл под названием htaccess в папке сайта. Или отредактировать, если он уже предусмотрен движком. Кстати, обязательно, перед любым изменением сайта, сделайте Backup файла, а лучше всего сайта.
Чтобы создать постоянное перенаправление, пропишите в начале файла, подставив свои данные:
- Редирект всего сайта на другой адрес:
Redirect / http://new-site.com/
- Редирект с одной страницы на другую:
Redirect 301 /page-1.html /page-2.html
- Редирект с www на без www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
- Переадресация с HTTP на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Отметим, при работе с файлом, команда происходит на уровне сервера с OC Linux или Apache с активированным модулем Mod_rewrite.
Чтобы создать меньшую нагрузку на сервер, можно изменить .htaccess редирект конфигурационным файлом hpptd.conf.
Через плагины в CMS
Есть более простой способ – настройка при помощи специального плагина. К примеру, для сайта на WordPress отлично подойдет расширение Simple 301 redirects. Однако, здесь есть небольшой недостаток: формирование списка адресов для переадресации.
PHP-условия
Если вы отлично разбираетесь в PHP, то такой способ для вас. Когда сайт сделан на CMS, нужно открыть index.php и в его корне прописать:
if($_SERVER[‘REQUEST_URI’] == “/index.php”) {
header(“Location: /”,TRUE,301);
exit();
}
Для понимания, в первой строке укажите старый url, а во второй — новый.
Также можно сделать перенаправление PHP при помощи отправки заголовков (скрипта):
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
exit();
JSP (Java) редирект
Данный вариант подойдет тем, кому нужны небольшие корректировки простых проектов. Необходимый код пропишите в одном файле, при этом сам файл добавьте на все нужные страницы, указав, будущее перенаправление на другой сайт:
<script type=”text/javascript” src=”redirect.js”></script>
<script type=”text/javascript”>
location=”https://yandex.ru”;
</script>
Редирект в nginx
Здесь все просто:
if ($host = ‘www.domain.com’ ) {
rewrite ^(.*)$ http://domain.com$1 permanent;
}
HTML-редирект
В случае простого статического сайта, где нужно изменить лишь одну страницу, лучшим способом – редирект HTML. Для этого достаточно просто добавить внутри специальный мета-тег. Для примера использование редиректа после 5-секундной задержки:
<meta http-equiv=”refresh” content=”5;https://livepage.pro”>
Если вместо значения 5 поставить 0, то пользователя моментально перекинет на https://livepage.pro.
Крупные проекты перенаправлять таким способом сложно и затратно по времени. Поэтому, лучше сразу отдать предпочтению другому варианту, о них мы писали выше.
How to: 6 важных советов по перенаправлению
Предлагаем вашему вниманию шесть простых правил, а вернее сказать, советов, как лучше перенаправить свой сайт, настроить редирект.
Перенаправление старой страницы на новую
Если вы используете движок WordPress, можно просто отредактировать файл .htaccess, воспользовавшись плагином Redirection.
Redirect 301 /old-page.html /new-page.html
Переезд на новый домен – оптимальное перенаправление
RewriteEngine on RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] |
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] |
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC] |
Примечательно, что, если RewriteEngine on уже есть в вашем файле .htaccess, не повторяйте его. Просто скопируйте остальную часть кода. Это можно сделать и в Cpanel, если так удобнее.
Перенаправление домена с версией www на версию без www (и наоборот)
С версии без www на версию с www: | С версии с www на версию без www: |
RewriteEngine onRewriteCond %{HTTP_HOST} ^example.com [NC]RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC] | RewriteEngine onRewriteCond %{HTTP_HOST} ^www.example.com [NC]RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC] |
Обратите внимание, что порядок в вашем файле .htaccess имеет значение. В случае несоблюдения порядка возможны нежелательные последствия. Даже если несколько команд размещены в «неправильном» порядке.
Перенаправление домена с http версией на версию https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Чтобы все работало правильно, обязательно проверьте наличие сертификата SSL. В обратном случае вы получите сообщение о том, что «Соединение не защищено»,
Переадресация страницы с верхним регистром на нижний
Чтобы сделать редирект с любого адреса на url в нижнем регистр пропишите следующий код на уровне php-скрипта:
$lowerURI=strtolower($_SERVER[‘REQUEST_URI’]);
if($_SERVER[‘REQUEST_URI’]!=$lowerURI)
{
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://” . $_SERVER[‘HTTP_HOST’] . $lowerURI);
exit();
}
Переадресация страницы со слешем на страницу без “/” (и наоборот)
Чтобы сделать редирект со страниц без слеша на слеш, добавьте:
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
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 редиректа
Первое, что нужно отметить, так это то, что системе требуется время, чтобы обнаружить код 301 и присвоить вес новой странице. Длительность процедуры зависит от того, как часто роботы посещают данный адрес. Может пройти до 2-3 недель.
А теперь о методиках проверки 301 редиректа:
- Поштучно вручную, через сервисы bertal.ru или Header Checker Tool;
- «Пачкой» используя программу Screaming Frog Seo Spider, который может проверить сразу весь ресурс.
Основные ошибки при использовании редиректов
Можно выделить ряд основных ошибок, с которыми сталкиваются веб-мастера:
- Неправильный выбор типа редиректа.
- Переадресация, приводящая к 200-й странице.
- Установка временной переадресации вместо постоянной.
- Внутреннее перенаправление без изменений урл в ссылках.
- Использование многошагового редиректа.
301 редирект и Canonical: что и когда уместно
301 редирект | Canonical |
Это самый предпочтительный метод переадресации. Отлично подойдет для страниц, которые были удалены или замещены. Актуально для доменов, которые переехали. | Нет возможности настроить 301- редирект. Если нужно сохранить идентичный контент на двух сайтах с разными доменами. Когда происходит динамическое изменение URL для одной и той же страницы. Если вы хотите сохранить обе страницы с дублированным контентом; |
Влияние 301 редиректа на SEO
Мы уже писали, что можно использовать силу переадресации для массового увеличения органического трафика. Начнем с того, что редирект – важная часть поисковой оптимизации, так как он позволяет изменить структуру сайта и удалить его ненужные страницы. Благодаря редиректу, можно избавиться от дублей страниц, что позволит улучшить внутреннюю оптимизацию сайта. Именно при 301 редиректе происходит склейка ИКС и PR. Это значит, что ресурс сохранит старое значение на новом адресе и при этом нисколько не потеряет в глазах поисковых систем.
На продвигаемых сайтах такая переадресация необходима, так как она позволяет сохранить позиции в поисковых системах.
Заключение: подводим итоги
Из вышесказанного можно сделать вывод: 301-редирект имеет множество применений, когда речь идет о поисковой оптимизации.
Если использовать его стратегически, грамотно, можно увидеть огромный рост органического трафика, однако сперва убедитесь, что на вашем ресурсе нет проблем с редиректами. В обратном случае это может помешать текущим действиям по оптимизации.
Обязательно определитесь какой редирект нужен вашему сайту, чтобы это привело к ожидаемому результату.