301 редирект: понятие и настройка

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

Редирект 301

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

Одним из таких статусов может быть перенаправление запроса — заголовок содержит статус с ошибкой 3хх. Здесь есть несколько вариантов, например, временное перенаправление (307), ресурс временно перемещен (302), ресурс перемещен окончательно (301) и другие.

Определение 301 редиректа

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

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

Редирект 301 чаще всего используется вебмастерами, как наиболее дружелюбный в плане поисковой оптимизации. Например, я рассказывал о склейке доменов — здесь тоже используется 301 ответ сервера. У WordPress есть встроенная функция перенаправления, определяемая основной адрес ресурса:

Редирект на вордпресс

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

Настройка 301 редиректа

Если используется любая другая платформа, или было принято решение изменить основной домен (например, убрать из адреса префикс www), то можно использовать код для редиректа через файл .htaccess, который располагается в корневой директории:

1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.webliberty.ru [NC]
RewriteRule ^(.*)$ https://webliberty.ru/$1 [L,R=301]

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

Кроме использования файла .htaccess для перенаправления можно использовать и другие методы, например, с использованием javascript, PHP или HTML мета-тегов. Кому интересно, предлагаю почитать какое применение можно найти для редиректа с использованием мета-тегов, пример приведен мною в комментариях к этой статье.

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

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

Определение HTTP статуса заголовка страницы

Я иногда проверяю какой заголовок отдает сервер для страницы. Раньше я проверял ответ сервера с помощью онлайн-сервисов, например, когда разбирался с зашифрованным кодом в теме, то проверял на cy-pr.com. А теперь для определения статусов можно воспользоваться удобным плагином для браузера Google Chrome, который так и называется — HTTP Headers, который можно бесплатно установить в интернет-магазине Chrome Webstore.

После установки этого расширения на панели инструментов появится значок с логотипом «H», на скрине ниже второй справа. Щелкая на него в окошке будет отражен заголовок текущей открытой страницы, который отдает сервер, содержащий HTTP статус:

Ответ сервера с учетом редиректа

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

Интернет-магазин Chrome WebstoreВот за что я люблю Chrome, так это за наличие огромного числа всевозможных дополнений и расширений. Плагины для Google Chrome способны заменить собой не только оффлайн приложения, но и дать полноценный набор инструментов для работы вебмастеров. Теперь для успешной работы потребуется один лишь браузер! Впрочем, именно такая ситуация и сложилась на моем домашнем компьютере.

На сегодня все, но впереди Вас ждет еще много всего интересного, поэтому подписывайтесь на обновления блога по RSS или получайте свежие записи прямо на почту! А в следующей статье открою небольшой секрет и приведу еще один пример использования 301 редиректа на WordPress. Не забудьте подписаться, чтобы не пропустить 😉

Рубрика: Сайтостроение
  1. ladybloger

    Спасибо, Денис! Как всегда — много полезного и интересного 😉

    Ответить

  2. Webliberty

    ladybloger, пожалуйста! Как правило такая техническая информация становится нужной или в самом начале ведения блога, когда новички не правильно настраивают 301 редирект и долгое время ПС не могут определить главное зеркало, соответственно и домены склеить; или же при настройке каких-то других функций. Например, этот пост я специально подготовил перед публикацией статьи о Clean URL, где используется такой редирект.

    Ответить

  3. Calabonga

    Настройка 301 редиректа для ASP.NET стайта не показаны в статье… Обидно!

    Ответить

  4. Андрей

    Я редирект использую исключительно для потерянных станиц. А вот с www или без, я как-то не понял разницы.

    Ответить

  5. Webliberty

    Calabonga, прошу Вас, не обижайтесь))) Я не знаком с ASP.NET. А разве .htaccess на таких сайтах не используется?

    Андрей, 301 редирект обязательно должен применяться, т.к. сайт с www и без него — абсолютно разные с точки зрения ПС. Для нас же это один и тот же сайт, чтобы не было дублирования содержания по разным доменам используется редирект. ПС определят основной домен (главное зеркало) и склеят адреса. Ссылки, оставленные на других ресурсах, будут передавать свой вес на главное зеркало, вне зависимости от того куда они ведут, что несомненно положительно скажется на повышении показателей и позиций. Впрочем, у Вас 301 настроен верно, вордпресс автоматически направляет на URL указанный в настройках адреса.

    Ответить

  6. Анатолий

    Здравствуйте. Я хочу удалить отдельную запись со страницы со своего сайта (она имеет самостоятельный URL) и сделать редирет на другую запись страниц. А так же сделать редирект страниц которые 404. Подскажите где на вашем сайте можно посмотреть Как это сделать? Спасибо.

    Ответить

  7. Webliberty

    Анатолий, здравствуйте! Как раз описанный выше способ редиректа Вам подойдет. А с 404 куда хотите направить? 404 ошибка должна формироваться правильно, чтобы ПС исключали такие страницы из выдачи. Не стоит делать с них редирект на другие страницы, просто сделайте 404 более информативной.

    Ответить

  8. Богдан

    Здравствуйте. А что вы скажите на то, что тестовый домен лезет вперед основного по поиску (тестовый значит с xsph.ru на конце) У меня например по одному запросу, тестовый домен на первом месте, а основной на 20м. Как убрать его из поиска или соединить их как? Подскажите что делать..

    Ответить

  9. Webliberty

    Богдан, здравствуйте. А что за тестовый домен? Не знаю о таком, обратитесь к регистратору за помощью, пускай его отключат.

    Ответить

  10. Максим

    Перенес сайт на новый хостинг. В конструкторе делаются страницы типа Главная, Новости, Контакты. Так вот при наборе «сайт.ру» идет редирект на сайт.ру/главная. Из-за этого ПР 1 слетел на 0. После сегодняшнего апа ТИЦ и апа поисковой выдачи — XTOOL (траст сайта) с 5 слетел до 1 и пишет АГС. (хотя в ЯВМ все страницы на месте).

    В менеджере файлов переносил файл index.html в корень сайта (сайт открывается как положено сайт.ру), но тогда на сайте когда нажимаешь на «Главная» пишет 404. Если index.html оставить там и там, яша посчитает как дубль главной страницы, что тоже не есть хорошо. Какой выход подскажите?

    P.S. Конструктор «Web Presence Builder» Plesk panel.

    Ответить

  11. Iglous

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

    Ответить

  12. Андрей

    Чтож там за конструктор такой, что на одном хостинге работает, на другом нет. Да еще с такими извращениями :mrgreen:

    Ответить

  13. Webliberty

    Максим, подсказать в этом вопросе не могу, т.к. с этим конструктором не знаком. Думаю Вам стоит обратиться в службу поддержки рег.ру, а еще лучше — не пользоваться конструкторами, выбирайте бесплатные CMS — они надежнее и проще в обслуживании 😉

    Iglous, это верно, но согласитесь, домен сложно красивый подобрать…

    Ответить

  14. александр

    Как сделать редирект со старой страницы на новую?

    Ответить

  15. Webliberty

    Александр, все очень просто. Предположим, есть две страницы — новая new.html и старая old.html. Тогда редирект со старой страницы на новую следует оформить так:

    1
    
    Redirect 301 /old.html https://example.com/new.html

    Эту строку необходимо вставить в файл .htaccess

    Ответить

  16. Игорь Черноморец

    Здравствуйте Денис! Как жаль, что раньше не видел вашего сайта! Может сможете помочь. Я совсем недавно обратил внимание, что мой сайт не отображается совсем в браузерах с написанием www, а только с http. Я обратился в поддержку хостинга и они мне нашли ошибку в коде темы и сказали что это из-за этого, вот эта ошибка:

    Warning: Cannot modify header information — headers already sent in /wp-includes/pluggable.php on line 896

    Ну и как мне на это реагировать? Я немного в шоке! Редирект я сделал ещё месяц назад в точности как и у вас в видео, но не помогает. В хостинге говорят что проблема только в этом коде и чтобы я обратился к веб мастерам за помощью! Что вы можете сказать на счёт этого? Заранее спасибо!

    Ответить

  17. Webliberty

    Игорь, здравствуйте! Если честно, то не совсем понял проблему… И в каком видео? На этой странице нет никакого видео 💡

    Ответить

  18. Андрей

    Игорь Черноморец, уже давно не актуально использовать в написании сайта WWW. А вот то, что совсем не отображается, странно.
    Кстати, в общих настройках сайта имеет смысл убрать www. Возможно, картинка дала неправильную информацию.

    Ответить

  19. Игорь Черноморец

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

    Только из-за данной статьи я просто решил проверить или перебрасываются ссылки с www в без и вдруг заметил что нет и тогда в поддержке хостинга мне указали на эту ошибку в коде и я не совсем понял что это значит, поэтому и спросил здесь! Большое спасибо за вашу попытку помочь!

    Ответить

  20. Андрей

    По коду ошибки можно поискать решения. Хотя я не очень понял ошибку «а если ссылка какой то статьи, то картинка не отображается»

    Ответить

  21. Игорь Черноморец

    Я имел ввиду это: например у меня есть страница на блоге обо мне, а вот если вписать в браузер эту ссылку с www, то картинка не отобразится!!! Ну не важно, и так загрузил этот пост комментариями не по теме, не хочу мусорить на сайте и портить авторитет сайта и его автора, я его уважаю. Спасибо тебе Андрей в любом случае!!!

    Ответить

  22. Александр

    Везде одно и тоже! Везде через файл .htaccess. А как быть если нет такого файла? Сайт написан с нуля только на HTML и CSS. Как сделать редирект?

    Ответить

  23. Webliberty

    Александр, в этом случае возможно использовать два варианта:

    1. HTML редирект:

    1
    
    <meta http-equiv="refresh" content="0; url=https://webliberty.ru/"></meta>

    Эту строку следует вставлять в заголовке страницы, перед закрывающим тегом </head>. Естественно, здесь следует вместо моего URL указать свой — цель редиректа. Значение 0 для content указывает на то, что переадресация произойдет сразу же, если заменить на 1 — то через 1 секунду и так далее.

    2. JS редирект:

    1
    
    <script>location.replace("https://webliberty.ru/");</script>

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

    Ответить

  24. Antonio

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

    Другими словами, сейчас всю структуру сайта переделываю. Вот так вот!

    Ответить

  25. Дмитрий

    Александр, просто создайте такой файл и залейте его в корень сайта 😉

    Ответить

  26. Александр

    Здравствуйте! У меня следующая ситуация:

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

    Я новичок в этом деле и хочу понять как это сделать максимально быстро и просто. Заранее спасибо))

    Ответить

  27. Webliberty

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

    Ответить

  28. Александр

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

    Ответить

  29. Сергей

    Здравствуйте. У меня блог на wordpress. И проблем с редиректом. Я сделал редирект с без www на c www с помощью htaccess. Всё работает, но только с главной страницей, а остальные страницы доступны и с www и без www. Не подскажете как сделать, чтобы все страницы блога открывались только с www 😥

    Ответить

  30. Webliberty

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

    PS: не в моих правилах уговаривать, но все же интересно, почему решили сделать именно с www?

    Ответить

  31. Сергей

    Прочитал на каком то авторитетном сайте. Но теперь моё мнение поменялось. Теперь я думаю, что всё равно в какую сторону, главное, что бы редиректило. А то, что у меня не получалось, так это я не корректно поставил задачу администрации хостинга. И путём вставки пару строк кода у меня сайт был доступен и по www и без www и, что я только не делал пока не догадался удалить эти строчки. В настоящий момент у меня всё океюшки. Также поставил хороший плагин из этой серии All In One SEO Pack.

    Ответить

  32. Webliberty

    Очень рад что проблема решилась!

    Ответить

Ваш комментарий:

:) ;) :D :( :cry: :| :o :P 8-) :oops: :roll: :idea:

Отправляя комментарий, Вы соглашаетесь с Политикой конфиденциальности.