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

Стратегия SEO

Техническое SEO-руководство по редиректам

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

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

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

Коды состояния ответа HTTP

Браузеры и сканеры поисковых систем, такие как GoogleBot, называются пользовательскими агентами .

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

Ответ называется кодом состояния ответа HTTP. Он предоставляет статус запроса URL-адреса.



В ситуации, когда пользовательский агент, такой как GoogleBot, запрашивает URL-адрес, сервер дает ответ.

Например, если запрос URL-адреса выполнен успешно, сервер предоставит код ответа 200, что означает, что запрос URL-адреса был успешным.

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

Значение перенаправления

Когда мы говорим о перенаправлении, мы имеем в виду ответ сервера. Это ответ на запрос URL.

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

Код ответа для измененного URL-адреса обычно имеет форму кода состояния ответа 301 или 302.

Вся серия кодов ответов 3xx передает много информации, на которую может дополнительно воздействовать пользовательский агент.

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

Таким образом, редирект 301 и 302 — это больше, чем дорожный знак в Интернете, который говорит: «Иди сюда, а не туда».

Серия 3XX кодов состояния

Перенаправления — это больше, чем просто два кода состояния, с которыми все знакомы, коды ответов 301 и 302.

Всего существует семь официальных кодов ответа 3xx.

Это различные виды перенаправлений, доступных для использования:

  • 300 множественных вариантов.
  • 301 Перемещено навсегда.
  • 302 Найдено.
  • 303 См. Другое.
  • 304 Не изменено.
  • 305 Использовать прокси.
  • 306 (не используется).
  • 307 Временная переадресация.
  • 308 Постоянное перенаправление.

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

Поскольку GoogleBot использует последнюю версию Chrome (называемую автономным браузером), легко проверить, совместим ли код состояния, проверив, распознает ли Chrome код состояния, с помощью списка совместимости браузера.

Для SEO следует придерживаться кодов ответов 301 и 302, если нет особой причины для использования одного из других кодов.

301: Перемещено навсегда

Код состояния 301 обычно упоминается как перенаправление 301. Но официальное название — 301 Moved Permanently .

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

Как упоминалось ранее, есть и дополнительная информация.

Код состояния 301 также предлагает пользовательскому агенту:

  • Будущие запросы на URL следует делать с новым URL.
  • Тот, кто делает запрос, должен обновить свои ссылки на новый URL.
  • Последующие запросы могут быть изменены с GET на POST.

Последний пункт является технической проблемой. Согласно официальным стандартам кода состояния 301:

«Примечание: по историческим причинам пользовательский агент МОЖЕТ изменить метод запроса с POST на GET для последующего запроса. Если такое поведение нежелательно, вместо него можно использовать код состояния 308 (постоянное перенаправление)».

Для SEO, когда поисковые системы видят перенаправление 301, они передают ранжирование старой страницы новой.

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

Код состояния 301 нельзя использовать, если изменение носит временный характер.

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

Итак, главное помнить, что код состояния 301 будет использоваться, когда изменение будет постоянным.

302: найдено

Главное, что нужно понять о коде состояния 302, это то, что он полезен в ситуациях, когда URL-адрес временно изменен.

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

Код состояния перенаправления 302 также имеет техническую оговорку, связанную с GET и Post:

«Примечание: по историческим причинам пользовательский агент МОЖЕТ изменить метод запроса с POST на GET для последующего запроса. Если такое поведение нежелательно, вместо этого можно использовать код состояния 307 (временное перенаправление)».

Ссылка на «исторические причины» может относиться к старым или ошибочным пользовательским агентам, которые могут изменить метод запроса.

307: Временное перенаправление

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

Единственная разница между кодом состояния 302 и 307 заключается в том, что пользовательский агент должен запросить новый URL-адрес с тем же HTTP-запросом, который использовался для запроса исходного URL-адреса.

Это означает, что если пользовательский агент запрашивает страницу с запросом GET, то пользовательский агент должен использовать запрос GET для нового временного URL-адреса и не может использовать запрос POST.

Документация Mozilla по коду состояния 307 объясняет его более четко, чем официальная документация.

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

Он имеет ту же семантику, что и код ответа 302 Found HTTP, за исключением того, что пользовательский агент не должен изменять используемый метод HTTP: если в первом запросе использовался POST, во втором запросе должен использоваться POST».

За исключением кода состояния 307, требующего, чтобы последующие запросы были одного типа (POST или GET) и того, что 302 может идти в любом направлении, все остальное между кодами состояния 302 и 307 одинаково.

302 против 307

Вы можете обрабатывать перенаправление через файлы конфигурации сервера .htaccess на Apache, файл example.conf на Nginx или через плагины, если вы используете WordPress.

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

Опции +FollowSymlinks
 RewriteEngine включен
 RedirectMatch 301 ^/oldfolder/ /newfolder/ 

(Вы можете прочитать о символических ссылках здесь.)

На серверах Nginx это будет выглядеть так:

переписать ^/oldfolder/ /newfolder/ навсегда; 

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

