Cómo usar esta checklist
El objetivo de GEO no es posicionar un enlace, sino conseguir que ChatGPT, Perplexity, Claude, Gemini y los AI Overviews puedan leer tu contenido, entenderlo y citarte como fuente. Para eso hacen falta tres cosas encadenadas: que los bots puedan entrar, que puedan leer el texto y que ese texto sea citable. Las cinco dimensiones de HABLA recorren esa cadena en orden.
Recorre las cinco secciones de arriba abajo y marca cada punto como cumplido o pendiente. Si un punto de Higiene o Accesibilidad falla, arréglalo antes de tocar los demás: de nada sirve un contenido excelente si el bot no puede entrar o no ve el texto. Cada punto lleva una comprobación manual concreta para que no dependas de creerlo, sino de verlo.
Si prefieres un primer diagnóstico automático, en esgeo.ai tienes un auditor gratuito en /geo-score que comprueba varios de estos puntos por ti (accesibilidad del HTML, encabezados, schema, robots y algo más) y te da un punto de partida. No sustituye a la revisión manual, pero ahorra tiempo.
H — Higiene técnica
Los cimientos. Si un bot no puede rastrear tu web o encuentra señales contradictorias, todo lo demás da igual. Estos cinco puntos aseguran que la puerta esté abierta y bien señalizada.
- robots.txt con reglas explícitas para los bots de IA. Por qué importa: GPTBot, ClaudeBot y PerplexityBot deciden si rastrean según lo que diga este archivo; un bloqueo accidental te deja fuera de las respuestas. Cómo verificar: abre
tu-dominio/robots.txty confirma que las reglas para esos user-agents son las que quieres (permitir o bloquear, pero a propósito). - sitemap.xml presente y enlazado. Por qué importa: es el índice que ayuda a los rastreadores a descubrir todas tus URLs, no solo las enlazadas desde el menú. Cómo verificar: abre
tu-dominio/sitemap.xml, comprueba que lista tus páginas reales y que aparece referenciado conSitemap:dentro del robots.txt. - HTTPS válido en todo el sitio. Por qué importa: es una señal básica de confianza y muchos rastreadores penalizan o evitan contenido mixto o certificados rotos. Cómo verificar: navega tu web y confirma el candado; revisa que no haya avisos de contenido mixto en la consola del navegador (F12).
- Etiqueta canonical correcta en cada página. Por qué importa: el canonical le dice al bot cuál es la URL oficial de un contenido y evita que el valor de citación se disperse entre duplicados. Cómo verificar: en el código fuente busca
<link rel="canonical">y comprueba que apunta a la URL real y absoluta de esa misma página, no a la home ni a otra. - Idioma declarado con el atributo lang. Por qué importa: ayuda a los modelos a saber en qué idioma servirte y a asociarte con consultas en español. Cómo verificar: en el código fuente, la etiqueta de apertura debe ser
<html lang="es">(o el idioma que corresponda), no vacía.
A — Accesible para el bot
Que el bot entre no significa que lea. Muchos rastreadores procesan el HTML inicial y no ejecutan JavaScript como un navegador. Estos puntos comprueban que tu texto llegue de verdad, sobre todo si usas una SPA.
- El HTML servido contiene el texto principal. Por qué importa: si el contenido solo aparece tras ejecutar JS, un bot que lee el HTML inicial puede recibir una página casi vacía. Cómo verificar: pulsa Ctrl+U (ver código fuente) o descarga la página con
curl; busca un párrafo de tu texto. Si no está, el bot tampoco lo ve. - Cuidado con las SPAs sin SSR o prerender. Por qué importa: React, Vue o Angular sin renderizado en servidor entregan un HTML mínimo y montan el contenido en el cliente. Cómo verificar: si el código fuente es solo un
<div id="root">vacío, necesitas SSR, renderizado estático o prerender para los bots. - El contenido no depende de clics o scroll para cargar. Por qué importa: texto oculto tras acordeones que se cargan por JS, pestañas o scroll infinito puede no llegar al rastreador. Cómo verificar: comprueba que el texto importante está en el HTML inicial, no inyectado solo tras interacción del usuario.
- Sin bloqueos por muros de cookies o interstitials. Por qué importa: un muro que tapa el contenido hasta aceptar puede impedir que el bot llegue al texto. Cómo verificar: revisa que el contenido exista en el HTML aunque el overlay lo cubra visualmente, y que no se cargue solo tras el consentimiento.
- Recursos clave no bloqueados en robots.txt. Por qué importa: bloquear CSS o JS necesarios para renderizar puede dar al bot una imagen incompleta de la página. Cómo verificar: repasa el robots.txt y asegúrate de que no hay
Disallowsobre carpetas de assets imprescindibles para entender el contenido.
B — Bloques y estructura
El bot ya lee tu texto; ahora tiene que entender su estructura. Encabezados ordenados, HTML semántico y datos estructurados le permiten identificar de qué trata cada parte y extraer el fragmento adecuado.
- Un solo h1 por página. Por qué importa: el h1 declara el tema principal; varios h1 confunden esa señal. Cómo verificar: en la consola del navegador ejecuta
document.querySelectorAll('h1').lengthy comprueba que devuelve 1. - Jerarquía de encabezados sin saltos. Por qué importa: pasar de h2 a h4 sin h3 rompe el esquema del documento que el modelo usa para mapear secciones. Cómo verificar: recorre los encabezados en orden y confirma que descienden de nivel sin huecos.
- HTML semántico: main, article, section. Por qué importa: estas etiquetas delimitan el contenido principal frente a menús y pies, y ayudan a aislar lo citable. Cómo verificar: revisa que el cuerpo use
<main>,<article>y<section>en lugar de<div>genéricos para todo. - JSON-LD válido con un @type acorde al contenido. Por qué importa: los datos estructurados describen tu página en un lenguaje que los modelos interpretan sin ambigüedad (Article, FAQPage, HowTo, Product...). Cómo verificar: pega la URL en el validador de schema.org o de Google y confirma que no da errores y que el
@typeencaja con lo que realmente publicas. - Imágenes con atributo alt descriptivo y meta description presente. Por qué importa: el alt aporta el contenido de las imágenes en texto y la meta description es el resumen que muchos sistemas usan como referencia. Cómo verificar: revisa que las imágenes de contenido tengan
altcon sentido y que exista una sola<meta name="description">por página.
L — Lenguaje y citabilidad
Estructura correcta, pero ¿es el texto citable? Un modelo tiende a extraer fragmentos que se sostienen solos. Estos puntos trabajan la respondibilidad: que cada bloque responda por sí mismo.
- El primer bloque responde qué, para quién y cuánto. Por qué importa: es el fragmento con más probabilidad de ser citado; si define el tema, el público y un dato concreto, la cita funciona sola. Cómo verificar: lee solo el primer párrafo, ¿se entiende sin el resto?
- Ese primer bloque incluye una cifra o dato concreto. Por qué importa: un número verificable (un plazo, una cantidad, un porcentaje real medido por ti) hace el fragmento más específico y útil. Cómo verificar: comprueba que la entradilla contiene al menos un dato concreto y comprobable, no solo generalidades.
- Contenido fechado y con fecha de actualización real. Por qué importa: la frescura influye en qué fuentes se consideran vigentes; una fecha falsa que cambia en cada build es un antipatrón. Cómo verificar: revisa que la fecha visible y la de los datos estructurados reflejen la última modificación real del contenido.
- Fragmentos autosuficientes a lo largo de la página. Por qué importa: no solo el primero; cualquier sección debería entenderse sin depender de un "como decíamos antes". Cómo verificar: lee dos o tres párrafos sueltos al azar, ¿tienen sentido fuera de contexto?
- Buena densidad de contenido frente a markup. Por qué importa: una página con mucho HTML de plantilla y poco texto real ofrece poco que citar. Cómo verificar: valora si la mayor parte de la página es contenido útil y no una capa fina de texto sobre mucho envoltorio.
X — eXtras que suman autoridad
Con los cuatro pilares cubiertos, estos extras refuerzan tu identidad y tu autoridad como fuente. No son imprescindibles para empezar, pero marcan la diferencia entre una web legible y una web que la IA reconoce y cita.
- Un llms.txt real, con enlaces. Por qué importa: funciona como índice legible de tu contenido clave para modelos; uno vacío o de relleno no aporta nada. Cómo verificar: abre
tu-dominio/llms.txt, comprueba que devuelve 200 y que sus enlaces apuntan a URLs vivas y relevantes. - Entidad Organization o Person en JSON-LD. Por qué importa: declarar quién está detrás (marca o autor) ayuda a los modelos a construir tu identidad como fuente. Cómo verificar: revisa que tu schema incluya un bloque
OrganizationoPersoncon nombre y URL consistentes. - Vía de contacto legible en el HTML. Por qué importa: un contacto en texto (no solo en una imagen o tras un formulario JS) refuerza que hay una entidad real y responsable. Cómo verificar: comprueba que exista una página o bloque de contacto con datos en texto plano rastreable.
- Señales de citación y autoría. Por qué importa: firmar los artículos, enlazar fuentes y mantener coherencia de marca genera las señales de confianza que un modelo asocia a fuentes fiables. Cómo verificar: revisa que tus contenidos tengan autor visible y referencias comprobables cuando afirmas datos.
- Consistencia de entidad entre páginas y schema. Por qué importa: usar el mismo nombre, la misma URL y los mismos identificadores en todo el sitio ayuda a que la IA consolide tu marca como una única entidad. Cómo verificar: contrasta que el nombre y la URL de tu organización coincidan en el footer, el schema y las páginas legales.
Preguntas frecuentes
¿Por dónde empiezo si no puedo con los 25?
Por Higiene y Accesibilidad. Si el bot no entra o no ve tu texto, el resto no cuenta. En concreto, comprueba primero el robots.txt y que el HTML servido contenga tu contenido principal.
¿Puedo automatizar esta revisión?
Algunos puntos sí. El auditor gratuito de /geo-score comprueba automáticamente varios (accesibilidad del HTML, encabezados, schema, robots) y te da un punto de partida. Los puntos de citabilidad requieren criterio humano.
¿Debo permitir a todos los bots de IA?
Es una decisión de negocio. Lo importante es que sea deliberada: revisa tu robots.txt y decide a conciencia si permites o bloqueas GPTBot, ClaudeBot y PerplexityBot, en lugar de dejarlo al azar de una plantilla.