Что такое 301 редирект и как его правильно настроить

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

Янв 31, 2025 - 06:57
 0
Что такое 301 редирект и как его правильно настроить

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

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

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

Редирект — это перенаправление пользователя с одного url-адреса на другой.

Существует много видов редиректа, но чаще всего, наряду с 301, используются 302 (302 Found) и 303 (See Other), которые означают временное перенаправление, что чревато образованием страниц-дублей и рассеиванием ссылочного веса между ними.

Нас же, в первую очередь, интересует 301 редирект сайта. Он отличается тем, что с его помощью можно осуществить постоянную переадресацию с неактуальных адресов страниц на актуальные (301 редирект с одной страницы на другую), а также перенаправление с одного сайта на другой (301 редирект с домена на домен), не теряя при этом трафик.

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

Теперь рассмотрим, какие проблемы можно решить с помощью 301 редиректа.

Когда нужен 301 редирект?

  1. При склеивании зеркал ресурса

    Зачастую у сайта имеется несколько зеркал, то есть идентичных по содержанию, но имеющих отличия в написании url-адресов, версий. Их создание оправдано многими причинами. При работе над SEO-аудитом часто требуется производить склейку зеркал, то есть настройку 301 редиректа с неосновных зеркал сайта на основное, чтобы не рассеивать усилия по продвижению на несколько доменов.

    В противном случае сайт будет доступен для индексирования роботом по всем зеркалам, таким как https://, http://, https://www и http://www. Робот считает, что все сайты разные, и каждое зеркало просканирует отдельно, что может привести к неправильному распределению ссылочной массы на разные зеркала и негативно повлиять на продвижение ресурса.

  2. При переносе сайта на другой домен или при переходе на другой хостинг со сменой адреса сайта

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

  3. При переходе на мобильные версии сайта

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

  4. При удалении ранее существовавшей страницы

    Чтобы пользователи не сталкивались с 404 ошибкой при переходе на уже удаленную страницу, можно сделать 301 редирект с несуществующей страницы на главную или иную страницу со схожим контентом.

  5. При изменении URL разделов и страниц, а также переносе разделов на субдомены

    При любых изменениях в названии ссылок на страницы с актуальным контентом нужна настройка 301 редиректа.

  6. При дублях

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

Что выбрать: 301 редирект или rel="canonical"?

Тут может встать вопрос: зачем использовать 301 редирект, если можно использовать атрибут rel="canonical"? Давайте выяснять.

301 редирект необходим, когда страница навсегда переехала в другое место, и по старому адресу она доступна не будет. С помощью редиректа можно удалить ее из индекса и передать вес на новую страницу.

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

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

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

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

Как настроить 301 редирект: способы и коды на все случаи переадресации

301 редирект через .htaccess

Наиболее популярный метод, подходящий для сайтов, работающих на веб-сервере Apache.

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

Для получения доступа к нему следует зайти в панель управления хостинга, на котором находится нужный сайт. Либо найти файл через этот протокол FTP, при наличии доступа.

Некоторые используемые символы в 301 редиректе через .htaccess:

\ — экранирующий слеш, сохраняющий символы, идущие после него в исходном виде

^ — начало строки

$ — конец строки

! — знак отрицания

. — любой символ

( ) — обозначение группировки символов

# — комментарии

Важно: если .htaccess уже существует, не забудьте сделать его резервную копию! Работать в файле следует осторожно, соблюдая основные правила настройки, среди них:

  • условия прописывать в блоке IfModule;

  • перед правилом переадресации прописывать команду RewriteEngine On;

  • прописывать в конце правила флаг [R=301,L], указывающий на 301 редирект;

  • соблюдать последовательность – от частных правил к более общим.

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

