Как сделать 301 редирект правильно

Содержание статьи

Сразу выскажусь. Не лезьте делать редирект в htaccess, если не шарите в этом! Пусть это сделает программист. 301 редирект — это вам не шутки вышучивать.

https://www.youtube.com/watch?v=J-6QDzWHses

Один мой знакомый оптимизатор как-то раз неправильно отредактировал htaccess, и весь сайт клиента нахрен полетел. Спас хостер, который делал бекап.

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

Редирект 301 (Permanent Redirect) – это перенаправление, которое направляет посетителя с одного адреса на другой, при этом первый адрес отдает код ответа сервера 301. То есть если со страницы znet.ru/zelenyj-slonik стоит 301 редирект на страницу znet.ru/green-elefant, то пользователь, зашедший на первую страницу, даже не увидит ничего с ней, а попадет сразу на вторую страницу, и в адресной строке у него будет адрес именно второй страницы. А старая страница будет отдавать код ответа сервера 301.

Также бывают и другие редиректы, например 302 и 303 редирект. Вот чем они отличаются:

  1. Permanent Redirect (301) означает, что страница перенесена навсегда, на постоянной основе;
  2. Temporary Redirect (302, 303 и некоторые другие) означает, что страница перенесена временно.

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

Что передается по редиректу?

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

  • Ссылочный вес;
  • ТИЦ сайта (если в роботсе прописана директива host);
  • Возраст страницы, если обе страницы на одном домене.

Когда я двигал один крупный портал, мы его переносили на новый домен, и позиции в Google очень сильно просели, потому что ссылки были на старый домен. Яндекс сразу понял, что поскольку стоит 301 редирект, то ссылочная масса перешла к новому домену (либо он просто-напросто уже тогда не учитывал ссылки). А вот Гуголь ругался и не хотел ранжировать сайт высоко. Тогда мы у всех ссылок поменяли домен, и уже через пару недель был взрывной рост позиций в Гугле. Так что при передаче веса ссылок могут быть нюансы.

В то же время даже правильно настроенный через htaccess редирект не может передавать:

  • Санкции, которые были наложены на домен сайта (в очень редких случаях санкции, правда, все же передавались, особенно злой фильтр Яндекса за накрутку ПФ);
  • Возраст домена.

Если бы 301 передавал санкции, все бы уже давно проставили со своих дорвеев редирект на конкурентов.

Предостережение

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

Обязательное условие на апаче – наличие подключенных модулей mod_alias и/или mod_rewrite в файле php.ini. Эти модули изначально включены в большинстве хостингов, но вы бы все равно лучше уточнили этот момент.

Чем проверить код ответа сервера

Если полезли проставлять редирект — проверьте потом, все ли правильно сделано.

Лучше всего проверять в Яндекс Вебмастере. Вот ссылка на инструмент Проверка ответа сервера. Если вы зареганы в ЯВМ (да я вас подкалываю, конечно вы там зареганы… правда же?), то вы можете им воспользоваться.

Если же для вас этот вариант не катит — пользуйтесь Берталом. Это классика!

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

Код Permanent Redirect используется чаще всего в таких случаях:

  1. Смена домена.
  2. Склеивание доменов без www с доменами www.
  3. Перенос конкретных страницы сайта на новый URL.

Кстати, если вы просто удаляете страницу, то вы можете потерять входящие ссылки на неё. Я советую в случае удаления страницы проставлять с неё редирект на главную страницу.

Как правильно вставить код в htaccess

Так, теперь собственно как сделать редирект в htaccess. Ну нужно открыть этот файл сначала, а потом уже думать, как сделать редирект. Подключаемся через FTP (Filezilla например) к нашему сайту, открываем файл через прогу Notepad++, вставляем нужный код, сохраняем. Если что-то не так — откатываем. Но, опять же, лучше всего вам это сделает программист.

https://www.youtube.com/watch?v=E7drfMkONFs

Коды для вставки

Чтобы вы не тупили на тему, как настроить 301 редирект, можете использовать эти коды.

С одной страницы на другую

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

Redirect 301 /was.php http://www.site.ru/new.php

Новый адрес нужно обязательно указывать с http и доменным именем. Где was.php — там адрес старой страницы, соответственно вместо www.site.ru/new.php также прописывайте свой вариант.

С www на без www

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

Как провести редирект с www на без www:

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

С без www на www

Если планируется редирект с без www на www, используется другой код:

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

С одного домена на другой

Вот как делается редирект на другой сайт:

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

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

С https на http

Как сделать редирект на http:

RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

С http на https

Как сделать 301 редирект на https:

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Со страниц со слешем / на конце на страницы без слеша

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

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

Со страниц без слеша на конце на страницы со слешем

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

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

Убираем index.php

Если у нас страница site.ru/index.php отдает код 200 ОК, то нужно её убрать нахрен. И проставить 301 редирект с index.php на корень:

RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

Как писать название .рф домена в htaccess

Самое важное правило здесь – отказ от кириллицы. Поэтому нужно использовать имя домена в punycode (например, взяв его из Whois).

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai /$1 [R=301,L]

Боремся с рефспамом с помощью редиректов

Если вас задалбывает реферальный спам, то есть особый код, который с помощью заголовка HTTP_REFERER настраивает 403 код ответа сервера для трафика с сайтов-спамеров.

RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR]
RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC]
RewriteRule .* - [F]

Как легко делать редиректы в WordPress: используем плагин Redirection

Для WordPress я советую плагин Redirection. Что это такое? Это то, чем пользоваться проще пареной репы. Видоса на русском нет, но и в английской версии понятно, как сделать редирект с помощью этой фичи:

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

В завершение

Если вы не программист, а сеошник или вебмастер, то если вы услышите такие страшные слова, как серверный редирект, query string, php header, location — доверьтесь спецу, прошу вас. Не шутите с редиректами.

Дешево и все работает, без падений и геммороя. Я с него начинал
И я в том числе. Они номер 1 по надежности и по примочкам
Которые мне пишут тексты сотнями. Рефам даю подсказки в скайпе
Добавить в закладки
Голосовать ПРОТИВГолосовать ЗА +1
Загрузка...
Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: