Есть две причины запрещать ботам доступ к сайту.
Первая, это содержимое сайта, которое не должно попасть в поисковую выдачу и трафик который съедают некоторые роботы.
Бывает еще что боты дают нагрузку и хостер жалуется или блочит ботов сам (как это было довольно недавно с хостпро). Но тогда нужно не ботов блокировать ,а хостера менять.
Два варианта блокировки доступа к сайту ботам через файл .htaccess и robots.txt
Файл .htaccess
через файл .htaccess
Чтобы защититься от роботов, нужно прописать:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^Googlebot
RewriteRule ^.*$ - [F]
Здесь мы не разрешаем боту Googlebot получить доступ к сайту.
Для запрета нескольким роботам, нужно добавить еще строку:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^ Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} ^ Yandex
RewriteRule ^.*$ - [F]
через файл robots.txt
User-agent: * - блокируем доступ для всех ботов.
User-agent: Yandex - блокируем Яндекс.
User-agent: Googlebot - блокируем Гугл.
Allow: / - разрешить доступ ко всему
Allow: /doc/ - разрешить доступ к папке doc
Allow: /doc.php - разрешить доступ к файлу doc.php
Disallow: / - запретить доступ ко всему
Disallow: /doc/ - запретить доступ к папке doc
Disallow: /doc.php - запретить доступ к файлу doc.php
Запретить сайт к индексации полностью можно с помощью такого файла robots.txt
User-agent: *
Disallow: /
User-agent: Yandex
Disallow: /doc/
Disallow: /doc.html
этим файлом мы Запрещает ботам Яндекса посещать папку
http://site.ua/doc/
и файл
http://site.com.ua/doc.html
User-agent: Aport
User-agent: Googlebot
Disallow: /doc/img/
такая запись запрещает индексацию ботами Google и Апорт
http://site.com.ua/doc/img/
User-agent: StackRambler
Disallow:
для роботов Рамблера разрешено посещение всех страниц и папок сайта
User-Agent: *
Disallow: /lesson.php?action=test
Запрещает посещение всеми ботами, для которых не сделана отдельная запись,
динамических страниц, начинающихся с
http://site.com.ua/lesson.php?action=test
например:
http://site.ru/lesson.php?action=test&id=13
чувствительно к порядку переменных в ссылке
Некоторые поисковые системы поддерживают дополнительные поля в файле robots.txt. Яндексом поддерживается директива Host, служащая для назначения основного зеркала:
User-agent: Yandex
Disallow: /test/
Host: site.com.ua
User-agent: *
Disallow:
Яндексу разрешено посещение всех страниц и папок на сайте, кроме
http://site.com.ua/test/
основным зеркалом назначено
http://site.com.ua/
А всем остальным роботам, кроме бота Яндекса, разрешено посещение всех страниц и папок на сайте