Content Signals: разрешить поиск, но контролировать обучение AI
Что такое Content-Signal, зачем разделять search / ai-input / ai-train, минимальный пример, правильно vs неправильно, ошибки и как проверить.
Обновлено:
Что это
Content Signals — машиночитаемое выражение предпочтений по использованию
вашего контента: можно ли его индексировать для поиска (search), использовать
как контекст в AI-ответах (ai-input) и брать в обучение моделей (ai-train).
Объявляется директивой Content-Signal в robots.txt (и развивается как
конвенция/заголовок).
Зачем это AI-агентам
robots.txt — это «можно/нельзя обходить», грубый рубильник. Content Signals
дают нюанс согласия: «индексируй для поиска и используй в ответах, но не
обучай на мне модели». Это позволяет оставаться видимым в AI-выдаче (GEO), не
отдавая контент в датасеты для тренировки. Корректные AI-операторы это уважают.
Минимальный рабочий пример
В robots.txt:
User-agent: *
Allow: /
# Разрешаем поиск и AI-ответы, запрещаем обучение
Content-Signal: search=yes, ai-input=yes, ai-train=no
Sitemap: https://example.com/sitemap.xml
Значения — yes/no по каждому сигналу: search, ai-input, ai-train.
Правильно vs неправильно
| Правильно | Неправильно |
|---|---|
| Явные значения по каждому сигналу | Только robots.txt без нюанса использования |
Сигналы не противоречат Allow/Disallow | Disallow: / + search=yes (конфликт) |
Осознанный выбор ai-train | Случайный ai-train=no, режущий легитимные кейсы |
Типичные ошибки
- Конфликт с robots-правилами: запретили обход, но включили
search=yes. - Опечатки в именах сигналов (
ai_trainвместоai-train). - Расчёт, что это жёсткая защита — это сигнал намерения, а не контроль доступа; недобросовестные краулеры могут игнорировать (для жёсткого блока — правила robots/файрвол).
- Нет
Content-Signalвообще — по умолчанию ваши предпочтения неизвестны.
Как проверить
Скан распарсит Content-Signal из robots.txt. Вручную:
curl -s https://example.com/robots.txt | grep -i 'content-signal'
Ждём строку Content-Signal: с осмысленными search/ai-input/ai-train.