Primafonte

Cómo se calcula el Índice de Citabilidad

El Índice de Citabilidad es una puntuación de 0 a 100 que mide si una web puede ser leída, entendida y citada por un modelo generativo.

El Índice de Citabilidad se calcula con 33 comprobaciones agrupadas en cuatro capas ponderadas. Esta página documenta cada una: qué comprueba, cómo se comprueba, qué umbral se considera aprobado, qué peso tiene y por qué le importa a un modelo.

¿Qué versión es esta y qué significa?

Versión 0.15.0 · umbrales provisionales, publicada el 2026-09-05. Los cambios de metodología se registran abajo y las puntuaciones anteriores no se recalculan: cada informe indica con qué versión se generó.

¿Cómo se reparten los 100 puntos?

El índice reparte 100 puntos entre cuatro capas, y no a partes iguales. Pesa más lo que impide del todo que un modelo te lea que lo que solo matiza cómo te describe: por eso accesibilidad y estructura se llevan 30 puntos cada una, descubribilidad 25 y autoridad de entidad 15. Al lado de cada capa va cuántas comprobaciones agrupa.

Descubribilidad
25 · 7
Accesibilidad del contenido
30 · 7
Estructura semántica
30 · 12
Autoridad de entidad
15 · 7

¿Qué miran las 33 comprobaciones?

Cada comprobación se documenta con lo mismo: qué mira, cómo lo mira, a partir de qué umbral se considera aprobada, cuánto pesa y por qué le importa a un modelo generativo. Ese último apartado es el que separa esta metodología del SEO clásico, y si una comprobación no puede explicarlo, sobra y se retira.

Descubribilidad

robots.txt accesible y parseable

robots_exists

Qué comprueba
Comprueba que el fichero /robots.txt existe, responde 200 y contiene directivas reconocibles.
Cómo se comprueba
Se pide https://tudominio/robots.txt y se parsea buscando líneas con el formato campo: valor. Un 200 que devuelve HTML no cuenta como robots.txt.
Umbral de aprobado
Aprueba con 200 y al menos una directiva válida. Un 404, un error de servidor o un HTML servido con 200 suspenden.
Peso
2 (Descubribilidad)
Por qué le importa a un modelo
El robots.txt es el primer fichero que pide cualquier rastreador. Sin él, cada agente decide por su cuenta qué hacer con la web, y esa decisión no la controla quien la publica.

Postura declarada ante los rastreadores que citan

robots_ai_rules

Qué comprueba
Comprueba si el robots.txt declara una regla propia para cada rastreador de respuesta: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot y Perplexity-User.
Cómo se comprueba
Se busca un bloque User-agent con el nombre de cada agente. Vale tanto permitir como denegar: lo que se mide es que haya una decisión declarada, no cuál sea. No se exigen reglas para los rastreadores de entrenamiento, que son muchos y cambian a menudo.
Umbral de aprobado
Aprueba con los seis declarados. Cumple a medias con uno o más, pero no todos. Suspende sin ninguno, y también cuando no hay robots.txt, porque entonces no hay ninguna regla declarada. Queda sin concluir solo si el fichero no se puede descargar.
Peso
3 (Descubribilidad)
Por qué le importa a un modelo
Un Allow explícito comunica intención a cada rastreador; la ausencia de regla comunica descuido. Varios operadores de estos modelos tratan de forma distinta a los sitios que nombran a sus agentes, porque la mención indica que alguien ha pensado en ellos en lugar de heredar un fichero.

Los rastreadores que citan no están bloqueados

robots_not_blocking

Qué comprueba
Comprueba que ningún rastreador de respuesta —los que van a buscar la página en el momento de responder y la citan— tiene prohibida la raíz del sitio.
Cómo se comprueba
Se evalúa el robots.txt para OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot y Perplexity-User, aplicando la regla habitual: gana el patrón más largo y el empate lo gana Allow. Los rastreadores de entrenamiento (GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider) NO se miran aquí: bloquearlos no impide que te citen.
Umbral de aprobado
Aprueba si ningún rastreador de respuesta tiene bloqueada la ruta /, y también si no hay robots.txt, porque entonces no se bloquea a nadie. Bloquearlos todos cumple a medias; bloquear solo a algunos suspende. Queda sin concluir solo si el fichero no se puede descargar.
Peso
3 (Descubribilidad)
Por qué le importa a un modelo
Un modelo no puede citar lo que no puede recuperar en el momento de responder. Es la distinción que más se confunde: cerrar la puerta al entrenamiento y dejarla abierta a la respuesta es una política perfectamente coherente, y solo la segunda mitad afecta a que te citen.

Rastreadores de entrenamiento: tu política, uno a uno

training_crawlers

Qué comprueba
Muestra, para cada rastreador que recoge contenido con el que entrenar modelos, si tu robots.txt lo permite o lo bloquea. Es informativo: no suma ni resta puntos.
Cómo se comprueba
Se evalúa el robots.txt para GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider, Applebot-Extended y meta-externalagent, y se lista el estado de cada uno.
Umbral de aprobado
No tiene umbral y no aprueba ni suspende: los 7 rastreadores de entrenamiento se listan con su estado, y permitirlos o bloquearlos no mueve el Índice de Citabilidad ni un punto. Sin robots.txt se informa de que ninguno está bloqueado.
Peso
0 (Descubribilidad)
Por qué le importa a un modelo
Bloquear el entrenamiento no impide que un modelo te cite: son cosas distintas y las gestionan agentes distintos. Es una decisión sobre el uso de tu obra, legítima en cualquiera de sus dos sentidos, y por eso se informa sin juzgarla. Si te importa que tu contenido no entrene modelos, aquí ves si tu política dice lo que crees que dice.

Sitemap declarado y accesible

sitemap_declared

