El GEO prepara tu web para que ChatGPT, Perplexity, Claude o los resúmenes de Google la lean, la entiendan y la citen. Esta guía de GEO para WordPress lo resuelve en tres frentes y todo con código, sin instalar ningún plugin.
En 30 segundos
- Bots: unos entrenan modelos y otros buscan y citan. Puedes cerrar la puerta a los primeros y abrírsela a los segundos.
- Datos: un bloque JSON-LD en el tema hijo dice quién eres, quién escribe y qué ofreces.
- Contenido: la respuesta arriba, encabezados con sentido y datos con fuente y fecha.
- Sin promesas: nadie puede garantizar que una IA te cite.
Hemos contrastado las guías de GEO para WordPress que circulan con la documentación oficial de OpenAI, Anthropic, Perplexity, Google y WordPress, revisada el 11 de noviembre de 2026.
1 Qué es el GEO y en qué se diferencia del SEO
GEO son las siglas de Generative Engine Optimization. El término viene de un estudio de Princeton y otros centros de 2023. El buscador clásico te enseña en una lista de enlaces; el motor generativo lee varias páginas, escribe una respuesta y cita algunas.
| Aspecto | SEO clásico | GEO |
|---|---|---|
| Objetivo | Salir en los resultados y conseguir el clic | Que la IA use tu página y la enlace |
| Cómo lee | La página entera | Por fragmentos que responden a una pregunta |
| Qué se mide | Posiciones, impresiones y clics | Menciones, citas y visitas desde asistentes |
Google lo deja claro en su página sobre las funciones de IA de la Búsqueda: para salir en AI Overviews o en el modo IA no hay requisitos adicionales, basta con que la página esté indexada y pueda mostrar fragmento. El GEO para WordPress se construye encima del SEO, nunca en su lugar.
Si la página no se indexa, lo demás sobra. La base es el posicionamiento SEO de siempre.
2 Deja pasar a los bots de IA que te pueden citar
El primer paso del GEO para WordPress es dejar entrar a quien te puede citar. Cada empresa tiene varios bots: unos recogen contenido para entrenar modelos, otros buscan páginas para enlazarlas en sus respuestas y otros entran solo cuando un usuario pide leer una página.
| Bot | Para qué sirve | ¿Respeta robots.txt? |
|---|---|---|
| GPTBot (OpenAI) | Entrenar sus modelos | Sí |
| OAI-SearchBot (OpenAI) | Enlazar webs en la búsqueda de ChatGPT | Sí |
| ChatGPT-User (OpenAI) | Abrir una página que pide un usuario | No siempre |
| ClaudeBot (Anthropic) | Contenido que puede servir para entrenar | Sí |
| Claude-SearchBot (Anthropic) | Las respuestas de búsqueda de Claude | Sí |
| PerplexityBot | Enlazar webs en sus resultados (no entrena) | Sí |
| Perplexity-User | Abrir una página que pide un usuario | En general, no |
| Google-Extended | Una marca para decidir si Gemini entrena contigo; no toca la Búsqueda | Sí |
| Googlebot | La Búsqueda, con AI Overviews y el modo IA | Sí |
Fuentes: OpenAI, Anthropic, Perplexity y Google. En la práctica, bloquear GPTBot o ClaudeBot no te saca de ChatGPT ni de Claude; bloquear OAI-SearchBot, Claude-SearchBot o PerplexityBot, sí.
Con un archivo robots.txt en la raíz
Si existe el archivo, es el que manda. Este abre la puerta a los buscadores con IA y se la cierra al entrenamiento; si te da igual que entrenen, borra el segundo bloque:
# Buscadores con IA: pueden leer y citar
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
# Entrenamiento de modelos: bloqueado
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://tudominio.es/wp-sitemap.xml
Ojo: un bot con su propio bloque ignora el de User-agent: *, así que lo que prohíbas ahí repítelo en los demás. Y OpenAI avisa de que su búsqueda tarda unas 24 horas en aplicar un cambio.
Con el robots.txt virtual de WordPress
Si no hay archivo, WordPress lo genera al vuelo y puedes añadirle reglas con el filtro robots_txt en el functions.php del tema hijo:
add_filter( 'robots_txt', function ( $output, $public ) {
// Con «Disuadir a los motores de búsqueda» activado, no se toca.
if ( ! $public ) {
return $output;
}
$output .= "\nUser-agent: OAI-SearchBot\nUser-agent: Claude-SearchBot\n";
$output .= "User-agent: PerplexityBot\nAllow: /\n";
$output .= "\nUser-agent: GPTBot\nUser-agent: ClaudeBot\n";
$output .= "User-agent: Google-Extended\nDisallow: /\n";
return $output;
}, 10, 2 );
El cortafuegos manda más que el robots.txt
Muchos CDN y plugins de seguridad traen una casilla para «bloquear bots de IA» que mete en el mismo saco a los que entrenan y a los que buscan; Desde julio de 2025, Cloudflare pregunta al dar de alta un dominio si quieres dejar pasar a los rastreadores de IA y parte de bloquearlos. Revisa también tu proveedor: lo contamos en qué necesita un hosting para WordPress. Para probarlo, pide tu portada haciéndote pasar por el bot:
curl -I -A "OAI-SearchBot" https://tudominio.es/
Un 403 o un 503 delata una regla que bloquea ese nombre. Un 200 no lo prueba del todo, porque algunos cortafuegos miran también la IP de origen: lo definitivo es buscar el bot en el registro de accesos del servidor.
3 Datos estructurados con Schema.org, sin plugin
Los datos estructurados son código invisible que describe la página con el vocabulario de Schema.org, en formato JSON-LD. Google aclara que sus funciones de IA no exigen ningún marcado, así que su papel en el GEO para WordPress es quitar ambigüedad: quién es la empresa, dónde está y quién firma.
Antes de pegar código
Hazlo en un tema hijo y con una copia de seguridad reciente. Y si tu plugin de SEO ya imprime schema, no añadas otro: tendrías datos duplicados.

