Увеличиваем продажи и привлекаем клиентов из интернета
Звоните ПН–ПТ с 09:00 до 18:00
12 вариантов как настроить 301 редирект

12 вариантов как настроить 301 редирект

29 октября 2018
3727
12 вариантов как настроить 301 редирект

Из этой статьи вы узнаете

Согласитесь, неприятно терять позиции в поисковой выдаче и клиентов из-за переезда сайта или отдельной его страницы на новый URL. К счастью, есть вариант, который позволяет остаться «при своих» – нужно всего лишь знать как настроить 301 редирект и сделать это. Как именно это правильно реализовать вы узнаете из этой статьи.

Почему стоит использовать 301 редирект, а не canonical?

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

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

Почему лучше настроить 301 редирект вместо rel=canonical? И что такое 301 редирект?

  1. 301 редирект обязателен к исполнению в отличие от тега canonical.
  2. Он перенаправляет посетителя одной страницы или сайта на другую, прописанную в коде команды.
  3. Канонический URL необходимо прописывать для каждой страницы, а 301 редирект можно прописать сразу для всего сайта, внеся команду всего лишь в один файл.
  4. Тег canonical может привести к потере связанных данных – комментариев, соцсетей. А они важны для продвижения сайта в поисковой выдаче.

Как сделать 301 редирект: выбираем подходящий вид

301 Moved Permanently

Такой 301 редирект является постоянным. Он передает до 99% ссылочного веса, который был у исходного URL. Одновременно с этим поисковому роботу передается команда, что старый адрес устарел.

302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)

302 редирект – временное решение. Он не передает ссылочный вес, поэтому его практически не используют. В зависимости от протокола HTTP, ответ сервера при использовании этого тега может быть таким:

  • HTTP 1.0: 302 или «Moved Temporarily» – документ временно перемещен;
  • HTTP 1.1 или «Found» – документ не найден.

307 Moved Temporarily (HTTP 1.1 Only)

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

Если вы перемещаете контент на время, можно воспользоваться 307 редиректом. Например, он актуален на время техработ. В этом случае поисковые роботы будут воспринимать сервер вашего сайта как совместимый с HTTP 1.1. Но так как невозможно отследить как именно поисковые системы определяют сайт, рекомендуем отдать предпочтение 302 редиректу.

Когда стоит настраивать 301 редирект?

Вам стоит настроить 301 редирект, если:

  • будет происходить склеивание зеркал сайта, то есть адреса с www и без;
  • «переезжаете» на новое или другое доменное имя;
  • переносите сайт на другую CMS;
  • меняете адреса страниц;
  • удаляете дубли.

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

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

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

Как настроить 301 редирект через .htaccess?

Удобнее всего настраивать 301 редирект в файле .htaccess. Чтобы это сделать правильно, вы будете использовать следующие операторы выражений:

  • ^ — ограничение слева;
  • $ — ограничение справа;
  • — 0 и более символов;
  • + — 1 и более символов;
  • . — любой символ;
  • \ — экранирование;
  • () — переменная;
  • [] — диапазон значений.

Изменения в файл .htaccess можно внести через FTP, используя FileZila, или в режиме офлайн при помощи редактора Notepad++.

В самом начале вам нужно будет прописать такую строку поверх всех кодов:

RewriteEngine On

Подробная инструкция как настроить 301 редирект при помощи директив в .htaccess

Откройте Notepad++и пропишите:

С www на без www:

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

С без www на www:

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

Если не помогло, пропишите следующее:

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

Не забудьте «site.ru», указанный в коде выше, заменить на адрес вашего сайта, а также сохранить файл и перезалить его на сервер.

Редирект 301 без слеша

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

Если адрес будет без слеша, пропишите:

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

Если со слешем:

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

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

Если вам нужно перенаправить пользователей с адреса на кириллице на новый URL, нужно прописать:

RewriteRule ^старый-урл.html /new-page.html [R=301,L]

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

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

Оба варианта одинаково удачны, так как практически полностью передают ссылочный вес. Но если вы решите воспользоваться второй командой Redirect, внимательно пропишите сначала старый адрес, а затем – новый полностью.

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

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

Вариант №1:

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

Работает в 99% случаев. Но если не сработает, воспользуйтесь

вариантом №2:

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

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

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

Эта команда должна заменить две предыдущие. Но помните:

  • следует прописать строку Options + FollowSymLinks;
  • нужно обязательно прописать строку RewriteEngine On;
  • расположите строки с редиректом СРАЗУ после строки RewriteEngine On;
  • используйте только имя файла .htaccess;
  • внимательно замените файл .htaccess в корневом каталоге;
  • не забывайте поменять domain.com в примере команды на свой домен.

Эти команды для настройки перенаправления используются чаще всего. Их хорошо понимает поисковая система Google, но для Яндекса желательно прописать еще такой код в файле robots.txt:

User-agent: Yandex Disallow: Host: domain.com

Как сделать 301 редирект без изменения файла .htaccess

Для настройки 301 редиректа можно использовать скрипты ASP, PHP или JavaScript. Для этого передайте браузеру или поисковому роботу такие заголовки:

HTTP/1.1 301 Moved Permanently Location: http://vash-sait.ru/category/novaya-stranitsa.html

Дальше все зависит от того, что за скрипт вы будете использовать:

php 301 редирект

Этот код следует прописать в самом начале PHP–файла: header("HTTP/1.1 301 Moved Permanently"); header("Location: http://vash-sait.ru/novaya-stranitsa.html"); exit(); ?>

Не забудьте заменить использованный в примере адрес на ту страницу, куда стоит перенаправить поискового робота или пользователей.

Редирект на ASP

<%@ Language=VBScript %> <% Response.Status=“301 Moved Permanently” Response.AddHeader “Location”, “http://vash-sait.ru/novaya-stranitsa.html” response.end %>

РедиректASP.NET

ДляRuby on Rails

def old_action headers[“Status”] = “301 Moved Permanently” redirect_to “http://vash-sait.ru/novaya-stranitsa.html” end

Для JSP (Java)

<% response.setStatus(301); response.setHeader( “Location”, “http://vash-sait.ru/novaya-stranitsa.html” ); response.setHeader( “Connection”, “close” ); %>

Для CGI PERL

$q=new CGI; print $q->redirect(“http://vash-sait.ru/novaya-stranitsa.html”);

ColdFusion редирект

<.cfheader statuscode=“301” statustext=“Moved permanently”> <.cfheader name=“Location” value=“http://vash-sait.ru/novaya-stranitsa.html”>

Как проверить корректность настройки 301 редиректа

Чтобы проверить корректность работы редиректа, просто введите старый адрес сайта или страницы. Перед этим почистите кэш браузера. Если вас перенаправит на новый URL, все в порядке.

Дополнительно вы можете проверить корректность работы 301 редиректа специальными сервисами или программами. Например, 2ip.ru или Netpeak Spider.

Типичные ошибки при настройке 301 редиректа

  1. Создание слишком сложного редиректа. Чем проще и короче команда, тем быстрее пройдет переход и меньше будут потери ссылочного веса.
  2. Использование неподходящей команды 301 редиректа.
  3. .Неправильные адреса в команде редиректа.
  4. Перенаправление на страницы с неподходящим контентом. Например, со страницы заказа расчета на какую-то статью блога. Пользователь не найдет нужной информации и быстро покинет сайт, что увеличит показатель отказов.
  5. Использование rel=canonical вместо 301 редиректа.
  6. Настройка перенаправления на неработающую страницу с кодом 404.
  7. Отсутствие команды редиректа для Яндекса в файле robots.txt.

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

Если переадресация не работает или работает некорректно, необходимо исправить ошибки. Например, проверить в .htaccess расширения mod_rewrite в Apache. При его отсутствии 301 редирект может не сработать. У вас должно быть две строки для корректной работы этой команды: mod_rewrite и ReWriteEngine.

Использование [NC] в строках RewriteCond помогает найти несоответствие во входных данных. Без него существует риск того, что адреса, имеющие заглавные и строчные буквы не будут работать корректно.

Применение L в коде [L,R=301] указывает на то, что файл движка воспринимается как последняя строчка кода всего процесса подтверждения ввода данных. Если вы не уверены в верности конфигурации кода в .htaccess, лучше использовать код L в строке, обозначенной как приоритетной.

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

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

Тематики

Понравился пост? Поделись с друзьями и коллегами!

Читайте также

Начните развивать ваш бизнес в интернете уже сегодня!

Остались вопросы? Звоните по телефону +7 (495) 256-08-59
или оставьте заявку и получите бесплатную консультацию от нашего специалиста
Ваш персональный менеджер Алексей Токмаков