Cómo bloquear los crawlers de IA en WordPress (con sinceridad)
Para impedir que GPTBot rastree un sitio WordPress, añade estas líneas a tu robots.txt:
Publicada
Para impedir que GPTBot rastree un sitio WordPress, añade estas líneas a tu robots.txt:
User-agent: GPTBot
Disallow: /
Esa es la solución completa para los crawlers que se portan bien. Pero sé sincero contigo mismo sobre lo que acabas de hacer: robots.txt es una petición, no una valla. El GPTBot de OpenAI descarga el archivo y lo obedece. Un scraper que no respeta el estándar descarga el mismo archivo e ignora todas y cada una de sus líneas. Ten presente esa distinción antes de dedicarle una tarde a afinar esto.
Si quieres cubrir los principales crawlers de IA de una sola pasada, los tokens de user-agent más habituales son:
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Bytespider
Disallow: /
GPTBot es el crawler de entrenamiento de OpenAI, CCBot es Common Crawl (con el que se entrenan muchos modelos aguas abajo), ClaudeBot es de Anthropic, Google-Extended es el token de entrenamiento de IA de Google y Bytespider es de ByteDance. Fíjate en que dos de ellos ya rompen el modelo de petición cortés: tanto Bytespider como PerplexityBot han sido documentados públicamente rastreando sitios que se lo habían prohibido. Incluirlos sigue sirviendo frente a los bots honestos; no hace nada contra los que ya mienten sobre quiénes son.
Cómo sirve WordPress el robots.txt en realidad
Aquí es donde las ediciones de la mayoría de la gente no hacen nada sin que se note. Si no hay un archivo robots.txt físico en la raíz de tu sitio, WordPress genera uno al vuelo. La petición la gestiona do_robots() en wp-includes/functions.php, y la salida pasa por el filtro robots_txt. La casilla «Disuade a los motores de búsqueda de indexar este sitio» en Ajustes → Lectura activa la opción blog_public, que es lo que hace que ese archivo virtual emita Disallow: /.
Así que puedes añadir reglas para crawlers de IA por código:
add_filter( 'robots_txt', function ( $output, $public ) {
$output .= "User-agent: GPTBot\nDisallow: /\n";
return $output;
}, 10, 2 );
Aquí está la trampa que se come las horas: en el momento en que existe un archivo robots.txt estático en la raíz de tu sitio, Apache o nginx sirve ese archivo directamente y WordPress ni siquiera se ejecuta. El filtro robots_txt, el editor de robots de Yoast/Rank Math, el ajuste de Lectura: todo queda anulado. Si editaste el robots.txt en un plugin y el archivo en vivo nunca cambió, casi siempre es por esto. Comprueba https://tusitio.com/robots.txt en una ventana privada y compáralo con lo que crees que configuraste. Si hay un archivo real en el disco, edita ese archivo; el filtro es irrelevante.
Cómo arreglarlo, por orden
Primero, escribe reglas limpias. Acierta con la sintaxis y con la lista de crawlers para no bloquear a Googlebot sin querer. Nuestro generador de robots.txt construye el bloque de crawlers de IA por ti y te muestra el archivo exacto que pegar, lo que evita la confusión entre virtual y físico porque acabas con un único archivo autoritativo.
Segundo, confirma que está en vivo. Descarga la URL directamente. No te fíes del panel de vista previa del plugin.
Tercero, si necesitas imponer algo en lugar de pedirlo por favor, sube en la pila. El robots.txt vive en la capa de aplicación y depende de la buena voluntad del bot. Para rechazar de verdad una conexión, bloquea por user-agent en el servidor. En .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>
Eso devuelve un 403 a cualquier cosa que envíe esos user-agents. Nuestro generador de .htaccess puede montar esta regla. Pero entiende su límite: los user-agents se falsifican de forma trivial, así que esto solo detiene a los bots lo bastante honestos como para identificarse, que son los mismos bots que ya obedecen el robots.txt. La opción realmente robusta es un CDN o un WAF que bloquee por identidad de crawler verificada o por rango de IP. La regla gestionada de un clic «Block AI Scrapers and Crawlers» de Cloudflare es la versión de menor esfuerzo de esto y funciona en el edge, antes de que la petición llegue siquiera a WordPress.
Qué no hacer
No bloquees Google-Extended pensando que te mantiene fuera de las AI Overviews. Este es el malentendido que vale la pena corregir. Google-Extended es un token de producto, no un crawler. Solo controla si tu contenido se usa para entrenar y fundamentar los modelos Gemini. Según la propia documentación de Google, no tiene ningún efecto sobre cómo se rastrean, indexan o posicionan tus páginas en la Búsqueda de Google. Y las AI Overviews se construyen a partir del índice normal de Búsqueda que rastrea Googlebot, no de Google-Extended. Bloquear Google-Extended no te sacará de las AI Overviews, y no te costará ni una sola posición en la Búsqueda. La única forma de quedarte fuera de las AI Overviews es bloquear a Googlebot o poner noindex en la página, lo que también te borra por completo de la Búsqueda. Ese casi nunca es un trato que quieras hacer.
No trates el robots.txt como un control de seguridad. Es público y orientativo. Listar /wp-admin/ o una ruta privada en él no hace más que publicar un mapa de dónde mirar. Protege los endpoints reales con autenticación, no con una línea de disallow.
No confíes en las metaetiquetas noai / noimageai. Se propusieron, pero no se estandarizaron, y solo un puñado de plataformas las respetan. No son una defensa general.
No des por hecho que un plugin de «bloquear IA» hizo algo más que escribir el robots.txt. La mayoría escriben las mismas líneas que podrías escribir a mano y heredan la misma limitación. Lee qué cambió realmente el plugin antes de fiarte de él.
¿Sigues atascado?
Si tus ediciones no aparecen, la respuesta casi siempre es un robots.txt físico perdido en la raíz del sitio que anula el virtual de WordPress: descarga la URL directamente y compruébalo. Si los bots que cumplen han desaparecido pero los scrapers siguen dándote guerra, has llegado al techo de lo que puede hacer el robots.txt, y el siguiente paso es una regla de WAF o CDN que bloquee por identidad verificada en lugar de pedirlo por favor.