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

page_watches 285141 page_stars
img-border How to do 301 redirect with htaccess

Содержание

 

 

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

 

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

 

301 Moved Permanently

301 редирект – это постоянная переадресация, которая передает приблизительно 90-99% веса ссылки. Такое перенаправление говорит, что страница была перенесена на новый адрес, а предыдущий URL-адрес должен считаться недействительным (устаревшим). Чаще всего используется для проставления редиректа с одной страницы на другую без потери веса ссылки.

 

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

302 редирект означает временное перенаправление. Такая переадресация практически не передает ссылочного веса, и в основном её не следует использовать. Сегодня сеть Интернет работает на основе нескольких протоколов. Один из них – HTTP протокол, с помощью которого определяется, как управлять URL-адресами. В двух вариантах данного стандарта код ответа сервера будет отличаться:

 

307 Moved Temporarily (HTTP 1.1 Only)

307 редирект в протоколе HTTP 1.1 получил 302 перенаправление. Хотя основные поисковые роботы будут рассматривать его как альтернативу переадресации с кодом 302, но практически в любых ситуациях лучше применять 301 редирект. Исключить из правила можно только ситуации, когда контент перемещался на краткий период времени (к примеру, когда сайт закрывался на техническое обслуживание), а поисковики уже определили, что ваш сервер работает по протоколу HTTP 1.1. Трудно выяснить действительно ли поисковые роботы понимали, что ваш сервер имеет совместимость с этим стандартом. Поэтому для недолгосрочного перенесения контента проще пользоваться 302 редиректом.

 

Другие виды редиректов

В арсенале оптимизаторов есть и другие типы переадресаций: использование обновления мета-данных (Meta Refresh) или через JavaScript. Они запускаются на страницах, а не на сервере.

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

 

Канонизация домена сайта или как склеить домен?

 

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

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

Во вторых, это используется при 1) возникновении необходисомости убрать дублированный контент; 2) переезде на новый домен.

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

Redirect 301 / http://www.website.com/

Для склейки домена с www с адресом без www:

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

Для склейки без www на www:

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

Для правильного выбора основного варианта склейки рекомендуется учитывать:

 

Канонизация слеша в конце URL

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

Поэтому, после выбора одного варианта на веб-ресурсе вам стоит настроить такие переадресации:

Чтобы удалить слеш в конце:

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

Для добавления слеша в хвосте адреса:

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

Переадресация с одной страницы на другую:

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Переадресация для зеркал домашней страницы

Нижеприведенный фрагмент кода дает гарантию, что все урлы главной страницы, включающие несколько вариантов прямых ссылок на страницу, к примеру, default.htm или index.html, будут перенаправлены на каноническую домашнюю страницу, http://www.site.com/:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1 [L,R=301]

 

Редирект каталога

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

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]

Но если урл старого каталога начинается непосредственно после имени домена: www.site.com/old-catalog/, то стоит применить следующий код

RewriteRule old-catalog /(.*) / old-catalog /$1 [R=301,L]

 

Переадресация при изменении файловых расширений

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

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

 

Примеры использования для предотвращения появления на сайте дубликатов страниц

 

Построение редиректов из различных доменов и поддоменов

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

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

В идеале все дополнительные доменные адреса, включая www.site.ru, www.site.net, test.site.com, будут переадресованы на основной источник www.site.com.

 

Как удалить несколько слешей либо тире в адресе сайта

Бывают случаи, когда по неизвестным причинам адрес может включать несколько слешей, например, www.site.com/catalog////page-3.html. Здесь необходимо проставить 301-редирект на страницу с одним слешем www.site.com/catalog/page-1.html:

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

Также доступна опция объединения нескольких тире в одно из URL-адреса: от www.site.com/catalog/page-1.html:

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

 

Как сделать переадресацию с любого URL на адрес с нижним регистром?

Так как поисковики учитывают разницу с разным регистром букв, при разработке веб-ресурса настоятельно рекомендуется добавлять все 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();
}

 

Самая лучшая стратегия для 301 редиректов

 

Самой выгодной стратегией перехода на новый домен будет учитывать все основные правила двух главных поисковиков – Google:

Код для старого сайта будет иметь такой вид:

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www\.site\.com
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

При этом в файле robots.txt для старого сайта прописываем:

User-agent: Google
Disallow:
Host: newsite.com

 

Создание 301 редиректов

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

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

 

Как проверить 301 редирект?

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

Для более комплексной проверки редиректов существует еще несколько надежных сервисов:

 

В каких случаях использовать 301 редирект, а в каких Canonical?

 

Несмотря на некоторые особенности, Google дает вполне конкретные правила по работе с редиректами. Если выражаться простыми словами, вот как поисковые системы понимают эти инструкции:

 

301 – Эй, поисковые системы: моей страницы больше нет, и теперь она переместилась в другое место. Прошу вас удалить из индекса старую страницу и передайте её ссылочный вес новому адресу.

 

Canonical – Эй, поисковые системы: у меня есть несколько вариантов этой страницы, поэтому прошу вас индексировать только её каноническую версию. Другие страницы будут доступными для пользователей, и они смогут их просматривать, но не индексируй их, и передай весь вес ссылки на страницу, которая является предпочтительной.

 

Когда лучше применять 301 редирект?

 

Где лучше использовать rel=”canonical”?

В общем

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

 

Ошибки при использовании редиректов

 

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

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

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

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

Неправильный выбор при использовании rel=”canonical” вместо 301 redirect. Смотрите объяснения в тексте выше.

Переадресация, в которой конечная точка это не 200-я страница. Она должна привести к странице с кодом сервера 200. Иначе лучше не запутывать поисковые машины и предоставлять им 404 ответ.

Перенаправление файла robots.txt. Поскольку, к примеру, вам нужно внести директиву Host для Yandex в случае склейки доменов.

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 4.78 out of 5)
Loading...

Interesting now

Как провести анализ ссылочного профиля конкурентов с помощью Ahrefs и Linkstrategy?

Один из мифов, который Google успешно распространяет среди веб-мастеров и SEO-специалистов последние годы - это

Значение микроразметки Schema.org для SEO и примеры её внедрения

Что такое микроразметка Schema? И что такое структурированные данные? Можете ли вы дать определение

Что такое посадочная страница и как правильно её создать?

Сегодня многие веб-мастера начинают спрашивать себя, как самостоятельно создать посадочную страницу на Joomla,

Правила создания страницы благодарности

С детства нас учат благодарить наших родителей за то, что они делают для нас. Когда ты говоришь спасибо это

Какой должна быть плотность ключевых слов на странице?

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

Что такое возраст домена и как он влияет на позиции сайта в поиске?

Сегодня множество SEO менеджеров и веб-мастеров в работе регулярно используют программы и инструменты для

Show more

sent-mail

Ссылка на пароль была отправлена вам на e-mail

Пароль изменен