Qué comprueba
Comprueba que existe un sitemap XML válido y que el robots.txt lo anuncia.
Cómo se comprueba
Se lee la directiva Sitemap del robots.txt y, si no la hay, se prueba /sitemap.xml. El fichero tiene que responder 200 y contener un urlset o un sitemapindex.
Umbral de aprobado
Aprueba si el sitemap es válido y está declarado en el robots.txt. Cumple a medias si es accesible pero nadie lo anuncia. Suspende si no existe o no es XML válido.
Peso
2 (Descubribilidad)
Por qué le importa a un modelo
El sitemap es la lista completa de lo que una web considera importante. Sin él, un rastreador solo encuentra lo que esté enlazado desde donde entró, y las páginas profundas pueden no descubrirse nunca.

Fechas de modificación en el sitemap

sitemap_fresh

Qué comprueba
Comprueba qué proporción de las URLs del sitemap declara una fecha lastmod reciente.
Cómo se comprueba
Se cuentan las etiquetas loc del sitemap y las lastmod parseables, y se calcula qué porcentaje tiene una fecha dentro de los últimos doce meses.
Umbral de aprobado
Aprueba con más del 50% de las URLs con lastmod reciente. Cumple a medias con alguna. Suspende sin ninguna fecha.
Peso
1 (Descubribilidad)
Por qué le importa a un modelo
Un rastreador con presupuesto limitado usa lastmod para decidir qué volver a leer. Un sitemap sin fechas obliga a tratarlo todo igual, y lo que cambió ayer se relee cuando toque, no cuando importa.

Fichero llms.txt

llms_txt

Qué comprueba
Comprueba si existe un /llms.txt en Markdown con un encabezado y enlaces.
Cómo se comprueba
Se pide https://tudominio/llms.txt y se verifica que no sea HTML, que tenga al menos un H1 en formato Markdown y al menos un enlace.
Umbral de aprobado
Aprueba con H1 y enlaces. Cumple a medias con solo uno de los dos. Suspende si no existe o devuelve una página HTML.
Peso
2 (Descubribilidad)
Por qué le importa a un modelo
El llms.txt es un índice en Markdown pensado para que un agente entienda de qué va la web y por dónde empezar, sin tener que deducirlo del menú de navegación. Es barato de mantener y todavía poco común.

Cabeceras Link de descubrimiento

link_headers

Qué comprueba
Comprueba si la home envía una cabecera HTTP Link con rel canonical o alternate.
Cómo se comprueba
Se inspecciona la cabecera Link de la respuesta de la home buscando rel="canonical" o rel="alternate".
Umbral de aprobado
Aprueba con cualquiera de las dos presente. Suspende si no hay cabecera Link.
Peso
1 (Descubribilidad)
Por qué le importa a un modelo
Un rastreador que solo lee cabeceras, sin parsear el HTML, obtiene la canónica y las versiones alternativas de la página antes de descargar el cuerpo. Para un agente que recorre miles de URLs, esa señal resuelve los duplicados sin gastar una petición extra.

Accesibilidad del contenido

Ratio de renderizado

render_ratio

Qué comprueba
Mide qué proporción del texto visible existe ya en el HTML inicial, antes de ejecutar JavaScript.
Cómo se comprueba
Se extrae el texto del HTML crudo y el texto tras cargar la página en un navegador real hasta networkidle, ambos normalizados quitando espacios, y se dividen.
Umbral de aprobado
Aprueba con un ratio de 0,80 o superior. Cumple a medias entre 0,50 y 0,79. Suspende por debajo de 0,50.
Peso
4 (Accesibilidad del contenido)
Por qué le importa a un modelo
La mayoría de rastreadores de IA no ejecutan JavaScript. Ven la página tal como llega del servidor, y si el contenido se inyecta después encuentran un documento casi vacío y no tienen nada que citar. Es la comprobación que más webs suspende.

Contenido principal sin JavaScript

main_content_in_html

Qué comprueba
Comprueba que el H1 y un párrafo con sustancia existen en el HTML crudo.
Cómo se comprueba
Se busca en el HTML descargado, sin ejecutar nada, un H1 con texto y al menos un párrafo de doce palabras o más.
Umbral de aprobado
Aprueba con H1 y párrafo. Cumple a medias con H1 pero sin párrafo. Suspende sin H1.
Peso
3 (Accesibilidad del contenido)
Por qué le importa a un modelo
El H1 y el primer párrafo son lo que un modelo usa para decidir de qué trata la página. Si llegan vacíos, el resto del contenido da igual: la página no entra en la respuesta porque no se sabe de qué habla.

Negociación de contenido en Markdown

markdown_negotiation

Qué comprueba
Comprueba si el servidor devuelve Markdown cuando el cliente lo pide.
Cómo se comprueba
Se pide la home con la cabecera Accept: text/markdown y se mira si responde 200 con content-type text/markdown.
Umbral de aprobado
Aprueba con 200 y content-type text/markdown. Suspende en cualquier otro caso.
Peso
1 (Accesibilidad del contenido)
Por qué le importa a un modelo
Un agente que recibe Markdown se ahorra parsear HTML y no arrastra menús, pies ni avisos de cookies al fragmento que cita. Es una ventaja barata de implementar y todavía rara.

Cadena de redirecciones limpia

status_and_redirects

Qué comprueba
Comprueba que llegar a la home no exige recorrer varios saltos y que el destino final es https.
Cómo se comprueba
Se siguen las redirecciones una a una, registrando cada URL, y se detectan bucles comparando la cadena recorrida.
Umbral de aprobado
Aprueba con un salto o ninguno y destino https. Cumple a medias con dos saltos. Suspende con más de dos, con un bucle o si el destino no es https.
Peso
2 (Accesibilidad del contenido)
Por qué le importa a un modelo
Cada salto es una petición más y una oportunidad más de perder cabeceras, cookies o el propio rastreador. Algunos clientes dejan de seguir la cadena antes de llegar, y para ellos la web sencillamente no responde.

Tiempo hasta el primer byte

ttfb

Qué comprueba
Mide cuánto tarda el servidor en empezar a responder.
Cómo se comprueba
Se cronometra desde que se abre la petición hasta que llegan las primeras cabeceras de la respuesta de la home.
Umbral de aprobado
Aprueba por debajo de 800 ms. Cumple a medias entre 800 y 1600 ms. Suspende por encima de 1600 ms.
Peso
1 (Accesibilidad del contenido)
Por qué le importa a un modelo
El tiempo de respuesta condiciona cuántas páginas rastrea un agente por visita. Un servidor lento no impide que se cite una página, pero reduce cuántas llegan a leerse.

