Робот Троповода — TropovodBot

TropovodBot скачивает страницы сайта, когда пользователь Троповода ищет на нём места для внутренних ссылок на одну из страниц. Сайт робот только читает: ничего не отправляет и не меняет.

Как узнать робота · Как он ходит · robots.txt · Сайт за защитой от ботов

Как узнать робота

Робот представляется так:

Mozilla/5.0 (compatible; TropovodBot/1.0; +https://tropovod.ru/bot)

В robots.txt и в правилах защиты достаточно слова TropovodBot.

Запросы приходят с адреса 135.106.199.52. Адрес может смениться при переезде сервера, поэтому правило по User-Agent надёжнее, а правило по IP нужно там, где User-Agent не помогает, — например, в режиме Bot Fight Mode у Cloudflare.

Как он ходит

  • Только когда пользователь Троповода запустил прогон по странице вашего сайта. Фонового обхода и расписания нет.
  • За прогон — robots.txt, целевая страница, карта сайта и до 300 страниц сайта: на небольшом сайте — все страницы из карты сайта, на большом — те, что поиск Яндекса находит по теме, и часть карты сайта.
  • Не больше 2 запросов к сайту одновременно.
  • Первый ответ 429 или 503 останавливает загрузку: до конца прогона робот больше ничего с сайта не запрашивает. Так же — после трёх ответов 403 подряд или трёх запросов подряд без ответа.
  • Заголовок Retry-After робот запоминает: раньше названного срока, но не дольше суток, новый прогон по сайту не начнётся.
  • По одному сайту — не больше 5 прогонов в сутки на всех пользователей вместе.
  • Страницу больше 2 МБ робот не дочитывает, на запрос отводит не больше 60 секунд.
  • JavaScript не выполняет, форм не отправляет, защиту от ботов не обходит.

robots.txt

TropovodBot соблюдает robots.txt так же, как роботы Яндекса и Google: читает группу User-agent: TropovodBot, а если её нет — правила для всех роботов, User-agent: *. Закрытые страницы робот не скачивает. robots.txt он запрашивает первым, до любой страницы сайта; если файл отвечает ошибкой сервера (5xx) или не отвечает вовсе, робот считает закрытым весь сайт — так велит стандарт RFC 9309.

Закрыть сайт от Троповода:

User-agent: TropovodBot
Disallow: /

Открыть сайт Троповоду, если robots.txt пускает только поисковых роботов:

User-agent: TropovodBot
Allow: /

Своя группа заменяет для робота правила User-agent: * целиком: перенесите в неё запреты, которые нужно сохранить, например Disallow: /admin/.

Crawl-delay робот не читает — как Яндекс и Google: он и так ходит не больше чем по 2 запроса и останавливается на первом 429 или 503.

Сайт за защитой от ботов

Защиту от ботов Троповод не обходит: если она закрывает сайт, прогон останавливается, а пользователь получает ссылку на эту страницу. Чтобы пустить робота, добавьте правило, которое пропускает запросы с TropovodBot в User-Agent, а где это невозможно — правило по IP.

Cloudflare

  • По User-Agent: Security → WAF → Custom rules → Create rule. Поле User Agent, оператор contains, значение TropovodBot, действие Skip. Отметьте All remaining custom rules, All rate limiting rules, All managed rules, All Super Bot Fight Mode rules, а среди продуктов — Browser Integrity Check и Security Level.
  • Bot Fight Mode на бесплатном тарифе исключений не допускает: правило по User-Agent его не обходит. Добавьте IP робота в IP Access Rules с действием Allow (Security → WAF → Tools): Bot Fight Mode не срабатывает, если первым совпало такое правило. Или выключите Bot Fight Mode.

DDoS-Guard

  • По User-Agent: личный кабинет → «Веб-защита» → «Домены» → ваш домен → «Правила защиты» → «Создать правило». Условие: User-Agent, contains, TropovodBot; действие «Пропускать».
  • По IP: «Домены» → ваш домен → «Черный/белый список» → «Добавить правило»: адрес робота и действие «Пропускать».

Qrator

  • По User-Agent: Domains → ваш домен → Filter configuration → HTTP Headers: правило белого списка для User-Agent с проверкой Contains и значением TropovodBot. Qrator пропустит адреса, с которых приходят такие запросы; правило начинает работать через несколько минут.
  • По IP: Network → IP lists → Whitelist → Whitelist IP addresses.

Названия разделов Qrator — как в его документации на английском; в русском интерфейсе они могут называться иначе.

Другая защита

Пропустите запросы, у которых в User-Agent есть TropovodBot. Ограничение частоты в nginx по умолчанию отвечает 503: робот на нём останавливается и доделывает прогон на том, что успел скачать.

Проверить правило по User-Agent можно запросом с тем же заголовком:

curl -I -A "Mozilla/5.0 (compatible; TropovodBot/1.0; +https://tropovod.ru/bot)" https://site.ru/page/

User-Agent легко подделать: правило по нему пропустит любого, кто так представится. Если это важно, добавьте в правило условие по IP — и обновите его, если адрес робота сменится.

Вопросы о роботе — на info@tropovod.ru.