Порой на сайтах становится необходимым закрыть от индексации поддомены. Например, при создании мультирегиональных или мультиязычных сайтов не всегда есть необходимость попадания поддоменов в поисковую выдачу. Чаще всего перед сеошником такая задача стоит когда нужно для Яндекса создать кучу региональных поддоменов, при этом для Google, из-за отличий регионального ранжирования, эти поддомены желательно скрыть от индексации в Robots.txt через директиву Disallow.
К сожалению директивы позволяющей сделать это в текстовом файле не существует, поэтому пришлось прибегнуть к PHP.
И так, создаем файл robots.php с примерно со следующим содержимым:
<?php
header('Content-type: text/plain');
$subdomain = str_replace('нашдомен.com', '', $_SERVER['HTTP_HOST']);
if ($subdomain !== '') {
echo '
User-agent: googlebot
Disallow: /
';
}
?>
User-agent: *
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
#другие директивы вашего роботса
Sitemap: https://<?php echo $_SERVER['SERVER_NAME']; ?>/sitemap.xml
В данном примере мы задали, что если роботс показывается на поддомене, то добавляется директива User-agent: googlebot Disallow: / которая запрещает сайт к индексации в Google. Вы можете задать свое значение для отдельных User-agent (подробнее о User-agent тут )
Также в примере настроены динамические Host и Sitemap, то есть будет показываться именно текущий хост с нужным поддоменом, или без.
После того как файл robots.php залили в корневую папку сайта, нам нужно подправить файл .htaccess, где прописываем следующую строчку:
RewriteRule ^robots.txt$ /robots.php [L,QSA]
Удаляем текстовый файл robots.txt и проверяем работоспособность нового роботса. (кстати на некоторых хостингах редирект с robots.txt на robots.php работает наоборот, лишь при наличии обеих в корне сайта, поэтому удалять текстовый роботс или нет, нужно проверять индивидуально)
- 963 просмотра