Mismo contenido para el bot y para una persona

bot_parity

Qué comprueba
Compara el texto que se sirve a un navegador con el que se sirve a un rastreador.
Cómo se comprueba
Se pide la home dos veces, una con user-agent de navegador y otra con el de PrimafonteBot, y se compara la longitud del texto visible extraído de cada respuesta.
Umbral de aprobado
Aprueba con menos del 10% de diferencia. Cumple a medias por debajo del 30%. Suspende por encima.
Peso
3 (Accesibilidad del contenido)
Por qué le importa a un modelo
Servir a un bot una versión distinta de la página es cloaking, lo sepa o no quien configuró la caché. El modelo indexa lo que recibe él, no lo que ve una persona, y la diferencia se convierte en citas equivocadas o en ninguna cita.

El rastreador no recibe un bloqueo

waf_block

Qué comprueba
Comprueba que la web no responde con un bloqueo ni con un captcha al user-agent de un bot.
Cómo se comprueba
Se pide la home con el user-agent de PrimafonteBot y se mira el código de estado y el texto de la respuesta, buscando avisos de verificación de navegador.
Umbral de aprobado
Aprueba con 200 y sin captcha. Cumple a medias con otro código que no sea de bloqueo. Suspende con 401, 403, 429 o con un captcha servido con 200.
Peso
3 (Accesibilidad del contenido)
Por qué le importa a un modelo
Un cortafuegos que bloquea a los bots por defecto deja fuera también a los rastreadores de IA. Un 200 que sirve un captcha bloquea igual que un 403, y además engaña a quien solo mira el código de estado.

Estructura semántica

Datos estructurados presentes y válidos

jsonld_present

Qué comprueba
Comprueba que hay datos estructurados en JSON-LD y que sirven: que el JSON parsea y que cada tipo lleva los campos que schema.org marca como obligatorios.
Cómo se comprueba
Se cuentan los bloques declarados y los que consiguen parsearse. Sobre los que parsean se revisan los campos obligatorios de cada tipo.
Umbral de aprobado
Aprueba con datos estructurados válidos y completos. Cumple a medias con uno o dos campos obligatorios ausentes. Suspende si no hay datos estructurados, si algún bloque no parsea o si faltan más de dos campos.
Peso
4 (Estructura semántica)
Por qué le importa a un modelo
Los datos estructurados son la vía por la que un modelo confirma quién eres sin tener que deducirlo del texto. No tenerlos deja esa deducción al azar, y tenerlos rotos es peor que no tenerlos: para un modelo ese bloque no existe, pero quien lo escribió cree que sí.

Tipos de entidad y de negocio declarados

jsonld_entity_types

Qué comprueba
Comprueba que la web declara quién publica y qué ofrece.
Cómo se comprueba
Se busca entre los tipos declarados uno de entidad, como Organization o Person, y otro que describa la oferta, como SoftwareApplication, Product, Service o Article.
Umbral de aprobado
Aprueba con los dos presentes. Cumple a medias con solo uno. Suspende sin ninguno.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
Un modelo necesita resolver dos preguntas distintas: quién es esta gente y qué venden. Declarar solo una de las dos deja la mitad de la respuesta a la interpretación, y ahí es donde aparecen las descripciones equivocadas.

Jerarquía de encabezados

heading_hierarchy

Qué comprueba
Comprueba que hay un solo H1 y que no se salta ningún nivel.
Cómo se comprueba
Se extraen todos los encabezados en orden de aparición, se cuentan los H1 y se detectan los saltos, como pasar de H2 a H4 sin H3.
Umbral de aprobado
Aprueba con exactamente un H1 y sin saltos. Cumple a medias con dos H1 o con hasta dos saltos. Suspende sin H1, con más de dos, o con varios saltos.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
Los encabezados son el índice del documento. Un salto de nivel deja un bloque colgando de nada, y el troceado que hace un modelo para citar pasajes se apoya justo en esa estructura.

Respuestas directas tras cada encabezado

direct_answers

Qué comprueba
Comprueba si el primer párrafo que sigue a cada H2 responde a ese encabezado. Se mide en una página interior de contenido —un artículo, una guía, la documentación— y no en la portada.
Cómo se comprueba
Se elige una página interior a partir del sitemap o de los enlaces de la portada, siempre la misma para un mismo sitio. Por cada H2 se toma el primer párrafo posterior y se puntúa: la banda de 40 a 80 palabras vale un punto, la franja de 25 a 120 vale medio, y empezar por un conector que depende del párrafo anterior vale cero. Si el sitio no tiene ninguna página interior legible, se mide en la portada y el informe lo indica.
Umbral de aprobado
Aprueba con una puntuación media del 60% o más. Cumple a medias desde el 30%. Suspende por debajo.
Peso
3 (Estructura semántica)
Por qué le importa a un modelo
Un modelo no cita páginas, cita pasajes. Un encabezado seguido de un párrafo que lo responde produce un fragmento que se sostiene solo; seguido de una transición o de una imagen, no produce nada citable. La portada de una web comercial es un escaparate con frases de cinco a diez palabras: mide lo bien que vende, no lo bien que se la puede citar.

Encabezados en forma de pregunta

question_headings

Qué comprueba
Comprueba qué proporción de los encabezados H2 y H3 está escrita como una pregunta.
Cómo se comprueba
Se mide en la misma página interior que las respuestas directas. Cuenta como pregunta el encabezado que cierra en interrogación, el que abre con el signo de apertura y el que empieza por un interrogativo acentuado —qué, cómo, cuándo, dónde, cuál, por qué— o por how, what, why, when, where en inglés.
Umbral de aprobado
Aprueba con el 30% o más de encabezados en forma de pregunta. Cumple a medias con al menos dos. Suspende por debajo.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
Un modelo recupera pasajes buscando el que responde a la consulta que le han hecho, y esa consulta suele tener forma de pregunta. Un encabezado escrito como la pregunta que alguien teclea, seguido de una respuesta que se sostiene sola, produce el par completo que estos sistemas prefieren: el encabezado sirve de índice y el párrafo de contenido. Un encabezado como "Nuestros servicios" no se parece a ninguna consulta.

