301 редирект

Виды редиректов

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

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

Рассмотрим каждый из видов подробнее.

301

301-й можно сравнить с постоянным переездом. Когда вы уезжаете из одного дома в другой и точно не вернётесь в старый.

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

Этот вариант идеален, например, если с сайта необходимо удалить дубль — страницу, полностью дублирующую по содержанию ту, на которую идёт настройка. Однако во всех вышеперечисленных случаях он также может быть полезен.

Вариант оформления страницы ошибки 404

Поисковые системы реагируют на 301-й хорошо и сложностей обычно не возникает. Однако, если перенаправление настроено неправильно, пользователь при переходе на страницу получает ошибку 404 (не найдена).

302

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

Процесс направления со старой страницы на новую настраивается временно, параметры старой страницы остаются привязаны к ней, а не переносятся на новую.

Нередки ситуации, когда при использовании 302-го для перманентного переезда страниц, веб-мастер обнаруживал проиндексированными обе версии. Для поисковых систем это означает полное дублирование страниц, а потому одна из них (чаще всего старая) будет исключена из выдачи.

303 и 307

307-й (Temporary Redirect) для поисковых систем фактически является точной репликой 302-го (Found). Это временное перенаправление трафика на новую страницу с сохранением всех параметров прежней.

Команда, которую получает браузер, если на странице настроен 303-й тип, выглядит следующим образом (документ найден и его можно отобразить, используя GET). В HTTP 1.1 он рассматривается как полная замена 302-го редиректа.

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

How Redirection Works in PHP

In PHP, when you want to redirect a user from one page to another page, you need to use the function. The header function allows you to send a raw HTTP location header, which performs the actual redirection as we discussed in the previous section.

How to Use Header Function

Let’s go through the syntax of the function.

  • : This is the HTTP header string that you want to use. In our case, we’ll use the header for redirection.
  • : It’s an optional parameter which indicates whether the header should replace a previous similar header.
  • : It allows you to send a specific response code.

Now, let’s have a look at the following example to understand how it all works together.

When the above script is executed, it’ll redirect the client browser to http://www.yoursite.com/new_index.php. In the background, it sends a raw HTTP header along with the 302 status code. The 302 status code is used for temporary redirection, but if you want permanent redirection, you can pass the 301 code in the third argument, as shown in the following snippet.

The 301 permanent redirect allows you to inform the search bots that the page is no longer available, and it can be replaced with a new page.

Why Should You Use the or Function After the Header Redirection?

Users with sharp eyes would have noticed that I’ve used the function in the above example. In fact, it’s mandatory that you use either the or the function immediately after the header redirection to stop script execution and avoid any undesired results.

So it’s always recommended practice to use one of these functions after redirection.

The Famous Error: Headers Are Already Sent

If you’re an experienced PHP programmer, I’m sure you’ve come across this famous PHP error at some point in your day-to-day PHP development. For beginners, however, encountering this error is really annoying, since it’s really hard to debug and fix. In most cases, they don’t even have a clue that it’s caused by the header redirection.

The rule of thumb is that when you use the function in your script, you need to make sure that you don’t send any output before it. Otherwise, PHP will complain with the «headers are already sent» error. This can happen even if you’ve sent a single white space before using the header function.

Настраиваем редиректы для SEO

Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.

При настройке 301 редиректов помните о двух правилах:

  1. Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
  2. Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 100% случаев, поэтому с размещением директив нужно экспериментировать.

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

  • изменилась структура сайта и у страницы поменялся уровень вложенности;
  • страница перестала существовать, но нужно сохранить ее входящий трафик (например, в случае отсутствия товара обычно делают переадресацию на товарную категорию);
  • поменялся URL, что крайне нежелательно, но тоже встречается.

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

  • — адрес страницы от корня, без протокола и домена. Например, .
  • — полный адрес страницы перенаправления, включая протокол и домен. Например, .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

Сделать это можно при помощи модуля . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:

Переадресация на слеш или наоборот

Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

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

Редирект с без www на www

4. Перенаправляем с одного домена на другой

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

Воспользуйтесь одним из вариантов кода:

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

Зачем настраивать редирект

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

Для указания главной версии сайта

Возможно, вы замечали, что адрес одних сайтов начинается с https, а других — с http. Также иногда в адресе указан префикс www, а иногда его нет. Выбор протокола и решение использования www перед основным доменом определяют главное зеркало ресурса. Это основная версия сайта, на которую перенаправляют всех пользователей, если они вводят в строку поиска альтернативный вариант URL-адреса.

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

Для решения проблемы дублей

Дубли страниц возникают не только из-за разных протоколов и префикса www в URL-адресе, но и по ряду других технических причин. Также иногда дублируется сам контент — страницы-копии обычно удаляют, а с них настраивают редирект.

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