Este ejemplo imprime en la portada tu negocio (LocalBusiness, u Organization si no atiendes en un local) y la web, y en cada entrada el artículo (BlogPosting) con su autor (Person). El campo sameAs enlaza tus perfiles oficiales para que te reconozcan como la misma entidad. Cambia los datos de ejemplo por los tuyos, iguales a los de tu ficha de Google.
add_action( 'wp_head', function () {
if ( ! is_front_page() && ! is_singular( 'post' ) ) {
return;
}
$grafo = array( array(
'@type' => 'LocalBusiness',
'@id' => home_url( '/#negocio' ),
'name' => get_bloginfo( 'name' ),
'url' => home_url( '/' ),
'telephone' => '+34 600 000 000',
'address' => array(
'@type' => 'PostalAddress',
'addressLocality' => 'Murcia',
'addressCountry' => 'ES',
),
'sameAs' => array( 'https://www.linkedin.com/company/tu-empresa' ),
) );
if ( is_singular( 'post' ) ) {
$id = get_queried_object_id();
$autor = (int) get_post_field( 'post_author', $id );
$grafo[] = array(
'@type' => 'BlogPosting',
'headline' => wp_strip_all_tags( get_the_title( $id ) ),
'datePublished' => get_the_date( 'c', $id ),
'dateModified' => get_the_modified_date( 'c', $id ),
'url' => get_permalink( $id ),
'publisher' => array( '@id' => home_url( '/#negocio' ) ),
'author' => array(
'@type' => 'Person',
'name' => get_the_author_meta( 'display_name', $autor ),
'url' => get_author_posts_url( $autor ),
),
);
}
echo '<script type="application/ld+json">' . wp_json_encode(
array( '@context' => 'https://schema.org', '@graph' => $grafo ),
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_HEX_TAG
) . "</script>\n";
} );
JSON_HEX_TAG evita que un título con símbolos raros rompa la etiqueta, y el @id une el artículo con el negocio.
- FAQPage: Google dejó de mostrar sus resultados enriquecidos el 7 de mayo de 2026, pero el tipo sigue siendo válido. Márcalo solo si las preguntas se ven en la página.
- Service: en cada página de servicio, qué ofreces y dónde, con el mismo
@iddel negocio. Para una página suelta basta un bloque «HTML personalizado» con el JSON-LD. - Product: WooCommerce ya imprime los datos de producto. Revísalos antes de añadir nada.
Comprueba el resultado con la Prueba de resultados enriquecidos y el validador de Schema.org. Para el código de tu negocio tienes nuestro generador de marcado de datos estructurados.
4 Contenido que la IA pueda resumir y citar
Un motor generativo cita un fragmento que responde a la pregunta, así que cada sección tiene que entenderse sola. Es lo que se llama AEO (Answer Engine Optimization), y es la parte del GEO para WordPress que más depende de quien escribe.
Así se cita bien
- «Según Google, para salir en AI Overviews basta con que la página esté indexada.»
- H2 con la pregunta del cliente
- Tabla en HTML
- Firma con nombre y fecha
Así cuesta citarlo
- «Como comentábamos, depende de muchos factores.»
- H2 creativo que no dice nada
- Tabla dentro de una imagen
- Autor «admin» y sin fecha
- Responde en las dos primeras frases de cada sección; el contexto, después.
- Un H1 y los H2 y H3 en orden, sin usar negritas como encabezados.
- Cada cifra con fuente y fecha, enlazada junto a la afirmación.
- Nombra las cosas siempre igual: empresa, servicios y ciudad.
- Que el texto esté en el HTML. Muchos bots de IA no ejecutan JavaScript, y lo que aparece tras un clic puede no existir para ellos.
Y que la página responda rápido: si va lenta, empieza por la optimización del rendimiento web.
5 ¿Y el archivo llms.txt?
Es una propuesta para dejar en la raíz un resumen en Markdown con tus páginas clave. Muchas guías de GEO para WordPress lo dan por imprescindible, y hoy no lo es:
No lo menciona
Para controlar el acceso de sus bots remite al robots.txt.
Casi cero
Si lo pones, mira en el registro del servidor si alguien lo pide.
6 Cómo medir si la IA te cita
No existe una «posición» en ChatGPT: la respuesta cambia según el usuario, el día y el modelo. El GEO para WordPress se mide por tendencias:
- Visitas desde asistentes: en Google Analytics 4, un grupo de canales con
chatgpt.com,perplexity.ai,gemini.google.com,claude.aiycopilot.microsoft.com, colocado por encima de «Referral». - Bots en el registro: si los de búsqueda no aparecen nunca, revisa robots.txt y cortafuegos.
- Diez preguntas fijas: las de tu cliente, cada mes en los mismos asistentes, anotando si te citan y si lo que dicen es correcto.
Si prefieres que alguien lo revise y lo mantenga, lo incluimos en el mantenimiento de WordPress.
¿Puede la IA leer tu web?
Revisamos tu robots.txt, tu cortafuegos y tus datos estructurados, y te decimos qué falta en tu GEO para WordPress.
Preguntas frecuentes sobre GEO para WordPress
¿Hace falta un plugin?
No. El robots.txt, el JSON-LD y la estructura del contenido se resuelven con un archivo en la raíz y unas líneas en el tema hijo. Si tu plugin de SEO ya genera schema, aprovéchalo y no lo dupliques.
¿Si bloqueo GPTBot desaparezco de ChatGPT?
No. GPTBot recoge contenido para entrenar. Para salir en la búsqueda de ChatGPT cuenta OAI-SearchBot, que se controla por separado.
¿Cuánto se tarda en ver resultados?
No hay plazo fijo ni nadie garantiza una cita. El robots.txt se aplica en horas o días; el contenido y la autoridad de la marca se notan en meses, como en el SEO.