Итак, примеры настройки 301 редиректа через .htaccess:

  • Перенос домена

    301 редирект через .htaccess часто используется для перевода пользователей, а также поисковых роботов, со старого сайта на новый. Для настройки необходимо открыть файл .htaccess и после строк (если их нет, то их следует добавить в конец файла внутри блока IfModule)

    RewriteEngine On

    RewriteBase /

    вставляем следующий код:

    RewriteCond %{HTTP_HOST} ^old\-site\.ru$ [NC]

    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

    Где:

    old-site.ru — домен, с которого настраиваем редирект;

    new-site.ru — домен, на который настраиваем редирект.

  • Переезд с http на https

    301 редирект в .htaccess также применяется для настройки переезда домена с http на https, все действия практически аналогичны вышенаписанным.

    Также в блоке IfModule после RewriteEngine On вписываем следующий код:

    RewriteCond %{ENV:HTTPS} !on

    RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

    где https://domain.ru — ваш сайт.

    Или еще вариант:

    RewriteCond %{HTTPS} off

    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    В нынешних реалиях переезд на https считается практически обязательным требованием, проявлением хорошего тона к пользователям сайта. Этот протокол намного безопаснее, чем http, и, заходя на сайт с защищенным соединением, пользователь может быть спокоен, что его данные не смогут украсть злоумышленники. Подробнее про переезд на https смотрите в нашей статье.

  • Склейка домена с префиксом www и без него

    301 редирект через .htaccess хорошо работает при необходимости переадресации с сайта без www на сайт с www (и наоборот). Вот один из возможных вариантов 301 редиректа с домена на домен:

    При переносе с домена без www на домен с www

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]

    RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

    При переносе с домена с www на домен без www

    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]

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

  • 301 редирект для внутренних страниц

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

    Redirect 301 /page-old/ https://site.ru/page-new/

  • 301 редирект со страниц со слешем на страницы без слеша, и наоборот

    Если возникают дубли страниц сайта со слешем и без слеша на конце, то 301 редирект в .htaccess может решить эту проблему:

    Со слеша на без

    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 редирект для файлов

    Если возникает необходимость изменить имена файлов (например, изменить расширение htm на html), не переименовывая и не перезаливая их на сервер, то в этом случае также поможет 301 редирект в .htaccess:

    RewriteEngine on

    RewriteBase /

    RewriteRule ^(.*)\.htm$ $1.html [R=permanent]

301 редирект с помощью скрипта отправки заголовка

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

  • 301 редирект через PHP

    Является также достаточно распространенным вариантом. Однако выполняется такой редирект немного медленнее, нежели 301 редирект через .htaccess. Для настройки 301 редиректа прописываем вот такой код в самом начале PHP-файла страницы, с которой требуется перенаправление:

    header("HTTP/1.1 301 Moved Permanently");

    header("Location: http://www.newdomain.ru/newdir/newpage.htm");

    exit();

    ?>

    Менее распространенные способы настройки 301 редиректа с помощью скрипта отправки заголовка:

  • ASP-редирект

    <%@ Language=VBScript %>

    <%

    Response.Status="301 Moved Permanently"

    Response.AddHeader "Location", "http://www.new-url.com/"

    response.end

    %>

  • ASP.NET-редирект

301 редирект с помощью JavaScript

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

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

Так мы настроили переадресацию с задержкой 2 секунды.

301 редирект с помощью HTML

Этот редирект также работает на стороне браузера, а значит, скоростью перенаправления блистать не будет.

Для настройки 301 редиректа на странице, с которой он будет производиться, в теге head добавляем следующий код:

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

Настройка 301 редиректа для Nginx

Веб-сервер Nginx является вторым по популярности после Apache. Для Nginx 301 редирект с одной страницы на другую настраивается путем добавления в файл конфигурации (nginx.conf) следующего кода:

if ($host = 'www.domain.com' ) {

rewrite ^(.*)$ http://domain.com$1 permanent;

}

Настройка 301 редиректа в файле Web.config

Для сервера IIS настройка 301 редиректа выполняется в XML файле web.config. Там же находятся все основные настройки сервера. 301 редирект с одной страницы на другую выглядит следующим образом:

Другие способы настройки 301 редиректа

  • 301 редирект через интерфейс управления сервером. Большинство хостинг-панелей имеют свои инструменты для настройки редиректа.

  • 301 редирект через настройки системы CMS и плагины. Некоторые системы управления содержимым обладают возможностями настройки 301 редиректа прямо в панели управления сайтом (о возможностях переадресации можно прочесть в документациях конкретных CMS). Кроме того, созданы специальные плагины, например, Safe Redirect Manager, Per page add to head для Wordpress, Менеджер 301 редиректов для OpenCart.

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

    • Seomagnifier. С помощью этого сервиса можно создать код 301 редиректа с домена с www на домен без него, и наоборот.

    • 301 Redirect Code Generator. Позволяет сгенерировать код для 301 редиректа с одной страницы на другую, 301 редиректа с домена на домен и других.

    • Redirect generator. Еще один генератор 301 редиректа с удобным интерфейсом.

    • Simple Htaccess Redirects & Rewrite Generator. Универсальный генератор редиректов, с помощью которого можно настроить основной url, как со слешем в конце адреса «/», так и без него.

После настройки 301 редиректа важно оперативно проверить результат своего труда, проконтролировав получаемые ответы сервера с помощью инструментов Яндекс.Вебмастера, Google Search Console, или других специальных сервисов (так называемых чекеров, например, PrCy checker, Redirect checker).

Вместо выводов

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

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

А если самостоятельная настройка 301 редиректа покажется непростой задачей, можно смело обратиться за помощью к нам :) Специалисты 1PS.RU не только грамотно настроят 301 редирект, но и сделают SEO-аудит, а также многие другие работы по улучшению сайта.