Párrafos que se sostienen fuera de contexto

chunk_independence

Qué comprueba
Comprueba qué proporción de los párrafos se entiende sin haber leído el anterior.
Cómo se comprueba
Se toman los párrafos de veinte palabras o más y se busca en su primera frase un pronombre o un deíctico sin antecedente, como lo, esto, aquí o el anterior.
Umbral de aprobado
Aprueba con el 50% o más de párrafos independientes. Cumple a medias desde el 25%. Suspende por debajo.
Peso
3 (Estructura semántica)
Por qué le importa a un modelo
Un pasaje se cita solo si se entiende suelto. Un párrafo que empieza por eso se arregla obliga al modelo a arrastrar el párrafo anterior, y en cuanto el fragmento se recorta pierde el sentido y deja de servir como fuente.

Longitud del title y de la meta description

title_meta

Qué comprueba
Comprueba que el title y la meta description caben en el espacio que se les da.
Cómo se comprueba
Se mide la longitud en caracteres del title y del atributo content de la meta description de la home.
Umbral de aprobado
Aprueba con un title de 30 a 60 caracteres y una description de 110 a 160. Cumple a medias si solo uno está en rango. Suspende si ninguno lo está o si faltan.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
El title y la meta description son el resumen que la propia web hace de sí misma, y tanto los buscadores como los modelos los reutilizan tal cual al presentarla. Un title cortado o una description ausente dejan ese resumen en manos de quien lo lea.

Preguntas frecuentes estructuradas

faq_markup

Qué comprueba
Comprueba si hay un bloque de preguntas y respuestas marcado como FAQPage.
Cómo se comprueba
Se busca un bloque JSON-LD de tipo FAQPage. Se detectan además los encabezados con forma de pregunta y las menciones a preguntas frecuentes en el texto, para distinguir a quien tiene el contenido y no lo ha marcado de quien no lo tiene.
Umbral de aprobado
Aprueba con un bloque FAQPage. Cumple a medias si hay preguntas visibles sin marcar. Suspende si no hay ni lo uno ni lo otro.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
El bloque de preguntas frecuentes es lo más citado de una web, porque cada pregunta es ya un fragmento autocontenido con su respuesta al lado. No tenerlo no es neutral: deja fuera el formato que los modelos citan con más facilidad. Esto se mide desde el punto de vista de los modelos y los agentes, no del posicionamiento clásico.

Texto ancla descriptivo

internal_links

Qué comprueba
Comprueba qué proporción de los enlaces internos usa un texto que no dice nada del destino.
Cómo se comprueba
Se recogen los enlaces internos de la home y se comparan sus textos con una lista de anclas genéricas como leer más, aquí o click here.
Umbral de aprobado
Aprueba con menos del 10% de anclas genéricas. Cumple a medias por debajo del 25%. Suspende por encima. Con menos de cinco enlaces internos no puntúa.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
El texto ancla es una de las señales que un modelo usa para entender de qué trata la página destino antes de visitarla. Un leer más no aporta ninguna, y desperdicia el enlace como señal.

Enlaces a fuentes externas

external_sources

Qué comprueba
Comprueba a cuántos dominios ajenos enlaza el contenido.
Cómo se comprueba
Se cuentan los dominios distintos a los que enlaza la página interior de contenido, sin contar los enlaces del pie ni de la navegación, los que apuntan al propio dominio o a un subdominio suyo, ni los perfiles en redes sociales, que son identidad y no respaldo.
Umbral de aprobado
Aprueba enlazando a tres dominios distintos o más. Cumple a medias con uno o dos. Suspende sin ninguno.
Peso
3 (Estructura semántica)
Por qué le importa a un modelo
Es de lo poco con efecto medido: el estudio original sobre optimización para motores generativos encontró que citar fuentes, añadir citas textuales y aportar datos puede aumentar la visibilidad en las respuestas hasta un 40 %. Un contenido que enlaza a lo que afirma le da al modelo con qué contrastar, y un modelo cita antes lo que puede verificar que lo que solo puede creer.

Datos en el contenido

data_points

Qué comprueba
Comprueba qué proporción de los párrafos aporta alguna cifra concreta.
Cómo se comprueba
Se miran los párrafos de veinte palabras o más de la página interior de contenido y se busca en ellos un porcentaje, un importe, una magnitud con unidad —incluidas las de tiempo— o una cifra grande con separador de miles. Los números sueltos de una o dos posiciones no cuentan: en una web suelen ser tallas, pasos o numeración.
Umbral de aprobado
Aprueba con el 25% o más de los párrafos aportando alguna cifra. Cumple a medias con al menos uno. Suspende sin ninguno.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
Es de lo poco con efecto medido: el estudio original sobre optimización para motores generativos encontró que aportar datos, junto con citar fuentes y añadir citas textuales, puede aumentar la visibilidad en las respuestas hasta un 40 %. Una afirmación con una cifra dentro es más fácil de recuperar y de atribuir que una sin ella, porque el dato ancla el pasaje a algo comprobable.

Listas y tablas

scannable_formats

Qué comprueba
Comprueba si el contenido usa listas y tablas y no solo párrafos corridos.
Cómo se comprueba
Se cuentan las listas de tres elementos o más y las tablas de la página interior de contenido. Una tabla vale por dos listas. No se cuentan las del pie ni las de la navegación, aunque esa exclusión depende de que la web use las etiquetas semánticas: un menú maquetado con divs no se puede distinguir de una lista de contenido.
Umbral de aprobado
Aprueba con tres puntos, contando cada lista como uno y cada tabla como dos. Cumple a medias con al menos una. Suspende sin ninguna.
Peso
2 (Estructura semántica)
Por qué le importa a un modelo
Una lista y una tabla vienen troceadas de fábrica: cada elemento se sostiene solo y un modelo puede recuperar uno sin arrastrar el resto. Un párrafo con las mismas seis cosas separadas por comas dice lo mismo y no se puede extraer por partes. La tabla añade sus propias cabeceras, que es contexto que viaja con la fila.

