🏂 Як найефективніше визначати фейкових ботів Гугла / Яндекса з логів?

Якщо ж перевіряти кожен IP, то можна отримати блокування (тим більше будуть в логах і справжні боти). Чи є якісь більш просунуті методики?

У мануалах пошуковиків описаний алгоритм визначення справжніх / фейкових ботів:

  • Google (developers.google.com/search/docs/advanced/crawling/verifying-googlebot)
  • Yandex (yandex.com/support/webmaster/robot-workings/check-yandex-robots.html)

Як бачимо, і там і там нам пропонують робити reverse DNS lookup.

Проблема в тому, що більшість зупиняються на пункті, де ми отримуємо Hostname, посилаючи запит на IP адресу, однак це не зовсім правильно (читаємо, що таке IP spoofing (en.wikipedia.org/wiki/IP_address_spoofing)). Необхідно ще послати на Hostname назад запит, після чого вже порівняти отриманий IP з оригінальним IP з лога.

Як можна оптимізувати алгоритм, щоб нас не забанили?

  1. Брати для аналізу підмережу, а не окрему IP адресу.
  2. Google нещодавно виклав у відкритий доступ діапазони IP Googlebot (developers.google.com/search/apis/ipranges/googlebot.json). На жаль, по Yandex такого немає, але можна в процесі аналізу досить швидко зібрати свою базу, знайти або купити в цих наших інтернетах (є свої плюси та мінуси).
  3. Очевидно, але уточню – не парсити повторно одну і ту ж IP адресу (чим більше робимо запитів до одного IP в якийсь невеликий відрізок часу, тим вище ризик блокування). А ще не робити перевірки з IP сервери, де сидить наш сайт (підключіть проксі).

Коли робимо подібні маніпуляції, то ми завжди балансуємо між “швидко” і  “повільно “. Завжди можна знайти свою золоту середину. З мого досвіду, робити повноцінну перевірку зі зворотним відправленням пакетів на Hostname часто немає сенсу, тільки в жорстких по конкуренції тематиках або коли ви об’єктивно розумієте, що вас “валять”.

Оцініть статтю
Додати коментар