# robots.txt y Content-Signal

> El borde antepone a tu robots.txt una sección gestionada con Disallow para los bots que bloqueas y una línea Content-Signal con tus preferencias.

Con `robots.enabled` (**Sincronizar preferencias de bots** en el panel), el borde antepone una sección gestionada al `robots.txt` que sirve tu origen. Se añade al servir la respuesta: ni tu origen ni la caché cambian.

```text
# OpenWAF AI agents (managed)
User-agent: gptbot
User-agent: ccbot
Disallow: /

User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Disallow: /__waf/
# End OpenWAF AI agents
```

- El primer grupo lista los bots cuya acción efectiva es `block` o `tarpit`, con `Disallow: /`. No aparece si no se bloquea ningún bot.
- El grupo `User-agent: *` lleva la línea `Content-Signal` ([contentsignals.org](https://contentsignals.org)) y `Disallow: /__waf/`.
- Si tu origen responde 404 a `robots.txt`, el borde sirve solo la sección gestionada.
- El control de rastreadores IA nunca reta ni bloquea `GET /robots.txt`.

## Señales de contenido

| Campo | Por defecto | Indica si tu contenido se puede usar |
|---|---|---|
| `robots.content_signals.search` | `yes` | En resultados de búsqueda. |
| `robots.content_signals.ai_input` | `yes` | Como entrada de respuestas de IA (RAG, *grounding*). |
| `robots.content_signals.ai_train` | `no` | Para entrenar modelos. |

Cada valor es `yes`, `no` o `""` (sin indicar: no aparece en la línea). Con los tres vacíos no hay línea `Content-Signal`.

## Activarlo

**Panel**

**Control de rastreadores IA → Resumen → Configuración → Sincronizar preferencias de bots**: **Anteponer la sección gestionada a robots.txt**, elige las **Señales de contenido** y revisa la **Vista previa**.
**CLI**

```sh
openwaf-cloud ctl zones set example.com ai_agents.robots.enabled=true ai_agents.robots.content_signals.ai_input=no \
  --reason "Publicar las preferencias de IA"
```
**API**

```json
{"ai_agents": {"robots": {"enabled": true, "content_signals": {"search": "yes", "ai_input": "no", "ai_train": "no"}}}}
```
**MCP**

`ai_agents_settings` con `"patch": {"robots": {"enabled": true}}`.


El informe **Señales** enseña, por nombre, cuántas veces se pidió `robots.txt`, si declara `Content-Signal` y qué bots pidieron rutas prohibidas. Consulta [Vistas del informe](https://developers.openwaf.dev/es/ai-crawl-control/report-views/).
