301 редирект (redirect)

301 редирект

Что такое 301 редирект?

301 редирект или 301 redirect (от англ. перенаправление) — это принудительная переадресация пользователя с одного URL на другой. Причем оба адреса могут принадлежать как одному, так и разным доменным именам.

Проще говоря. Пользователь вводит в адресной строке браузера (или переходит по ссылке) один URL адрес, но автоматически попадает на другой.

Что происходит в данный момент?

Происходит переадресация при помощи 301 редиректа. Действует это следующим образом.

  1. Человек вводит в адресной строке URL адрес (или нажимает на гиперссылку);

  2. Сервер получает запрос с URL адресом и начинает его обрабатывать;

  3. В процессе обработки запроса «сталкивается» с инструкцией redirect и следует ее указаниям;

  4. Отправляет пользователю новый URL адрес, который указан в инструкции и ответ 301.

Стоит сказать, что 301 редирект справедлив не только для людей, но и для роботов. То есть, краулер поисковой системы также будет перенаправлен на другой URL при наличии переадресации. Но об этом поговорим ниже.

Для чего нужен 301 редирект?

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

  • Адрес страницы навсегда изменился, поэтому нужно перенаправить пользователей на актуальный URL;

  • Поменялся домен сайта, поэтому нужно переадресовать людей на новый домен;

  • Один и тот же материал имеет несколько URL адресов, то есть, дублей;

  • При работе online сервисов, форм, модулей и прочих интерактивных элементов сайта необходимо перенаправление.

Конечно, это неполный список того, как можно использовать 301 redirect, однако это основное.

Нужно понимать, что сделать 301 redirect со страницы возможно только при наличии доступа к этой самой странице. То есть, взять и прописать переадресацию для любого ресурса не получится. Именно поэтому, 301 редирект считается «официальным» перенаправлением, которое сделал владелец сайта.

Как сделать 301 редирект?

Создание 301 редиректа довольно простая задача. Тут нет запутанных алгоритмов и сложных структур. Необходимо лишь выучить синтаксис и понять несколько принципов работы.

Ниже мы опишем ряд основных способов создания 301 redirect, которые отличаются по своему исполнению, но имеют один и тот же результат.

301 редирект в .htaccess (Apache)

Создание 301 редиректа в файле .htaccess является самым популярным способом сделать переадресацию. Он  достаточно прост и доступен всем пользователям, которые используют в качестве сервера Apache.

Файл .htaccess находится в корневом каталоге Вашего сайта. Попасть туда можно через FTP подключение или файловый менеджер, который доступен практически у всех хост-провайдеров.

Расположение файла .htaccess

Обратите внимание, что название файла начинается со служебного символа — точки. В некоторых файловых системах подобные документы по умолчанию скрыты. В таком случае, необходимо поменять настройки, чтобы увидеть .htaccess.

Мы не будем подробно разбирать все инструкции файла .htaccess, рассмотрим только те, что касаются redirect 301.

Для начала необходимо убедиться, что у Вас установлен модуль mod_rewrite, так как именно он отвечает за переадресацию URL адресов. По этому поводу Вы можете обратиться к своему хост провайдеру или самостоятельно найти и проверить файл конфигурации Apache (httpd.conf)

Подготавливаем .htaccess к работе

Создаем или открываем уже существующий файл .htaccess. Прописываем в нем следующие строки:

<IfModule mod_rewrite.c>

</IfModule>

Это запись-условие. Она проверяет установлен ли на Apache необходимый нам модуль mod_rewrite. Если таковой имеется, то выполняется все, что указано между тегами <IfModule mod_rewrite.c> и </IfModule>. Если отказаться от этой инструкции, то при отсутствии модуля будет выводится ошибка.

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

RewriteEngine on

Данная запись позволит активировать модуль mod_rewrite.

Следующей строкой прописываем:

RewriteBase /

Подобная команда устанавливает базовый URL. Обычно это сам домен, примеру http://example.ru. Именно от установленного адреса мы и будем отталкиваться при дальнейшей работе.

