В отличие от многих ботов из категории «прочие краулеры и сервисы», YelpBot — не анонимный скрипт: его строка User-Agent прямо называет оператора и даже содержит контактный адрес. Это Yelp Inc., и обходит он сайты бизнесов, чтобы наполнять данными их профили на Yelp, а не для пользы самого владельца сайта — отсюда и метка «нежелательный» в базе TrafficVeil, несмотря на прозрачность бота. Ниже — как распознать его в логах, оценить нагрузку и настроить доступ через robots.txt, сервер или TrafficVeil.
Что такое YelpBot и кто им управляет
Типичная строка User-Agent выглядит так: Mozilla/5.0/Nutch-1.6 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com) — встречается и вариант с указанием yelpspider/yelpspider-1.0. Бот построен на движке Nutch и открыто идентифицирует себя как краулер Yelp, включая контактный email для вопросов вебмастеров — редкая для этой категории степень прозрачности. Назначение — обход сайтов компаний и организаций для сбора данных, которые Yelp использует в собственных бизнес-профилях: адреса, контакты, изображения и другую публичную информацию о бизнесе.
Почему прозрачный бот всё равно помечен как нежелательный
Ключевое отличие от, например, Googlebot: обход YelpBot приносит пользу не сайту, который он посещает, а продукту Yelp — и косвенно самому бизнесу, только если этот бизнес заинтересован в качественном профиле на Yelp (актуально в первую очередь для локальных сервисов, ресторанов, точек с физическим адресом, ориентированных на англоязычные рынки, где Yelp популярен). Для сайтов без витрины на Yelp — например, чисто информационных проектов, SaaS без физических точек или площадок вне рынков, где Yelp актуален, — обход не даёт вообще никакой отдачи, а нагрузку создаёт. Поэтому дефолтная метка «нежелательный» в TrafficVeil логична как база, но её стоит пересматривать точечно: для местного бизнеса на рынке, где Yelp реально используется аудиторией, разрешить обход может быть осмысленно.
Как работает YelpBot
- Идентифицируется в access.log по паттерну User-Agent
yelpbot(а также по вариантуyelpspiderв некоторых строках); - Выполняет автоматические HTTP(S)-запросы к публичным URL сайта;
- По наблюдениям сообщества вебмастеров, инфраструктура бота размещена на AWS — то есть его IP не выделены в собственную сеть Yelp, а берутся из общих облачных диапазонов Amazon;
- В панели TrafficVeil относится к кластеру «Прочие краулеры и сервисы» и может быть разрешён или запрещён точечно.
Нагрузка на сервер
На отдельных доменах поведение может выглядеть как волна автоматических запросов без пользовательских сессий: много ответов 200 OK без роста реальных визитов. Стоит обращать внимание на такие признаки:
- рост RPS без роста конверсий;
- обход пагинации или каталога;
- повторяющиеся запросы к тяжёлым страницам;
- давление на origin CPU и bandwidth без соответствующей пользы для бизнес-метрик, если сайт не связан с местным присутствием на Yelp.
Как найти бота в логах
# Все запросы
grep -i "yelpbot" /var/log/nginx/access.log
# Учитываем и вариант написания yelpspider
grep -iE "yelpbot|yelpspider" /var/log/nginx/access.log
# Количество запросов за сегодня
grep -i "yelpbot" /var/log/nginx/access.log | grep "$(date '+%d/%b/%Y')" | wc -l
# Уникальные IP
grep -i "yelpbot" /var/log/nginx/access.log | awk '{print $1}' | sort -u
# Частота по дням
grep -i "yelpbot" /var/log/nginx/access.log | awk '{print $4}' | cut -d: -f1 | sort | uniq -c
Верификация: прозрачный UA — не то же самое, что верифицируемый IP
Даже с открытым указанием оператора в строке UA сам факт написания «Yelp Inc» ничего не доказывает — подделать текстовую строку может любой скрипт. Официального публичного списка IP для этого краулера Yelp не публикует, а размещение на AWS означает, что обратный DNS приведёт к инфраструктуре Amazon, а не к домену yelp.com — то есть не подтвердит принадлежность именно Yelp напрямую. Для более уверенной оценки стоит смотреть на совокупность: соответствие диапазона адресов известным блокам AWS, разумную частоту запросов и характерный набор URL (обычно это страницы «о компании», контакты, фото — то, что обогащает бизнес-профиль).
IP="1.2.3.4"
whois -h whois.cymru.com " -v $IP"
dig +short -x "$IP"
robots.txt
# Полная блокировка
User-agent: yelpbot
Disallow: /
# Точечное ограничение
User-agent: yelpbot
Disallow: /admin/
Disallow: /cart/
Disallow: /account/
Allow: /
# Разрешить полностью
User-agent: yelpbot
Allow: /
По наблюдениям вебмастеров, YelpBot соблюдает robots.txt — это тот случай, когда директива действительно работает как ожидается, а не просто сигнальная рекомендация. Тем не менее для гарантированного контроля стоит держать про запас и серверное правило — на случай нетипичного поведения конкретного запроса или переименования UA в будущих версиях бота.
Управление на уровне сервера
Nginx:
if ($http_user_agent ~* "yelpbot") {
return 403;
}
# Мягкий вариант — rate limit
limit_req_zone $binary_remote_addr zone=yelpbot:10m rate=15r/m;
location / {
if ($http_user_agent ~* "yelpbot") {
limit_req zone=yelpbot burst=30 nodelay;
}
}
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} yelpbot [NC]
RewriteRule ^ - [F,L]
Управление через TrafficVeil
- Откройте список известных ботов в панели домена или в разделе
/system/bots. - Найдите
yelpbot/YelpBot. - Если бизнес заинтересован в профиле на Yelp (локальный сервис, ресторан, точка с адресом на рынке, где Yelp актуален) — стоит рассмотреть Allow вместо дефолтного запрета;
- Если сайт не связан с локальным бизнес-профилем — оставить или поставить категорию «запретить»;
- При необходимости используйте массовые операции allow/deny без правки origin-сервера;
- Проверьте логи: запросы должны уходить в блок/лимит согласно выбранной политике.
Практические рекомендации
- Прежде чем блокировать по умолчанию, стоит явно оценить, актуален ли Yelp для аудитории и рынка сайта — в отличие от большинства ботов этой категории, здесь есть реальный сценарий, где Allow оправдан;
- Не блокируйте поисковые роботы Google/Yandex случайно, если рядом настраиваете широкие правила;
- Сначала измерьте долю запросов бота в логах или в аналитике TrafficVeil, потом принимайте решение;
- Для всплесков чаще достаточно rate-limit вместо полного 403, особенно если объём в целом невысокий;
- Если решили заблокировать — полагайтесь на серверное правило или TrafficVeil, а не только на прозрачность UA: подделка строки возможна независимо от того, насколько открыто ведёт себя оригинал.
Похожие боты и сервисы для сравнения
| Бот | Кластер | User-Agent | Метка |
| 360Spider | Прочие краулеры и сервисы | 360spider | нежелательный |
| A360-Search | Прочие краулеры и сервисы | a360-search | нежелательный |
| AASA-Bot | Прочие краулеры и сервисы | aasa-bot | нежелательный |
| ABEvalBot | Прочие краулеры и сервисы | abevalbot | нежелательный |
| ActiveComply | Прочие краулеры и сервисы | activecomply | нежелательный |
Итоговая стратегия
| Цель сайта | Рекомендация |
| Локальный бизнес, для которого важен профиль на Yelp | Allow / разрешить в TrafficVeil |
| Сайт не связан с локальным бизнес-профилем, бот только грузит сервер | Disallow + запрет в TrafficVeil или 403 на nginx/Apache |
| Профиль на Yelp полезен, но частота запросов беспокоит | Rate-limit вместо полной блокировки |
| Нежелательный по умолчанию сценарий без связи с Yelp-аудиторией | Запретить в /system/bots и контролировать по логам |