Как закрыть сайт от ботов?

12
geotron
На сайте с 08.05.2018
Online
41
846

Доброго дня всем!

Скажите, а как правильно закрыть сайт от ботов типа hrefs, serpstat и т.д.?

Витали_Ч
На сайте с 11.04.2009
Offline
132
#1

Robots:


User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: SemrushBot-SA
Disallow: /

Далее по аналогии, гуглите полный список user-агентов сервисов, краулеров.

foxi
На сайте с 02.03.2011
Offline
880
#2

Смотреть логи, банить по юзерагенту в хтасес или конфиге нгинкса. Роботс он этих второсортных ботов особо никак не помогает.

Антибот защита для сайта (https://antibot.cloud/ru.html#searchengines) (защита от кражи контента и спама) | ВебМастерские микроблоги (https://wmsn.biz/#searchengines) | Фокси SEO форум (https://foxi.biz/#searchengines)
S
На сайте с 28.01.2018
Offline
19
#3

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

geotron
На сайте с 08.05.2018
Online
41
#4
foxi:
или конфиге нгинкса.
Sheffff:
А ещё можно блочить по юзер-агенту и доменному имени хоста, что гораздо эффективнее...

Это как? Расскажите, пожалуйста.

foxi
На сайте с 02.03.2011
Offline
880
#5

geotron, гуглите зарос: nginx map useragent block

там есть инструкции как блочить в нгинксе по юзерагенту.

S
На сайте с 28.01.2018
Offline
19
#6
geotron:
Это как? Расскажите, пожалуйста.

if (strstr($_SERVER['HTTP_USER_AGENT'], 'yandex'))

и

if (strpos(gethostbyaddr ($_SERVER['REMOTE_ADDR']), 'yandex')>0)
R
На сайте с 04.03.2009
Offline
94
#7

Подскажите пожалуйста как в nginx map банить айпишники??

K0
На сайте с 16.05.2012
Offline
73
#8

gethostbyaddr не быстрая функция. Не рекомендовал бы использовть её без должной оптимизации.

Для блокировки ip лучше использовать geo, т.к. можно будет рулить диапазонами.

https://nginx.org/ru/docs/http/ngx_http_geo_module.html

foxi
На сайте с 02.03.2011
Offline
880
#9

kreat0r, согласен, gethostbyaddr на каждый запрос исполнять так себе идея.

DV
На сайте с 01.05.2010
Offline
644
#10

По юзерагенту, примерно такая конструкция.


map $http_user_agent $scanner {
default 0;
~*curl 1;
~*OpenLinkProfiler.org 1;
~*SemrushBot 1;
~*BLEXBot 1;
~*WebIndex 1;
~*TurnitinBot 1;
~*MJ12bot 1;
~*majestic12 1;
~*AhrefsBot 1;
~*SputnikBot 1;
~*statdom.ru 1;
~*SearchBot 1;
~*xUSAx 1;
~*xpymep 1;
~*MegaIndex 1;
~*SurveyBot 1;
~*nikolaydovydov@km.ru 1;
~*DomainCrawler 1;
~*Digincore 1;
~*uptime.com 1;
~*openstat.ru 1;
~*ltx71.com 1;
~*python-requests 1;
~*DataMiner 1;
~*Baiduspider 1;
~*HybridBot 1;
~*PycURL 1;
~*MegaIndex 1;
~*DotBot 1;
~*SeopultContentAnalyzer 1;
~*StatOnlineRuBot 1;
~*NetcraftSurveyAgent 1;
~*Uptimebot 1;
~*Sogou\ web\ spider 1;
~*SEO\ Spider 1;
~*CheckMarkNetwork 1;
~*Virusdie\ crawler 1;
~*DomainCrawler 1;
~*DowntimeDetector 1;
~*Java\/1 1;
~*ltx71 1;
~*Phantom.js 1;
~*ExtLinksBot 1;
~*Exabot 1;
~*python-requests 1;
~*links.guru 1;
~*Go-http-client 1;
~*SafeDNSBot 1;
~*PhantomJS 1;
~*SEOkicks-Robot 1;
~*www.site-shot.com 1;
~*Barkrowler 1;
~*BUbiNG 1;
~*trendictionbot 1;
~*brandnewblogs.com 1;
~*MauiBot 1;
~*serpstatbot.com 1;
~*HTTrack 1;
~*bot@linguee.com 1;
}

.......

# А это в vhost'e, в конкретном локейшне
set $permit_access 1;

if ($scanner = '1') {
set $permit_access 0;
}

if ($permit_access != 1) {
return 444;
}

За точность не поручусь, у меня оно в нескольких файлах раскидано, плюс ещё несколько конфигураций одновременно, для разных локейшнов.

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

Но принцип поймете, куда копать.

Кстати, вот это "return 444;" у меня есть в нескольких местах, и при желании, если кто-то достанет, можно сделать небольшой DDoS редиректами. Многие боты тупые, на ура убегают куда пошлёшь.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий