← Все статьи

robots.txt: как разрешить доступ AI-ботам (GPTBot, ClaudeBot, Perplexity)

Полный практический гайд по robots.txt для AI-краулеров: GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, разделение Google и Яндекс, Allow/Disallow, чеклист проверки после деплоя и связь с AISO. Актуально на II кв. 2026.

Содержание

Коротко

robots.txt — текстовый файл в корне сайта, который подсказывает краулерам, какие URL можно обходить. Для AISO (подготовки к AI-поиску) мы явно прописываем Allow для GPTBot, ClaudeBot, PerplexityBot и OAI-SearchBot, если хотим, чтобы нейросети читали публичный HTML. Это не «хак роста GEO» и не замена качественного контента: robots открывает дверь, а новизна текста и серверный HTML определяют, будут ли вас цитировать. На stuzhuklab.ru файл собирается динамически из кода при каждом запросе — после деплоя его нужно проверять curl, а не только визуально в браузере.

Что такое robots.txt и чего он не делает

Robots.txt следует стандарту robots exclusion. Браузер его не показывает пользователям; его читают боты до или во время обхода. Важно понимать границы:

  • Не защита. Закрытый в robots URL всё равно может открыть человек по прямой ссылке. Секреты — только за авторизацией, не за Disallow.
  • Не индекс напрямую. Google и Яндекс могут знать о URL из sitemap или внешних ссылок, даже если обход запрещён. Для «не показывать в выдаче» нужен noindex в meta или заголовке.
  • Рекомендация, не приказ. Большинство легальных ботов соблюдают правила; злоумышленники — нет.

Для dev-команды robots.txt — политика доступа краулеров, зафиксированная в репозитории и отдаваемая с production-домена.

Какие AI-боты встречаются в 2026 году

У каждого провайдера свой User-agent. Путаница в названиях — частая причина «мы разрешили GPTBot, а сайт всё равно не цитируют»: training-бот и search-бот — разные агенты.

User-agent Кто Зачем ходит
GPTBot OpenAI Обучение и индексация для ChatGPT / SearchGPT
OAI-SearchBot OpenAI Поисковый краулер (отдельно от GPTBot)
ClaudeBot Anthropic Claude и связанные продукты
PerplexityBot Perplexity Ответы с цитированием источников
Google-Extended Google Опциональный сигнал для Gemini (отдельно от Googlebot)
Bytespider ByteDance Регионально чувствительный; часто блокируют осознанно

На stuzhuklab.ru в коде явно разрешены GPTBot, OAI-SearchBot, ClaudeBot и PerplexityBot — см. модуль search-indexing.ts. Список можно расширять, когда появляется новый агент с документированным именем.

robots.txt, meta robots и X-Robots-Tag — три разных слоя

Механизм Где Эффект
robots.txt /robots.txt Разрешить или запретить обход URL
<meta name="robots"> HTML страницы noindex, nofollow для конкретной страницы
X-Robots-Tag HTTP-заголовок То же, но для API, PDF, файлов без HTML

Типичная связка для публичного блога: в robots — Allow: / для AI-ботов и User-agent: * / Allow: /; для /admin, черновиков и staging — Disallow или noindex на уровне страницы. На stuzhuk.page админка и preview закрыты noindex в layout, даже если robots разрешает обход корня.

Allow и Disallow: как читать файл построчно

Правила применяются сверху вниз для конкретного User-agent. Специфичный агент важнее wildcard *.

Пример минимальной политики «открытый AI-поиск»:

User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: *
Allow: /

Sitemap: https://stuzhuklab.ru/sitemap.xml

Disallow для служебных путей (если они не закрыты авторизацией):

User-agent: *
Disallow: /admin/
Disallow: /api/

Не добавляйте Allow: / для URL, которые реально отдают 401 или пустую заглушку — политика должна совпадать с тем, что видит бот.

Разделение Google и Яндекс на двух доменах

На stuzhuklab.ru и stuzhuk.page один репозиторий, но разные профили индексации:

  • stuzhuklab.ru — открыт для Яндекс; Googlebot получает Disallow: /, чтобы не дублировать международную версию.
  • stuzhuk.page — наоборот: Google и Bing открыты, Yandex закрыт.

AI-краулеры (GPTBot, ClaudeBot и др.) при этом получают Allow на обоих деплоях — это осознанная политика AISO: публичный контент доступен для цитирования независимо от классического SEO-разделения. Подробнее о четырёх слоях — в гайде SEO, AEO, GEO и AISO.

Staging и preview: переменная PUBLIC_BLOCK_SEARCH_INDEXING=true отдаёт Disallow: / для всех и убирает sitemap — kill switch, который стоит проверять перед демо-клиенту.

Что разрешать AI-ботам, а что закрывать

Разрешать (Allow) имеет смысл для:

  • статей блога с полным текстом в серверном HTML;
  • страниц услуг, портфолио, FAQ;
  • /llms.txt и /sitemap.xml как точек входа для агентов.