Autoridad de entidad

Coherencia del nombre de marca

name_consistency

Qué comprueba
Comprueba que la marca se escribe igual en el JSON-LD, en Open Graph y en el title.
Cómo se comprueba
Se toma como referencia el nombre declarado en JSON-LD y se compara con og:site_name y con los segmentos del title, ignorando mayúsculas, tildes y puntuación.
Umbral de aprobado
Aprueba si todas las fuentes disponibles coinciden. Cumple a medias si discrepa una. Suspende si discrepan todas. Con una sola fuente no puntúa.
Peso
3 (Autoridad de entidad)
Por qué le importa a un modelo
Un modelo tiene que poder resolver la marca a una sola entidad. Tres variantes del nombre en la misma página producen tres candidatos, y la autoridad que debería acumularse en uno se reparte entre los tres.

Coherencia de la descripción

description_consistency

Qué comprueba
Comprueba que la meta description, la de Open Graph y la del JSON-LD dicen lo mismo.
Cómo se comprueba
Se comparan por pares con el coeficiente de Dice sobre palabras, ignorando mayúsculas y tildes, y manda el par que peor puntúa.
Umbral de aprobado
Aprueba con una similitud de 0,80 o superior. Cumple a medias desde 0,50. Suspende por debajo. Con una sola descripción no puntúa.
Peso
3 (Autoridad de entidad)
Por qué le importa a un modelo
La descripción es la frase con la que un modelo va a presentar la web cuando la cite. Dos versiones distintas obligan a elegir, y la elegida no siempre es la que interesa a quien publica.

Página identificable de empresa o autor

about_page

Qué comprueba
Comprueba que existe una página que explica quién está detrás de la web.
Cómo se comprueba
Se buscan enlaces cuyo destino o texto apunte a una página de tipo quiénes somos, nosotros, about o equipo, y en su defecto una entidad declarada en JSON-LD con url o @id.
Umbral de aprobado
Aprueba con un enlace a la página. Cumple a medias si solo hay entidad declarada en JSON-LD. Suspende sin ninguna de las dos.
Peso
2 (Autoridad de entidad)
Por qué le importa a un modelo
La página de quiénes somos es donde un modelo confirma que detrás de la web hay una entidad real. Su ausencia no impide citar, pero rebaja la confianza en un contenido que no se puede atribuir a nadie.

Datos de contacto legibles

contact_verifiable

Qué comprueba
Comprueba que hay un correo o un teléfono que una máquina pueda leer.
Cómo se comprueba
Se busca un correo o un teléfono en el texto visible y en los enlaces mailto y tel, y en su defecto en los campos email y telephone del JSON-LD.
Umbral de aprobado
Aprueba con contacto en el texto visible o en un enlace. Cumple a medias si solo está declarado en JSON-LD o si el teléfono aparece sin enlace. Suspende sin ninguno.
Peso
2 (Autoridad de entidad)
Por qué le importa a un modelo
Un modelo no rellena formularios. Un contacto que solo existe tras un formulario, dentro de una imagen o ofuscado en JavaScript no puede citarse ni verificarse, y es una de las señales que distinguen a una empresa real.

Perfiles externos declarados con sameAs

sameas_links

Qué comprueba
Comprueba cuántos perfiles externos declara la web con la propiedad sameAs.
Cómo se comprueba
Se recogen todos los valores de sameAs de los bloques JSON-LD. Si no hay ninguno, se mira si al menos existen enlaces a perfiles conocidos en el HTML.
Umbral de aprobado
Aprueba con dos o más sameAs. Cumple a medias con uno, o con dos perfiles enlazados pero sin declarar. Suspende sin ninguno.
Peso
3 (Autoridad de entidad)
Por qué le importa a un modelo
El sameAs es lo que permite a un modelo unir la web con el resto de rastros de la misma entidad: LinkedIn, GitHub, un registro mercantil. Sin esa unión, cada rastro se resuelve como una entidad distinta y ninguna acumula señal suficiente para que la citen.

Fecha de publicación y de revisión

content_freshness

Qué comprueba
Comprueba si el contenido declara cuándo se escribió o cuándo se revisó por última vez.
Cómo se comprueba
Se buscan datePublished y dateModified en los datos estructurados de la página interior de contenido, y se toma la más reciente. Solo se miran las fechas declaradas: reconocer las visibles del texto en dos idiomas y veinte formatos es frágil, y una comprobación que se equivoca resta más de lo que suma.
Umbral de aprobado
Aprueba con una fecha de menos de doce meses. Cumple a medias hasta los treinta y seis. Suspende si es más antigua o si no hay ninguna.
Peso
2 (Autoridad de entidad)
Por qué le importa a un modelo
Un modelo que responde sobre algo cambiante prefiere la fuente que puede fechar. Sin fecha declarada no hay forma de saber si el contenido sigue vigente, y ante la duda se cita antes lo que se puede situar en el tiempo. El umbral es holgado a propósito: hay contenido que no caduca, y penalizar por no tocarlo premiaría el retoque cosmético.

Autoría declarada

author_declared

Qué comprueba
Comprueba si el contenido declara quién lo firma.
Cómo se comprueba
Se busca el campo author en los datos estructurados de la página interior de contenido, y que traiga un nombre. Un author vacío o sin nombre cuenta como marcado decorativo.
Umbral de aprobado
Aprueba con un autor con nombre. Cumple a medias con el campo presente pero sin nombre. Suspende sin autor.
Peso
1 (Autoridad de entidad)
Por qué le importa a un modelo
Sin firma, un modelo no tiene a quién atribuir lo que cita, y atribuir es parte de citar. La evidencia de que esto influya en las citaciones es de casos observados y no de medición, así que esta comprobación pesa poco: es plausible y barata de arreglar, pero no está demostrada como las que miden datos y fuentes.

¿Qué no mide este índice?

El Índice de Citabilidad no mide la calidad de tu contenido, tu reputación, tus enlaces entrantes ni si un modelo te menciona hoy. Mide si existe la posibilidad técnica y estructural de que te cite.

¿Qué limitaciones tiene?

Publicar los límites de una medición parece que resta y hace lo contrario: es lo que separa una metodología de un folleto. Estas cinco son las que conocemos, y están escritas para que cualquiera pueda decidir cuánta confianza darle a un número concreto en su caso.

  • Los motores generativos no publican los pesos internos con los que seleccionan sus fuentes. El Índice de Citabilidad mide señales observables y razonadas, no una fórmula reproducida de ningún modelo concreto.
  • El resultado varía entre motores. Una web puede ser perfectamente legible para un rastreador y quedar fuera de las respuestas de otro por criterios de selección que no son técnicos.
  • Varios de los estándares que se comprueban están todavía en definición. El caso más claro es llms.txt: hay convención de facto, no especificación cerrada, y su peso puede cambiar.
  • Las comprobaciones se hacen sobre la página de inicio y los recursos que declara. Una web puede tener secciones internas con un comportamiento distinto al de su portada.
  • El ratio de renderizado se mide con un navegador que sí ejecuta JavaScript, mientras que cada rastreador de IA decide por su cuenta si lo ejecuta y hasta qué punto. El ratio indica riesgo, no el comportamiento exacto de un motor concreto.
  • Las comprobaciones de contenido no tratan igual a todos los idiomas. Las palabras se cuentan bien en cualquier escritura, incluidas las que no separan con espacios, pero las listas de conectores y de deícticos con las que se detecta un párrafo que no se sostiene solo están en español e inglés. En los demás idiomas esas marcas no se reconocen y el párrafo aprueba. El sesgo va siempre en la misma dirección: ante la duda no se penaliza.

¿En qué se apoya la metodología?

Las comprobaciones no salen de una opinión sobre cómo debería ser la web. Cada una implementa una norma publicada o un hallazgo medido, y estas son las cuatro referencias que el motor aplica literalmente, no lecturas recomendadas.

  • GEO: Generative Engine Optimization

    El estudio que midió el efecto de citar fuentes, aportar datos y añadir citas textuales: hasta un 40 % más de visibilidad en las respuestas. De ahí sale el peso de las dos comprobaciones que miran el contenido.

  • schema.org

    El vocabulario contra el que se validan los datos estructurados: qué tipos existen y qué campos marca cada uno como obligatorios. Lo aplican las dos comprobaciones de JSON-LD.

  • RFC 9309

    La norma que fija cómo se interpreta un robots.txt, incluida la regla de que gana el patrón más largo y de que en un empate gana Allow. Es la que aplican las tres comprobaciones de rastreadores.

  • llms.txt

    La propuesta de fichero índice en Markdown para agentes. Es convención de facto y no especificación cerrada, y por eso su peso en el índice puede cambiar.

¿Qué ha cambiado y cuándo?