Перенаправление при добавлении завершающего слеша

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

Ниже мы адаптировали схему, которой аналитик Google Джон Мюллер поделился в своем аккаунте Twitter.  

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

Решить проблему можно двумя способами: использовать тег canonical либо установить перенаправление на нужный вам вариант страницы.

Перенаправление при использовании расширения файлов в URL

Иногда в конце адреса страницы указывается расширение файла, например, .html, .htm, .php, .aspx. Чтобы пользователь, вбивая в строку поиска URL вида https://site.com/page/, все равно попал на страницу https://site.com/page.html и чтобы избежать дублирования контента, используется перенаправление.

Перенаправление URL-адреса в нижний регистр

Один и тот же URL-адрес, прописанный в верхнем и нижнем регистре, — это две разные страницы. Правило хорошего тона — использовать в URL нижний регистр. Поэтому чтобы адрес вида https://site.com/PAGE/ был доступен только как https://site.com/page/, также применяется перенаправление. Естественно, редирект здесь нужен и для того, чтобы предотвратить проблемы с дублями. 

Для сохранения ссылочного веса и трафика при смене URL

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

Например, вы использовали страницу https://site.com/festivals-2020/, но в конце года решили обновлять контент страницы и публиковать на ней все фестивали следующего года. Чтобы убрать из URL-а прошлый год, вы решаете создать новую страницу https://site.com/festivals/. Эта страница будет постоянно обновляться и содержать контент, который ранее публиковался на странице https://site.com/festivals-2020/. Чтобы избежать каннибализации, вы принимаете решение удалить старую страницу https://site.com/festivals-2020/ и перенаправить трафик и ссылочный вес на новую страницу https://site.com/festivals/.

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

Коротко о главном

Всего насчитывается 10 видов редиректов, но лишь некоторые из них могут похвастаться практическим применением. Это относится к следующим видам:

  • 301 Moved Permanently, который используется для постоянной переадресации и «склейки» страниц в индексе.
  • 302 Found/Moved Temporarily и 307 Moved Temporarily, необходимые для временного перенаправления.

При построении редиректов необходимо придерживаться ряда базовых рекомендаций:

Следует использовать тот тип редиректа, который соответствует своему назначению.
Если конечный URL переадресации должен быть проиндексирован, его нужно сделать доступным для индексации поисковыми роботами.
Желательно сохранять изначальную структуру ссылок при переезде, чтобы у начального и конечного URL отличался разве что домен.
В большинстве ситуаций следует использовать серверный редирект.
Следует избегать появления цепочек редиректов, а также цепочек, состоящих из редиректов и атрибутов rel=canonical.
Важно следить, чтобы конечные адреса не отдавали коды ответа 4xx и 5xx.
Прежде чем ставить редирект, следует определиться, нужен ли он в принципе и не лучше ли воспользоваться атрибутом rel=canonical.
Важно соблюдать осторожность с переадресацией служебных файлов.
Не стоит без необходимости ставить редирект на страницу, которая существенно отличается от изначальной.

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

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

Перезапуск нового сайта / переезд сайтов

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

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

Наиболее распространенные сценарии использования редиректов при переезде сайта включают:

  • Перевод сайта на SSL и перенос URL-адресов с HTTP на HTTPS.
  • Перенос старого отдельного мобильного сайта на адаптивные страницы.
  • Переезд на новый домен. 
  • Обновление и переработка архитектуры сайта.
  • Изменение URL-структуры разделов на сайте. 
  • Замена старых страниц новыми материалами и т. д.

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

Перенаправления по геолокации

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

Однако при использовании перенаправления по геолокации следует помнить о нескольких вещах. Прежде всего, Google советует не выполнять редирект на основе IP-адреса пользователя. Это также может сбить с толку его поисковых роботов и вызвать проблемы с индексированием контента. Вместо этого поисковая система рекомендует использовать настройки ccTLD и Google Search Console для таргетинга на международных пользователей. 

В этом случае наиболее распространенным типом перенаправления является временный 302 редирект. Сайт также может динамически обслуживать нужный контент. 

Таргетинг на устройства

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

Google рекомендует две реализации этого перенаправления – HTTP и JavaScript. 

Переадресация для кампаний PPC / партнерского маркетинга

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

Временное перенаправление без возможности кэширования помогает защитить сайт от санкций, в то же время позволяя трафику поступать на целевой URL. 

Перенаправления для A/B-тестирования

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

Фактически, Google рекомендует использовать редирект 302 и для этого типа тестирования.

Почему так происходит?

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

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

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

