Роботы бывают разные есть полезные типа yandex или googlebot которые помогают поднять посещаемость сайта, но бывают и вредные которые сильно нагружают сервер или пытаются навредить. После того как вредные работы были найдены в логах нужно как то ограничить их деятельность. Самое простое это добавить пару правил для apache в файлике .htaccess
Если вы используете модуль mod_rewrite то правила выглядят так:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^Purebot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DotBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Ezooms [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Robot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ichiro [NC,OR} RewriteCond %{HTTP_USER_AGENT} ^VoilaBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Rankur [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DLE_Spider [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^cmsworldmap [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^libwww-perl [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SurveyBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^RadioClicker [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Embedly [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^TweetmemeBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^discobot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Admin search system: bezonanet@mail.ru [OR] RewriteCond %{HTTP_USER_AGENT} ^AhrefsBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SearchBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^kmbot RewriteRule ^(.*)$ — [F,L]
Перечисляем всех роботов которых хотим заблокировать и в последней строчке запрещаем им доступ.
Тем кому больше нравиться модуль mod_setenvif правила для .htaccess выглядят так:
<IfModule mod_setenvif.c> SetEnvIf User-agent ^-?$ bad SetEnvIfNoCase User-Agent Snake Bot bad SetEnvIfNoCase User-Agent DLE_Spider bad SetEnvIfNoCase User-Agent cmsworldmap bad SetEnvIfNoCase User-Agent SurveyBot bad SetEnvIfNoCase User-Agent Purebot bad SetEnvIfNoCase User-Agent DotBot bad SetEnvIfNoCase User-Agent Robot bad SetEnvIfNoCase User-Agent Apache-HttpClient bad SetEnvIfNoCase User-Agent gigabot bad SetEnvIfNoCase User-Agent discobot bad SetEnvIfNoCase User-Agent Nutch bad SetEnvIfNoCase User-Agent HuaweiSymantecSpider bad SetEnvIfNoCase User-Agent GarlikCrawler bad SetEnvIfNoCase User-Agent SearchBot bad SetEnvIfNoCase User-Agent Ezooms bad SetEnvIfNoCase User-Agent ichiro bad SetEnvIfNoCase User-Agent VoilaBot bad SetEnvIfNoCase User-Agent Rankur bad SetEnvIfNoCase User-Agent RadioClicker bad SetEnvIfNoCase User-Agent Embedly bad SetEnvIfNoCase User-Agent TweetmemeBot bad SetEnvIfNoCase User-Agent discobot bad SetEnvIfNoCase User-Agent Admin search system: bezonanet@mail.ru bad SetEnvIfNoCase User-Agent AhrefsBot bad SetEnvIfNoCase User-Agent kmbot bad <Limit GET POST HEAD> Order Allow,Deny Allow from all Deny from env=bad </Limit> </IfModule>
Первое правило чтобы заблокировать доступ всем у кого пустое поле User-Agent. Дальше идет список роботов и в конце правила блокировки.
Для порядочных роботов желательно в файлик robots.txt добавить директиву Crawl-delay:
User-agent: * Disallow: /search Crawl-delay: 5
Это говорит роботу что он должен делать пяти секундную паузу после загрузки каждой страницы.
Пример кода со списком роботов взят здесь:
http://serveradministrator.ru/howto/blocking-bad-robots/
Рекомендации по использованию Crawl-delay: