Содержание
Коротко
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 | Опциональный сигнал для 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. Дальше по стеку:
- Sitemap с
lastmod— discovery для всех краулеров. - llms.txt — краткая карта для агентов (не замена sitemap).
- JSON-LD
Article/FAQPage— структура для извлечения. - Related posts и tag hubs — внутренняя перелинковка кластера.
Именно этот цикл поднял готовность к AI-поиску с 52 до 84 на stuzhuklab.ru — см. отчёт AISO-аудита. Robots.txt был одним из пунктов чеклиста, не единственным фактором.
Типичные ошибки
- Robots на staging скопировали на production — весь сайт
Disallow: /, Яндекс видит «малоценные» или исключённые страницы. - Allow в robots, но SPA без SSR — бот получает пустой
<div id="root">. - Sitemap на другом домене — в robots указан
stuzhuk.page, а сайт открыт какstuzhuklab.ru. - Блокируют все AI-боты «из соображений безопасности» — это отказ от GEO, а не защита персональных данных.
- Забыли проверить после деплоя — env на VPS другой, чем в локальном
.env.
Чеклист на 15 минут после деплоя
curl -s https://<ваш-домен>/robots.txt— есть Allow для нужных AI-агентов и строка Sitemap.- Убедиться, что нет
Disallow: /для Yandex на RU-сайте (если цель — Яндекс). - Открыть 2–3 статьи блога через curl — полный текст в HTML.
- Проверить canonical и hreflang на одной статье (без дублей
/ru/blogvs/blogна RU-домене). - В Яндекс.Вебмастере — «Анализ robots.txt» и переобход ключевых URL.
- Сверить с 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-структура · Прирост новизны