Причина успешного взаимодействия редиректа-301 с поисковыми ресурсами в том, что он коренным образом отличается от аналогичных услуг по оптимизации. Он составлен таким образом, что функционирует понятно для робота, коим является поисковая система. Редирект перенаправляет на нужный URL страницы однократно и окончательно.

Влияние 301-го редиректа на seo продвижение

Если вы решили перенаправить старые ссылки на новые, по средствам 301-й ошибки (moved permanently), вам возможно будет интересно узнать следующее:

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

2. При склейке адресов, новый url получает полный вес страницы, ссылочную массу и такие значения, как ТИЦ.Подобный редирект — это наилучшее решение при переносе сайта на новую систему управления контента, если вы не хотите потерять позиции и рейтинг сайта. Мой seo-блог использует несколько видов 301 редиректа для перенаправления.

Собственно, давайте разбираться в вариантах сделать редирект (переадресацию) правильно.

Генератор редиректов

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

На самом деле, инструментов на этот случай великое множество (в том числе — плагины для CMS). Так как все они делают они одно и то же, приведу только один пример: 301 Redirect Code Generator

301 Redirect Code Generator — онлайн генератор кода редиректа

Пожалуй, дополнительные комментарии тут излишни: просто вводите адрес страницы-донора (опционально), страницы-акцептора, выбираете подходящий тип редиректа, жмете кнопку «Generate Code» и будет вам счастье)

Перенаправление на мобильную версию сайта в HTML (JavaScript)

Иногда нет возможности что-то редактировать на сайте на стороне сервера — например, вы используете конструктор сайтов. Тут-то и пригодится редирект на HTML, а точнее — на JavaScript, т.к. на простом HTML нужные условия не прописать.

Если нужно перекинуть мобильных юзеров на страницу http://site.ru/mobile/, то можно использовать такой код:

<script type='text/javascript'>
if(window.innerWidth<600)
	location.href='http://site.ru/mobile/';
</script>

В этом случае все посетители, у которых ширина экрана меньше 600 px улетят на http://site.ru/mobile/. Если нужна меньшая ширина — меняйте 600 на меньшее значение.

Передача UTM-меток

Если нужно, чтобы все мобильные посетители, зашедшие на http://site.ru/page/?utm_source=xxx&utm_medium=yyy&utm_content=zzz перекинулись бы на http://site.ru/mobile/?utm_source=xxx&utm_medium=yyy&utm_content=zzz, то можно использовать следующий код:

<script type='text/javascript'>
if(window.innerWidth<600){
	var url='http://1derevo.ru/mobile/', l=location.href;
	var utm_source=l.match(/utm_source=*/);
	var utm_medium=l.match(/utm_medium=*/);
	var utm_content=l.match(/utm_content=*/);
	location.href=url+'?'+utm_source+'&'+utm_medium+'&'+utm_content;
}
</script>

Передача субаккаунтов

<script type='text/javascript'>
if(window.innerWidth<600){
	var url='http://1derevo.ru/mobile/', l=location.href;
	var utm_source=l.match(/utm_source=(*)/);
	var utm_medium=l.match(/utm_medium=(*)/);
	var utm_content=l.match(/utm_content=(*)/);
	location.href='http://advjump.com/go/0f3c13f70409426ba0eee42428aa9b3e365b64d1eb0a0b0b/?subid=mobile-'+utm_source+'&subid1='+utm_medium+'&subid2='+utm_content;
}
</script>

Т.е. из UTM-меток получили субаккаунты.

Примеры простых редиректов отдельной страницы

Использование в файле .htaccess позволяет перенаправлять пользователей со старой страницы на новую без необходимости сохранения старой страницы.

Например, если вы используете index.html в качестве индексного файла, а затем позже переименуете index.html в home.html, вы можете настроить перенаправление для отправки пользователей с index.html на home.html:

Redirect /path/to/old/file/old.html /path/to/new/file/new.html
Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html

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

Второй путь к новому файлу может быть локальным путем, но может быть и полным URL-адресом для ссылки на страницу на другом или том же сервере.

RedirectMatch 301 ^/blog/about /blog/about.html
Redirect /index.html /new/
Redirect /index.html /default.html
Redirect /private/ https://www.example.com/private/

Убедитесь, что другой сайт является вашим собственным. Никогда не делайте горячих ссылок на файлы с других сайтов.

Redirect /img/logo.gif https://www.example.com/images/logo.gif

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

RedirectMatch "^/oldfile\.html/?$" "https://example.com/newfile.php"

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

ErrorDocument 404 https://example.com/

Этот пример перенаправляет файлы из старой директории в новую директорию . Файл должен существовать в новой директории.

RewriteRule ^blog/archives/(.*)$ /newarchives/$1 
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: