301 редирект в htaccess всех страниц. Редирект при изменении ЧПУ ссылок. Когда лучше использовать rel= «canonical»

Возможности 26.06.2019
Возможности
  • Разместил Николай Коротков
  • Дата: 29 ноября 2013 в 09:23

И снова здравствуйте!

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

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

А теперь обо всем по порядку. Что такое 301 редирект? Это обычное перенаправление посетителя на другую страницу или домен (о том, что такое домен и как его зарегистрировать, читайте ). Сразу скажу, в этой статье я не буду рассматривать различные скрипты и сложные коды, я лишь покажу несколько простеньких вариантов перенаправления, которые любому веб-мастеру будет знать более чем достаточно.

Как настроить 301 редирект? Редирект.htaccess

Мы с вами будем рассматривать 301 редирект через.htaccess. Htaccess является служебным файлом конфигурации, который скрывает в себе массу возможностей. С помощью него можно запретить доступ к отдельным каталогам, указать кодировку страниц, установить защиту файлов и папок, сделать 301 редирект и т.д.

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

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

Для этого перейдите в корневой каталог своего блога, нажмите в пустом поле правую кнопку мыши/Создать новый файл/Введите имя файла/.htaccess/ОК. После этого файл будет доступен для редактирования. Открыть его можно любым текстовым редактором, например .

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

Для этого перейдите во вкладку «Сервер» и установите галочку напротив пункта «Принудительно отображать скрытые файлы». Если и в этом случае вы не найдете файл.htaccess, то тогда создайте его.

В каких случаях может понадобиться 301 редирект?

Начнем с самого главного!

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

Дело в том, что у любого ресурса в сети, один из вариантов доменного имени (с www или без www) должен быть главным. Вот простой пример относительно моего блога. Главным его доменом является http://сайт , а www.сайт — является его зеркалом. Главное зеркало блога, прописывается в файле robots.txt для Яндекса в виде директивы Host.

Если у вас нет файла robots.txt, обязательно изучите вот , там я все подробно расписал. Robots.txt в обязательном порядке должен присутствовать на каждом ресурсе. Иначе блог обречен на неудачу! Помимо robots.txt, вам необходимо указать главное зеркало сайта в Яндекс.Вебмастер.

Но так как в robots.txt оно уже указано, то я вам рекомендую оставить все на усмотрение робота. Для этого перейдите во вкладку «Настройки индексирования/Главное зеркало» и поставьте кругляшек напротив пункта «На усмотрение робота»:

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

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

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

Что касается приставки www, то она давным-давно должна была отмереть. Но так как в сети до сих пор существует множество ресурсов с префиксом www, то она имеет место быть. Для поисковых систем http://сайт и www.сайт это два абсолютно разных адреса! Да и пользователи частенько в строку браузера вбивают адрес ресурса именно с www, поэтому отмирать ей пока рановато. Исходя из этого, настройки зеркала, просто необходимы!

Последствия от неверной настройки зеркала

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

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

2. Все прекрасно знают, что поисковые системы постоянно борются за уникальность! Они ненавидят дублированный контент и жестоко наказывают сайты с одинаковым содержимым. А теперь представьте такую ситуацию, что ваш блог изначально был проиндексирован с приставкой www, но по мере развития ресурса, сайт без префикса www, получил большую популярность (о нем чаще упоминают и ссылаются на него).

Естественно, вы об этом даже и не догадываетесь и продолжаете развивать свой ресурс. Со временем он обрастет уникальным контентом, естественными ссылками и комментариями. Дела идут в гору, ну как тут не радоваться? Но вот беда! Поисковые системы, наблюдая за сайтом без приставки www, поставили на нем клеймо, за не уникальность! В итоге он перестанет индексироваться, а со временем полностью выпадет из индекса!

Вот это будет страшно и очень обидно! И чтобы избежать таких печальных ситуаций и был придуман 301 редирект.

Перенаправление с домена с www на без www и наоборот

Как настроить 301 редирект в этом случае? Все очень просто. Открываем файл.htaccess и копируем в него представленный ниже код.

Перенаправление с www на без www:

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.vashdomen.ru RewriteRule ^(.*)$ http://vashdomen.ru/$1

и наоборот:

RewriteEngine On RewriteCond %{HTTP_HOST} ^vashdomen.ru RewriteRule (.*) http://www.vashdomen.ru/$1

Обратите внимание, что вместо vashdomen, в обоих случаях нужно указать доменное имя своего блога!

Сохраните файл.htaccess и переместите его обратно в корневой каталог с заменой старого файла. Теперь, как бы пользователь не вбивал адрес вашего блога в строку браузера (хоть сайт , хоть www.сайт , хоть http://www.сайт ), его в любом случае перенаправит на главную страницу.

Переезд с одного домена на другой

Аналогичной схемой редиректа 301, приведенной выше, можно воспользоваться при переезде с одного домена на другой. Но все же для наглядности приведу пример. Вы переезжаете с домена sait-1.ru на домен sait-2.com . В этом случае прописываем в файле.htaccess следующее:

RewriteEngine On RewriteCond %{HTTP_HOST} sait-1.ru RewriteRule (.*) http://sait-2.com/$1
Редирект при изменении ЧПУ ссылок

Иногда случается необходимость изменить ЧПУ ссылки (о них читайте ). Возможно, вы решили поменять целый раздел (категорию) на своем блоге. Или же банально ничего не знали о ЧПУ, а блог уже ведется и наполняется контентом. В этом случае, как нельзя кстати поможет 301 редирект. Причем, при таком раскладе, все показатели страницы (ранее проставленные ссылки, вес, PR) останутся на прежнем уровне, т.е. не потеряют свою значимость, авторитетность и позиции!

Приведу простой пример. Вы решили изменить название страницы. Старое имя страницы имело вид obo-mne.html , новое имя ob-avtore.html . В этом случае вам нужно будет прописать в файле.htaccess следующую конструкцию:

Редирект для партнерских программ

Допустим, вы решили перенаправить пользователя на страницу с партнерской программой. Код партнерки выглядит следующим образом: http://www.partnerka.ru/?ref=35677. Увидев такую ссылку, большинство пользователей не будут по ней переходить, заранее зная о ваших намерениях.

Для того, чтобы ссылка приняла привлекательный вид, вам необходимо создать отдельную страницу, например dlya-partnerov.html, с которой и будет идти перенаправление пользователя на страницу с партнерской программой. Теперь останется разместить ссылку на страницу vashdomen.ru/dlya-partnerov.html, а в файле.htaccess прописать следующее:

redirect 301 dlya-partnerov.html http://www.partnerka.ru/?ref=35677

Но лично я для таких целей предпочитаю пользоваться несложным скриптом, о котором рассказывал (способ №3).

На этом пожалуй все. Теперь вы знаете, как настроить 301 редирект и у вас не должно возникнуть с этим проблем. Я вам показал наиболее простой вариант 301 редиректа через.htaccess, о котором желательно знать каждому веб-мастеру. Ну и последнее, что хочется сказать, всегда проверяйте редиректы на работоспособность. На этом все, всем пока!

Как вам статья? А вы используете 301 редирект? Возможно, вам известны более легкие способы перенаправления? Жду ваши комментарии!

Понравилась статья? Поделись с друзьями!

Каждому комментатору книга в подарок!

Книга включает в себя подробное описание самых эффективных методов продвижения вашего ресурса!


60 комментариев

  • 29 ноября 2013 15:20

    Прочитал и нифига не понял...Для таких как я остается только одно, найти человека, сказать, чтобы настроил редирект 301 и довериться, что он все сделал =))))

    Значит все-таки толково не получилось объяснить...

    Нет, нет, всё очень толково и понятно написано — спасибо!

    Просто многие ленятся выполнять рекомендации, многие не придают своим проектам серьёзного значения, вот и не доводят до ума. А по некоторым вопросам есть противоречивые рекомендации. Так, в robots.txt указание о главном зеркале сайта рекомендуют помещать в начало файла, затем идёт пустая строка, затем остальные данные. Насколько это верно не берусь судить, но автор этой рекомендации активно настаивает на таком порядке заполнения robots.txt, и где здесь начинающим разобраться?

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

    Тёзка, не о Вас речь!

    Вы специалист СВОЕГО дела, которым настоятельно рекомендуется рутинно-техническую работу делегировать.

    Так что — творите, и не заморачивайтесь на то, что Вас отвлекает от основного дела.

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

  • 30 ноября 2013 11:12
  • 30 ноября 2013 16:02
  • Анна 30 ноября 2013 19:59

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

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

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

    Это получается, кто с www не пишет, все равно попадает на сайт?

    Я просто думал, что это функционал самой CMS, и не думал об этом никогда...

    Александр

    Верно! Для этих целей и настраивается 301 редирект. В самой CMS этого не заложено.

    А как я узнаю, если это перенаправление перестанет работать? Сейчас все отлично!

  • Елена 1 февраля 2014 22:55

    Что-то писала комент, а не отправился — жаль. тот длиннее был.

    В общем я читала, читала и ничего до меня не дошло.

    Подскажите, как сделать редирект каждой страницы?

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

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

    Redirect 301 /старая страница.html site.com/новая страница.html

    Redirect permanent /старая страница.html site.com/новая страница.com/

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

    И по вашей просьбе показываю простой пример на своем блоге. Допустим, я хочу перенаправлять посетителей со страницы «Все статьи блога» на страницу «Мои курсы». В этом случае, я прописываю конструкцию следующим образом:

    redirect 301 vse-stati-bloga.html сайт/moi-kursy

  • Павел 25 марта 2014 23:37

    А у меня в файле.htacces прописан только вот такой код

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule . /index.php [L]

    что мне изменить? Файл составлен не правильно?

  • 29 апреля 2014 10:39

    Николай, добрый день!

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

    Насколько я понимаю, мне подойдет редирект для ЧПУ, после настройки которого можно будет либо перенести старый контент, либо написать аналогичный новый и рукописную страницу можно будет с сервера снести или как?

    Подскажите, пожалуйста, тестирование редиректа — это просто переход по старому адресу, и увидеть, что все корректно открывается на новой странице? Значит ли это, что поисковики увидят это в таком же свете?

    Заранее большое спасибо!

    Здравствуйте, Ирина!

    Вы все правильно понимаете... Редирект для ЧПУ в вашем случае подойдет. Если старые страницы были проиндексированы поисковыми системами, то перенос старого контента на новый домен без редиректа будет считаться дублем, лучше воспользоваться редиректом. А протестировать его очень просто. Если при вводе адреса старой страницы браузер перенаправляет вас на новый домен, то редирект работает как надо и поисковые системы в скором времени переиндексируют контент. Вот тогда можно будет удалить старые болтающиеся страницы с сервера без проблем.

    Николай, благодарю за скорый ответ!

    Только домен остается старый, просто перехожу с рукописного варианта на wp и все.

    Проверила код ответа сервера — там меня ждал сюрприз

    Вместо 200ОК — 301 редирект. Открыла htaccess. и чтоб Вы думали? Там стандартный, судя по всему набор:

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ — [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    Подскажите, мне, не обращая внимания на ответ сервера настроить редирект через 301 ?

    Заранее спасибо!

    Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение. Стандартное правило в файле.htaccess как раз таки и отвечает за редирект. Так, что ответ сервера в этом случае показан верно, в дальнейшем редирект можно будет убрать и удалить старые страницы с сервера.

    Да, я поняла, только не совсем ясно, откуда взялся этот редирект, ведь я его не ставила и как он реализовался, если htaccess. его нет... Видимо, как -то автоматически проставился системой, после того, как я создала индексную страницу в wp, а старую рукописную удалила. Сейчас пропишу редирект на остальные страницы в htacess вручную.

    Спасибо Вам за статью.

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

    Простите, ещё забыла уточнить, куда строчку

    redirect 301 obo-mne.html vashdomen/ob-avtore

    пристроить в уже готовой конструкции

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ — [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

  • Ирина 29 апреля 2014 20:26
  • Ирина 19 мая 2014 22:34

    Николай добрый вечер!

    Снова нужна Ваша помощь!

    В последний ап яндекс выбрал главным зеркалом сайт.ру с www (а так как было без www, обнулился тиц!)

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

    redirect 301 /файл.html сайт.ru/новое название рубрики/

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    Пробовала пристроить перенаправление и перед строчкой # END WordPress и в самом верху файла

    — выдает ошибку перенаправления,пишет, что оно никогда не закончится…

  • Про 301 редирект уже, наверное, сказано и пересказано множество раз в блогах, форумах и т.п. Но, как оказывается, не до всех эта информация вовремя доходит (тут я как бы намекаю на себя:). За более чем 3 года в сети я слышал про 301 редирект множество раз, иногда даже собирался его «попробовать», но давайте посмотрим фактам в лицо — так этого и не сделал. А зря! Все началось достаточно прозаически — у меня есть один сайт, который постоянно «колбасит» в плане индексации поисковиками. Вроде и ссылки там есть, и контент нормальный, а он все ни в какую не хочет стабильно работать. У меня уже почти закончились варианты подобного поведения, но тут я вспомнил про основы основ SEO и вообще продвижения — 301 редирект.

    Беглый опрос в твиттере показал, что реально я чуть ли не один «забиваю» на этот важный момент. Большинство единогласно ответило, что в обязательном порядке устанавливает 301 редирект сразу при создании сайта. Более того, тут мне недавно попросили по разработке сайта добавить этот же самый 301 редирект для них, поскольку просьба пришла от продвигающей и конторы. Учитывая все эти моменты и «намеки судьбы» я понял 301 редиректу быть!

    Зачем вообще нужен 301 редирект ? — спросите вы — есть несколько ситуаций в которых его можно применить:

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

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

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

    Простой редирект

    Производится в файле.htaccess или httpd.conf для Apache. Самый простой вариант простого 301 редиректа для переадресации на новый домен выглядит следующим образом:

    Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm

    Вот еще парочка примеров простого 301 редиректа:

    Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/

    Здесь при попадании пользователя или робота в директорию test он перенаправится на www.test.com, все остальные попадут на enter.test.com. Для этого 301 редиректа на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).

    301 редирект с помощью mod_rewrite в.htaccess

    С модулем mod_rewrite вы сталкивались достаточно часто даже не подозревая этого. В частности речь идет про постоянные ссылки (permalinks) как полезный инструмент в seo оптимизации wordpress. Если в админке настроите эти самые ссылки и после этого зайдете в файл.htaccess, то обнаружите там целый ряд правил для переадресации через директиву RewriteRule. Кроме того нужно проверить чтобы была подключена опция FollowSymLinks.

    Перенаправление домена с www на без-www

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain\.com$ RewriteRule ^(.*)$ http://domain.com/$1

    Редирект запросов без-www на домен с www префиксом

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) RewriteRule ^(.*)$ http://www.%1/$1

    Вообще использование www в названии сайта само по себе устарело, но иногда до сих пор встречается. Если вы создаете новый сайт, то конечно сразу указываете везде без www, но если получили «готовый продукт», то нужно смотреть как домен отображается в выдаче Google и Яндекс — такой редитект и оставляете дабы ничего кардинально не менять.

    301 редирект старого домена на новый:

    RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html

    Для замены всех.htm файлов.html файлами:

    HTTP/1.1 301 Moved Permanently Location: http://www.newdomain.ru/newdir/newpage.htm

    Для этого, например, в PHP используем:

    Данный код лучше всего вставлять в начало PHP скрипта чтобы до него ничего не выводилось (echo или print). За пояснение спасибо автору этой статьи где также найдете информацию про установку редиректа на ASP, ColdFusion и т.п., просто с php самый популярный вариант.

    Примечания по 301 редиректу

    Напоследок пару моментов по 301 редиректу, которые нужно помнить и с которым я так или иначе столкнулся:

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

    Если у вас есть что добавить по 301 редиректу — пишите:)

    P.S. Постовой. В наше время каждый день появляется множество интересных интернет проектов. Хотите знать все про стартапы тогда читайте новый увлекательный блог StartupWay.
    После аудита и оптимизации веб-проекта следует комплексная раскрутка сайтов в поисковых системах Google и Яндекс.

    301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке. Как пользователи, зашедшие через браузер, так и поисковые боты будут перенаправляться по новому адресу, при этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL . При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL .

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

    301 редирект в.htaccess

    При использовании апача (apache) на сервере, переадресацию можно просто выполнить с помощью файла.htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

    Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

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

    Редирект с помощью директивы RedirectMatch

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

    RedirectMatch /(.*).php$ /$1.aspx

    Редирект с помощью директивы RewriteRule модуля mod_rewrite

    Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

    Перенаправление домена с www на не-www

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.(.*)
    RewriteRule ^(.*)$ http://%1/$1

    или альтернативный, более понятный синтаксис

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.domain.com$
    RewriteRule ^(.*)$ http://domain.com/$1

    Редирект запросов с не-www на домен с www префиксом

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^domain.com$
    RewriteRule ^(.*)$ http://www.domain.com/$1

    или же альтернативный вариант

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.(.*)
    RewriteRule ^(.*)$ http://www.%1/$1

    Редирект с помощью скрипта (отправки заголовков)

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

    PHP редирект

    ASP редирект


    ASP .NET редирект


    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = “301 Moved Permanently”;
    Response.AddHeader(“Location”,“http://www.new-url.com”);
    }

    ColdFusion редирект


    JSP (Java) редирект

    CGI PERL

    $q = new CGI ;
    print $q->redirect(“http://www.new-url.com/”);

    Ruby on Rails

    def old_action
    headers[“Status”] = “301 Moved Permanently”
    redirect_to “http://www.new-url.com/”
    end

    Решила попробовать. Буду постить наблюдения, практическое применение и решение проблем по теме SEO и "я-вебмастер" по стопам собственного опыта. Не знаю, насколько меня хватит, время покажет.

    Пояснительная преамбула: Я не специалист по поисковой оптимизации (SEO) и не программист. Всё здесь описанное - опыт и интуитивные соображения более-менее продвинутого пользователя.

    Ещё: Отдельно хочу выразить благодарность ave за многоразовую помощь в реабилитации сайта:)

    Итак, к теме

    Redirect 301: Как сделать редирект с одной страницы на другую

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

    Что такое Redirect 301?

    "Redirect" по-нашему "перенаправление", "переадресация". То есть, это такой код, с помощью которого мы сообщаем, что намерено и навсегда переадресовываем адрес (URL) страницы с прежнего места на новое. "Навсегда" можно отменить, удалив переадресацию.

    301 - постоянная переадресация

    302, 303 и 307 - временная переадресация

    Для чего он нужен?

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

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


    Скриншот из видео , в котором глава команды Google по борьбе с веб-спамом Мэтт Каттс (Matt Cutts) отвечает на вопрос "Какая доля веса PageRank теряется при 301 редиректе?"

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

    В каких случаях на сайтах применяется перенаправление 301?

    1. чтобы перенаправлять одну страницу сайта (ссылку) на другую
    2. ссылки сайта с www перенаправлять на ссылки без www, или наборот
    3. сделать массовую переадресацию ссылок в случае изменения домена или движка сайта

    Это основные случаи. Мой случай - первый, его и рассматриваем.
    Делается просто, но у меня простой вариант не сработал, пришлось пару часов погуглить в поисках верного варианта.

    Делаем переадресацию 301

    Делается это в файле.htaccess, который лежит в корневой папке сайта. Открываем его и вписываем туда наш редирект. Я прописывала сразу после RewriteBase /

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

    У меня этот вариант не сработал. Результат: переадресация не происходила, а в адрес ссылки дописывался параметр ?q= . Вот вариант, который у меня сработал. Уточняю: реализовано для сайта на Drupal

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

    Что такое 301 редирект и зачем он нужен?

    301 редирект призван помочь вебмастерам переадресовать пользователей с одного URL, который изначально был в адресной строке браузера, на совершенно иной. С точки зрения поисковой оптимизации, 301 Moved Permanently - это постоянный редирект, который помогает переместить до 99% ссылочного веса на новый URL, а старый «пометить» в качестве устаревшего. То есть благодаря этому удастся сохранить позиции в поисковых системах, а если просто изменить адрес URL, не делаля редирект, то для Яндекса и Гугла это будет новой страницей, которая будет ранжироваться без связки с предыдущей историей.

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

    • при совершении склейки доменов;
    • для переезда сайта на новый адрес, например, в случае снижения трафика вследствие попадания вашего ресурса под фильтры поисковиков. 301 редирект не позволит тем, кто добавил ваш сайт в закладки, потерять его из виду;
    • чтобы увеличить показатели тИЦ, PR, трафик из ПС на основном сайте. В этом случае понадобится приобрести домен, который обладает неплохими показателями и настроить редирект на тот ресурс, который нуждается в улучшении данных параметров;
    • при смене адреса конкретной страницы для сохранения высоких позиций в ПС (например, это может быть актуально при переезде сайта из одной CMS в другую);
    • и др.
    Как сделать 301 редирект?

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

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

    Redirect 301 / http://site.ru

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

    Redirect 301 /старая-страница.html http://новый-домен.ru/новая-страница.html

    RedirectPermanent /старая-страница. html http://новый-домен.ru/новая-страница.html

    Как склеить домен с www с вариантом без?

    В данный момент применение www в названии сайтов считается устаревшим. Однако, такой вариант встречается нередко. Если это не покупка готового сайта , то при создании нового ресурса лучше указывать везде без www. При склеивании доменов объединяются все их самые важные параметры, такие как тИЦ, PR и посещалка. К тому же это поможет оптимизировать ресурс, и избежать ситуации, когда ПС отражение сайта с www принимают за «самозванца» с «ворованным» контентом.

    Код для склеивания домена с использованием www на домен без www выглядит так:

    RewriteEngine on RewriteCond %{HTTP_HOST} ^www.site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

    При этом значение RewriteEngine on/off является специализированной директивой, служащей для подключения либо прекращения доступа к коду самого файла. А доступ происходит посредством модуля mod_rewrite. RewriteCond - директива, используемая для формирования условий по правилам преобразования. А RewriteRule - предписание, отвечающее за производимые преобразования, в конкретной ситуации - редирект 301.

    301 редирект при переезде на HTTPS

    Современный тренд - перенос сайтов на защищенный протокол HTTPS. При этом настройка переадресации со страниц с HTTP на HTTPS является ключевым этапом. Делается это следующим образом в файле .htaccess.

    RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://site.ru/$1

    Примечания и ошибки

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

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

    Также существует несколько ситуаций, когда использование 301 редиректа будет ошибочным. Так, лучше не применять многоходовый редирект, если его внедрение займет слишком продолжительное время. Или, например, при наличии контента, который дублируется, и по ряду причин нужно сохранить обе страницы для пользователей. Если страница и ее содержимое не релевантны, то от редиректа тоже стоит отказаться. Ошибкой будет настройка редиректа на некорректно работающую страницу (страница должна быть с 200 или 404 ответом сервера). И, наконец, неверным будет редирект файла robots.txt .

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

    Опытные вебмастеры помимо самого популярного 301 редиректа используют и некоторые другие: от 300-го по 307-й. К примеру, 302 и 307 - это временный редирект, 305 - доступ исключительно посредством прокси и т. д. Также довольно востребованным типом редиректов можно назвать Meta Refresh. Он выполняется не на уровне сервера, а на уровне страницы. Однако, такой редирект эксперты рекомендуют применять как можно реже. Это обосновано тем, что к ним зачастую прибегают дорвейщики и спамеры. К тому же применение этого редиректа практически не дает возможности для передачи ссылочного веса.



    Рекомендуем почитать

    Наверх