Cada versión dice qué se movió y por qué, casi siempre con la cifra que lo motivó delante. Las puntuaciones antiguas no se recalculan nunca: un informe describe cómo estaba esa web el día que se midió, con los criterios de aquel día, y por eso cada uno lleva impresa su versión.

  1. 0.15.0 · 2026-09-05

    El motor distinguía mal dos cosas que no se parecen: no haber podido leer un fichero y haberlo leído y comprobado que no está. Un 404 es un hecho del que se deduce algo —si no hay robots.txt, no se bloquea a nadie— y ahí la comprobación debe decidir. Un 401, un 403 o un 429 dicen lo contrario: el fichero existe y no nos dejan verlo. Ese caso vivía junto al 404 por una comparación con doscientos que se comía la diferencia, y producía las dos mentiras a la vez. A una web protegida por un cortafuegos de aplicaciones se le decía que no tiene un robots.txt legible, que su sitemap no está declarado, que no publica un llms.txt y que no responde a la negociación de Markdown: cuatro afirmaciones sobre ficheros que existen y funcionan. Y al mismo tiempo se le aprobaba que su robots.txt no bloquea a ningún rastreador de respuesta, que es un aprobado sobre un fichero que nunca se llegó a leer. En la muestra de calibración le ocurre a cincuenta de doscientas noventa y nueve webs, una de cada seis. Desde esta versión esos tres códigos dejan sin concluir a las cinco comprobaciones que los sufrían, y quien informa del bloqueo sigue siendo la comprobación que existe para eso. Se corrige además el título de la cadena de redirecciones, que hablaba siempre de saltos: una web bloqueada leía «llegar a la home cuesta 0 saltos de redirección», el óptimo presentado como defecto. Las ramas que no van de saltos —el estado de la respuesta y el destino que acaba en http— llevan ahora su propio texto. Las puntuaciones anteriores no se recalculan.

  2. 0.14.0 · 2026-08-19

    Dos comprobaciones dejan de castigar al chino, al japonés y al coreano por escribir más denso. La primera: los encabezados escritos como pregunta no se reconocían, porque esas lenguas cierran con «?», el signo de ancho completo, y solo se buscaba el de teclado latino. En nuestra propia página de metodología en chino daban cero de cuarenta y uno, con todos los encabezados de sección escritos como pregunta. La segunda: las franjas de longitud del título y de la descripción están calibradas sobre alfabeto latino, treinta a sesenta caracteres y ciento diez a ciento sesenta, y existen porque el buscador trunca por ancho. Un carácter chino ocupa el doble que una letra latina y dice bastante más: el título de esa misma página son veintidós caracteres y transmite lo mismo que los cincuenta del español, así que suspendía por decirlo en menos sitio. En esas escrituras las franjas pasan a la mitad. Fuera de ellas no cambia absolutamente nada, y la calibración sobre la muestra de 299 dominios europeos y americanos se ejecutó precisamente para comprobarlo. Las puntuaciones anteriores no se recalculan.

  3. 0.13.0 · 2026-08-18

    Dos arreglos en la elección de la página interior, de la que dependen cinco comprobaciones a la vez. El primero: «www.ejemplo.com» y «ejemplo.com» son el mismo sitio, y el motor los trataba como orígenes distintos. En ruanyifeng.com, un blog técnico chino, los dieciocho enlaces a artículos de su propio índice apuntan a «http://www.ruanyifeng.com/blog/...»; escaneando el dominio sin «www» se descartaban los dieciocho, no quedaba ni un artículo entre los candidatos y las comprobaciones de contenido acababan midiendo una lista de titulares. El segundo: si la página elegida resulta ser un índice de sección, ahora se baja una sola vez a su primer artículo. Un salto y no varios, porque esa descarga es secuencial y sale del mismo presupuesto de tiempo que el resto del escaneo; si el salto no trae nada mejor, se conserva el índice, porque medir algo peor es preferible a no medir nada. La elección sigue siendo determinista: el mismo sitio da siempre la misma página, o la puntuación dejaría de ser reproducible. Queda sin resolver el caso de que la página elegida esté en otro idioma que el resto del sitio. Las puntuaciones anteriores no se recalculan.

  4. 0.12.0 · 2026-08-18

    La comprobación de párrafos que se sostienen fuera de su contexto dejaba en suspenso a casi cualquier web en español. Detectaba si el párrafo depende del anterior buscando pronombres y deícticos, pero la lista incluía «la», «los» y «las», que son artículos y no deícticos, y los buscaba en cualquier posición de la primera frase en vez de al principio. Con eso, «Los umbrales se calibraron midiendo una muestra propia» salía marcado como dependiente. Un deíctico a mitad de frase suele tener su antecedente dentro de esa misma frase, así que está ligado; el que deja al párrafo colgando es el que abre. Ahora solo cuenta el arranque, y solo con las formas inequívocamente pronominales: «esto», «eso», «ello», «it», «lo anterior» y las anáforas explícitas. «Este» y «this» quedan fuera a propósito, porque valen igual de pronombre que de determinante y sin análisis morfológico no se distinguen: ante la duda no se penaliza, que es la regla declarada de esta capa. La corrección publicada ya describía este comportamiento; el código no lo hacía. Las puntuaciones anteriores no se recalculan, así que la cifra de esta comprobación en el estudio de calibración corresponde al criterio viejo.

  5. 0.11.0 · 2026-08-18

    El motor cuenta palabras de verdad en chino, japonés y coreano. Esas lenguas no separan las palabras con espacios, y el motor las contaba partiendo por espacios: sobre cinco artículos reales de un blog técnico chino, de 1.579 párrafos pasaban el filtro de veinte palabras exactamente 2. Contándolos bien, 560. Eso dejaba a cualquier web china, japonesa o coreana sin nada que medir en los párrafos que se sostienen fuera de contexto y en los datos del contenido, y con las respuestas directas suspensas aunque respondieran al encabezado a la perfección. La cabecera del propio módulo declaraba que el sesgo de idioma va siempre en la misma dirección, ante la duda no se penaliza, y ahí iba justo en la contraria. Se cuenta con el segmentador de palabras del sistema, que segmenta esas lenguas de verdad, en lugar de con una constante de conversión inventada. Fuera de esas escrituras el conteo es idéntico al anterior, carácter por carácter: la puntuación de una web en español, inglés, alemán, francés, italiano o portugués no se mueve ni un punto, y hay un test que lo comprueba contra todo el texto publicado del sitio. Las puntuaciones anteriores no se recalculan.

  6. 0.10.0 · 2026-08-06

    Cinco comprobaciones nuevas y un cambio en qué página se mide. Dos de las cinco salen de lo único que está medido con rigor en esta materia: el estudio original sobre optimización para motores generativos encontró que citar fuentes, aportar datos y añadir citas textuales puede subir la visibilidad en las respuestas hasta un 40 %. De ahí vienen los enlaces a fuentes externas, que cuenta a cuántos dominios ajenos enlaza el contenido, y los datos en el contenido, que mira qué proporción de los párrafos aporta una cifra concreta. Las otras tres salen de recomendaciones publicadas: listas y tablas, que son fragmentos que vienen troceados de fábrica; la fecha de publicación y revisión declarada en datos estructurados; y la autoría, que pesa poco a propósito porque su evidencia es de casos observados y no de medición. Además cambia la elección de la página interior que se mide: un artículo pasa por delante de una página institucional. Salió de comprobar que en Xataka se estaba midiendo la página del equipo, hecha de biografías, donde las comprobaciones de contenido daban cero sobre sesenta y nueve párrafos. No era que Xataka escribiera mal, era que le mirábamos la página equivocada. Las comprobaciones que puntúan pasan de 28 a 33. Las puntuaciones anteriores no se recalculan.

  7. 0.9.0 · 2026-08-06

    La coherencia de la descripción deja de comparar la de quien publica la web con la de la web. Una Organization describe al editor por definición de schema.org, y en una empresa con varias líneas de negocio no tiene por qué parecerse a la página: compararlas obligaba a poner una descripción falsa en una de las dos, o la empresa descrita como si fuera el producto, o al revés. Ahora se compara con la descripción de la entidad que dice qué ofrece la web —SoftwareApplication, Product, Service, Article y sus afines— y solo se recurre a la del editor cuando no hay ninguna, que es el caso de la web de una empresa sin producto, donde la descripción de la empresa sí es la de la página. El arreglo no es una amnistía: una descripción de producto que contradice a la página sigue suspendiendo, y también dos metadescripciones divergentes entre sí, que era el caso que la comprobación ya cazaba bien. Las puntuaciones anteriores no se recalculan.

  8. 0.8.0 · 2026-08-05

    Entra una comprobación nueva: si los encabezados están escritos como preguntas. Ya se comprobaba que debajo de cada encabezado hubiera una respuesta de 40 a 80 palabras que se sostuviera sola, pero no que el encabezado se pareciera a lo que alguien teclea. La unidad que un sistema de recuperación prefiere es el par completo —pregunta reconocible arriba, respuesta autocontenida debajo— y de ese par solo se medía la mitad. Se mide en la misma página interior que las respuestas directas, porque medirlas en páginas distintas describiría dos sitios y ningún par. Cuenta como pregunta la que lleva signo de interrogación y también la que empieza por un interrogativo acentuado, porque en español la tilde es justo lo que separa el interrogativo del relativo: cómo funciona pregunta, como director no. Los umbrales son de partida y se revisarán con la muestra de calibración. Las comprobaciones que puntúan pasan de 27 a 28. Las puntuaciones anteriores no se recalculan.

  9. 0.7.0 · 2026-08-04

    Los encabezados del pie de página, la navegación y las barras laterales dejan de contarse como contenido. Medir una muestra de webs reales enseñó que el 43 % de los encabezados vivía dentro de <footer> o <nav> —en HubSpot el 81 %, en Mailchimp el 53 %—, y todos entraban en el recuento. Un <h2>Servicios</h2> de pie no lleva un párrafo debajo porque no debe llevarlo, así que su presencia hacía suspender las respuestas directas a cualquier web con un pie normal: la comprobación la aprobaba el 5 %, y la causa no era cómo escribe la gente sino cómo contábamos nosotros. Afecta a las respuestas directas, la jerarquía de encabezados y la detección de preguntas frecuentes, y las tres ganan precisión. El H1 de la cabecera se sigue contando: muchas webs lo colocan ahí. Las puntuaciones anteriores no se recalculan.

  10. 0.6.0 · 2026-08-04

    Primera versión calibrada contra una muestra grande: 299 webs de España, Reino Unido, Estados Unidos y el resto de Europa, entre marcas, servicios y empresa mediana. Tres cambios salen de esos datos. Las dos comprobaciones de datos estructurados se fusionan en una: la de validez aprobaba al 95 % de quienes llegaban a ella y no se aplicaba al 26 % restante, porque el JSON-LD casi nunca se escribe a mano y lo que genera un plugin rara vez está roto; ahora una sola comprobación distingue no tenerlos, tenerlos rotos y tenerlos bien, con el mismo peso. Los párrafos que se sostienen fuera de contexto pasan a medirse en una página interior, como ya se hacía con las respuestas directas: en la portada no había tres párrafos de veinte palabras en 78 de las 215 webs medidas enteras, y sin ninguna página legible con contenido la comprobación ahora suspende en lugar de callarse. Y el sello descargable baja de 80 a 70 puntos: a 80 lo alcanzaban 6 de 215 webs, un sello que casi nadie puede poner en su web no circula. Las comprobaciones puntuables pasan de 28 a 27. Las puntuaciones anteriores no se recalculan.

  11. 0.5.0 · 2026-08-04

    Dos comprobaciones dejan de declararse incapaces cuando en realidad pueden decidir. No tener un bloque de preguntas frecuentes marcado como FAQPage pasa a SUSPENDER en lugar de quedar sin aplicar: es lo que más citan los modelos generativos, así que quien no lo tiene está peor preparado para que lo citen que quien sí, y repartir su peso entre las demás afirmaba lo contrario. Tener las preguntas a la vista sin marcarlas cumple a medias, porque eso se arregla en diez minutos y escribirlas de cero no. Y un sitio sin sitemap accesible pasa a suspender la comprobación de frescura en lugar de quedar sin concluir, incluido el caso del servidor que responde 200 con la portada en HTML ante /sitemap.xml, que es lo que hacen los frameworks de página única. Solo se mantiene el no concluyente cuando de verdad no se sabe qué hay: un fallo de red, o un servidor que existe y no deja mirar. En una muestra de 24 webs estas dos no puntuaban en el 67 % y el 42 % de los casos. El sufijo de borrador sale del identificador de versión y pasa al texto, traducido a cada idioma. Las puntuaciones anteriores no se recalculan.

  12. 0.4.0 · 2026-08-04

    Las respuestas directas se miden en una página interior de contenido, no en la portada. Una calibración sobre 24 webs reales encontró que las suspendían las 24, incluidas Stripe y Cloudflare: la portada de una web comercial es un escaparate y los párrafos que siguen a sus encabezados tienen entre cinco y diecisiete palabras, porque están escritos para que alguien los lea de un vistazo y no para que alguien los cite. Una comprobación que suspenden todos no distingue a nadie por muy cierta que sea. Ahora se elige una página interior a partir del sitemap o de los enlaces de la portada —siempre la misma para un mismo sitio, para que la nota sea reproducible— y se mide ahí; si el sitio no tiene ninguna página interior legible se vuelve a la portada, y el informe indica en cuál se ha medido. Las puntuaciones anteriores no se recalculan.

  13. 0.3.0 · 2026-08-03

    Las comprobaciones que dependen del robots.txt dejan de declararse incapaces cuando el fichero no existe. Que una web no tenga robots.txt no es desconocimiento, es un hecho del que se deducen cosas: si no hay fichero no se bloquea a nadie, así que la comprobación de bloqueo APRUEBA, y la de reglas declaradas SUSPENDE porque no hay ninguna. Antes las dos quedaban sin concluir junto con la informativa de entrenamiento, y esas tres empujaban solas a cualquier web sin robots.txt hacia el umbral de informe parcial, dejándola fuera de las estadísticas. Solo se mantiene el no concluyente cuando el fichero no se puede descargar, que ahí sí no se sabe qué hay. Las puntuaciones anteriores no se recalculan.

  14. 0.2.0 · 2026-08-03

    Se separan los rastreadores de IA en dos familias. Bloquear a los de entrenamiento (GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider) deja de penalizar: es una decisión legítima sobre el uso de tu obra y no impide que un modelo te cite. Solo penaliza bloquear a los de respuesta (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User), que son los que van a buscar la página al responder. Antes se contaban juntos, y eso suspendía como fallo crítico a quien aplicaba la política más defendible que existe hoy. Las puntuaciones anteriores no se recalculan.

  15. 0.1.0 · 2026-08-02

    Primera versión pública de la metodología. Los umbrales son provisionales y se congelarán en la versión 1.0, tras calibrarlos contra una muestra de 200 webs. Hasta entonces las puntuaciones pueden variar entre escaneos.

Metodología del Índice de Citabilidad — Primafonte