Например:

  • Код состояния серверов перенаправления: « 301» вместо «постоянный».
  • Команда действия: «RedirectMatch» или «перезаписать».

Но синтаксис перенаправления ( ^/oldfolder/ /newfolder/ ) одинаков для обоих.

В Apache убедитесь, что на вашем сервере включены модули mod_rewrite и mod_alias (отвечающие за обработку перенаправлений).

Поскольку наиболее распространенным типом сервера является Apache, вот примеры файлов .htaccess apache. Убедитесь, что в файле .htaccess есть эти две строки над правилами перенаправления, и поместите правила под ними:

Опции +FollowSymlinks
 RewriteEngine включен 

Прочтите официальную документацию, чтобы узнать больше о RewriteEngine.

Чтобы понять приведенные ниже примеры, вы можете обратиться к таблице ниже, посвященной основам RegExp.

* ноль или более раз
+ Один или несколько раз
. любой одиночный символ
? Ноль или один раз
^ Начало строки
$ Конец строки
а|б ИЛИ операция «|» а или б
(С) запоминает совпадение, которое будет использоваться при вызове $1

Перенаправить один URL-адрес

Самый распространенный и широко используемый тип редиректа — это удаление страниц или изменение URL-адресов.

Например, предположим, что вы изменили URL-адрес с /old-page/ на /new-page/. Правило перенаправления будет таким:

RewriteRule ^old-page(/?|/.*)$ /new-page/ [R=301,L] 

Или же

RedirectMatch 301 ^/old-page(/?|/.*)$ /new-page/ 

Единственная разница между этими двумя методами заключается в том, что первый использует модуль Apache mod_rewrite, а второй — mod_alias. Это можно сделать обоими методами.

Регулярное выражение «^» означает, что URL-адрес должен начинаться с «/old-page», а (/?|/.*)$ указывает, что все, что следует за «/old-page/» с косой чертой «/» или без точного match должен быть перенаправлен на /new-page/.

Мы также могли бы использовать (.*), т. е. ^/old-page(.*), но проблема в том, что если у вас есть другая страница с похожим URL-адресом, например /old-page-other/, она также будет перенаправлена, когда мы только хотим перенаправить /old-page/.

Следующие URL-адреса будут совпадать и будут направлены на новую страницу:

/старая страница/ /новая страница/
/старая страница /новая страница/
/old-page/?utm_source=facebook.com /new-page/?utm_source=facebook.com
/старая страница/дочерняя страница/ /новая страница/

Он перенаправит любой вариант URL-адреса страницы на новый. Если мы используем перенаправление в следующем виде:

Редирект 301 /старая-страница/ /новая-страница/ 

… без регулярных выражений все URL-адреса со строкой запроса UTM, например, /old-page?utm_source=facebook.com (что является распространенным явлением, поскольку URL-адреса используются для совместного использования в социальной сети) будут иметь ошибку 404.

Даже /old-page без завершающей косой черты «/» будет иметь ошибку 404.

Перенаправить все, кроме

Допустим, у нас есть куча URL-адресов, таких как /category/old-subcategory-1/, /category/old-subcategory-2/, /category/final-subcategory/, и мы хотим объединить все подкатегории в /category/final-subcategory/. Здесь нам нужно правило «все, кроме».

RewriteCond %{REQUEST_URI} !/category/final-subcategory/
 RewriteCond %{REQUEST_FILENAME} !-f
 Правило перезаписи ^(категория/).  /категория/конечная-подкатегория/ [R=301,L] 

Здесь мы хотим перенаправить все под /category/ в третьей строке, кроме случаев, когда это /category/final-subcategory/ в четвертой строке. У нас также есть правило «!-f» во второй строке, игнорирующее любые файлы, такие как изображения, файлы CSS или JavaScript.

В противном случае, если у нас есть некоторые активы, такие как «/category/image.jpg», они также будут перенаправлены в «/final-subcategory/» и вызовут разрыв изображения.

Смена каталога

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

Правило перезаписи ^старый-каталог$ /новый-каталог/ [R=301,NC,L]
 Правило перезаписи ^старый-каталог/(.*)$ /новый-каталог/$1 [R=301,NC,L] 

Я использовал $1 в цели, чтобы сообщить серверу, что он должен запомнить все в URL-адресе, следующем за /old-directory/ (т.е. /old-directory/subdirectory/) и передать его (т.е. «/subdirectory/») на назначения. В результате он будет перенаправлен в /новый-каталог/подкаталог/.

Я использовал два правила: один случай без косой черты в конце, а другой — с косой чертой в конце.

Я мог бы объединить их в одно правило, используя (/?|.*)$ RegExp в конце, но это вызвало бы проблемы и добавило бы косую черту «//» в конец URL-адреса, когда запрошенный URL-адрес без завершающей косой черты имеет строка запроса (т. е. «/old-directory?utm_source=facebook» будет перенаправлена ​​на «/new-directory//?utm_source=facebook»).

Удалить слово из URL

Допустим, на вашем веб-сайте есть 100 URL-адресов с названием города «Чикаго», и вы хотите их удалить.

Для URL-адреса правило перенаправления будет таким:

Правило перезаписи ^(.*)-чикаго-(.*) [NC,R=301,L] 

Если URL-адрес примера имеет форму http://yourwebiste.com/example/chicago/event/, то перенаправление будет таким:

Правило перезаписи ^(.*)/чикаго/(.*) [NC,R=301,L] 

Канонизация

Наличие канонических URL-адресов является наиболее важной частью SEO.

Если он отсутствует, вы можете поставить под угрозу свой веб-сайт из-за проблем с дублированием контента, поскольку поисковые системы рассматривают URL-адреса с версиями «www» и «без www» как разные страницы с одинаковым содержанием.

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

Если вы хотите запустить свой сайт с версией «www», используйте это правило:

RewriteCond %{HTTP_HOST} ^yourwebsite.com [NC]
 Правило перезаписи ^(.*)$ [L,R=301] 

Для версии без www:

RewriteCond %{HTTP_HOST} ^www.yourwebsite.com [NC]
 Правило перезаписи ^(.*)$ [L,R=301] 

Косая черта в конце также является частью канонизации, поскольку URL-адреса с косой чертой в конце или без нее также обрабатываются по-разному.

RewriteCond %{REQUEST_FILENAME} !-f
 Правило перезаписи ^(.*[^/])$ /$1/ [L,R=301] 

Это обеспечит перенаправление /example-page на /example-page/. Вы можете удалить косую черту вместо добавления, тогда вам понадобится другое правило ниже:

RewriteCond %{REQUEST_FILENAME} !-d
 Правило перезаписи ^(.*)/$ /$1 [L,R=301] 

Перенаправление с HTTP на HTTPS

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

Приведенное ниже правило перезаписи можно использовать для принудительного использования HTTPS на каждом веб-сайте.

RewriteCond %{HTTP_HOST} ^yourwebsite.com [NC,OR]
 RewriteCond %{HTTP_HOST} ^www.yourwebsite.com [NC]
 Правило перезаписи ^(.*)$ [L,R=301,NC] 

Используя это, вы можете объединить перенаправление версии с www или без www в одно правило перенаправления HTTPS.

Перенаправление со старого домена на новый

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

RewriteCond %{HTTP_HOST} ^old-domain.com$ [ИЛИ]
 RewriteCond %{HTTP_HOST} ^www.old-domain.com
 
 

#13;
Правило перезаписи (.*)$ [R=301,L] Он использует два случая: один с версией URL-адресов «www», а другой «без www», потому что любая страница по историческим причинам может иметь входящие ссылки на обе версии.

Большинство владельцев сайтов используют WordPress и могут не нуждаться в файле .htaccess для перенаправления, а вместо этого используют плагин.

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

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

Перенаправление плохих практик

1. Перенаправление всех 404 неработающих URL-адресов на домашнюю страницу

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

Согласно Google, все они по-прежнему рассматриваются как ошибки 404.

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

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

2. Неправильные перенаправления для мобильных страниц

Если у вас разные URL-адреса для настольных и мобильных веб-сайтов (например, «example.com» для настольных компьютеров и «m.example.com» для мобильных устройств), вы должны перенаправить пользователей на соответствующую страницу мобильной версии.

Правильно : «example.com/sport/» на «m.example.com/sport/».
Неправильно : «example.com/sport/» на «m.example.com».

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

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

3. Использование мета-обновления

Можно выполнить перенаправление с помощью метатега обновления, как в примере ниже:

<meta http-equiv=»refresh» content=»0;url= />

Если вы вставите этот тег в /old-page/, он немедленно перенаправит пользователя на /new-page/.

Google не запрещает эту переадресацию, но и не рекомендует ее использовать.

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

4. Слишком много редиректов

Это сообщение отображается, если у вас неправильная настройка регулярного выражения и заканчивается бесконечным циклом.

 Эта страница не работаетСкриншот автора, сентябрь 2022 г.

Обычно это происходит, когда у вас есть цепочка редиректов.

Допустим, вы давно перенаправили страницу 1 на страницу 2. Возможно, вы забыли, что страница 1 перенаправляется, и решили снова перенаправить страницу 2 на страницу 1.

В результате у вас получится такое правило:

Правило перезаписи ^ страница1 /страница2 [R=301,NC,L]
 RewriteRule ^page2 /page1 [R=301,NC,L] 

Это создаст бесконечный цикл и приведет к ошибке, показанной выше.

Вывод

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

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

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


Рекомендуемое изображение: Пауло Бобита / Search Engine Journal


Подборка статей по SEO оптимизации сайта. Выбора стратегии продвижения. Продвижение сайта в поисковых системах и социальных сетях. Обучение востребованным профессиям в сфере IT. Настройка рекламных кампаний в интернет. Маркетинг. Анализ рынка. Полезные секреты проведения рекламных кампаний. Все для PR — менеджера.

Информация для Вас была полезна?
0
0
0
0
0
0
0

Похожие статьи

Кнопка «Наверх»