301 редирект на все кроме robots.txt

Купив новый домен который гораздо больше имеет общего с тематикой сайта я озадачился таким вопросом. Как перенести все проиндексированные страницы с одного  домена на другой? На первый взгляд все предельно просто и логично. Делаем точную копию имеющегося сайта (зеркало) на новом домене, ставим серверный 301 редирект со старого на новый и человек или поисковый робот обратившийся по старому адресу будет автоматически перенаправлен на новый адрес. При использовании такого способа вы не теряете посетителей которые заходят по старому адресу (а ведь в поисковиках полное обновление может занять месяцы) и поисковые боты будут довольны. Особенно такой способ с 301 редиректом  «любит» Google Bot и за несколько дней уже перетащил большинство проиндексированных страниц на новый адрес. В случае с Яндексом такой способ не самый лучший, ибо как говорят сеошники процесс переноса индекса будет очень долгим. Для Яндекса более быстрый и приоритетный вариантом будет указание директивы Host в файле robots.txt в которой будет прописан новое доменное имя как основное зеркало. Вся соль в том, что Google не понимает директиву Host и указать ему о смене домена можно только через 301 редирект и подачу заявки в Google Web Masters.

Из всего вышесказанного следствует то, что идеальным способом не потерять проиндексированные страницы в обоих поисковых машинах это установить глобальный редирект на все страницы сайта для Google и оставить доступ Яндекс боту к robots.txt. Сделать это можно через .htaccess с таким содержанием:

 

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteRule ^(.*)$ [R=301,L]

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

Сохраняем .htaccess,прописываем директиву Host с указанием нового основного зеркала и ждем  YandexBot/3.0; MirrorDetector

Оцените статью