Если Вы все верно прописали, то итогом будет вот такой файл:

Подготовленный .htaccess

Вот и все, наш .htaccess подготовлен для добавления перенаправлений.

Добавляем в .htaccess редирект

Существуют две основные инструкции, при помощи которых можно сделать перенаправление:

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

  2. RewriteCond / RewriteRule — более гибкие и сложные правила переадресации. Обычно используются для массовых редиректов.

Теперь о каждом подробнее.

Redirect 301

Самая простая во всех смыслах инструкция. Ее синтаксис умещается в одну строку:

Redirect 301 <старая страница> <новая страница>

Между адресами всего один пробел. Никаких точек, дефисов и других сторонних символов.

Пример использования редиректа:

Redirect 301 /old-page.html http://example.ru/new-page.html

В файле это выглядит следующим образом:

Использование инструкции redirect 301 со страницы на страницу

Это все, что нужно знать о данной инструкции.

 RewriteRule (RewriteCond )

Это составная инструкция, которая делится на 2 основные команды.

RewriteCond — Задает условие для следующей за ней директивы RewriteRule. Отдельно не применяется.

RewriteRule — Описывает правило изменения URL адреса.

Давайте сразу рассмотрим пример использования. Ниже присутствует часть файла .htaccess. Данный отрывок отвечает за 301 редирект с домена без WWW, на домен с WWW.

Будем разбирать по строчкам.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
</IfModule>

1 строка. Закомментированный текст. Комментарии в файле .htaccess начинаются с «#». На исполнение файла никак не влияет.

2 строка. Проверка наличия модуля mod_rewrite.

3 строка. Активация модуля mod_rewrite.

4 строка. Директива RewriteCond. Проверяет, есть ли «www» в начале адреса. Если нет, то срабатывает ниже расположенная RewriteRule.

5 строка. Директива RewriteRule. Переадресовывает на «www».

6 строка. Окончание контейнера проверки наличия модуля mod_rewrite.

Мы не будем подробно расписывать синтаксис и все возможные команды, которые применяются при работе с файлом .htaccess в данной статье, так как это очень глобальная и сторонняя от SEO тема. Примеры редиректов Вы сможете найти ниже.

301 редирект при помощи PHP

Помимо файла .htaccess, 301 redirect возможно сделать посредством php. Суть метода очень проста и задействует заголовки отправляемые сервером на запрос клиента.

Чтобы сделать редирект, в документе необходимо прописать php код следующего содержания:

<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.new-domain.ru/page.php”);
exit();
?>

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

Обратите внимание, что до вызова header, выводится ничего не должно, в противном случае Вы получите ошибку. Речь идет об «echo» или «print». Лучше всего размещать этот код в самом начале скрипта.

А вот вариант с сохранением всех параметров запроса и адреса страницы (то есть, домен будет изменен, а оставшаяся часть URL останется прежней):

<?
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://new-domain.ru/'.$ref);
exit();
?>

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

301 редирект в Nginx

Мы не будем подробно рассматривать все нюансы настройки 301 редиректа в nginx, так как это очень глобальная и отдаленная от SEO продвижения тема. Рассмотрим лишь несколько самых популярных перенаправлений.

301 редирект с http на https для Nginx

Перевод сайта с http на https набирает все большую популярность. Сегодня защищенный протокол это не просто приятное дополнение, а банальная необходимость. Google уже не раз заявлял, что наличие SSL сертификата дает сайту преимущество в поисковой выдаче. После создания защищенного протокола Вам будет необходим редирект с http на новый https. Вот его пример для Nginx:

server {
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}

Альтернативный вариант:

server {
listen server_ip:80;
server_name www.dh-agency.ru;
rewrite ^ https://www.dh-agency.ru$request_uri? permanent;
}

301 редирект с www на без www для Nginx

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

server {
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent;
}
}

Альтернативный вариант:

server {
server_name dh-agency.ru;
rewrite ^/(.*)$ http://dh-agency.ru/$1 permanent;
}

