PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Как понять что запрос пришел от SEO-робота или от пользователя?

DOM и браузер

SEO-робота от пользователя отличают по User-Agent (содержит имя бота: Googlebot, Bingbot), а также обратному DNS-подтверждению, поведению и заголовкам. Определяют обычно на сервере.

Основной способ — User-Agent

Боты указывают себя в заголовке User-Agent:

Googlebot: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Bingbot: "...bingbot/2.0..."

На сервере проверяют User-Agent на известные боты:

const ua = req.headers['user-agent'];
const isBot = /googlebot|bingbot|yandex|baiduspider/i.test(ua);

Надёжнее — обратное DNS-подтверждение

User-Agent можно подделать. Google рекомендует verify: reverse DNS lookup IP → должен быть googlebot.com, затем forward DNS обратно:

IP бота → reverse DNS → *.googlebot.com → forward DNS → тот же IP

Другие признаки

  • Поведение — боты не выполняют JS (обычно), не двигают мышью, быстро обходят страницы.
  • Заголовки — отсутствие некоторых типичных для браузера.
  • Список известных ботов — по официальным диапазонам IP.

Зачем различать

  • SSR/пререндер для ботов (SEO) — отдавать готовый HTML.
  • Dynamic rendering — боту статичный HTML, пользователю SPA (устаревающая практика; Google рендерит JS).
  • Аналитика (исключить ботов).

Осторожно

  • Cloaking (разный контент боту и пользователю) — нарушение правил Google, штрафы. Отдавать одинаковый контент.

Коротко для собеседования

SEO-робота отличают по User-Agent (Googlebot, Bingbot) на сервере, надёжнее — обратным DNS-подтверждением (reverse+forward DNS к googlebot.com, т.к. UA подделывается). Признаки: не выполняет JS, быстрый обход. Различают для SSR/пререндера (SEO). Нельзя делать cloaking (разный контент боту/пользователю) — штрафы Google.

Другие вопросы раздела