Metodología
Cada comprobación, y por qué vale lo que vale
Una puntuación que no puede auditar es una cifra que alguien se inventó. Esta página se genera directamente a partir del conjunto de reglas que se ejecuta contra su sitio, de modo que documentación y comportamiento no pueden separarse.
La forma que tiene
23 comprobaciones, 100 puntos, cinco pilares, dos ejes. Cada comprobación devuelve correcto, parcial o incorrecto, y vale puntos completos, la mitad o ninguno. Las comprobaciones que no se aplican a su sitio se excluyen en lugar de contar en su contra: eso reduce el denominador en vez de penalizarle por una categoría en la que ni siquiera está.
Por qué una cifra se parte de inmediato en dos
Una puntuación única esconde justo lo que usted necesita saber. «El sitio funciona pero no ha adoptado nada» y «las herramientas están registradas pero sin JavaScript la página está vacía» son problemas opuestos con soluciones opuestas — y una sola cifra informa de ambos de forma idéntica. Por eso la puntuación aparece junto a sus dos mitades.
| Eje | Puntos | Pregunta | Pilares |
|---|---|---|---|
| Aptitud | 65 | ¿Funciona el sitio hoy para agentes? | Acceso para agentes · Legibilidad para máquinas · Capacidad de acción |
| Adoption | 35 | ¿Qué protocolos de agente están implantados? | Implementación de WebMCP · Interoperabilidad y comercio |
WebMCP es el tema de este sitio y sigue siendo el pilar individual más grande. No es toda la puntuación, porque la adopción fuera de las demostraciones sigue cercana a cero: una puntuación que midiera solo WebMCP daría un cero a casi todos los sitios de la web — cierto, inútil, y sin decirle a nadie qué hacer el lunes. Los otros 75 puntos miden si un agente puede hacer algo con usted mientras tanto.
Notas
| Nota | Puntuación | Significado |
|---|---|---|
| A | 90–100 | Los agentes completan tareas de forma fiable |
| B | 75–89 | Utilizable, con fricción |
| C | 55–74 | Legible, pero no operable |
| D | 35–54 | Los agentes fallan en los caminos que importan |
| F | 0–34 | Prácticamente inservible para agentes |
Puntuación condicional
Un bufete sin carrito no es peor para agentes por no tener una vía de pago. Cuando una comprobación no se aplica, se retira del denominador y aparece en su informe de forma abierta y con su motivo. Pueden excluirse: las vías de pago (sin señales de comercio), la autenticación para agentes (sin capacidad orientada a máquinas que deba autenticarse), las comprobaciones de formulario y de errores (sin formulario entregado) y las anotaciones declarativas (sin formularios que anotar).
Lo contrario es igual de deliberado: si un sitio no ha registrado herramientas WebMCP, las cuatro comprobaciones que dependen de ello fallan en lugar de excluirse. Una adopción de cero es una afirmación cierta sobre el sitio, no una pregunta inaplicable — y la presentación en dos ejes es lo que evita que se lea como un veredicto sobre el sitio entero.
Lo que el análisis no puede ver
Decir esto con claridad importa más que la propia puntuación.
- Una página, no un rastreo. Recuperamos la dirección que usted indica, más robots.txt, el sitemap, llms.txt y una serie de rutas conocidas. Un problema en su proceso de pago no aparecerá al analizar su portada.
- Sin JavaScript. Es deliberado — así se comportan la mayoría de los rastreadores de agentes — pero significa que una herramienta registrada en tiempo de ejecución por un bundle que no pudimos leer puede pasarse por alto. Revisamos hasta diez bundles del mismo origen para reducirlo.
- Sin invocación real de herramientas. Leemos lo que está registrado; no lo invocamos. Una herramienta que existe y falla al llamarla puntúa igual que una que funciona.
- Sin vista autenticada. Las herramientas condicionales que solo aparecen tras iniciar sesión nos resultan invisibles.
- Detección, no juicio. Vemos que existe una descripción. Si es una buena descripción sigue teniendo que decidirlo una persona.
Las 23 comprobaciones
Cada comprobación, en el orden en que se puntúa, con los puntos que aporta y la pregunta exacta que plantea.
Acceso para agentes
20 puntosEje AptitudAntes de poder juzgar cualquier otra cosa, la petición tiene que salir bien. Este pilar cubre los permisos de rastreo, la defensa contra bots, los muros de consentimiento y si la página entrega su contenido sin un motor de JavaScript.
robots.txt deja entrar a los rastreadores de IA
5 pts¿Permite robots.txt que los rastreadores detrás de las respuestas de IA lean la página?
Los asistentes que citan la web recuperan contenido a través de agentes con nombre propio. Una regla general escrita hace años para buscadores puede excluirlos a todos en silencio, y nada en sus analíticas se lo dirá.
Si fallaPublique un robots.txt que nombre los agentes de IA que quiere y permita las rutas que quiere que se citen. Bloquear es una decisión legítima — pero que sea una decisión, no un descuido.
Artículo completo (en inglés): robots.txt for AI agentsOpenAI — GPTBotGoogle — Google-ExtendedRFC 9309 — Robots Exclusion Protocol
Las identificaciones de agente se atienden de verdad
5 pts¿Responde el servidor cuando la petición lleva la identificación de un agente?
robots.txt es una petición; la defensa contra bots es la ejecución. Una regla del WAF o un limitador de tasa puede devolver 403 justo a los clientes que usted quería recibir, y entonces el permiso que escribió no vale nada.
Si fallaIncluya las identificaciones de agente en la lista de permitidos de su defensa contra bots, o verifíquelas por DNS inverso en lugar de bloquear por la cadena de texto. Después, vuelva a comprobarlo.
Ninguna barrera delante del contenido
4 pts¿Llega el contenido sin que se interponga un muro de consentimiento o una prueba anti-bot?
Un agente no tiene manos. Una ventana que no puede cerrar, o una página de verificación que no puede resolver, termina la sesión en la primera petición — y la página que hay detrás bien podría no existir.
Si fallaEntregue el contenido en la primera respuesta y deje que la capa de consentimiento aparezca encima. Nunca ponga el documento mismo detrás de una verificación para un rastreador que se comporta bien.
El contenido sobrevive sin JavaScript
6 pts¿Hay texto real y un encabezado en el HTML en bruto, antes de que se ejecute ningún script?
Este es, con diferencia, el fallo más común en la web agéntica. La mayoría de los rastreadores detrás de las respuestas de IA no ejecutan JavaScript, y un agente que recibe una cáscara vacía no tiene nada sobre lo que razonar — por muy bien que se vea la página en un navegador.
Si fallaRenderice la página en el servidor o pregenérela en la compilación. El objetivo es un <h1> real y varios cientos de palabras del contenido verdadero en la primera respuesta.
Artículo completo (en inglés): Content that survives without JavaScriptweb.dev — rendering on the web
Legibilidad para máquinas
20 puntosEje AptitudEstructura semántica, datos estructurados, negociación de contenido y los ficheros que los agentes buscan cuando quieren un resumen de su sitio en lugar de una representación de él.
Puntos de referencia semánticos y orden de encabezados
4 pts¿Hay landmarks y una jerarquía de encabezados que no se salte niveles?
Los landmarks y el orden de encabezados son la única forma que tiene una máquina de separar el artículo del mobiliario. Sin ellos, un resumidor cita su aviso de cookies con la misma confianza que la descripción de su producto.
Si fallaEnvuelva el contenido en <main>, use <header>, <nav> y <footer> para el marco, mantenga exactamente un <h1>, y nunca salte de h2 a h4.
Datos estructurados válidos
6 pts¿Hay JSON-LD analizable, y su tipo corresponde a lo que la página es?
Los datos estructurados son el único sitio donde usted afirma hechos en lugar de insinuarlos: esto es un precio, esto es un horario, este es el autor. Agentes y buscadores los dan por buenos, y justo por eso tienen que analizarse sin errores.
Si fallaEmita JSON-LD en un bloque <script type="application/ld+json"> con un tipo que corresponda a la página: Product y Offer para un producto, Service para una página de servicio, FAQPage para preguntas, LocalBusiness para una ubicación.
Artículo completo (en inglés): Structured data: the one place you state factsschema.orgGoogle — structured data general guidelines
Negociación de contenido en Markdown
4 pts¿Devuelve la página Markdown cuando un cliente lo pide?
Un agente que quiere su texto no quiere su maquetación. Responder a `Accept: text/markdown` con prosa limpia reduce tokens, elimina el ruido de navegación y deja sin ambigüedad qué parte de la página es citable.
Si fallaSirva una representación en Markdown para la misma URL, varíe según el encabezado Accept y manténgala sincronizada con el HTML. Una ruta hermana .md es un segundo puesto aceptable.
Fichero llms.txt
3 pts¿Hay un fichero curado que diga a un agente qué es este sitio y dónde mirar?
Un rastreo le da a un agente todo; llms.txt le da la parte que usted mismo señalaría. Cuesta poco publicarlo y es el único sitio donde usted controla el resumen en lugar de confiar en que se deduzca uno.
Si fallaPublique /llms.txt con un párrafo de descripción y debajo listas enlazadas de sus páginas canónicas, agrupadas por propósito. Tenga en cuenta que es una convención, no un estándar, y que la Búsqueda de Google la ignora.
Artículo completo (en inglés): llms.txt: what it is, and what it is notllmstxt.org
Sitemap y URL canónica
3 pts¿Hay un sitemap válido, y declara la página cuál es su dirección real?
Los agentes deduplican por URL canónica. Sin ella, la misma página alcanzada por tres rutas se convierte en tres fuentes que pueden contradecirse, y una cita puede apuntar a la copia que usted no quería indexada.
Si fallaPublique un sitemap.xml válido, refiéralo desde robots.txt, y ponga un <link rel="canonical"> autorreferencial en cada página.
Capacidad de acción
25 puntosEje AptitudEl pilar más pesado, porque aquí es donde está el ingreso. Formularios que un agente pueda rellenar, controles que pueda nombrar, ninguna barrera anti-bot en el camino hacia la conversión, y errores que pueda leer.
Hay una acción principal localizable
5 pts¿Hay algo en esta página que un agente pudiera completar en nombre del visitante?
La aptitud para agentes no es un ejercicio de lectura. Si la página no lleva formulario, ni búsqueda, ni ruta hacia un carrito o una reserva, no hay nada que terminar — y la visita acaba en resumen en lugar de en conversión.
Si fallaHaga que la acción principal forme parte del HTML entregado: un formulario real, un campo de búsqueda, o un enlace a la ruta de reserva o de carrito. Un botón que solo existe tras la hidratación no cuenta.
Formularios que un agente puede rellenar
7 pts¿Llevan los campos etiquetas, nombres, tipos e indicaciones de autocompletado?
Un agente rellena un formulario leyéndolo. Un campo sin etiqueta y con un nombre como `field_7` es una conjetura; el mismo campo con etiqueta y `autocomplete="email"` es una certeza. Esta es la mejora grande más barata que puede hacer la mayoría de los sitios.
Si fallaDé a cada campo un <label for>, un nombre con sentido, el tipo de input correcto y una indicación de autocompletado del estándar HTML.
Condicional — se excluye cuando no se aplica
Artículo completo (en inglés): Forms an agent can actually fillHTML standard — autofill tokens
Los controles tienen nombres accesibles
5 pts¿Se puede identificar cada control interactivo por su nombre en lugar de por su posición?
Un <div> con un manejador de clic es invisible para todo lo que no renderiza ni pasa el ratón por encima. Los agentes se dirigen a los controles igual que la tecnología asistiva — por rol y nombre — así que un control sin nombre es un control inalcanzable.
Si fallaUse <button> y <a href> para las acciones, y dé a cada uno texto o un aria-label. Reserve el div con onclick para la decoración.
Condicional — se excluye cuando no se aplica
Sin prueba anti-bot en el camino a la conversión
5 pts¿Está la acción principal libre de CAPTCHA o de verificación anti-bot?
Un CAPTCHA es la declaración de que los visitantes automatizados no son bienvenidos. Era una postura razonable cuando automatización significaba scrapers; sale cara cuando significa el asistente de su cliente intentando comprar algo.
Si fallaSaque la defensa anti-bot del camino a la conversión: limitación de tasa, campos trampa y puntuación en el servidor mantienen fuera el abuso sin terminar la sesión de un agente legítimo. Si una verificación es inevitable, manténgala fuera del primer paso.
Errores que un agente puede leer
3 pts¿Se expresan los estados de validación en el marcado y no solo mediante color?
Cuando falla un envío, un agente necesita saber qué campo y por qué. Un borde rojo no comunica nada; aria-invalid y un mensaje enlazado por described-by le permiten corregir la entrada y volver a intentarlo en lugar de abandonar la tarea.
Si fallaPonga aria-invalid en el campo que falla, enlace el mensaje con aria-describedby, y mantenga el texto junto al campo en lugar de solo en un aviso emergente.
Condicional — se excluye cuando no se aplica
Implementación de WebMCP
25 puntosEje AdopciónEl núcleo del estándar: herramientas con nombre, esquemas tipados y anotaciones honestas, registradas en document.modelContext — para que un agente deje de adivinar su DOM y empiece a llamar a sus funciones.
Se usa document.modelContext
6 pts¿Registra la página herramientas WebMCP siquiera?
Esta es la diferencia entre un agente que deduce su interfaz y uno que la invoca. Las herramientas registradas convierten una página en una API pequeña y documentada que el propio asistente del visitante puede operar — sin que usted aloje un servidor ni reparta claves.
Si fallaRegistre sus dos o tres acciones más valiosas como herramientas con document.modelContext.registerTool. Empiece por las de solo lectura. El polyfill le permite publicar antes de que el soporte del navegador sea universal.
Artículo completo (en inglés): What WebMCP is, and what it is notWebMCP specification (W3C WebML CG)Explainer repositoryChrome for Developers — WebMCP
Herramientas declarativas en los formularios
4 pts¿Están anotados los formularios existentes para que el navegador pueda derivar herramientas de ellos?
El formulario declarativo es la entrada más barata al estándar: el navegador deriva el esquema de campos que usted ya tiene, de modo que un formulario de contacto o de búsqueda pasa a ser invocable sin JavaScript nuevo.
Si fallaAnote los formularios que ya publica. Como los nombres de atributo siguen marcados como TODO en el explainer, contrástelos con la especificación vigente antes de desplegarlo ampliamente.
Condicional — se excluye cuando no se aplica
Artículo completo (en inglés): The declarative API: tools from forms you already haveExplainer — declarative API
Nombres y descripciones de las herramientas
5 pts¿Están las herramientas nombradas de forma válida y descritas lo bastante bien como para elegir entre ellas?
La descripción es toda la interfaz. Un agente elige una herramienta leyéndola, así que un nombre fuera del conjunto de caracteres permitido falla al registrarse, y una descripción de cuatro palabras produce llamadas seguras a la función equivocada.
Si fallaMantenga los nombres entre 1 y 128 caracteres de A–Z, a–z, 0–9, guion bajo, guion y punto. Escriba descripciones que digan qué devuelve la herramienta y cuándo preferirla. Quédese bien por debajo de cincuenta herramientas por página.
Esquemas de entrada tipados
5 pts¿Declara cada herramienta un JSON Schema tipado con propiedades descritas?
Sin esquema, un agente envía lo que se haya inventado. Con esquema envía un objeto validado — y un campo obligatorio con una línea de descripción es la diferencia entre una llamada que funciona y tres reintentos.
Si fallaDé a cada herramienta un inputSchema con propiedades tipadas, una descripción por propiedad y una lista required explícita.
Anotaciones honestas en las herramientas
5 pts¿Están marcadas como solo lectura las que solo leen, y protegido tras confirmación lo que modifica?
Las anotaciones son la forma en que un agente decide qué puede hacer sin preguntar. Marcar sus rutas de lectura con readOnlyHint es lo que las hace seguras de invocar libremente — y el propio modelo de amenazas de la especificación es la razón de que todo lo que escribe deba detenerse ante una persona.
Si fallaPonga readOnlyHint en toda herramienta que solo lea. Ponga untrustedContentHint donde una herramienta devuelva texto escrito por otros usuarios. Coloque un paso de confirmación delante de todo lo que gaste dinero o cambie el estado.
Artículo completo (en inglés): The WebMCP security model, and the parts that are still openSpecification — tool annotations
Interoperabilidad y comercio
10 puntosEje AdopciónDocumentos de descubrimiento, autenticación para máquinas, identidad de bots y — en tiendas — las vías de pago que un agente necesita para completar una compra. Lo que no se aplica a su sitio se excluye en lugar de contar en su contra.
Documentos de descubrimiento
3 pts¿Puede otro sistema encontrar sus capacidades sin que una persona lea su documentación?
Las herramientas WebMCP solo existen mientras una página está abierta. Un documento de descubrimiento es la forma en que un agente sabe qué ofrece usted antes de visitarle — y la forma en que sus capacidades aparecen en un directorio en lugar de encontrarse por casualidad.
Si fallaPublique una tarjeta de servidor en /.well-known/mcp.json, o un documento OpenAPI, y asegúrese de que robots.txt no bloquea la ruta a la que apunta.
Artículo completo (en inglés): Discovery documents, and the robots.txt trapModel Context ProtocolRFC 9727 — API Catalog
Autenticación para agentes
2 pts¿Hay una forma documentada de que un agente se autentique?
Dentro de la página, la sesión del navegador ya lleva el inicio de sesión, y esa es la ventaja silenciosa de WebMCP. Todo lo que queda fuera de la página sigue necesitando un camino declarado — de lo contrario los integradores adivinan, y adivinar significa credenciales en sitios que usted no había previsto.
Si fallaPublique metadatos de descubrimiento OAuth, o un auth.md que describa cómo obtienen acceso los clientes automatizados.
Condicional — se excluye cuando no se aplica
RFC 8414 — OAuth authorization server metadataRFC 9728 — OAuth protected resource metadata
Vías de pago para agentes
3 pts¿Puede un agente completar una compra sin una persona ante el teclado?
Una tienda que un agente puede recorrer pero no pagar se detiene a un paso del objetivo. Las vías son jóvenes y elegir una es una decisión real, pero las tiendas que se adelanten serán aquellas en las que los agentes puedan comprar de verdad.
Si fallaEvalúe x402, el Agentic Commerce Protocol y el Universal Commerce Protocol frente a su proveedor de pagos, y publique después el documento de descubrimiento de la vía que adopte.
Condicional — se excluye cuando no se aplica
Identidad de bots y señales de uso
2 pts¿Puede distinguir un agente legítimo de un impostor, y ha declarado sus condiciones?
En cuanto los agentes hacen transacciones, las cadenas de identificación dejan de bastar: cualquiera puede afirmar ser uno. Las peticiones firmadas le permiten recibir a los auténticos, y las señales de contenido le permiten declarar para qué puede usarse su texto sin bloquearlo del todo.
Si fallaPublique un directorio de firmas conforme a Web Bot Auth, y exprese las condiciones de uso con señales de contenido en robots.txt en lugar de con un disallow general.
Ejecútelo contra su propio sitio
Cada hallazgo muestra la cabecera, el recuento o la ruta en que se basa — para que pueda verificarlo en lugar de creerlo.
Analizar un sitio →