301 редирект с без www на www для Nginx

Обратный от вышеуказанного редиректа. Будет полезен, если основное зеркало сайта содержит www.

server {
server_name dh-agency.ru;
rewrite ^/(.*)$ http://www.dh-agency.ru/$1 permanent;
}

Альтернативный вариант:

server {
listen 80;
server_name www.dh-agency.ru;
}

Редирект для одной страницы (Nginx)

В случае смены URL, чтобы не потерять имеющиеся позиции, необходимо сделать 301 редирект на новый адрес. Для одной страницы это можно сделать следующим образом:

server {
if ( $request_filename ~ oldpage/ ) {
rewrite ^ http://www.dh-agency.ru/newpage/? permanent;
}
}

Вариант для папки:

server {
if ( $request_filename ~ oldfolder/.+ ) {
rewrite ^(.*) http://www.dh-agency.ru/newfolder/$1 permanent;
}
}

Редирект с одного домена на другой (Nginx)

301 редирект с одного домена на другой позволяет склеить сайты, а также передать «вес» (с точки зрения поисковой системы).

В server_name возможно указание алиасов и зеркал домена.

server {
server_name dh-agency.ru www.dh-agency.ru;
rewrite ^ $scheme://www.new-dh-agency.ru;
}

Редирект со страницы имеющей слэш в конце URL, на страницу без него (Nginx)

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

server {
rewrite ^/(.*)/$ /$1 permanent;
}

Редирект со страницы НЕ имеющей слэш в конце URL, на страницу со слэшем (Nginx)

Обратный от вышеуказанного редиректа.

server {
rewrite ^(.*[^/])$ $1/ permanent;
}

Плагин для создания 301 редиректа

Если Вы используете популярную CMS, к примеру WordPress или Joomla!, то можете сильно упростить процесс создания 301 редиректа при помощи плагина.

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

Ниже мы подробно описали популярные плагины для основных систем управления контентом.

301 редирект в SEO продвижении

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

Функция 1. Оставляем в поиске один URL адрес

301 редирект позволяет соблюсти один из основных постулатов SEO — «каждая страница должна быть доступна только по одному URL адресу».

Из-за особенностей работы многих популярных CMS систем в индекс часто попадают дубли страниц, динамические URL адреса, а так же прочий мусор. Избавиться от него и оставить в поиске только один URL позволяет 301 редирект.

Функция 2. Меняем структуру сайта без потери позиций

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

Только таким образом мы сможем «сказать» краулеру, что страницы навсегда переехали на новые адреса, которые нужно разместить в поиске. Старые URL при этом должны быть удалены из выдачи.

Функция 3. Склеиваем зеркала

С помощью постоянной переадресации возможно склеить зеркала сайта. Это могут быть как разные домены, так и «разновидности написания» одного и того же. К примеру, при создании защищенного протокола, необходимо выставить в Яндекс Вебмастере новое зеркало (рисунок ниже), которое будет отображаться в выдаче, а так же сделать 301 редирект с http на https.

Склейка зеркал при помощи 301 редиректа

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

Только 301 редирект способен склеивать доменные имена.

Функция 4. Приводим URL адреса к единому виду

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

К примеру, у нас на сайте все URL имеют слэш в конце строки. При появлении адреса без слэша, с него автоматически делается переадресация.

Redirect в Яндекс Директ

301 редирект или rel=»canonical»

Как минимум в ряде случаев, атрибут rel=»canonical» считают альтернативной 301-у редиректу. Давайте разберемся, так ли это.

Напомним, что rel=»canonical» позволяет указать поисковой системе основной URL адрес страницы. Подробнее о данном атрибуте мы писали ранее.

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

 301 redirect rel=»canonical»
Передает «вес» страницы (с точки зрения SEO)? Да Нет
Пользователь (робот) видит старую страницу при обращении? Нет, происходит переадресация Да, видит
Обязательна ли инструкция к исполнению? Да Нет, на усмотрение робота
Виден ли пользователю? Да Нет, предназначен только для робота

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

