
# Как разрешить или заблокировать ИИ-ботов в robots.txt

Большинство сайтов решают этот вопрос один раз, плохо, и больше к нему не возвращаются. Либо в панике из-за обучения закрывают всё подряд, заодно отрезая трафик, который приводит клиентов, либо не настраивают ничего, и работает то, что краулер сам себе домыслил.

Разумных позиций три. Вот файл для каждой и ошибки, которые их обнуляют.

## Сначала различие, от которого зависит всё

У ИИ-компаний два типа агентов, и они не взаимозаменяемы.

**Краулеры** собирают страницы пачками, по своему расписанию, обычно для обучения или индекса: `GPTBot`, `ClaudeBot`, `PerplexityBot`, `CCBot`, `Bytespider`, `Google-Extended`, `Applebot-Extended`.

**Загрузчики по запросу** забирают одну страницу, потому что человек только что о ней спросил: `ChatGPT-User`, `Claude-User`, `Perplexity-User`. На этом запросе никто ничего не обучает. Кто-то ждёт ответа про вас.

Закрыть первых — деловое решение о своём контенте. Закрыть вторых — почти то же самое, что не пустить посетителя, который вручную набрал ваш адрес. Почти все советы в духе «блокируй весь ИИ» между этими двумя группами разницы не делают.

## Случай 1 — Пустить

Правильное значение по умолчанию для всего, что хочет быть найденным: документация, издания, которым нужна ссылка на источник, бизнесы, которых хотят рекомендовать.

```
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /cart/
Disallow: /*?session=

Content-Signal: search=yes, ai-input=yes, ai-train=no

Sitemap: https://example.ru/sitemap.xml
```

Прочитайте, что здесь написано: заходи, индексируй меня, используй меня в ответах, но не обучайся на мне. Такую позицию один robots.txt выразить не умеет — отсюда раздел про Content-Signal ниже.

## Случай 2 — Ответы да, обучение нет

Та самая позиция, которой на деле хочет большинство компаний, и та, которую почти никто не настраивает правильно.

```
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Applebot-Extended
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: *
Allow: /

Content-Signal: search=yes, ai-input=yes, ai-train=no

Sitemap: https://example.ru/sitemap.xml
```

Про этот файл стоит знать две вещи. `Google-Extended` управляет обучением Gemini, а **не** поиском Google: закрыв его, вы ничего не теряете в выдаче. И `Applebot-Extended` работает так же для Apple Intelligence, отдельно от `Applebot`, который питает Siri и Spotlight.

## Случай 3 — Закрыть ИИ полностью

Оправданно для платных архивов, лицензионных материалов и всего, доступ к чему вы продаёте.

```
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: CCBot
User-agent: Bytespider
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Amazonbot
User-agent: meta-externalagent
Disallow: /

User-agent: *
Allow: /

Content-Signal: search=no, ai-input=no, ai-train=no

Sitemap: https://example.ru/sitemap.xml
```

Составленные подряд строки `User-agent` делят между собой правила, идущие следом. Это допустимо и куда проще в сопровождении, чем четырнадцать отдельных блоков.

Оцените цену, прежде чем выбирать это: вы исчезаете из ответов ИИ. Когда кто-то спросит ассистента про вашу отрасль, названы будут конкуренты, а вы нет.

## Ошибки

**Применяется только самая конкретная группа.** Краулер, нашедший своё имя, полностью игнорирует `User-agent: *`. Так что вот это работает не так, как кажется:

```
User-agent: *
Disallow: /private/

User-agent: GPTBot
Disallow: /
```

`GPTBot` закрыт везде, но любой другой бот читает только группу `*` — а если завтра вы добавите `Allow` под `GPTBot`, `/private/` перестанет быть от него защищён, потому что в той группе `/private/` никогда не упоминался.

**Пустые строки разделяют группы.** Пустая строка в середине группы её заканчивает. То, что идёт после, не принадлежит никому до следующего `User-agent`.

**`Disallow:` без ничего после двоеточия означает «разрешено всё».** `Disallow: /` закрывает всё. Один символ между открытой дверью и закрытой.

**robots.txt — это не контроль доступа.** Это просьба, которую соблюдают воспитанные краулеры. Те, кто её игнорирует, продолжат игнорировать. Если что-то нельзя читать, нужна аутентификация, а не директива.

**`Crawl-delay` почти все ИИ-краулеры игнорируют.** Если проблема в нагрузке, ограничивайте частоту на периферии.

## Content-Signal: сказать зачем, а не только можно ли

robots.txt отвечает на один вопрос: можно ли это скачать. Сказать «индексируй меня, но не обучайся на мне» он не умеет — а именно такова позиция большинства сайтов.

`Content-Signal` добавляет этот слой тремя независимыми сигналами:

```
Content-Signal: search=yes, ai-input=yes, ai-train=no
```

- `search` — можно ли этому попасть в поисковый индекс
- `ai-input` — можно ли использовать это как материал для ответа, со ссылкой на источник
- `ai-train` — можно ли использовать это для обучения модели

Он ставится в robots.txt, как выше, а ещё может ехать HTTP-заголовком в каждом ответе — так делаем мы. Это молодая договорённость, а не стандарт, соблюдать который кто-то обязан, но стоит она одну строку, читается машиной и выражает намерение, которое `Disallow` выразить не может.

## Проверьте, что ваш доходит

Написать файл и отдавать его — разные вещи:

```bash
curl -s https://example.ru/robots.txt
curl -sI https://example.ru/robots.txt | grep -i "server\|cf-cache-status"
```

Вторая команда важнее, чем выглядит. Если вы за CDN и своего robots.txt у вас нет, CDN может ответить за вас файлом, которого вы никогда не писали: правдоподобный `200`, в котором нет ни одного вашего правила и нет вашей карты сайта. Наш делал ровно это месяцами, пока origin отдавал `404`.

[Сгенерировать robots.txt](/ru/tools/robots-txt-generator) · [Проверить, что вы отдаёте](/ru/tools/robots-txt-checker) · [Пускают ли ботов?](/ru/tools/ai-crawlers-checker)
