Роботы Яндекса: кто ходит на сайт и как отличить настоящего
В логах сайта Яндекс представлен десятками роботов: один индексирует страницы, другой проверяет рекламу, третий делает снимки для выдачи. Разбираем, кто есть кто, каких роботов нельзя блокировать и как отличить настоящего робота от подделки.
Содержание
Коротко
- У Яндекса больше 40 роботов, у каждого своя задача: поиск, картинки, Директ, Метрика.
- Часть роботов не читает общие правила robots.txt — для них нужна отдельная секция.
- User-Agent «YandexBot» может подделать кто угодно. Настоящего робота выдаёт обратный и прямой DNS.
- Основного робота не блокируют: если он нагружает сервер, снижают скорость обхода в Вебмастере.
Зачем Яндексу столько роботов
У каждого сервиса Яндекса свои задачи, поэтому и роботы разные. Основной индексирующий робот собирает страницы для поиска, робот Картинок — изображения, робот Директа проверяет посадочные страницы объявлений, робот Метрики — доступность сайта и страницы для Вебвизора. Все они представляются в заголовке User-Agent строкой вида:
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
Важное слово здесь — название робота: YandexBot, YandexImages, YandexMetrika и так далее. Но написать такую строку может кто угодно, поэтому одного User-Agent для доверия мало — о проверке ниже.
Главные роботы Яндекса
Полный список есть в справке Вебмастера, в нём больше 40 названий. На практике в логах небольшого сайта чаще всего встречаются эти:
| Робот | Зачем приходит | Читает общие правила robots.txt |
|---|---|---|
| YandexBot | Основной робот поиска: скачивает страницы для индекса | Да |
| YandexImages | Индексирует картинки для Яндекс Картинок | Да |
| YandexRenderResourcesBot | Загружает скрипты и стили, чтобы отрисовать страницу с JavaScript | Учитывает правила страницы, которая использует ресурсы |
| YandexMetrika | Проверяет доступность страниц, сохраняет стили для Вебвизора | Нет |
| YaDirectFetcher | Загружает посадочные страницы объявлений Директа | Нет |
| YandexDirect | Изучает содержание сайтов-партнёров РСЯ для подбора рекламы | Нет |
| YandexAccessibilityBot | Проверяет, открываются ли страницы у пользователей | Нет |
| YandexMobileBot | Определяет страницы с мобильной вёрсткой | Нет |
| YandexFavicons | Загружает фавикон для выдачи | Нет |
| YandexAdditional | Не ходит на сайт сам. Это название для robots.txt, которым можно запретить показ текстов сайта в быстрых ответах YandexGPT и в ответах Поиска с Алисой | — |
«Нет» в последнем столбце не значит, что робот вредный. Он просто не следует правилам из секций User-agent: * и User-agent: Yandex. Если нужно ограничить именно его, пишите отдельную секцию с его названием.
Каких роботов нельзя блокировать
- YandexBot и YandexRenderResourcesBot — без них страницы выпадут из поиска или будут отрисованы с ошибками.
- YaDirectFetcher, если вы даёте рекламу в Директе: объявления с недоступной посадочной страницей останавливаются.
- YandexMetrika, если пользуетесь Вебвизором и мониторингом доступности.
- YandexImages, если вам нужен трафик из Картинок — например, интернет-магазину или сайту с фотографиями работ.
Если нагрузку создаёт именно основной робот, не закрывайте его, а уменьшите скорость обхода в Вебмастере: «Индексирование» → «Скорость обхода». Директиву Crawl-delay Яндекс больше не учитывает.
Как отличить настоящего робота от подделки
Парсеры и боты часто представляются YandexBot: их реже блокируют. Настоящего робота Яндекса выдают не слова в User-Agent, а адрес, с которого он пришёл. Проверка в два шага:
- Обратный DNS-запрос по IP. Имя хоста настоящего робота заканчивается на
yandex.ru,yandex.netилиyandex.com. - Прямой DNS-запрос по полученному имени. Он должен вернуть тот же IP. Если адрес другой, имя подделано.
# 1. Обратный запрос: имя хоста по IP из логов
host 203.0.113.10
# ответ должен заканчиваться на yandex.ru, yandex.net или yandex.com
# 2. Прямой запрос: IP по полученному имени
host имя-из-ответа.yandex.com
# адрес должен совпасть с исходным 203.0.113.10Команда host есть в Linux и macOS. В Windows то же делает nslookup.
Проверять каждый запрос вручную неудобно, поэтому антиботы, в том числе nbots, делают это автоматически и запоминают результат. «Яндекс», который не прошёл проверку, считается обычным ботом.
Проверка поискового роботаВведите IP из логов — инструмент сделает обратный и прямой DNS-запрос и скажет, настоящий ли это Яндекс или Google.ОткрытьКак найти роботов Яндекса в логах
Поищите в access.log строки с Yandex и сгруппируйте по IP. Настоящие роботы приходят из сетей Яндекса и проходят проверку DNS. Если «YandexBot» приходит с домашнего провайдера, из облака или хостинга — это подделка. Быстрее всего это видно в анализаторе логов: он сам разделит поисковых роботов, SEO-сервисы и подозрительных ботов.
Как управлять роботами через robots.txt
- Секция
User-agent: Yandexдействует на всех роботов Яндекса, которые читают общие правила. Если она есть, секциюUser-agent: *Яндекс не читает. - Секция с конкретным названием, например
User-agent: YandexImages, важнее обеих. - Директива
Clean-paramподсказывает Яндексу, какие параметры адреса не меняют страницу, например метки рекламы. Это экономит обход. - Директиву
HostЯндекс не использует с 2018 года, главное зеркало задаётся 301-редиректом.
Проверить, что правила работают как задумано, можно в проверке robots.txt: вставьте файл и адреса — инструмент покажет, какой робот какую страницу увидит.
Частые вопросы
Как понять, что на сайт заходил робот Яндекса?
Откройте логи сервера и найдите строки, где в User-Agent есть Yandex. Затем проверьте IP этих запросов обратным и прямым DNS-запросом: у настоящего робота имя хоста заканчивается на yandex.ru, yandex.net или yandex.com.
Почему робот Яндекса заходит на закрытые в robots.txt страницы?
Часть роботов Яндекса не следует общим правилам: например, роботы Метрики, Директа и проверки доступности. Чтобы ограничить их, нужна отдельная секция с названием конкретного робота. А если «робот» вообще не проходит проверку DNS, это не Яндекс.
Как уменьшить нагрузку от YandexBot?
Не блокируйте его, а снизьте скорость обхода в Яндекс Вебмастере: «Индексирование» → «Скорость обхода». Директиву Crawl-delay Яндекс не учитывает.
Что такое YandexAdditional в robots.txt?
Это не отдельный робот, а название, которым можно запретить использовать тексты сайта в быстрых ответах YandexGPT и в ответах Поиска с Алисой. На индексацию сайта в обычном поиске такой запрет не влияет.
С каких IP-адресов приходят роботы Яндекса?
Из сетей Яндекса, но фиксированного публичного списка адресов нет. Поэтому проверка делается не по списку IP, а по DNS: имя хоста должно заканчиваться на yandex.ru, yandex.net или yandex.com и вести обратно на тот же IP.
Работает ли Clean-param для Google?
Нет, это директива только Яндекса. Google её игнорирует. Для Google дубли с параметрами убирают с помощью канонических адресов.
Можно ли запретить Яндексу индексировать сайт, но оставить рекламу?
Да. Закройте сайт для YandexBot, а YaDirectFetcher и робот Метрики продолжат проверять посадочные страницы, потому что они не используют общие правила robots.txt.