Склейка зеркал при помощи 301 редиректа

Одна из основных функций 301 редиректа, без которой нельзя обойтись в SEO, это склейка зеркал.

Зеркалами для поисковой системы являются сайты с одинаковым контентом (или частичной копией контента) доступные по разным URL адресам. Как ни странно, практически у каждого сайта в Интернете есть зеркала. Все дело в том, что для поисковой системы домен с www и без www это разные адреса.

То есть, www.dh-agency.ru и dh-agency.ru  для поисковика это различные URL, по которым доступен один и тот же контент. Этот случай настолько популярен, что в Яндекс Вебмастере есть раздел «Переезд сайта», где предоставляется возможность выбора основного зеркала, которое будет в поиске. Переадресация при этом, конечно, не появляется. Эта инструкция предназначена только для робота поисковой системы.

Склейка www и без www при помощи 301 редиректа

В случае с www, 301 редирект часто не ставится, так как домены признаются зеркалами автоматически. Хотя такая возможность есть, а иногда даже необходима. Про переадресацию с www на БЕЗ www мы рассказываем ниже.

Во всех остальных случаях для склейки понадобится переадресация.

Предположим, у нас есть посещаемый коммерческий ресурс. Компания, которая им владеет, объединяется с другой фирмой, в результате чего необходимо делать ребрендинг, в том числе и сменить доменное имя сайта. Как быть в этом случае? Ведь сайт стабильно приносит клиентов из органической выдачи.

Решение есть: необходимо новый домен склеить с существующим. При этом обновленный адрес должен стать основным и присутствовать в поисковой выдаче. В этом нам поможет 301 редирект. Нужно привязать к сайту новый домен, после чего проставить 301 редирект со всех URL содержащих старое доменное имя на соответствующие URL с новым доменным именем. О том, как это делается, мы рассказали ниже.

Стоит сказать, что после данной процедуры ТИЦ , «ссылочный вес» и другие «пузомерки» будут перенесены на новый домен.

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

Разница между 301 и 302 редиректом

С точки зрения SEO 301 редирект кардинально отличается от 302. Даже несмотря на то, что их синтаксис очень схож, для поисковой системы они несут совершенно разный смысл. Вот их основное отличие:

301 редирект (Permanent Redirect)постоянное перемещение страницы;

302 редирект (Temporary redirect)временное перемещение страницы;

Из это вытекают все их различия и принципы использования.

 301 redirect 302 redirect
Передает ссылочный вес да нет
Индексация старой страницы нет да
Наличие старой страницы в поиске нет да
Риск попасть под фильтры* минимален достаточно высок

Проще говоря, делая 301 редирект мы «говорим» поисковой системе о том, что про старый адрес можно забыть и весь материал теперь навсегда доступен по новому URL.

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

*Стоит сказать, что 301 и 302 редирект имеют различные степени риска попадания под фильтры поисковых систем за мошенничество. Безусловно, не нарушая никаких правил  к Вам вряд ли будут применены санкции, однако мы все равно оценим риски. Так как 302 редирект часто используется в черном SEO, то риск при его использовании на порядок выше, нежели у 301 редиректа. 

Когда оправдано использование 302 редиректа?

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

  1. Есть Интернет-магазин одежды и Вам необходимо разместить обширную по объему акцию. Дорабатывать уже оптимизированную главную страницу ради недели распродаж смысла нету. Во-первых, это может сказаться на ее положении в поисковой выдаче. Во-вторых, это достаточно трудозатратно. Намного проще сделать 302 временный редирект на страницу с акцией. По окончанию которой, главная снова будет доступна в первоначальном виде.

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

Нежелательно ставить 302 редирект на слишком длительный срок. Это может привести к тому, что поисковая система  исключит из поиска старую страницу, по сути, превратив 302 редирект в 301.

301 редирект в популярных CMS

Вне зависимости от CMS сайта, Вы всегда можете создать 301 редирект при помощи файла .htaccess или php кода. Однако, для распространенных систем управления существуют плагины и модули, которые упрощают процесс создания перенаправления до нескольких кликов. Ниже мы описываем самые популярные плагины и модули для Битрикса, WordPress, Joomla!, Opencart и других распространенных систем управления.

301 редирект в Битрикс (Bitrix)

Для Битрикса существует множество дополнений в виде модулей. Для решения задачи по созданию 301-го редиректа был реализован модуль «Редирект мастер«. Как и множество других дополнений для Битрикса, он платный. Его стоимость на момент написания статьи — 5 000 рублей. Что довольно дорого, по нашему мнению.

Есть и более дешевый вариант — модуль с простым названием «Перенаправление ссылок«. Его стоимость в 5 раз меньше предыдущего, а функционал очень схож.

Модуль «Редиректор«, стоимостью 3 900 рублей на момент написания статьи, также очень схож с описанными выше.

Все эти модули позволяют настроить 301-й редирект для динамических URL, ЧПУ, адресов с параметрами, а также практически все, что можно сделать руками в .htaccess.

301 редирект в WordPress

Одно из преимуществ WordPress — наличие огромного количества готовых решений на все случаи жизни. Не стал исключением и 301 редирект. Для упрощения процесса создания переадресации существует множество различных плагинов. Мы рассмотрим два самых популярных.

Скачать данные плагины Вы можете совершенно бесплатно прямо из панели управления. Для этого переходим в «Плагины» -> «Добавить новый«. В строке поиска вводим название плагина и выбираем необходимый.

Плагин Redirection

В разделе «Добавить плагины«, после ввода названия в строку поиска, Вы увидите результаты, среди которых будет:

Плагин для WordPress Redirection

Далее нажимаем кнопку «Установить» -> «Активировать«.

После того, как Redirection будет активен, переходим в список всех плагинов, выбираем «Перенаправления/Redirection» и нажимаем «Настройки«. Сразу под названием плагина Вы увидите 7 вкладок:

  • Redirects. В данной вкладке представлены все имеющиеся редиректы. Ниже располагается блок «Add new redirection» (Добавить новый редирект).
    Первое поле (Source URL) — то, откуда нужно сделать редирект.
    Второе поле (Target URL) — то, куда нужно сделать редирект.
    Group — группа, к которой будет относится переадресация.

  • Groups. Группы, на которые делятся редиректы. Не имеет отношения к массовым редиректам. Это просто сортировка.

  • Log. Логи или проще говоря, журнал в который записываются все события связанные с редиректами данного плагина.

  • 404s. Те же логи, только для события 404.

  • Import/Export. Возможность импорта и экспорта редиректов.

  • Options. Основные настройки плагина.

  • Support. Раздел поддержки.

Использование плагина redirections для WordPress

Для того, чтобы добавить редирект, переходим во вкладку «Redirections«, спускаемся к блоку «Add new redirection» и заполняем все необходимые поля (Source URL, Target URL, Group), нажимаем «Add Redirect» — готово. Теперь необходимо только проверить результат.

Плагин Simple 301 Redirects

Принцип установки точно такой же, как и у Redirection. В поиске плагинов необходимо найти:

Плагин 301 редиректа для WordPress Simple 301 redirects

После активации плагина, в левом меню WordPress в пункте «Настройки» появится ссылка «301 redirects«. Переходим по ней и попадаем на страницу с двумя полями.

Плагин для WordPress Simple 301 Redirects

Первое поле — откуда ставим редирект, второе — куда. Тут нет сложных настроек, все максимально просто.

301 редирект в Joomla!

Для создания 301 редиректа, в Joomla! 3 уже имеется стандартный компонент. Найти его можно развернув меню «Компоненты» — > «Перенаправление«.

301 редирект при помощи компонента в Joomla!

После перехода Вы увидите все имеющиеся редиректы, если они есть.

Для создания нового, необходимо нажать на кнопку «Создать» и заполнить все обязательные поля (отмечены звездочкой).

Создание нового 301 редиректа в Joomla! при помощи стандартного компонента

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

