Поддержка Проблемы и решения Незванные роботы нагружают сайт

  • Здравствуйте, интересует такой вопрос: можно закрыть доступ к сайту всех роботов через файл .htaccess но разрешить поисковым роботам доступ к сайту? можно так сделать и как ?

    Также отпишите свои варианты как лучше бороться с незваными роботами

Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Модератор Yui

    (@fierevere)

    永子

    у вас вообщем-то 2 варианта

    первый — вежливо попросить не лазить по сайту, в robots.txt

    User-agent: GoogleBot
    Disallow: /wp-admin/
    
    User-agent: Yandex
    Crawl-delay: 2
    Disallow: /wp-admin/
    
    User-agent: *
    Disallow: /

    второй — банить по user-agent

    SetEnvIfNoCase User-Agent "Java/1.6.0_04" bad_bot
    SetEnvIfNoCase User-Agent "Java/1.6.0_24" bad_bot
    SetEnvIfNoCase User-Agent "Downloader" bad_bot
    
    <Limit GET POST HEAD>
     Order Allow,Deny
     Allow from all
     Deny from env=bad_bot
    </Limit>

    список сами составите, или можно нагуглить… только все равно посмотрите кого баните, не всегда нагугленные списки хороши на все 100

    ну и ботов все равно не перебанить, MSIE 6.0 многие представляются.

    Как вариант можно заскриптовать ханипот — на странице разместить картинку или css, если загружена — человек, нет — бот, добавить в черный список по IP, где то даже готовые варианты были подобных скриптов

    Большое спасибо за помощь и с наступающим НГ
    Если закрывать через роботс то еще нужно указать User-agent для меил и бинг поисковиков? Вариант хороший, но по моему так никто не делает, оставлю его про запас))

    Список роботов я могу посмотреть в статистике, подскажи какие из этих ботов лучше не блокировать, с поисковиками, все понятно, а вот остальные под вопросом) особенно интересует бот Unknown robot (identified by ‘bot*’) он больше всех нагружает.

    Unknown robot (identified by ‘bot*’)
    bingbot
    Yandex bot
    MJ12bot
    Mail.ru bot
    Googlebot
    WordPress
    Unknown robot (identified by ‘crawl’)
    Unknown robot (identified by empty user agent string)
    Unknown robot (identified by ‘robot’)
    WebFilter
    Feedfetcher-Google
    StackRambler
    Unknown robot (identified by hit on ‘robots.txt’)
    Yahoo Slurp
    proximic
    Nutch
    Unknown robot (identified by ‘spider’)
    FavIconizer
    archive.org bot
    SeznamBot
    Google AdSense
    WGet tools
    CFNetwork
    twitterbot
    Python-urllib
    Exabot
    Alexa (IA Archiver)
    BaiDuSpider
    FaceBook bot
    Bing Preview bot
    A PHP script
    Suspected bot masqurading as Mozilla
    rpt-httpclient
    TITAN
    MSNBot-media
    Common *nix tool for automating web document retireval. Most likely a bot.
    SurveyBot
    Jakarta commons-httpclient
    Java (Often spam bot)
    Unknown robot (identified by ‘scanner’)
    Unknown robot (identified by ‘checker’)

    Модератор Yui

    (@fierevere)

    永子

    Unknown robot (identified by ‘bot*’) он больше всех нагружает.

    у любого запроса есть user agent, или бывает даже что это пустая строка, слово «bot» встречается много где, я бы не стала явно банить.

    MJ12bot

    грузят, какая то сео контора которая анализирует ссылки, robots.txt уважают

    WordPress

    как внутренние запросы (cron!) , так и внешние trackback/pingback , банить не стоит

    Python-urllib

    скрипт на питоне, автор не потрудился выставить UserAgent, обычно спам

    Baidu

    китайский «гугл», иногда сильно тупит, не уважает robots.txt

    Jakarta commons

    лет 6 назад спамили, давно не вижу

    могу показать то что блокирую я, у меня для nginx

    Модератор Yui

    (@fierevere)

    永子

    set $block_user_agents 0;
        if ($http_user_agent ~ "360Spider")       { set $block_user_agents 1; }
        if ($http_user_agent ~ "SEOkicks-Robot")  { set $block_user_agents 1; }
        if ($http_user_agent ~ "Indy Library")    { set $block_user_agents 1; }
        if ($http_user_agent ~ "libwww-perl")     { set $block_user_agents 1; }
        if ($http_user_agent ~ "GetRight")        { set $block_user_agents 1; }
        if ($http_user_agent ~ "GetWeb!")         { set $block_user_agents 1; }
        if ($http_user_agent ~ "Go!Zilla")        { set $block_user_agents 1; }
        if ($http_user_agent ~ "Download Demon")  { set $block_user_agents 1; }
        if ($http_user_agent ~ "Go-Ahead-Got-It") { set $block_user_agents 1; }
        if ($http_user_agent ~ "URLGrabber")      { set $block_user_agents 1; }
        if ($http_user_agent ~ "Java")            { set $block_user_agents 1; }
        if ($http_user_agent ~ "Ezooms")          { set $block_user_agents 1; }
        if ($http_user_agent ~ "Jakarta")         { set $block_user_agents 1; }
        if ($http_user_agent ~ "TurnitinBot")     { set $block_user_agents 1; }
        if ($http_user_agent ~ "ZmEu")            { set $block_user_agents 1; }
        if ($http_user_agent ~ "CCBot/")          { set $block_user_agents 1; }
        if ($http_user_agent ~ "SISTRIX")         { set $block_user_agents 1; }
        if ($http_user_agent ~ "CrystalSemanticsBot") { set $block_user_agents 1; }
        if ($http_user_agent ~ "ScreenerBot")     { set $block_user_agents 1; }
        if ($http_user_agent ~ "BLEXBot")         { set $block_user_agents 1; }
        if ($http_user_agent ~ "WebBot-FindUrl")  { set $block_user_agents 1; }
        if ($http_user_agent ~ "sukibot_heritrix") { set $block_user_agents 1; }
    if ($block_user_agents = 1)                   { return 403; }

    вообще прогоните свои логи через webalizer или другой анализатор и посмотрите кто досаждает на вашем сайте, а дальше уже баньте, если они вам не нужны и перегружают сайт, чужие списки не есть хорошо

    Если бот называет так — Alexa (IA Archiver)
    название этого бота нужно указывать полностью или только Alexa

    if ($http_user_agent ~ "Alexa")       { set $block_user_agents 1; }
    if ($http_user_agent ~ "Alexa (IA Archiver)")  { set $block_user_agents 1; }

    первый или второй вариант будет правильным?

    Модератор Yui

    (@fierevere)

    永子

    не копируйте это в .htaccess , работать не будет
    это правила для nginx

    для .htaccess (Apache) http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html

    SetEnvIfNoCase User-Agent «Alexa» bad_bot

    хотя лично я Alexa бы банить не стала, может когда нибудь получится в топ 1000 попасть 😀

    Админ хостинга заблокировали бота Navigator вот таким вариантом

    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} Navigator [NC]
    RewriteRule ^(.*)$ – [F,L]

    какой вариант использовать лучше? или без разницы.

    Модератор Yui

    (@fierevere)

    永子

    я давно не использую Apache, почитайте сами оригинал документации
    http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

    или в сети есть переводы и другие руководства.

    ///
    разница в использовании разных модулей mod_rewrite / mod_setenvif, возможно rewrite будет быстрее и потреблять меньше ресурсов сервера, надо тестировать 😀

    Модератор Yui

    (@fierevere)

    永子

    https://wordpress.org/plugins/bad-behavior/

    еще можете вот этот плагин посмотреть,
    бот конечно дойдет до PHP, но БД и движок вордпресса грузить не будет, помогает даже от ботов которые маскируются под поисковики, хотя на самом деле таковыми не являются, плагин раньше регулярно обновлялся, сейчас — не знаю, надеюсь что обновляется.

    Заблокировал больше 10 ботов, но нагрузка по прежнему зашкаливает, воспользуюсь плагином, возможно он блокирует боты правообладателей)

    Модератор Yui

    (@fierevere)

    永子

    в чем выражается зашкаленность нагрузки?
    что у вас за хостинг?

    боты — неизбежное зло, траффик от ботов в мире превышает 60%
    полностью всех не перебанить и не переблочить

    sprinthost.ru — очень чувствительный к нагрузкам, если вылезать за тариф будет иногда выдавать сообщение о перегрузке.
    Писал им, чтоб провели диагностику, но у них одни мысли — перевести на более дорогой тариф. Попросил отчет о нагрузках на сервер, нашел там несколько ботов и заблокировал.

    Могу показать скрин с нагрузками,

    Мой сайт http://kinoklik.net/

    Модератор Yui

    (@fierevere)

    永子

    ясно, так и подумала что шаред хостинг шлет «письма счастья»

    отчет был бы интересен вот примерно такой
    http://storage7.static.itmages.ru/i/14/1229/h_1419877407_3388821_ffe7f26a5a.png

    зеленые точки стоят у «нормальных» поисковых ботов
    красные — у тех, которые «ненормальные» и если это не ваша личная инициатива — их стоило бы забанить, только не копируйте сразу эти агенты в свои правила бана, там банить нечего, кроме того Xenu Link Sleuth я бы весьма рекомендовала для проверки сайта на битые ссылки, Link Checker — хуже
    откровенно плохие злобные боты у меня в ТОП 50 не попали

    синие точки стоят там где user agent вызывает подозрение на то что он был подделан, или слишком старое, или необычное сочетание или что-то было пропущено, например указано «Trident» без версии IE

    AhrefsBot — СЕО контора какая-то, я их пока не баню, но полезность их под сомнением, поэтому стоят обе точки… на усмотрение.

    отчет составлен webalyzer по обычному логу сервера (формат apache combined), у вас должен быть доступ. Если на хосте нет вебалайзера, можно скачать лог и проанализировать локально. Есть вроде версия для венды тоже.

    Ну Лог у меня есть за 27 число, утром его частично проанализировал. Вот статистика посещений, ботов и т.д. http://kinoklik.net/awstats/
    Только в ней не все боты отображаются. По поводу webalyzer спрошу у админов хостинга, возможно они об этом даже не слышали)

    Есть еще бот, который через каждых 5 минут спамит в комментариях ВК, банить аккаунты бесполезно, этого бота вычислить и заблокировать было бы чудесно, но скорей всего он не перегружает сайт.

Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Тема «Незванные роботы нагружают сайт» закрыта для новых ответов.