Зачастую при переезде сайта или его отдельной страницы на новый адрес теряются позиции в поисковой выдаче, что неминуемо влечет за собой потерю клиентов. Избежать этого можно, если правильно настроить редирект 301 и уметь им правильно пользоваться. Этот метод универсален даже при полной смене URL всего сайта или одной из его страниц. В этом обзоре мы предлагаем полное руководство по реализации этой задачи.
Canonical – это тег, применяемый лишь в том случае, если поисковым роботам нужно передать единый адрес страницы. Он особенно полезен для интернет-магазинов, предлагающих большой ассортимент в одной категории и на одной странице, без отдельных подгрупп на каждый товар.
При использовании этого тега нужно настраивать динамические переменные для URL-адреса – это позволит провести индексацию сразу нескольких отдельных страниц. Однако на них будет автоматически дублироваться все основное содержимое. Но стоит предупредить, что большинство поисковиков не любят такой метод, в отличие от способа, при котором можно поставить редирект 301. Именно поэтому лучше использовать именно его вместо rel=canonical.
В чем же главное преимущество редиректа 301 и почему лучше настроить именно его:
Еще один весомый аргумент заключается в том, что canonical нередко приводит к потере комментариев или других связанных данных, которые выполняют далеко не последнюю роль в поисковой выдаче.
Самым постоянным и стандартным является 301 Moved Permanently, с помощью которого удается передать около 99% всей массы ссылок, присутствующей у изначального адреса. Дополнительно в поисковую систему будет передано уведомление о том, что предыдущий URL является старым и больше не используется.
Решением на непродолжительное время является 302 Found (HTTP 1.1) / MovedTemporarily (HTTP 1.0) – он используется довольно редко, поскольку не обладает возможностью передавать ссылочный вес. Ваш сервер сможет отвечать на этот тег такими формулировками:
Альтернативный дополнительный вариант решения – 307 MovedTemporarily (HTTP 1.1 Only). К нему прибегают, если контент сайта будет перемещен на время – например, пока на основной площадке ведутся технические работы. После их окончания он обязательно должен вернуться в исходное место. Поисковые системы при этом будут воспринимать сервер сайта так, как будто он совместим с HTTP 1.1. Однако постоянно проверять, как именно роботы определяют интернет-ресурс, практически невозможно, поэтому в таком случае лучше все же прибегнуть к редиректу 302.
По сути, 301 тег стал продолжением 302, но рассчитанным на протокол HTTP 1.1. Но с целью постоянного перенаправления пользователей на другую страницу все же лучше использовать версию 301.
Без настройки редиректа 301 не обойтись в таких случаях:
Реже всего редирект 301 применяется при необходимости удалить дубли страниц, хотя с его помощью можно организовать этот процесс в ускоренном режиме. Использовать тег лучше лишь в том случае, если намечается серьезная работа по поисковому продвижению.
С помощью 301 редиректа можно передать полный вес страницы, но без транслирования санкций на новый URL. Поэтому тег является идеальным решением, если ресурс попал в блок среди поисковых систем по какой-либо причине.
Не обойтись без редиректа 301 при продвижении сайта, причем он требуется буквально с первых дней. В таком деле, как «склейка зеркал», тег позволяет избежать размывания всей ссылочной массы. Например, если один ресурс указывает URL с www, а другой – просто название. Поисковые системы используют обычно только один вариант, оставляя второй «в тени».
Для настройки редиректа 301 лучше всего использовать файл .htaccess. Чтобы внести в него изменения через FTP, нужно применять бесплатный клиент FileZila. Также настроить 301 редирект через htaccess можно в офлайн-режиме в редакторе Notepad++.
Во время процесса потребуются следующие кодовые команды:
Перед стартом команд сверху всех кодов нужно прописать в первой строке «RewriteEngineOn».
Откройте 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», указанный в коде выше, заменить на адрес вашего сайта, а также сохранить файл и перезалить его на сервер.
Поисковые роботы могут по-разному воспринимать адрес сайта, если в конце него присутствует или отсутствует слеш. Его наличие следует продумать еще до создания интернет-ресурса, чтобы потом не возникало проблем с продвижением.
Если адрес будет без слеша, пропишите:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Если со слешем:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Если адрес интернет-ресурса написан на кириллице и нужно перенаправить посетителей с одного URL на другой, необходимо прописать такую строчку:
RewriteRule ^старый-урл.html /new-page.html [R=301,L]
Все кодовые команды, написанные выше, предусматривают использование редиректа 301 для перенаправления в рамках одного сайта. Причем эту строчку можно упростить, применив:
Redirect 301 /old-page.html http://site.ru/new-page.html
Использовать можно оба варианта командных строк, поскольку каждый из них показывают полную передачу ссылочного веса. Для второго вида кодировки нужно соблюдать особую внимательность, переписывая сначала старый адрес, а затем новый целиком.
Если помимо смены адреса планируются изменения протокола сайта, нужно также настроить редирект с https на http. Для решения этой задачи есть довольно много способов, однако самыми популярными являются два.
Вариант №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]
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Эта команда должна заменить две предыдущие. Но помните:
Эти команды для настройки перенаправления используются чаще всего. Их хорошо понимает поисковая система Google, но для Яндекса желательно прописать еще такой код в файле robots.txt:
User-agent: Yandex Disallow: Host: domain.com
Для настройки 301 редиректа можно использовать скрипты ASP, PHP или JavaScript. Для этого передайте браузеру или поисковому роботу такие заголовки:
HTTP/1.1 301 Moved Permanently
Location: http://vash-sait.ru/category/novaya-stranitsa.html
Дальше все зависит от того, что за скрипт вы будете использовать:
php 301 редирект
Этот код следует прописать в самом начале PHP–файла:
Не забудьте заменить использованный в примере адрес на ту страницу, куда стоит перенаправить поискового робота или пользователей. Редирект на ASP
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://vash-sait.ru/novaya-stranitsa.html");
exit();
?>
<%@ 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 редиректа, переадресация отказывается работать. Также она может работать с определенными сбоями или выдавать некорректный результат. Решить эту проблему обычно удается, если исправить возможные ошибки вручную.
Один из вариантов – проверить .htaccess. В Apache должны присутствовать расширения mod_rewrite. При их отсутствии редирект может работать некорректно или совсем не срабатывать, даже если все остальные действия выполнены верно. Чтобы команда показывала нужный результат, в нем должны присутствовать две строки – ReWriteEngine и mod_rewrite.
Найти несоответствие входных данных решаемой задаче в строках RewriteCond позволит использование [NC]. Если кодировка отсутствует, то часто адреса, в составе которых есть строчные и заглавные буквы, не будут срабатывать.
В кодировке [L,R=301] буква L говорит о файле движка, как о последней строчке кода всего процесса при введении данных. При отсутствии уверенности в том, что конфигурация кода в .htaccess является корректной, лучше использовать букву L в той строчке, которая считается приоритетной.
Важный момент – многократная переадресация. Ее применение заметно уменьшается скорость загрузки страницы или всего сайта, зачастую это приводит к потере уже имеющихся позиций.
После внесения любых изменений нужно обязательно обновлять файл sitemap.xml.
В конце концов, доверить настройку редиректа 301 можно программному специалисту, который владеет всеми алгоритмами процесса. Это позволит не допустить ошибок, на исправление которых потом придется тратить время, уступая первые позиции в выдаче конкурентам.
Как и любую кодовую настройку, редирект 301 можно не только включить, но и отключить. Проще всего сделать это, если он был запущен через редактор .htaccess.
Нужно перейти в корневой каталог сайта, открыть файл .htaccess. и там удалить строки, которые были добавлены при настройке редиректа 301. Все внесенные изменения нужно обязательно сохранить. Например, если при настройке была подключена переадресация с одного домена на другой, нужно удалить следующие строчки:
RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule(.*) http://new-site.ru/$1 [R=301,L]
Где old-site.ru – это название исходного домена, с которого настраивалась переадресация, а new-site.ru – новый домен, на который был сделан редирект.
Сложнее всего отменить переадресацию, которая была проведена на уровне сайта, когда была обновлена структура папок, были добавлены или удалены определенные параметры, а также осуществлен переход с http на https. Корректно убрать редирект получится лишь в том случае, если структура поддоменов и корневой домен остались без изменений.
Любые изменения в сайте могут привести к необратимым последствиям, а еще больше проблем способна доставить отмена этих коррективов, если они не принесли желаемого результата. Поэтому любые процедуры с настройкой редиректа 301 для переадресации так же, как и с его удалением, лучше доверить техническому специалисту.