Что делать, если 301 редирект в Joomla! не работает?

Если при использовании стандартного компонента перенаправлений в Joomla! 3, редирект так и не заработал, необходимо:

  1. Открыть файл configuration.php находящийся в корневой папке Вашего сайта;

  2. Найти переменную public $live_site;

  3. Присвоить ей в качестве значения домен своего сайта.

Сохраняем изменения и проверяем редирект.

301 редирект в Opencart 2

Для Opencart 2 существует готовый модуль, позволяющий создавать постоянную переадресацию. Его название «Менеджер 301 редиректов«.

Он поддерживает всевозможные варианты 301-го редиректа и совместим со всеми версиями Opencart 2.x.

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

Не забывайте, что любая CMS система, в том числе и Opencart, поддерживает редиректы созданные вручную в файле .htaccess или посредством php вставки.

301 редирект в Modx

Для Modx Revo существует множество готовых решений реализации 301-го редиректа. Одно из них Redirector. Установка и использование данного расширения не составляет никаких сложностей. Если, все же, у Вас возникли трудности, Вы можете подробно изучить любой вопрос на официальной странице https://docs.modx.com/extras/revo/redirector.

301 редирект для Wix

В Wix существует стандартная функция, позволяющая сделать 301 редирект. Ничего придумывать не придется, просто следуйте нижеуказанной инструкции.

  1. Переходим в режим управления сайта;

  2. Находим раздел SEO и переходим в него;

  3. Пролистываем страницу вниз до блока «Переадресация: 301 редирект»;

  4. Нажимаем «Настроить переадресацию»;

  5. В соответствующие поля вводим старый и новый URL;

  6. Нажимаем «Сохранить» и «Опубликовать».

Проверяем работоспособность переадресации.

Распространенные редиректы

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

301 редирект с http на https

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

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

Итогом данного редиректа будет являться добавление ко всем URL сайта протокола https.

301 редирект с www на БЕЗ www

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

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

Итогом данного редиректа будет являться «удаление» из всех URL адресов префикса «WWW».

301 редирект с БЕЗ www на www

Если в качестве основного зеркала был выбран домен с WWW, то Вам необходимо добавить ко всем URL соответствующий префикс «WWW». В этом Вам поможет указанный ниже редирект.

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

Итогом данного редиректа будет являться добавление ко всем URL адресам префикса «WWW».

301 редирект с одной страницы на другую

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

Redirect 301 /page-1/ http://mysite.com/new-page-1/

Итогом исполнения вышеуказанной инструкции будет являться постоянная переадресация со страницы /page-1/ на страницу /new-page-1/. При этом раздел  /page-1/ будет исключен из поиска, а /new-page-1/ получит весь имеющийся «вес».

Обратите внимание, подобным образом возможно сделать переадресацию только для URL адресов без параметров. То есть, для страницы /page-1/?productID=7389 эта команда работать не будет.

301 редирект с домена на домен

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

RewriteEngine On
RewriteCond %{HTTP_HOST} domain1.ru
RewriteRule (.*) http://domain2.ru/$1 [R=301,L]

Итогом вышеуказанного редиректа станет перенаправление всех обращений к domain1.ru на domain2.ru.

301 редирект для слеша (Удаляем слеш на конце)

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Итогом будет являться «удаление» слэша в конце URL адреса.

301 редирект для слеша (Добавляем слеш на конце)

Обратный от ранее упомянутого редирект. Добавляет слэш в конце строки URL адреса.

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Итогом будет являться «добавление» слэша в конце URL адреса.

301 редирект с index.php (html)

Во многих CMS системах, в том числе и популярных, при некорректной настройке URL, главная страница становится доступна как по доменному имени, так и по доменному имени + index.php (html). То есть, dh-agency.ru и dh-agency.ru/index.php ведут на одну и ту же страницу — главную. Для поисковой системы это дубли, поэтому от них нужно избавляться.

Пример 1, для index.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://dh-agency.ru/ [R=301,L]

