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

      Комментарии к записи Что такое 301 редирект и когда его стоит использовать? отключены

 

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

 

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

 

301 Moved Permanently

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

 

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

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

  • HTTP 1.0: 302 с ответом сервера “Moved Temporarily” (Временно перемещен) – веб-документ временно перенесен на другой URL-адрес.
  • HTTP 1.1: произошло изменение в ответе сервера на «Найдено» – веб-документ был найден.

 

307 Moved Temporarily (HTTP 1.1 Only)

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

 

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

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

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

 

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

 

Для склейки домена с 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-адреса:

  • https://www.site.com/cat1/
  • https://www.site.com/cat1

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

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

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 https://www.site.com/newpage.html

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

Нижеприведенный фрагмент кода дает гарантию, что все урлы главной страницы, включающие несколько вариантов прямых ссылок на страницу, к примеру, default.htm или index.html, будут перенаправлены на каноническую домашнюю страницу, https://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)$ https://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$ https://www.site.com$1.html

 

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

 

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

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

RewriteCond %{HTTP_HOST} !^www\.site\.com
RewriteRule ^(.*)$ https://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: https://" . $_SERVER['HTTP_HOST'] . $lowerURI);
exit();
}

 

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

 

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

  • Проставляем 301 редирект со старого на новый сайт.
  • Хотя мы не делаем переадресации для служебного файла robots.txt, но прописываем директиву Host для нового домена.

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

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

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

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

 

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

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

  • https://www.webconfs.com/seo-tools/similar-page-checker/
  • https://www.rapidtables.com/web/tools/redirect-generator.html

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

 

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

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

  • Работает ли вообще сайт? – зайдите на главную страницу;
  • проверьте все ключевые страницы и разделы сайта на предмет ошибок.

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

  • https://bertal.ru/ – предоставляет максимально комплексные данные об ответах сервера.
  • https://www.internetmarketingninjas.com/header-checker/.

 

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

 

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

 

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

 

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

 

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

  • По дефолту – это наиболее приемлемый способ.
  • В случае со страницами – если страница перемещается очень часто или она получила новый адрес.
  • При работе с доменами – когда веб-ресурс переехал на новый домен (в случае ребрендинга, продажи и других ситуаций).
  • Для страниц с кодом 404 и контента, который потерял свою релевантность (если у вас есть более подходящий контент). К примеру, если вы удаляете продукт из своего каталога, то можете перенаправить посетителей на аналогичный/похожий продукт или к той категории, к которой он относится.

 

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

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

В общем

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

 

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

 

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

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

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

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

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

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

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

Статья взята с сайта: https://sitechecker.pro/