Закрывать или не индексировать:

  • /admin, личные кабинеты, корзина до оплаты;
  • URL с UTM-only дублями (лучше canonical, не robots);
  • черновики с draft: true — они не попадают в sitemap, но не должны быть в публичной навигации;
  • staging-домены — полный Disallow: /.

Robots не заменяет GEO: после Allow бот всё равно выберет страницы с приростом новизны, а не пересказ ТОП-10.

Как мы отдаём robots.txt в коде

Файл не лежит статически в public/. Маршрут robots.txt.ts вызывает buildRobotsTxt() с production origin из env — так на VPS не «залипает» localhost после сборки. После каждого ./update.sh ru или ./update.sh intl имеет смысл один раз выполнить:

curl -s https://stuzhuklab.ru/robots.txt
curl -sI https://stuzhuklab.ru/robots.txt | head -5

Ожидаем: 200, Content-Type: text/plain, строка Sitemap: с тем же host, что в браузере, и блоки User-agent: GPTBot / Allow: /.

Параллельно проверьте, что статья отдаёт текст без JS:

curl -s https://stuzhuklab.ru/blog/robots-txt-ai-crawlers-gptbot-claude | head -c 2000

Если в выводе нет заголовка H1 и абзацев — AISO провален, какие бы Allow ни стояли в robots.

Связь с llms.txt, sitemap и аудитом AISO

Robots — первый рубеж после базового SEO. Дальше по стеку:

  1. Sitemap с lastmod — discovery для всех краулеров.
  2. llms.txt — краткая карта для агентов (не замена sitemap).
  3. JSON-LD Article / FAQPage — структура для извлечения.
  4. Related posts и tag hubs — внутренняя перелинковка кластера.

Именно этот цикл поднял готовность к AI-поиску с 52 до 84 на stuzhuklab.ru — см. отчёт AISO-аудита. Robots.txt был одним из пунктов чеклиста, не единственным фактором.

Типичные ошибки

  1. Robots на staging скопировали на production — весь сайт Disallow: /, Яндекс видит «малоценные» или исключённые страницы.
  2. Allow в robots, но SPA без SSR — бот получает пустой <div id="root">.
  3. Sitemap на другом домене — в robots указан stuzhuk.page, а сайт открыт как stuzhuklab.ru.
  4. Блокируют все AI-боты «из соображений безопасности» — это отказ от GEO, а не защита персональных данных.
  5. Забыли проверить после деплоя — env на VPS другой, чем в локальном .env.

Чеклист на 15 минут после деплоя

  1. curl -s https://<ваш-домен>/robots.txt — есть Allow для нужных AI-агентов и строка Sitemap.
  2. Убедиться, что нет Disallow: / для Yandex на RU-сайте (если цель — Яндекс).
  3. Открыть 2–3 статьи блога через curl — полный текст в HTML.
  4. Проверить canonical и hreflang на одной статье (без дублей /ru/blog vs /blog на RU-домене).
  5. В Яндекс.Вебмастере — «Анализ robots.txt» и переобход ключевых URL.
  6. Сверить с pillar-гайдом — закрыты ли остальные пункты AISO.

FAQ

Достаточно ли Allow для GPTBot, чтобы появиться в ChatGPT?

Нет. Allow даёт право обхода. Цитирование зависит от качества, новизны и того, попадает ли страница в индекс/кorpus провайдера. Мониторинг — отдельная дисциплина GEO.

Нужно ли разрешать Google-Extended отдельно?

Если вы уже открыты для Googlebot на международном сайте — решение про Gemini часто дублирует политику Google. На RU-only деплое Googlebot может быть закрыт намеренно; тогда Google-Extended настраивают отдельно под продуктовую стратегию.

Блокирует ли robots.txt ЯндексGPT?

Яндекс использует своих агентов (YandexBot и др.). На stuzhuklab.ru для них действует Allow через User-agent: *, а не через GPTBot. AI-боты OpenAI и Anthropic — отдельные строки в файле.

Можно ли закрыть только блог, но оставить главную?

Да: Disallow: /blog/ для конкретного агента. Но тогда AEO/GEO по статьям не сработают — осознанный trade-off.

Чем robots отличается от llms.txt?

Robots — правила обхода. llms.txt — подсказка структуры для LLM-агентов без force. Оба полезны; ни один не гарантирует цитирование.

Как часто пересматривать политику?

При смене домена, добавлении admin/API-путей, новом AI-агенте с официальной документацией или после миграции SSR → SPA. Минимум — после каждого production-деплоя быстрая проверка curl.

Итог

Правила для AI-ботов в robots.txt — политика продукта, а не разовая SEO-настройка. Зафиксируйте Allow для нужных агентов в коде, закройте служебные зоны, проверяйте production после деплоя и не ждите GEO только от открытой двери. Нужен аудит всего стека — SEO / AEO / GEO или разбор AISO-кейса 52→84.

Похожие материалы: llms.txt · AEO-структура · Прирост новизны