Пример 2, для index.html

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://dh-agency.ru/ [R=301,L]

Итогом обоих примеров будет редирект с /index.php (html) на «корень сайта», то есть, просто на домен.

Массовый 301 редирект

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

В некоторых CMS системах по умолчанию используется генерация 301-х редиректов для создания единого адреса с ЧПУ.

К массовым редиректам можно отнести большинство вышеуказанных примеров, так как их правила распространяются не на один URL адрес, а на все существующие или отобранную группу.

Редирект со страницы 404 Not Found

Создание редиректа с несуществующей страницы на главную (или любую другую) технически возможно. В этом нет никакой проблемы. Однако с точки зрения SEO это будет некорректно. При обращении к несуществующему разделу индексирующий робот должен получать соответствующий заголовок — 404. Только так он сможет корректно индексировать сайт. Кроме этого, поисковые системы не любят большое количество редиректов, поэтому их использование нужно сократить до минимума.

Пример 1. Редирект с 404 страницы на главную

Вот пример редиректа со всех не найденных страниц на главную.

ErrorDocument 404 http://www.site.com/301.html

Итогом данного редиректа будет являться перенаправление всех обращений к страницам 404 на главную страницу сайта.

Пример 2. Редирект с 404 страницы на главную через 301 редирект

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

ErrorDocument 404 http://www.site.com/301.html

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule 301.html http://www.site.com/ [R=301,L]

Пример 3. редирект с 404 страницы на заранее подготовленную

Перенаправление возможно сделать не только на главную страницу, но и на любой другой раздел. К примеру, на заранее подготовленную страницу 404. Выглядит это следующим образом:

ErrorDocument 404 /404.html

Проверяем 301 редирект

После того, как Вы настроили 301 редирект, его необходимо проверить на корректность работы. Для этого введите в адресной строке своего браузера URL страницы, с которой была сделана переадресация. Если Вы видите новую страницу, то есть, ту, на которую делали редирект — то все корректно работает.

Для того, чтобы удостовериться, что сработал именно 301 редирект, необходимо перейти в Яндекс Вебмастер в раздел «Инструменты» — > «Проверка ответа сервера«.

В поле «Опрашиваемый URL» необходимо ввести адрес страницы, с которой Вы делали перенаправление. Итогом проверки должен быть код статуса HTTP «301 Moved Permanently«

Проверка 301 редиректа

В случае, если при обращении к старой странице перенаправление не происходит или код статуса HTTP не «301 Moved Permanently» — проверьте корректность настройки редиректа.

Что делать, если 301 редирект не работает?

Мы не в силах перечислить все причины, по которым может не работать 301 редирект, но отметим самые распространенные. Вот список проблем, из-за которых чаще всего не работает переадресация:

  1. Синтаксические ошибки

    Проблема банальна и всем понятна, однако до сих пор остается самой распространенной. Пожалуйста, обращайте внимание на синтаксис. Любой лишний пробел, перенос строки или точка способы изменить работу команд. Если Вы копируете инструкции для файла .htaccess из Интернета, убедитесь, что вместе с кодом Вы не вставили лишние пробелы, комментарии или нумерацию строк.

  2. Использование URL адреса с параметром

    Умещающийся в одну строчку «упрощенный» вариант редиректа в файле .htaccess вида:

    Redirect 301 "old_url" "new_url"

    Работает исключительно с URL адресом без каких либо параметров. То есть, такая команда работать не будет:

    Redirect 301 /index.php?productID=1109 http://dh-agency.ru/for-seo/

    А вот такая, будет:

    Redirect 301 /index.php http://dh-agency.ru/category/for-seo-professionals/

    Для переадресаций с префиксами в URL (в нашем случае «?productID=1109») необходимо использовать RewriteCond и RewriteRule.

  3. Некорректное расположение

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

  4. Отключен модуль mod_rewrite

    При создании переадресации в файле .htaccess убедитесь, что у Вас подключен и активирован модуль mod_rewrite. Подробнее об этом мы писали Выше.

  5. Некорректная настройка плагинов

    В случае использования готового решения для CMS систем (плагина, модуля, компонента и т.д.) ознакомьтесь с инструкцией или найдите видео урок. Даже в интуитивно понятном интерфейсе возможно допустить ошибку. Неправильно настроенный модуль может сильно повлиять на корректность индексации. К сожалению, не все ошибки связанные с редиректом возможно выявить сразу. Иногда их находят только после появления исключенных страниц в Яндекс Вебмастере.

Какой он — правильный 301 редирект?

Правильный 301 редирект отвечает всем нижеперечисленным требованиям:

  1. Ведет на страницу без последующих перенаправлений. То есть, если Вы сделали редирект со страницы А на страницу Б, то с последней (Б) уже не должно быть никаких переадресаций. Она должна быть конечной точкой, куда попадет пользователь;

  2. Переадресовывает на страницу, код ответа которой 200 ОК. То есть, проще говоря, на существующий и доступный раздел. Неприемлемо делать перенаправление на несуществующую или ограниченную в доступе страницу;

  3. Сделан без синтаксических и логических ошибок;

  4. 301 redirect выбран осознанно. Убедитесь, что Вам нужен именно он, а не 302-ой или 307-ой. Выбор типа переадресации очень важен, ведь с точки зрения SEO, разница между ними глобальна;

  5. Был сделан сознательный выбор между атрибутом rel=»canonical» и перманентным редиректом. Не стоит делать переадресации когда попало;

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

Как убрать 301 редирект?

Если Вам необходимо убрать 301 редирект, происхождение которого неизвестно, то придется сделать несколько достаточно простых шагов. Что бы их выполнить потребуется доступ к CMS, корневому каталогу сайта и поверхностные знания php/html.

  • Шаг 1. Определяем откуда и куда сделано перенаправление

    Априори считается, что если человек хочет убрать редирект, то он знает откуда и куда он ведет. Скорее всего так и есть. Просто напомним, что в Яндекс Вебмастере есть раздел «Страницы в поиске» -> «Исключенные страницы«, где возможно увидеть все непопавшие в индекс URL, в том числе и по причине редиректа.
    Ищем 301 редирект в Яндекс Вебмастер среди исключенных страниц

  • Шаг 2. Определяем тип перенаправления

    Чтобы убедиться, что срабатывает именно 301 редирект, необходимо зайти в «Яндекс Вебмастер» — > «Инструменты» — > «Проверка ответа сервера«. В поле «Опрашиваемый URL» вводим адрес страницы, с которой происходит переадресация. Результатом проверки должен стать код «301 Moved Permanently«;

  • Шаг 3. Выясняем, каким образом сделан редирект

    Есть несколько стандартных способов сделать 301 редирект. Нам необходимо проверить их все.

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

    Если в файле .htaccess редирект отсутствует, то необходимо открыть код страницы с которой происходит перенаправление и проверить ее на наличие php вставки, отправляющей заголовок с редиректом. О том, где может находится этот код и как он выглядит мы говорили выше.

    В случае использования популярной CMS, такой как WordPress или Joomla!, необходимо будет проверить настройки всех плагинов, которые отвечают за 301 редирект. Подробнее о стандартных решениях для распространенных CMS.

  • Шаг 4. Избавляемся от переадресации

    Теперь осталось самое простое — убрать переадресацию. Для этого просто удаляем код, который отвечает за 301 редирект. В случае, если используется плагин, возможна простая деактивация в один клик.

  • Шаг 5. Проверяем работу

    После того, как 301 редирект будет убран, необходимо проверить действительно ли переадресация отсутствует. Так как браузеры привыкли кэшировать любые редиректы, лучше всего воспользоваться сервисом. Самый простой и доступный — Яндекс Вебмастер. О нем мы говорили выше, в шаге 2. Но, также есть и множество бесплатных online инструментов, которые широко доступны даже без регистрации. Один из них: redirectdetective.com

Понравилась статья? Сделай репост

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

Войти с помощью: