Когда редирект необходим.




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

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

301 Permanent Redirect / 301 редирект…

… это переадресация пользователя на другой адрес страницы или домена. Этот код ответа сервера означает, что страница и ресурс переехали навсегда и теперь доступны в другому адресу.

Есть мифы, связанные с : например, что при редиректе не передаётся PR страницы, но этот миф был развенчан одним из вебмастеров Google Джоном Мюллером в своем блоге . Или что вместо редиректа можно использовать 302 Temporary Redirect.

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

  1. 301 Moved Permanently : постоянный редирект. Этот код уведомляет о том, что ресурс перемещен на новый адрес на постоянной основе с удалением прошлого домена. Нужен для окончательного переезда на новый ресурс, новую CMS или для склейки страниц.
  2. 302 Temporary Redirect: временный редирект. Уведомляет о временном переезде сайта или его страницы. Используется при технических работах на сайте.

Как эти коды отразятся на выдаче:

  • При 301 редиректе в поисковой выдаче начинает отображаться новый URL, но это может занять некоторое время. Google советует сохранять статус страницы в течение года.
  • При в поиске сохраняется старый URL страницы, но через 6 месяцев использования 302 редиректа поисковая система начинает считать его за постоянный 301, т.к. временное перенаправление не зря названо «временным», а полгода - достаточно большой срок.

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

Файл.htaccess - это файл конфигурации HTTP-сервера, наподобие Apache. С его помощью задается большое количество дополнительный параметров и разрешений веб-сервера, распространяет свои права только на каталог, в котором располагается, и его дочерние подкаталоги.

Самый простой пример редиректа: с сайта на сайт

Redirect / www.example.com

www.example.com - сайт, на который мы перенаправляем запрос пользователя.

Чуть более сложный пример - если мы хотим сделать редирект со страниц нашего сайта на другой сайт. Или, например, сделать редирект на главную страницу.

Redirect /semantica сайт/

Redirect /semantica/blog сайт/blog

Redirect 301 /kernel сайт/

Что всё это значит:

1 строка - при обращении к странице www.example.com/semantica будет открываться сайт сайт/

2 строка - при обращении к http://www.example.com/semantica/blog будет открываться сайт/blog

3 строка - веб-сервер будет отдавать код 301 о постоянном переезде на новый URL

Теперь, когда вы примерно понимаете, как это работает, можно переходить на задачи посложнее.

Сложные редиректы

Для сложных редиректов существует модуль mod_rewrite - это средство преобразования URL-адресов, использующее . Для редиректа используются три важные директивы: RewriteCond, RewriteRule и RewriteEngine.

  1. RewriteEngine включает или выключает работу механизма преобразования:

RewriteEngine on | off

Положение on-off включает и выключает работу модуля.

2. RewriteCond - определяет условие какого-либо правила, при котором происходит преобразование. Сразу после директивы чаще всего идут переменные %{HTTP_HOST} и %{REQUEST_URI}, которые означают адрес сервера (например, example.ru) и ресурс, запрошенный в строке HTTP-запроса, соответственно.

3. RewriteRule - идёт после одного или нескольких RewriteCond. Это правило преобразования URI, которое применяется только при условии выполнения RewriteCond.

Синтаксис директивы RewriteRule выглядит следующим образом:

RewriteRule Шаблон Подстановка

Здесь стоит дать пояснение к используемым символам регулярного выражения, которое задает шаблоны строк:

Метасимволы используются для задания групп символов и меток в шаблоне:

  • ^ - метка начала строки,
  • $ - метка конца строки,
  • \ - экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
  • . - точка, обозначает любой символ, но только один,
  • () - группировка.
  • ! - отрицание,

Флаги определяют дополнительные опции для данного правила и перечисляются в квадратных скобках через запятую:

  • NC - (nocase) отключает проверку регистра символов.
  • R - (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY).
  • L - (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.

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

Теперь, зная эти правила, мы можем попытаться самостоятельно сделать редирект с помощью htaccess .

  1. Редирект.htaccess на другую страницу
Redirect 301 /old-post.html http://new-site.ru/new-post.html
  1. Редирект.htaccess с www на без www
RewriteEngine on RewriteCond %{HTTP_HOST} !^site.ru$ RewriteRule ^(.*)$ site.ru/$1
  1. Редирект.htaccess с без www на www
RewriteEngine on RewriteCond %{HTTP_HOST} !^www.site.ru$ RewriteRule ^(.*)$ www.site.ru/$1

где site.ru - ваше доменное имя.

  1. Редирект с index .php (html) на главную страницу
RewriteEngine on RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1
  1. Редирект со слешем на без слеша
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1
  1. Редирект со страниц без слеша на слеш
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/
  1. Редирект всех страниц одного домена на главную другого домена
RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/
  1. Редирект с http на https через. htaccess
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1
  1. Редирект с https на http
RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1
  1. Избавление от дублей страниц

Если вы заметили, что к адресу основной страницы приклеивается что-то вроде &sa=123 456 или &crw=123 456 и подобное, просто замените буквенную часть в следующем коде

RewriteCond %{REQUEST_URI} ^(.*)\&sa= RewriteRule ^(.*)\&sa=(.*)$ $1

Пример: объясняем на пальцах

Как с помощью 301 редиректа сделать так, чтобы по запросу site.ru/category/art1/zapis/ в строке адреса было site.ru/zapis/, то есть /category/art1 вырезалась бы из строки, но после вырезания строки показывалось содержимое site.ru/category/art1/zapis/?

RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^category/art1/zapis/$ http://%{HTTP_HOST}/zapis/ RewriteRule ^zapis/$ /category/art1/zapis/ [L]

А теперь давайте подробнее разберем, что же тут написано и что вообще происходит.

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

Чтобы ограничить цикл выполнения правил одной итерацией, можно использовать конструкцию из первой строки. Она предает apache статус был ли выполнен редирект или нет и если да, то пропустить следующие правила. К слову, на nginx эта строка не нужна.

Вторая строка делает 301 редирект с www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
Третья же строка говорит серверу, что если адрес вида www.site.ru/zapis/, то надо показывать то, что находится по адресу www.site.ru/category/art1/zapis/

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

  1. Принцип «от меньшему к большему»: располагайте редиректы от частных к более глобальны. Т. е. переадресация со страницы на страницу будет выше, чем переадресация с без www на www .
  2. Избегайте последовательных - двойных, тройных - редиректов. Один редирект перенаправляет пользователя только один раз.
  3. Проверьте HTTP заголовки и статусы ответа сервера, чтобы убедиться в правильности работы редиректа.

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

Когда редирект необходим

  1. Вы переехали на другой домен: и вам логично не хочется потерять своих клиентов - настоящих и потенциальных, а также есть необходимость передать вес прошлого сайта на новый.
  2. Хотите склеить зеркала: у вас несколько доменных имён с разным написанием бренда и вы перенаправляете всех посетителей на основной сайт.
  3. Страница сменила свой адрес: структура вашего сайта была реорганизована и вы пытаетесь предотвратить возможный беспорядок.
  4. Хотите избавиться от дублей страниц или копии сайта: не стоит относится к дублям как чему-то безвредному и незначительному. С дублями вы теряете в весе и сдаете позиции конкурентам, а так же дублирование контента может привести к штрафам от поисковых систем.

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

  1. Вы временно переезжаете на новую страницу: для этого есть 302 и 307 код, это гарантия того, что не произойдёт склейки страниц и оригинальная страница не выпадет из поисковой выдачи.
  2. Вы переезжаете из-за проблем со старым доменом: если у вас есть баны, фильтры и штрафы, то при склейке к вам перейдет не только ТИЦ и PR, но и все беды, от которых вы бежали.

Код ответа 301 (Moved Permanently) означает, что запрошенный документ теперь доступен по новому адресу на постоянной основе. Редирект 301 может понадобиться в нескольких случаях: переезд на новый домен, изменение адреса страницы или . Цели этих мероприятий вполне прозрачны:

  • Перенос старых показателей на новую страницу или домен.
  • Устранение битых ссылок, как внешних, так и внутренних.
  • Устранение дублей страниц.

Существует несколько способов сделать 301 редирект, но я предпочитаю вариант с использованием файла.htaccess, который находится в корневой папке FTP вашего сайта (если его там нет, то просто создайте его, он не имеет расширения).

Настройка 301 редиректа со страницы на страницу

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

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

Также его можно использовать для борьбы с дублями страниц. В общем нужно писать книгу на тему «99 способов использование Redirect 301». Вот его синтаксис:

Redirect 301 /old-page.html http://new-domain.ru/new-page.html

Ну или так, результат будет один и тот же:

Redirect permanent /old-page.html http://new-domain.ru/new-page.html

Поясняю: /old-page.html - относительный адрес старой страницы. Он может быть вложенным: /old-category/old-page.html, ну или таким: /old-category/old-page/ - тут никаких ограничений нет. Тоже самое относится к http://new-domain.ru/new-page.html (новой странице), с той лишь разницей, что путь тут абсолютный (не обязательно, чтобы это был новый домен - может быть просто новый внутренний адрес страницы).

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

Не менее понятная ситуация. Возникла необходимость переехать на новый домен, сохранив показатели старого ( , PR). В этом случае приписываем в.htaccess старого домена следующее:

Options +FollowSymLinks
RewriteEngine on

RewriteEngine off

RewriteCond %{HTTP_HOST} ^old-domain\.ru
RewriteRule ^(.*)$ http://new-domain.ru/$1
RewriteCond %{HTTP_HOST} ^www.oldsite\.ru
RewriteRule ^(.*)$ http://old-domain.ru/$1

В данном примере мы установили редирект всех страниц старого домена на страницы нового (при условии, что их относительные адреса совпадают). При этом мы оставили без редиректа на старом домене файл robots.txt, чтобы процесс переноса был более полноценным. В него мы прописываем:

User-agent: *
Disallow:
Host: newsite.ru
Sitemap: http://newsite.ru/sitemap.xml

Ну и ждём пару месяцев, пока переезд домена не будет зачтен, а все характеристики - переданы.

Склейка зеркал сайта: 301 редирект c www на без www и наоборот

Существует несколько вариантов обращения к сайту - с www и без www (например, сайт и www.сайт). Пользователю все равно, как именно вводить URL, так как он в любом случае попадет на одну и ту же страницу. Иначе дело обстоит с поисковыми системами. Они расценивают www.site.ru и site.ru, как два совершенно разных домена (что тянется из глубин истории всемирной сети, когда это действительно было так).

Эти дубли мешают индексации сайта и продвижению в целом, так как, во-первых, это банальные дубли страниц (уж извиняюсь за повторение) и, во-вторых, входящие ссылки будут также укладываться в разные корзины. Тоже самое касается и дублей главной страницы: site.ru, site.ru/index.html, site.ru/index.php и т.д. По этой причине еще на этапе создания сайта желательно позаботиться об этом вопросе и одну из версий сайта (например, c www) переадресовать на другую (например, без www). Если момент был упущен, то тут нет ничего страшного.

Рассмотрим процесс склейки зеркал с помощью 301 редиректа поэтапно.

1. Определяем основной домен, выбранный для индексации поисковыми системами.

Основное зеркало можно легко определить по результатам поисковой выдачи Яндекс и . Вводим название домена и смотрим, какой адрес отобразится: www.site.ru или site.ru. Если же сайт еще не проиндексирован, то выбираем его по своему усмотрению. Если в Google и Yandex основные домены разные, то лучше оставьте Яндексовский.

2. Прописываем 301 редирект в.htaccess.

Находим в корне FTP сайта файл.htaccess, скачиваем и открываем в блокноте, а затем вносим в него необходимые изменения. Первый вариант - 301 редирект домена без www на с www:

Options +FollowSymLinks
RewriteEngine On

RewriteEngine off

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

Обратная ситуация - с www на без www:

Options +FollowSymLinks
RewriteEngine On

RewriteEngine off

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

После завершения редактирования, сохраняем файл и загружаем его в корневую папку FTP с перезаписью.

Опционально можно сразу же позаботиться о дублях главной страницы вида index.php и index.html, добавим ниже следующий код:


RewriteRule ^index\.html$ http://www.site.ru/

RewriteRule ^index\.php$ http://www.site.ru/

Ну и, опять же, если у вас site.ru:

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://site.ru/
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/

3. Настройка robots.txt

Увидели знакомую директиву, оставляющей robots.txt нетронутым? Все верно, вносим изменение в robots.txt:

Host: основное-зеркало.ru

4. Проверяем работу сайта.

Вводим тот адрес, который с которого мы проставляли редирект, например www.site.ru или site.ru/index.html и если при заходе на него происходит переход на site.ru, то всё настроено правильно.

5. Настройка Yandex и Google вебмастер.

Дополнительно применяем соответствующие настройки в личных . В случае с Yandex:

Ну и для Google:

На этом вроде всё. Удачи вам и если появятся вопросы, то пишите в комментариях.

Редирект 301 - зачем он нужен? В процессе продвижения сайта может возникнуть ситуация, когда необходимо изменить url страницы. Причины тому могут быть разные: переезд на новый домен, склейка дублей страниц, или даже, не к ночи будут помянуты, санкции поисковых систем. Чтобы изменить url, используется перенаправление, правильно называющееся «301 Permanent Redirect».

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

301 redirect действует на постоянной основе, передает со старой страницы на новую ссылочный вес, ТИЦ сайта и . Также, если сайт находится в каталоге Яндекс или DMOZ, страниц нового сайта в нем, разумеется, не будет. Помимо этого, используется 301 редирект на другой сайт, и перенаправление с одной версии сайта на другую. В частности так избавляются от проблем при индексации, возникающих из-за дублирования страниц сайта.

Избавление от дублей страниц также называют канонизацией.

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

При использовании некоторых CMS (систем управления контентом, или «движков» сайта) редирект можно настроить при помощи специальных плагинов. Однако более распространена практика настройки 301 редиректа посредством внесения изменений в файл.htaссess.

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

Cклеивания зеркал сайта

Для поисковой системы site.name и www.site.name – разные сайты. Один из них будет проиндексирован, второй же окажется дублем. Чтобы подобного не произошло, делают так называемое «склеивание» сайта. С сайта с «www» указывается перенаправление на сайт без «www». Это делается в файле.htaccess, с помощью следующей конструкции:

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

Если на начальном этапе этого не было сделано, и в индекс попала версия сайта с «www», стоит сделать обратное перенаправление.

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

Перенаправление на страницу с другим url

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

RewriteEngine On RewriteRule ^(.*)url.html$ http://vash-sait.ru/new-url.html

Перенаправление на другой домен

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

RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.staryy-sait\.ru$ RewriteRule ^(.*)$ http://novyy-sait.ru/$1 RewriteCond %{HTTP_HOST} ^staryy-sait\.ru$ RewriteRule ^(.*)$ http://novyy-sait.ru/$1

Редирект алиасов на основной домен сайта

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

RewriteEngine On RewriteCond %{HTTP_HOST} ^vash-sait.com$ RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://vash-sait.ru/$1

Убираем расширение с помощью 301 редиректа

RewriteEngine on RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

Перенаправление с index.php на главную

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

RewriteEngine On RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://vash-sait.ru/

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

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1

Редирект для url с параметрами

Если исходный адрес содержит какой-либо параметр (например, http://vash-sait.ru/articles.php?section=1. Параметр здесь "section=1"), то перенаправляющая конструкция будет иметь следующий вид:

RewriteEngine On RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://vash-sait.ru/articles.php?

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

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

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

К переадресации 301 обычно прибегают в таких случаях:

  • Смена домена. Редирект позволяет сделать ее незаметной для пользователей, обеспечивая их перемещение на новый адрес при введении в адресную строку старого.
  • Необходимость сохранить поисковый трафик , Page Rank и ТИЦ, передав их новому домену.
  • Существование нескольких сайтов-зеркал с разными URL-адресами и необходимость перенаправлять трафик на основной домен при введении пользователем любого URL.
  • Объединение двух сайтов и необходимость корректной работы ссылок на устаревшие страницы.
  • Перенос страницы в новое место .
  • Необходимость склейки имени сайта .

Как настраивать 301 редирект — полная инструкция, пример кода

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

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

RewriteCond %{HTTP_HOST} ^www.site\.com$

RewriteRule ^(.*)$ http://site.com/$1

Для обратной процедуры:

RewriteCond %{HTTP_HOST} ^site\.com$

Для удаления слеша:

RewriteCond %{HTTP_HOST} (.*)

RewriteCond %{REQUEST_URI} /$

RewriteRule ^(.*)(/)$ $1

Для его добавления:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*[^/])$ $1/

Для редиректа страницы:

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Для перенаправления с дублей главной страницы на каноническую версию:

RewriteCond %{THE_REQUEST} ^{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1

Для редиректа каталога, структура которого вписана в URL:

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2

Для редиректа каталога, URL которого начинается сразу после домена:

RewriteRule old-catalog /(.*) / old-catalog /$1

Для случаев, когда изменяется только расширение URL (перенос сайта на другую платформу или CMS):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Как переехать на новый домен? Оптимальный вариант 301 редиректа

Смена домена — одна из самых распространенных причин выполнения постоянного редиректа. Встал вопрос, как переехать на новый домен? Разработанный с учетом алгоритмов работы основных поисковых систем Рунета, Google и Яндекс, оптимальный вариант 301 редиректа осуществляется по такой схеме:

  • постоянная переадресация каждой страницы старого сайта на новый;
  • редиректу не подлежит только файл robots.txt, вместо этого в нем прописывается директива Host с указанием нового домена.

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

RewriteCond %{REQUEST_FILENAME} robots.txt$

RewriteRule ^([^/]+) $1 [L]

RewriteCond %{HTTP_HOST} !^www\.site\.com

RewriteRule ^(.*)$ http://www.site.com/$1

Файл robots.txt применительно к старому сайту должен приобрести такой вид:

User-agent: Yandex

Disallow:

Host: newsite.com

Как настроить главное зеркало сайта

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

  • применяется директива Host, в качестве ее значения указывается имя главного зеркала. Выбор главного зеркала в соответствии с указанием этой директивы не гарантирован, но вероятность высока;
  • осуществляется серверный редирект со станиц старого ресурса, который теперь будет являться неглавным зеркалом, на новый.

Чтоб ускорить вступление изменений в силу, нужно выбрать сайт через Яндекс.Вебмастер, в разделе «Помощь» раскрыть пункт «Настройка индексирования» и перейти по ссылке «Главное зеркало». Здесь можно поставить отметку напротив домена, который при индексировании должен восприниматься роботом как главный.

Как и когда лучше использовать 301 редирект vs Canonical

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

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

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

301 редирект применяется, если:

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

Canonical предпочтительней в случаях, когда:

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

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

Очень важно после окончания прописывания кодов переадресации проверить работоспособность ресурса :

  • зайти на главную страницу, чтоб убедиться, что сайт вообще работает;
  • проверить загрузку основных разделов, наиболее важных страниц;
  • воспользоваться для тестирования сервисами http://bertal.ru и http://www.internetmarketingninjas.com/header-checker/.

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

Ошибки при использовании

Не все знают, как настраивать 301 редирект правильно. Наиболее распространенные ошибки при использовании постоянного редиректа:

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