Проверенный сертификат AgentReady.md
Выдан sig: 8ef04bae197289f7 Проверить →

Проанализированный URL

https://password.es/

Измерено 3 дня назад

Анализировать другой URL

Оценка AI-Ready

Хорошо

из 100

Экономия токенов

HTML-токены 13.296
Markdown-токены 373
Экономия 97%

Разбивка оценки

Доступность 100/100
Обнаруживаемость ИИ 60/100
Структурированные данные 65/100
Семантический HTML 100/100
Эффективность контента 70/100

Новые протоколы

Обнаружено 0 из 6

Well-known эндпоинты, которые ищут ИИ-агенты. Обнаружено — значит агент может автоматически найти и подключиться к вашему сервису.

  • OAuth Protected Resource RFC 9728
    /.well-known/oauth-protected-resource
  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card SEP-1649 draft
    /.well-known/mcp/server-card.json
  • A2A Agent Card A2A v1.0
    /.well-known/agent-card.json
  • API Catalog RFC 9727
    /.well-known/api-catalog
  • Agent Skills index Discovery RFC v0.2.0 draft
    /.well-known/agent-skills/index.json

Само это не удержится. Мониторинга пока нет — запишитесь, и мы сообщим, когда он появится.

Вы в списке! Мы уведомим вас о запуске.

Что мы измерили No JSON-LD / Schema.org found

Структурированные данные Schema.org не найдены. JSON-LD помогает ИИ-агентам извлекать фактическую, структурированную информацию из ваших страниц.

Как внедрить

Добавьте блок <script type="application/ld+json"> с разметкой Schema.org. Используйте подходящие типы: Article для статей блога, Product для страниц товаров, Organization для страницы компании.

Вставьте в кодового агента, чтобы он внёс исправление

Что мы измерили No Markdown for Agents support detected

Ваш сайт не поддерживает Markdown for Agents. Этот стандарт Cloudflare позволяет ИИ-агентам запрашивать контент в формате markdown, сокращая использование токенов на ~80%.

Как внедрить

Реализуйте одно или несколько: (1) Отвечать на Accept: text/markdown контентом в формате markdown. (2) Обслуживать URL с .md (например, /page.md). (3) Добавить теги <link rel="alternate" type="text/markdown">. (4) Добавить HTTP-заголовки Link для обнаружения markdown.

Вставьте в кодового агента, чтобы он внёс исправление

Что мы измерили Content ratio: 4.0% (1780 content chars / 44357 HTML bytes)

На вашей странице низкое соотношение фактического контента к общему HTML. Большая часть веса страницы приходится на разметку, скрипты или стили, а не на контент.

Как внедрить

Перенесите CSS во внешние таблицы стилей, удалите inline-стили, минимизируйте JavaScript и убедитесь, что HTML сфокусирован на структуре контента.

Вставьте в кодового агента, чтобы он внёс исправление

Что мы измерили No llms.txt found

На вашем сайте нет файла llms.txt. Это формирующийся стандарт для помощи ИИ-агентам в понимании структуры вашего сайта.

Как внедрить

Создайте файл /llms.txt в соответствии со спецификацией llmstxt.org. Включите описание сайта и ссылки на ваши ключевые страницы.

Вставьте в кодового агента, чтобы он внёс исправление

Что мы измерили No Content-Signal found (robots.txt or HTTP headers)

Директивы Content-Signal не найдены. Они сообщают ИИ-агентам, как можно использовать ваш контент (поисковая индексация, ИИ-ввод, данные для обучения). Рекомендуемое расположение — robots.txt.

Как внедрить

Добавьте Content-Signal в ваш robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Также можно добавить как HTTP-заголовок в markdown-ответах.

Вставьте в кодового агента, чтобы он внёс исправление
Markdown-токены: 373
## Genera contraseñas seguras al instante

Crea contraseñas fuertes, aleatorias y personalizables. Todo se genera en tu navegador, sin enviar datos a ningún servidor.

Longitud

16

Cuanto más larga es una contraseña, más segura se vuelve. Recomendamos un mínimo de 12 caracteres para servicios críticos.

0 peticiones de red para generar una contraseña. Todo ocurre en tu navegador con `crypto.getRandomValues()`.

— ha tardado en generarse la contraseña de arriba, medido en tu propio dispositivo.

4–64 caracteres, y cuatro alfabetos que activas por separado. Tú eliges la forma.

## Cómo aprovechar el generador de contraseñas

1.  ### Personaliza

    Rellena las opciones avanzadas para indicar qué caracteres quieres incluir y la longitud deseada. La cifra de entropía se recalcula mientras lo haces.

2.  ### Genera

    Pulsa en Generar nueva contraseña y obtendrás una clave única. Activa JavaScript en tu navegador para que el generador funcione.

3.  ### Copia y guarda

    Copia la contraseña al portapapeles y guárdala en el gestor de tu preferencia.

Puedes comprobar tu contraseña y medir su fortaleza con el [comprobador de contraseñas](https://password.es/comprobador/). Protege tus accesos online utilizando contraseñas diferentes en cada servicio, habilitando la verificación en dos pasos siempre que sea posible y almacenando las claves en un gestor seguro.

## Descubre cómo hacerlo todavía mejor

## Sube el listón de la seguridad
password.es · Generador de contraseñas seguras online

[password.es](https://password.es/)

Español

Modo claro

# Genera contraseñas seguras al instante

Crea contraseñas fuertes, aleatorias y personalizables. Todo se genera en tu navegador, sin enviar datos a ningún servidor.

Longitud

16

416324864

Cuanto más larga es una contraseña, más segura se vuelve. Recomendamos un mínimo de 12 caracteres para servicios críticos.

Tipos de caracteres

 a–zMinúsculas A–ZMayúsculas  0–9Números  !@#$%&\*Símbolos

Más opciones

 l I 1 O 0Excluir ambiguos aa → abSin dos iguales seguidos

Generar nueva contraseña

0 bits

de entropía. Es la medida de cuánto tendría que adivinar alguien que no sabe nada de tu contraseña.

••••• Media

Alfabeto

0

símbolos

Longitud

0

caracteres

Combinaciones

0

posibles

Fuerza bruta

0

años

La fuerza bruta se estima a **1012 intentos por segundo**, el orden de magnitud de un ataque *offline* contra un hash rápido, y asume que el atacante conoce tu alfabeto y tu longitud. Contra un hash lento — `bcrypt`, `Argon2` — la cifra sube muchos órdenes de magnitud.

0 peticiones de red para generar una contraseña. Todo ocurre en tu navegador con `crypto.getRandomValues()`.

— ha tardado en generarse la contraseña de arriba, medido en tu propio dispositivo.

4–64 caracteres, y cuatro alfabetos que activas por separado. Tú eliges la forma.

## Cómo aprovechar el generador de contraseñas

1.  01

    ### Personaliza

    Rellena las opciones avanzadas para indicar qué caracteres quieres incluir y la longitud deseada. La cifra de entropía se recalcula mientras lo haces.

2.  02

    ### Genera

    Pulsa en Generar nueva contraseña y obtendrás una clave única. Activa JavaScript en tu navegador para que el generador funcione.

3.  03

    ### Copia y guarda

    Copia la contraseña al portapapeles y guárdala en el gestor de tu preferencia.

Puedes comprobar tu contraseña y medir su fortaleza con el [comprobador de contraseñas](https://password.es/comprobador/). Protege tus accesos online utilizando contraseñas diferentes en cada servicio, habilitando la verificación en dos pasos siempre que sea posible y almacenando las claves en un gestor seguro.

[Comprueba la fortaleza de tu contraseña Analiza la seguridad de cualquier contraseña al instante →](https://password.es/comprobador/) [Protege tu navegación con un VPN Cifra tu conexión y navega de forma anónima ↗](https://go.nordvpn.net/aff_c?offer_id=15&aff_id=36296&url_id=3115) [Analiza tu velocidad de conexión Mide la velocidad real de tu acceso a Internet ↗](https://pruebavelocidad.com/) [Crea códigos QR gratuitos Genera códigos QR para enlaces, textos y más ↗](https://face.co/qrcode/)

## Descubre cómo hacerlo todavía mejor

[Comprobador de seguridad Te decimos qué tan fuerte es tu contraseña y qué trucos básicos debes aplicar para mejorarla al instante. →](https://password.es/comprobador/) [Educación Consejos para crear contraseñas seguras. Descubre buenas prácticas para proteger tus cuentas y por qué el generador es tu mejor aliado. →](https://password.es/educacion/) [Comparativas Diferencias entre 1Password, Bitwarden, LastPass y otros gestores de contraseñas: conoce qué aporta un gestor dedicado frente a las soluciones del navegador. →](https://password.es/comparativa/) [FAQ ¿Cómo funciona el generador de contraseñas aleatorias? ¿Qué hace que una contraseña sea segura y cómo consigue la herramienta crear una combinación única cada vez? →](https://password.es/faq/)

## Sube el listón de la seguridad

[Seguridad de conocimiento cero Nadie tiene acceso a tu información, ni tan siquiera nosotros: no guardamos contraseñas generadas. Si usas un gestor, asegúrate de que cuente con cifrado seguro. →](https://password.es/seguridad/) [Amenazas digitales bajo control Un buen gestor de contraseñas te avisa inmediatamente en caso de exposición de tus datos online gracias a la función de supervisión de robos de datos. →](https://password.es/amenazas-digitales/) [Hábitos más seguros Un buen gestor de contraseñas te ayuda a detectar y actualizar contraseñas poco seguras y reutilizadas con nuestro generador de contraseñas. →](https://password.es/habitos-seguros/) [Autenticación multifactor Introduce un mecanismo de autenticación adicional, como un código de un solo uso o la huella dactilar, para proteger tu cuenta de los hackers. →](https://password.es/2fa/)

Загрузите этот файл как /index.md на ваш сервер, чтобы ИИ-агенты могли получить доступ к чистой версии вашей страницы. Вы также можете настроить согласование контента Accept: text/markdown для автоматической отдачи.

Сгенерированный llms.txt для этой отдельной страницы

Скачать llms.txt
# password.es

> password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.

## Documentation
- [FAQ](https://password.es/faq/)

## Main
- [Genera contraseñas seguras online de forma automática y gratuita](https://password.es/): password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu c…
- [Comprobador](https://password.es/comprobador/)
- [Educación](https://password.es/educacion/)
- [Comparativas](https://password.es/comparativa/)
- [English](https://password.es/en/)
- [Nederlands](https://password.es/nl/)
- [Deutsch](https://password.es/de/)
- [Français](https://password.es/fr/)
- [Italiano](https://password.es/it/)

## Support
- [FAQ](https://password.es/faq/)

Полный llms.txt требует анализа всего домена (скоро появится)

Загрузите этот файл по адресу https://password.es/llms.txt в корень вашего домена. ИИ-агенты, такие как ChatGPT, Claude и Perplexity, проверяют этот файл для понимания структуры вашего сайта.

Доступность

Контент доступен без JavaScript (100/100)

Content available without JavaScript

Контент расположен рано в HTML (100/100)

Main content starts at 16% of HTML

Приемлемый размер страницы (100/100)

Page size: 43KB

Обнаруживаемость ИИ

robots.txt разрешает ИИ-ботов (100/100)

All major AI search bots allowed

Поддержка Markdown for Agents (0/100)
&#10007; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
Имеет sitemap.xml (100/100)

Sitemap found

Имеет файл robots.txt (100/100)

robots.txt exists

Имеет файл llms.txt (0/100)

No llms.txt found

Есть Content-Signal (robots.txt или HTTP-заголовки) (0/100)
&#10003; robots.txt &#10003; HTTP header &#10007; Policy

Структурированные данные

Имеет Schema.org / JSON-LD (0/100)

No JSON-LD / Schema.org found

Имеет теги Open Graph (100/100)

All OG tags present

Имеет мета-описание (100/100)

Meta description: 136 chars

Имеет канонический URL (100/100)

Canonical URL present

Имеет атрибут lang (100/100)

lang="es"

Семантический HTML

Правильная иерархия заголовков (100/100)

Clean heading hierarchy

Использует элемент article или main (100/100)

Has <main>

Использует семантические HTML-элементы (100/100)

16 semantic elements, 36 divs (ratio: 31%)

Осмысленные альтернативные тексты изображений (100/100)

No images found

Небольшая глубина вложенности div (100/100)

Avg div depth: 1.6, max: 4

Эффективность контента

Хороший коэффициент сокращения токенов (100/100)

97% token reduction (HTML→Markdown)

Хорошее соотношение контента к шуму (0/100)

Content ratio: 4.0% (1780 content chars / 44357 HTML bytes)

Приемлемый вес страницы (100/100)

HTML size: 43KB

Минимум inline-стилей (100/100)

0/381 elements with inline styles (0.0%)

{
  "url": "https://password.es/",
  "timestamp": 1784278747199,
  "fetch": {
    "mode": "simple",
    "timeMs": 144,
    "htmlSizeBytes": 44357,
    "supportsMarkdown": false,
    "markdownAgents": {
      "contentNegotiation": false,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": false,
        "url": null
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": null
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "none"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Genera contraseñas seguras online de forma automática y gratuita",
    "excerpt": "password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.",
    "byline": "password.es",
    "siteName": "password.es",
    "lang": "es",
    "contentLength": 1780,
    "metadata": {
      "description": "password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.",
      "ogTitle": "Genera contraseñas seguras online de forma automática y gratuita",
      "ogDescription": "password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.",
      "ogImage": "https://password.es/assets/images/favicon.png",
      "ogType": "website",
      "canonical": "https://password.es/",
      "lang": "es",
      "schemas": [],
      "robotsMeta": null,
      "author": "password.es",
      "generator": null,
      "markdownAlternateHref": null
    }
  },
  "markdown": "## Genera contraseñas seguras al instante\n\nCrea contraseñas fuertes, aleatorias y personalizables. Todo se genera en tu navegador, sin enviar datos a ningún servidor.\n\nLongitud\n\n16\n\nCuanto más larga es una contraseña, más segura se vuelve. Recomendamos un mínimo de 12 caracteres para servicios críticos.\n\n0 peticiones de red para generar una contraseña. Todo ocurre en tu navegador con `crypto.getRandomValues()`.\n\n— ha tardado en generarse la contraseña de arriba, medido en tu propio dispositivo.\n\n4–64 caracteres, y cuatro alfabetos que activas por separado. Tú eliges la forma.\n\n## Cómo aprovechar el generador de contraseñas\n\n1.  ### Personaliza\n\n    Rellena las opciones avanzadas para indicar qué caracteres quieres incluir y la longitud deseada. La cifra de entropía se recalcula mientras lo haces.\n\n2.  ### Genera\n\n    Pulsa en Generar nueva contraseña y obtendrás una clave única. Activa JavaScript en tu navegador para que el generador funcione.\n\n3.  ### Copia y guarda\n\n    Copia la contraseña al portapapeles y guárdala en el gestor de tu preferencia.\n\nPuedes comprobar tu contraseña y medir su fortaleza con el [comprobador de contraseñas](https://password.es/comprobador/). Protege tus accesos online utilizando contraseñas diferentes en cada servicio, habilitando la verificación en dos pasos siempre que sea posible y almacenando las claves en un gestor seguro.\n\n## Descubre cómo hacerlo todavía mejor\n\n## Sube el listón de la seguridad\n",
  "fullPageMarkdown": "password.es · Generador de contraseñas seguras online\n\n[password.es](https://password.es/)\n\nEspañol\n\nModo claro\n\n# Genera contraseñas seguras al instante\n\nCrea contraseñas fuertes, aleatorias y personalizables. Todo se genera en tu navegador, sin enviar datos a ningún servidor.\n\nLongitud\n\n16\n\n416324864\n\nCuanto más larga es una contraseña, más segura se vuelve. Recomendamos un mínimo de 12 caracteres para servicios críticos.\n\nTipos de caracteres\n\n a–zMinúsculas A–ZMayúsculas  0–9Números  !@#$%&\\*Símbolos\n\nMás opciones\n\n l I 1 O 0Excluir ambiguos aa → abSin dos iguales seguidos\n\nGenerar nueva contraseña\n\n0 bits\n\nde entropía. Es la medida de cuánto tendría que adivinar alguien que no sabe nada de tu contraseña.\n\n••••• Media\n\nAlfabeto\n\n0\n\nsímbolos\n\nLongitud\n\n0\n\ncaracteres\n\nCombinaciones\n\n0\n\nposibles\n\nFuerza bruta\n\n0\n\naños\n\nLa fuerza bruta se estima a **1012 intentos por segundo**, el orden de magnitud de un ataque *offline* contra un hash rápido, y asume que el atacante conoce tu alfabeto y tu longitud. Contra un hash lento — `bcrypt`, `Argon2` — la cifra sube muchos órdenes de magnitud.\n\n0 peticiones de red para generar una contraseña. Todo ocurre en tu navegador con `crypto.getRandomValues()`.\n\n— ha tardado en generarse la contraseña de arriba, medido en tu propio dispositivo.\n\n4–64 caracteres, y cuatro alfabetos que activas por separado. Tú eliges la forma.\n\n## Cómo aprovechar el generador de contraseñas\n\n1.  01\n\n    ### Personaliza\n\n    Rellena las opciones avanzadas para indicar qué caracteres quieres incluir y la longitud deseada. La cifra de entropía se recalcula mientras lo haces.\n\n2.  02\n\n    ### Genera\n\n    Pulsa en Generar nueva contraseña y obtendrás una clave única. Activa JavaScript en tu navegador para que el generador funcione.\n\n3.  03\n\n    ### Copia y guarda\n\n    Copia la contraseña al portapapeles y guárdala en el gestor de tu preferencia.\n\nPuedes comprobar tu contraseña y medir su fortaleza con el [comprobador de contraseñas](https://password.es/comprobador/). Protege tus accesos online utilizando contraseñas diferentes en cada servicio, habilitando la verificación en dos pasos siempre que sea posible y almacenando las claves en un gestor seguro.\n\n[Comprueba la fortaleza de tu contraseña Analiza la seguridad de cualquier contraseña al instante →](https://password.es/comprobador/) [Protege tu navegación con un VPN Cifra tu conexión y navega de forma anónima ↗](https://go.nordvpn.net/aff_c?offer_id=15&aff_id=36296&url_id=3115) [Analiza tu velocidad de conexión Mide la velocidad real de tu acceso a Internet ↗](https://pruebavelocidad.com/) [Crea códigos QR gratuitos Genera códigos QR para enlaces, textos y más ↗](https://face.co/qrcode/)\n\n## Descubre cómo hacerlo todavía mejor\n\n[Comprobador de seguridad Te decimos qué tan fuerte es tu contraseña y qué trucos básicos debes aplicar para mejorarla al instante. →](https://password.es/comprobador/) [Educación Consejos para crear contraseñas seguras. Descubre buenas prácticas para proteger tus cuentas y por qué el generador es tu mejor aliado. →](https://password.es/educacion/) [Comparativas Diferencias entre 1Password, Bitwarden, LastPass y otros gestores de contraseñas: conoce qué aporta un gestor dedicado frente a las soluciones del navegador. →](https://password.es/comparativa/) [FAQ ¿Cómo funciona el generador de contraseñas aleatorias? ¿Qué hace que una contraseña sea segura y cómo consigue la herramienta crear una combinación única cada vez? →](https://password.es/faq/)\n\n## Sube el listón de la seguridad\n\n[Seguridad de conocimiento cero Nadie tiene acceso a tu información, ni tan siquiera nosotros: no guardamos contraseñas generadas. Si usas un gestor, asegúrate de que cuente con cifrado seguro. →](https://password.es/seguridad/) [Amenazas digitales bajo control Un buen gestor de contraseñas te avisa inmediatamente en caso de exposición de tus datos online gracias a la función de supervisión de robos de datos. →](https://password.es/amenazas-digitales/) [Hábitos más seguros Un buen gestor de contraseñas te ayuda a detectar y actualizar contraseñas poco seguras y reutilizadas con nuestro generador de contraseñas. →](https://password.es/habitos-seguros/) [Autenticación multifactor Introduce un mecanismo de autenticación adicional, como un código de un solo uso o la huella dactilar, para proteger tu cuenta de los hackers. →](https://password.es/2fa/)\n",
  "markdownStats": {
    "images": 0,
    "links": 1,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 7
  },
  "tokens": {
    "htmlTokens": 13296,
    "markdownTokens": 373,
    "reduction": 12923,
    "reductionPercent": 97
  },
  "score": {
    "score": 80,
    "grade": "B",
    "rubricVersion": 2,
    "dimensions": {
      "accessibility": {
        "score": 100,
        "weight": 30,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 55,
            "evidence": "proven",
            "details": "Content available without JavaScript"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Main content starts at 16% of HTML"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Page size: 43KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 60,
        "weight": 25,
        "grade": "C",
        "checks": {
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "All major AI search bots allowed"
          },
          "supports_markdown_negotiation": {
            "score": 0,
            "weight": 20,
            "evidence": "plausible",
            "details": "No Markdown for Agents support detected"
          },
          "has_sitemap": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Sitemap found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "robots.txt exists"
          },
          "has_llms_txt": {
            "score": 0,
            "weight": 10,
            "evidence": "speculative",
            "details": "No llms.txt found"
          },
          "has_content_signals": {
            "score": 0,
            "weight": 10,
            "evidence": "speculative",
            "details": "No Content-Signal found (robots.txt or HTTP headers)"
          }
        }
      },
      "structuredData": {
        "score": 65,
        "weight": 20,
        "grade": "C",
        "checks": {
          "has_schema_org": {
            "score": 0,
            "weight": 35,
            "evidence": "proven",
            "details": "No JSON-LD / Schema.org found"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Meta description: 136 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "lang=\"es\""
          }
        }
      },
      "semanticHtml": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 30,
            "evidence": "plausible",
            "details": "Clean heading hierarchy"
          },
          "uses_article_or_main": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Has <main>"
          },
          "semantic_elements": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "16 semantic elements, 36 divs (ratio: 31%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "Avg div depth: 1.6, max: 4"
          }
        }
      },
      "contentEfficiency": {
        "score": 70,
        "weight": 10,
        "grade": "C",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "evidence": "speculative",
            "details": "97% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "evidence": "speculative",
            "details": "Content ratio: 4.0% (1780 content chars / 44357 HTML bytes)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 20,
            "evidence": "speculative",
            "details": "HTML size: 43KB"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "0/381 elements with inline styles (0.0%)"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_schema_org",
      "priority": "critical",
      "category": "structuredData",
      "titleKey": "rec.add_schema_org.title",
      "descriptionKey": "rec.add_schema_org.description",
      "howToKey": "rec.add_schema_org.howto",
      "effort": "moderate",
      "estimatedImpact": 7,
      "maxImpact": 7,
      "evidence": "proven",
      "checkScore": 0,
      "checkDetails": "No JSON-LD / Schema.org found"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "effort": "significant",
      "estimatedImpact": 5,
      "maxImpact": 5,
      "evidence": "plausible",
      "checkScore": 0,
      "checkDetails": "No Markdown for Agents support detected"
    },
    {
      "id": "improve_content_ratio",
      "priority": "high",
      "category": "contentEfficiency",
      "titleKey": "rec.improve_content_ratio.title",
      "descriptionKey": "rec.improve_content_ratio.description",
      "howToKey": "rec.improve_content_ratio.howto",
      "effort": "moderate",
      "estimatedImpact": 3,
      "maxImpact": 3,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "Content ratio: 4.0% (1780 content chars / 44357 HTML bytes)"
    },
    {
      "id": "add_llms_txt",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_llms_txt.title",
      "descriptionKey": "rec.add_llms_txt.description",
      "howToKey": "rec.add_llms_txt.howto",
      "effort": "quick-win",
      "estimatedImpact": 2.5,
      "maxImpact": 2.5,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "No llms.txt found"
    },
    {
      "id": "add_content_signals",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_content_signals.title",
      "descriptionKey": "rec.add_content_signals.description",
      "howToKey": "rec.add_content_signals.howto",
      "effort": "quick-win",
      "estimatedImpact": 2.5,
      "maxImpact": 2.5,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
    }
  ],
  "llmsTxtPreview": "# password.es\n\n> password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.\n\n## Documentation\n- [FAQ](https://password.es/faq/)\n\n## Main\n- [Genera contraseñas seguras online de forma automática y gratuita](https://password.es/): password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu c…\n- [Comprobador](https://password.es/comprobador/)\n- [Educación](https://password.es/educacion/)\n- [Comparativas](https://password.es/comparativa/)\n- [English](https://password.es/en/)\n- [Nederlands](https://password.es/nl/)\n- [Deutsch](https://password.es/de/)\n- [Français](https://password.es/fr/)\n- [Italiano](https://password.es/it/)\n\n## Support\n- [FAQ](https://password.es/faq/)\n\n",
  "llmsTxtExisting": null,
  "emergingProtocols": {
    "oauthProtectedResource": {
      "exists": false,
      "url": "https://password.es/.well-known/oauth-protected-resource"
    },
    "oauthDiscovery": {
      "exists": false,
      "url": "https://password.es/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://password.es/.well-known/mcp/server-card.json",
      "draft": true
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://password.es/.well-known/agent-card.json"
    },
    "apiCatalog": {
      "exists": false,
      "url": "https://password.es/.well-known/api-catalog"
    },
    "agentSkills": {
      "exists": false,
      "url": "https://password.es/.well-known/agent-skills/index.json",
      "draft": true
    },
    "count": 0,
    "total": 6
  },
  "botAccess": {
    "probed": true,
    "bot": "OAI-SearchBot",
    "controlStatus": 200,
    "botStatus": 200,
    "discriminates": false,
    "refusedAsBot": false,
    "edge": "Cloudflare",
    "verifiable": false,
    "detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
  },
  "snippets": [
    {
      "id": "add_llms_txt",
      "title": "Create /llms.txt",
      "description": "Upload this file to your web root. It tells AI agents what your site is about and which pages matter.",
      "language": "markdown",
      "code": "# password.es\n\n> password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.\n\n## Documentation\n- [FAQ](https://password.es/faq/)\n\n## Main\n- [Genera contraseñas seguras online de forma automática y gratuita](https://password.es/): password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu c…\n- [Comprobador](https://password.es/comprobador/)\n- [Educación](https://password.es/educacion/)\n- [Comparativas](https://password.es/comparativa/)\n- [English](https://password.es/en/)\n- [Nederlands](https://password.es/nl/)\n- [Deutsch](https://password.es/de/)\n- [Français](https://password.es/fr/)\n- [Italiano](https://password.es/it/)\n\n## Support\n- [FAQ](https://password.es/faq/)\n\n",
      "filename": "/llms.txt"
    },
    {
      "id": "add_schema_org",
      "title": "Add Schema.org JSON-LD",
      "description": "Structured data helps AI agents understand the type, author, and purpose of your content.",
      "language": "html",
      "code": "<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"WebPage\",\n  \"name\": \"Genera contraseñas seguras online de forma automática y gratuita\",\n  \"description\": \"password.es – Genera contraseñas seguras online y gratis. Personaliza la longitud, los tipos de caracteres y copia tu clave al instante.\",\n  \"url\": \"https://password.es/\",\n  \"inLanguage\": \"es\",\n  \"isPartOf\": {\n    \"@type\": \"WebSite\",\n    \"name\": \"password.es\"\n  },\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"password.es\"\n  }\n}\n</script>",
      "filename": "<head>"
    },
    {
      "id": "add_content_signals",
      "title": "Add Content-Signal directives",
      "description": "Content-Signal tells AI agents how they may use your content. The canonical location is robots.txt, but you can also expose it as an HTTP header from any stack.",
      "language": "txt",
      "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no",
      "filename": "/robots.txt",
      "stacks": [
        {
          "id": "robots",
          "label": "robots.txt",
          "language": "txt",
          "filename": "/robots.txt",
          "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no"
        },
        {
          "id": "nginx",
          "label": "Nginx",
          "language": "nginx",
          "filename": "server block",
          "code": "# Inside your server { } block:\nadd_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;"
        },
        {
          "id": "apache",
          "label": "Apache",
          "language": "apache",
          "filename": ".htaccess",
          "code": "# In .htaccess (or VirtualHost):\nHeader set Content-Signal \"search=yes, ai-input=yes, ai-train=no\""
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// In your theme's functions.php or a small mu-plugin\nadd_action('send_headers', function () {\n    header('Content-Signal: search=yes, ai-input=yes, ai-train=no');\n});\n\n// Optional: also append the directive to the dynamic robots.txt\nadd_filter('robots_txt', function ($output) {\n    return $output . \"\\nContent-Signal: search=yes, ai-input=yes, ai-train=no\\n\";\n}, 10, 1);"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "middleware.ts",
          "code": "// middleware.ts (Next.js 13+ App Router or Pages Router)\nimport { NextResponse } from 'next/server';\nexport function middleware() {\n  const res = NextResponse.next();\n  res.headers.set(\n    'Content-Signal',\n    'search=yes, ai-input=yes, ai-train=no'\n  );\n  return res;\n}\nexport const config = { matcher: '/:path*' };"
        },
        {
          "id": "cloudflare",
          "label": "Cloudflare Workers",
          "language": "javascript",
          "filename": "worker.js",
          "code": "// Cloudflare Worker that proxies your origin and adds the header\nexport default {\n  async fetch(request, env, ctx) {\n    const res = await fetch(request);\n    const newRes = new Response(res.body, res);\n    newRes.headers.set(\n      'Content-Signal',\n      'search=yes, ai-input=yes, ai-train=no'\n    );\n    return newRes;\n  },\n};"
        },
        {
          "id": "express",
          "label": "Express / Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Express\napp.use((req, res, next) => {\n  res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n  reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  done();\n});"
        }
      ]
    },
    {
      "id": "add_markdown_negotiation",
      "title": "Support Markdown for Agents",
      "description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
      "language": "html",
      "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        },
        {
          "id": "express",
          "label": "Express",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n  res.setHeader('Vary', 'Accept');\n  res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    res.type('text/markdown; charset=utf-8');\n    return res.send(renderMarkdown('page'));\n  }\n  res.render('page');\n});"
        },
        {
          "id": "fastify",
          "label": "Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n  reply.header('Vary', 'Accept');\n  reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n  }\n  return reply.view('/page.ejs');\n});"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page/route.ts",
          "code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n  const accept = req.headers.get('accept') || '';\n  if (accept.includes('text/markdown')) {\n    return new Response(await renderMarkdown('page'), {\n      headers: {\n        'Content-Type': 'text/markdown; charset=utf-8',\n        'Vary': 'Accept',\n      },\n    });\n  }\n  // Fall through to the page component\n  return new Response(null, { status: 404 });\n}"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n    if (!is_singular()) return;\n    $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n    if (strpos($accept, 'text/markdown') === false) return;\n    header('Content-Type: text/markdown; charset=utf-8');\n    header('Vary: Accept');\n    $post = get_queried_object();\n    echo \"# \" . get_the_title($post) . \"\\n\\n\";\n    echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n    exit;\n});"
        },
        {
          "id": "static",
          "label": "Hugo / Jekyll / Astro",
          "language": "txt",
          "filename": "static/page.md",
          "code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n#   <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        }
      ]
    }
  ]
}

Используйте наш API для программного получения данных (скоро появится)

Этот JSON предназначен для внутреннего использования — в отличие от файлов Markdown и llms.txt, его не нужно загружать на ваш сайт. Сохраните его как базовый показатель для отслеживания оценки со временем, поделитесь с командой разработчиков или интегрируйте в ваш CI/CD-конвейер.

Поделитесь результатами

X LinkedIn Facebook WhatsApp Telegram Email

Или попросите ИИ помочь это исправить

Нужно второе мнение?

У Cloudflare тоже есть бесплатный сканер, и он задаёт другой вопрос. Он оценивает то, что ваш сайт публикует для вызова агентами: MCP server cards, Agent Skills, каталоги API, DNS-записи. Мы оцениваем, может ли агент добраться до вашего контента, прочитать и понять его. Сайт может быть хорош в одном и плох в другом, так что ждите двух разных чисел: это ответы на два разных вопроса, и знать стоит оба.

Проверить password.es через Cloudflare

Встройте ваш бейдж

Добавьте этот бейдж на ваш сайт. Он обновляется автоматически при изменении вашей оценки ИИ-готовности.

AgentReady.md score for password.es
Script Рекомендуется
<script src="https://agentready.md/badge.js" data-id="41986cf1-7037-44f8-89ae-712447ed3ed4" data-domain="password.es"></script>
Markdown
[![AgentReady.md score for password.es](https://agentready.md/badge/password.es.svg)](https://agentready.md/ru/r/41986cf1-7037-44f8-89ae-712447ed3ed4)

Скоро: Полный анализ домена

Сканируйте весь домен, генерируйте llms.txt и отслеживайте оценку ИИ-готовности со временем. Присоединяйтесь к списку ожидания.

Вы в списке! Мы уведомим вас о запуске.