# Autoridad Digital — GEO

> Escáner GEO: analiza si una web es legible y citable por ChatGPT, Perplexity, Gemini y Claude.

- name: com.autoridaddigital.www/geo
- version: 1.2.1
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 70/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.autoridaddigital.www%2Fgeo
- tools: https://api.protogrid.dev/v1/servers/com.autoridaddigital.www%2Fgeo/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "geo": {
      "type": "http",
      "url": "https://www.autoridaddigital.com/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-23d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 70/100 (needs work)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 4 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: consultar_glosario (destructiveHint); buscar_articulos (destructiveHint); comparar_webs (destructiveHint); …
- pass `tools.token_cost`: about 2,590 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 10 tool changes in 30 days
- fail `stability.rug_pull`: 5 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 2,590 tokens to load them all
- tool set hash: cd90ab58809fe6d45f6bdecc4d800e9f
- tools last changed: 2026-10-18T20:08:48.310Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.autoridaddigital.www/geo.svg)](https://protogrid.dev/servers/com.autoridaddigital.www/geo)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `buscar_articulos` changed (description)
  - before: Busca por palabras clave en los 29 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
  - after: Busca por palabras clave en los 30 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
- 2026-10-03 `buscar_articulos` changed (description)
  - before: Busca por palabras clave en los 28 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
  - after: Busca por palabras clave en los 29 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
- 2026-10-01 `comparar_webs` changed (outputSchema)
- 2026-10-01 `escanear_geo` changed (description, outputSchema)
  - before: Diagnóstico técnico automático de UNA página para motores de IA (ChatGPT, Claude, Perplexity, Gemini, AI Overviews): revisa la página (título, metadatos, JSON-LD, texto extraíble) y, en la raíz de su dominio, robots.txt (bots de IA), llms.txt y sitemap. USAR CUANDO: preguntan si una web concreta es visible o legible para la IA, o si tiene bien su robots.txt, llms.txt, sitemap o datos estructurados. NO USAR PARA: varias webs (comparar_webs, en una llamada); explicar qué es llms.txt u otro concepto (consultar_glosario); posiciones en Google o tráfico; saber si la IA ya cita una marca (mide preparación, no citas); precio o alcance de la «Auditoría GEO» de pago (servicios_y_precios, servicio="auditoria-geo"). DEVUELVE: puntuación 0-100, nota A-D, puntuación por categoría y cada problema con su gravedad y, si la hay, su corrección. LÍMITES: 5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio. Tarda hasta 30 s. Caché de 24 h: una página ya analizada se devuelve sin gastar cupo ni volver a rastrearla, y no se puede forzar un análisis nuevo; si `desde_cache` es true y el usuario acaba de cambiar su web, avísale de que el resultado puede no reflejarlo. ERRORES (isError con el motivo): URL no válida, privada o con puerto distinto de 80/443 → corrige la URL; dominio que no resuelve → no reintentes; web que no contesta en 10 s → reintenta una vez como mucho; límite por minuto → espera 1 minuto; límite por dominio o diario → no reintentes y avisa al usuario. AVISO: no garantiza que la IA cite la web ni sustituye una auditoría completa.
  - after: Diagnóstico técnico automático de una página para motores de IA (ChatGPT, Claude, Perplexity, Gemini, AI Overviews): revisa la página (título, metadatos, indexación, JSON-LD, texto citable), en la raíz de su dominio robots.txt (15 rastreadores), llms.txt y sitemap, pide la página como GPTBot, ClaudeBot y PerplexityBot para detectar bloqueos del CDN, y revisa una muestra de hasta 4 páginas más del mismo sitio. USAR CUANDO: preguntan si una web concreta es visible o legible para la IA, o si tiene bien su robots.txt, llms.txt, sitemap o datos estructurados. NO USAR PARA: varias webs (comparar_webs, en una llamada); explicar qué es llms.txt u otro concepto (consultar_glosario); posiciones en Google o tráfico; saber si la IA ya cita una marca (mide preparación, no citas); precio o alcance de la «Auditoría GEO» de pago (servicios_y_precios, servicio="auditoria-geo"). DEVUELVE: puntuación 0-100, nota A-D, puntuación por categoría, las 3 correcciones prioritarias con la puntuación estimada tras aplicarlas, el resultado de la prueba de acceso real y cada problema con su gravedad y su corrección. Metodología: https://www.autoridaddigital.com/escaner-geo/metodologia LÍMITES: 5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio. Tarda hasta 45 s. Caché de 24 h: una página ya analizada se devuelve sin gastar cupo ni volver a rastrearla, y no se puede forzar un análisis nuevo; si `desde_cache` es true y el usuario acaba de cambiar su web, avísale de que el resultado puede no reflejarlo. ERRORES (isError con el motivo): URL no válida, privada o con puerto distinto de 80/443 → corrige la URL; dominio que no resuelve → no reintentes; web que no contesta en 10 s → reintenta una vez como mucho; límite por minuto → espera 1 minuto; límite por dominio o diario → no reintentes y avisa al usuario. AVISO: no garantiza que la IA cite la web ni sustituye una auditoría completa.
- 2026-09-29 `buscar_articulos` changed (description)
  - before: Busca por palabras clave en los 27 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
  - after: Busca por palabras clave en los 28 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
- 2026-09-28 `servicios_y_precios` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Catálogo de servicios de Autoridad Digital (agencia de SEO y GEO en España y LATAM): qué incluye cada servicio, para quién NO es, planes con precio mensual, permanencia mínima, IVA, preguntas frecuentes y cómo contactar. Datos canónicos, los mismos que muestra la web. Pasa `servicio` para el detalle de uno solo: agencia-geo-aio, seo-dominacion-nicho, founder-authority, pr-digital, authority-stacking, auditoria-geo, medicion-visibilidad-ia.
  - after: Catálogo oficial de Autoridad Digital (agencia de SEO y GEO en España y LATAM), con los mismos datos que publica la web: planes y precios por país, servicios y su modalidad, para quién no es cada uno y contacto. USAR CUANDO: preguntan qué ofrece la agencia, cuánto cuesta o si encaja con un caso. NO USAR PARA: definir conceptos (usa consultar_glosario), buscar contenido del blog (usa buscar_articulos) ni analizar una web (usa escanear_geo, gratuito). CÓMO LLAMARLA: sin parámetros, catálogo completo con las tarifas de todos los países; con `servicio`, además el detalle de uno (entregables y para quién no es, en los datos; KPIs y FAQ, solo en el texto); con `pais`, solo la tarifa de ese país. Se pueden combinar. Si vas a dar un precio y no sabes de dónde es quien pregunta, pregúntaselo y pasa su `pais`: citar la tarifa de otro país es un error. DEVUELVE: texto listo para citar y datos estructurados (`planes[]` con lo que incluyen y `precios[]` con importe publicado y valor numérico, `servicios[]` con su modalidad, `contacto`). AVISO: solo los planes tienen precio publicado; son mensuales, sin impuestos y no son un presupuesto cerrado. Los servicios no tienen precio propio: no les asignes el importe de un plan. Qué cubre cada plan está en `planes[].incluye`; para saber qué plan encaja con un servicio, o el precio de un encargo «proyecto» o «diagnóstico» (p. ej. auditoria-geo), remite al contacto que incluye la respuesta. ERRORES: un `pais` sin tarifa propia no es error: devuelve la tarifa general en euros. Un `servicio` fuera de la lista lo rechaza la validación. LÍMITES: ninguno; no hace peticiones externas.
- 2026-09-28 `buscar_articulos` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Busca en el blog de Autoridad Digital artículos sobre SEO avanzado, GEO, visibilidad en motores generativos, entity SEO, schema, llms.txt, citation decay, agentes de IA y casos reales con datos de Search Console. Devuelve título, fecha, extracto y URL.
  - after: Busca por palabras clave en los 27 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console. USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar. NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog. CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título. DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante. SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil. LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
- 2026-09-28 `consultar_glosario` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Definición de un término de SEO, GEO, AEO o visibilidad en IA según el glosario de Autoridad Digital (25 términos en español: GEO, E-E-A-T, llms.txt, RAG, entity SEO, topical authority, NavBoost, AI Overviews…). Si el término no existe devuelve la lista completa.
  - after: Devuelve la definición de un término de SEO, GEO o búsqueda con IA del glosario de Autoridad Digital (25 términos en español, cada uno con URL citable). USAR CUANDO: preguntan «qué es X» o necesitas definir un concepto: GEO, AEO, LLMO, E-E-A-T, llms.txt, RAG, NavBoost, AI Overviews, entity SEO… NO USAR PARA: guías, análisis o casos sobre un tema (usa buscar_articulos) ni términos ajenos al SEO y la IA. DEVUELVE: nombre, categoría, definición corta citable, definición ampliada, slugs de términos relacionados (se pueden pasar en `termino`) y URL de la ficha. Si la definición no basta, busca el mismo término con buscar_articulos. SI HAY VARIOS O NINGUNO: no es un error. Si el texto encaja con varios términos («authority») devuelve `encontrado: false` y `candidatos`: elige uno y vuelve a llamar con su slug. Si no encaja con ninguno devuelve `disponibles`, la lista completa, así que no hace falta otra llamada para descubrirla. LÍMITES: ninguno; no hace peticiones externas.
- 2026-09-28 `comparar_webs` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Escanea entre 2 y 4 dominios y los compara: puntuación, nota, bots de IA bloqueados, llms.txt y los problemas de cada uno. Sirve para situar una marca frente a su competencia en visibilidad ante motores generativos. Consume una unidad del límite de escaneos por cada dominio que no tenga un resultado reciente. Si un sitio tarda demasiado, se devuelve el resto y se indica cuál quedó sin analizar.
  - after: Compara de 2 a 4 webs en una llamada y las ordena por su preparación técnica para los motores de IA (la misma puntuación que escanear_geo), p. ej. una marca frente a sus competidores. No mide si la IA las cita de verdad. USAR CUANDO: piden situar una web frente a otras o saber cuál está mejor preparada. NO USAR PARA: una sola web (usa escanear_geo; aquí el mínimo son 2) ni más de 4 (divide en varias llamadas, ver LÍMITES). DEVUELVE: ranking por puntuación (0-100, nota, bots de IA bloqueados, llms.txt) y los problemas de cada web. El texto resume los problemas; las correcciones van en los datos estructurados (`resultados[].problemas[].solucion`). LÍMITES: comparte cupo con escanear_geo (5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio). Cada web sin resultado de las últimas 24 h gasta 1 escaneo aunque falle: 4 webs nuevas consumen 4 de los 5 del minuto, así que para más de 4 espera 1 minuto entre llamadas. Se analizan en el orden dado, una tras otra, con un tope total de 48 s: pon primero la web del usuario. Los duplicados se analizan una sola vez. ERRORES: una web que supera el cupo, falla o no da tiempo va a `fallidos` con su motivo y el resto se compara igual; isError solo si no se pudo analizar ninguna. Para reintentar una web de `fallidos`, usa escanear_geo solo con ella y sigue sus ERRORES.
- 2026-09-28 `escanear_geo` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Analiza si una web puede ser leída y citada por motores de IA (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews). Comprueba robots.txt y el acceso de los principales bots de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended…), llms.txt, sitemap, datos estructurados JSON-LD, metadatos y extractibilidad del contenido. Devuelve una puntuación 0-100 con hallazgos y correcciones. Solo URLs públicas; máximo 5 escaneos por minuto. Un resultado reciente de la misma página puede reutilizarse hasta 24 h.
  - after: Diagnóstico técnico automático de UNA página para motores de IA (ChatGPT, Claude, Perplexity, Gemini, AI Overviews): revisa la página (título, metadatos, JSON-LD, texto extraíble) y, en la raíz de su dominio, robots.txt (bots de IA), llms.txt y sitemap. USAR CUANDO: preguntan si una web concreta es visible o legible para la IA, o si tiene bien su robots.txt, llms.txt, sitemap o datos estructurados. NO USAR PARA: varias webs (comparar_webs, en una llamada); explicar qué es llms.txt u otro concepto (consultar_glosario); posiciones en Google o tráfico; saber si la IA ya cita una marca (mide preparación, no citas); precio o alcance de la «Auditoría GEO» de pago (servicios_y_precios, servicio="auditoria-geo"). DEVUELVE: puntuación 0-100, nota A-D, puntuación por categoría y cada problema con su gravedad y, si la hay, su corrección. LÍMITES: 5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio. Tarda hasta 30 s. Caché de 24 h: una página ya analizada se devuelve sin gastar cupo ni volver a rastrearla, y no se puede forzar un análisis nuevo; si `desde_cache` es true y el usuario acaba de cambiar su web, avísale de que el resultado puede no reflejarlo. ERRORES (isError con el motivo): URL no válida, privada o con puerto distinto de 80/443 → corrige la URL; dominio que no resuelve → no reintentes; web que no contesta en 10 s → reintenta una vez como mucho; límite por minuto → espera 1 minuto; límite por dominio o diario → no reintentes y avisa al usuario. AVISO: no garantiza que la IA cite la web ni sustituye una auditoría completa.

Full history: https://api.protogrid.dev/v1/servers/com.autoridaddigital.www%2Fgeo/changes

## Remotes

- https://www.autoridaddigital.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `buscar_articulos`: Busca por palabras clave en los 30 artículos del blog de Autoridad Digital (en español): SEO avanzado, GEO, llms.txt, schema, entity SEO, agentes de IA y casos reales con datos de Search Console.
USAR CUANDO: buscas una guía, un análisis o un caso que citar o enlazar.
NO USAR PARA: definiciones breves (usa consultar_glosario), precios o servicios (usa servicios_y_precios) ni búsquedas en internet: solo busca en este blog.
CÓMO BUSCA: en título, extracto, slug, términos del glosario y cuerpo de cada artículo. Basta con que contenga una de las palabras; salen antes los que contienen más, y a igualdad los que las tienen en el título.
DEVUELVE: título, fecha ISO 8601, extracto y URL de cada artículo, de más a menos relevante.
SIN RESULTADOS: no es un error; devuelve `total: 0` y la URL del índice del blog. Solo responde con isError si la búsqueda no tiene ninguna palabra útil.
LÍMITES: como máximo 10 resultados por llamada y sin paginación. Si `total` es igual a `limite`, puede haber más: sube `limite` (máx. 10) o cambia las palabras clave. No hace peticiones externas.
- `comparar_webs`: Compara de 2 a 4 webs en una llamada y las ordena por su preparación técnica para los motores de IA (la misma puntuación que escanear_geo), p. ej. una marca frente a sus competidores. No mide si la IA las cita de verdad.
USAR CUANDO: piden situar una web frente a otras o saber cuál está mejor preparada.
NO USAR PARA: una sola web (usa escanear_geo; aquí el mínimo son 2) ni más de 4 (divide en varias llamadas, ver LÍMITES).
DEVUELVE: ranking por puntuación (0-100, nota, bots de IA bloqueados, llms.txt) y los problemas de cada web. El texto resume los problemas; las correcciones van en los datos estructurados (`resultados[].problemas[].solucion`).
LÍMITES: comparte cupo con escanear_geo (5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio). Cada web sin resultado de las últimas 24 h gasta 1 escaneo aunque falle: 4 webs nuevas consumen 4 de los 5 del minuto, así que para más de 4 espera 1 minuto entre llamadas. Se analizan en el orden dado, una tras otra, con un tope total de 48 s: pon primero la web del usuario. Los duplicados se analizan una sola vez.
ERRORES: una web que supera el cupo, falla o no da tiempo va a `fallidos` con su motivo y el resto se compara igual; isError solo si no se pudo analizar ninguna. Para reintentar una web de `fallidos`, usa escanear_geo solo con ella y sigue sus ERRORES.
- `consultar_glosario`: Devuelve la definición de un término de SEO, GEO o búsqueda con IA del glosario de Autoridad Digital (25 términos en español, cada uno con URL citable).
USAR CUANDO: preguntan «qué es X» o necesitas definir un concepto: GEO, AEO, LLMO, E-E-A-T, llms.txt, RAG, NavBoost, AI Overviews, entity SEO…
NO USAR PARA: guías, análisis o casos sobre un tema (usa buscar_articulos) ni términos ajenos al SEO y la IA.
DEVUELVE: nombre, categoría, definición corta citable, definición ampliada, slugs de términos relacionados (se pueden pasar en `termino`) y URL de la ficha. Si la definición no basta, busca el mismo término con buscar_articulos.
SI HAY VARIOS O NINGUNO: no es un error. Si el texto encaja con varios términos («authority») devuelve `encontrado: false` y `candidatos`: elige uno y vuelve a llamar con su slug. Si no encaja con ninguno devuelve `disponibles`, la lista completa, así que no hace falta otra llamada para descubrirla.
LÍMITES: ninguno; no hace peticiones externas.
- `escanear_geo`: Diagnóstico técnico automático de una página para motores de IA (ChatGPT, Claude, Perplexity, Gemini, AI Overviews): revisa la página (título, metadatos, indexación, JSON-LD, texto citable), en la raíz de su dominio robots.txt (15 rastreadores), llms.txt y sitemap, pide la página como GPTBot, ClaudeBot y PerplexityBot para detectar bloqueos del CDN, y revisa una muestra de hasta 4 páginas más del mismo sitio.
USAR CUANDO: preguntan si una web concreta es visible o legible para la IA, o si tiene bien su robots.txt, llms.txt, sitemap o datos estructurados.
NO USAR PARA: varias webs (comparar_webs, en una llamada); explicar qué es llms.txt u otro concepto (consultar_glosario); posiciones en Google o tráfico; saber si la IA ya cita una marca (mide preparación, no citas); precio o alcance de la «Auditoría GEO» de pago (servicios_y_precios, servicio="auditoria-geo").
DEVUELVE: puntuación 0-100, nota A-D, puntuación por categoría, las 3 correcciones prioritarias con la puntuación estimada tras aplicarlas, el resultado de la prueba de acceso real y cada problema con su gravedad y su corrección. Metodología: https://www.autoridaddigital.com/escaner-geo/metodologia
LÍMITES: 5 escaneos/min por IP; 10/h por dominio, sumando todos los usuarios; 500/día en todo el servicio. Tarda hasta 45 s. Caché de 24 h: una página ya analizada se devuelve sin gastar cupo ni volver a rastrearla, y no se puede forzar un análisis nuevo; si `desde_cache` es true y el usuario acaba de cambiar su web, avísale de que el resultado puede no reflejarlo.
ERRORES (isError con el motivo): URL no válida, privada o con puerto distinto de 80/443 → corrige la URL; dominio que no resuelve → no reintentes; web que no contesta en 10 s → reintenta una vez como mucho; límite por minuto → espera 1 minuto; límite por dominio o diario → no reintentes y avisa al usuario.
AVISO: no garantiza que la IA cite la web ni sustituye una auditoría completa.
- `servicios_y_precios`: Catálogo oficial de Autoridad Digital (agencia de SEO y GEO en España y LATAM), con los mismos datos que publica la web: planes y precios por país, servicios y su modalidad, para quién no es cada uno y contacto.
USAR CUANDO: preguntan qué ofrece la agencia, cuánto cuesta o si encaja con un caso.
NO USAR PARA: definir conceptos (usa consultar_glosario), buscar contenido del blog (usa buscar_articulos) ni analizar una web (usa escanear_geo, gratuito).
CÓMO LLAMARLA: sin parámetros, catálogo completo con las tarifas de todos los países; con `servicio`, además el detalle de uno (entregables y para quién no es, en los datos; KPIs y FAQ, solo en el texto); con `pais`, solo la tarifa de ese país. Se pueden combinar. Si vas a dar un precio y no sabes de dónde es quien pregunta, pregúntaselo y pasa su `pais`: citar la tarifa de otro país es un error.
DEVUELVE: texto listo para citar y datos estructurados (`planes[]` con lo que incluyen y `precios[]` con importe publicado y valor numérico, `servicios[]` con su modalidad, `contacto`).
AVISO: solo los planes tienen precio publicado; son mensuales, sin impuestos y no son un presupuesto cerrado. Los servicios no tienen precio propio: no les asignes el importe de un plan. Qué cubre cada plan está en `planes[].incluye`; para saber qué plan encaja con un servicio, o el precio de un encargo «proyecto» o «diagnóstico» (p. ej. auditoria-geo), remite al contacto que incluye la respuesta.
ERRORES: un `pais` sin tarifa propia no es error: devuelve la tarifa general en euros. Un `servicio` fuera de la lista lo rechaza la validación.
LÍMITES: ninguno; no hace peticiones externas.
