Analyzed URL
https://www.es.amnesty.org/
Measured last month
AI-Ready Score
Poor
out of 100
Token Savings
Score Breakdown
Emerging protocols
0 of 6 detectedWell-known endpoints AI agents look for. Detected here means an agent can discover and connect to your service automatically.
-
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
Doesn't stay fixed by itself. Monitoring isn't built yet — join the list and we'll tell you when it is.
You're on the list! We'll notify you when it launches.
What we measured No llms.txt found
Your site doesn't have an llms.txt file. This is the emerging standard for helping AI agents understand your site structure.
How to implement
Create an /llms.txt file following the llmstxt.org specification. Include a site description and links to your key pages.
What we measured Content ratio: 0.8% (4148 content chars / 523745 HTML bytes)
Your page has a low ratio of actual content to total HTML. Much of the page weight is markup, scripts, or styles rather than content.
How to implement
Move CSS to external stylesheets, remove inline styles, minimize JavaScript, and ensure the HTML focuses on content structure.
What we measured No Markdown for Agents support detected
Your site doesn't support Markdown for Agents. This Cloudflare standard lets AI agents request content in markdown format, reducing token usage by ~80%.
How to implement
Implement one or more: (1) Respond to Accept: text/markdown with markdown content. (2) Serve .md URLs (e.g., /page.md). (3) Add <link rel="alternate" type="text/markdown"> tags. (4) Add Link HTTP headers for markdown discovery.
What we measured No Content-Signal found (robots.txt or HTTP headers)
No Content-Signal directives found. These tell AI agents how they may use your content (search indexing, AI input, training data). The recommended location is robots.txt.
How to implement
Add Content-Signal to your robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. You can also add it as an HTTP header on markdown responses.
What we measured 383/2356 elements with inline styles (16.3%)
Many elements have inline style attributes. These add noise for AI agents extracting content.
How to implement
Move all inline styles to CSS classes in your stylesheet. Use utility CSS frameworks like Tailwind if you need many unique styles.
What we measured Page size: 511KB
Your page is larger than recommended. Large pages are slower to process and more expensive for AI agents.
How to implement
Optimize page size by minifying HTML, deferring non-critical scripts, and removing unused CSS.
What we measured Main content starts at 85% of HTML
The main content appears late in the HTML document. AI agents may give more weight to content that appears early.
How to implement
Restructure your HTML so that <main> or <article> content appears before sidebars and supplementary content.
What we measured HTML size: 511KB
Your HTML page is heavier than recommended. Large pages take longer for AI agents to process and cost more tokens.
How to implement
Reduce HTML size by removing unused code, minifying HTML, and lazy-loading non-critical content.
What we measured no <h1>
Your heading structure has issues (skipped levels or multiple h1 tags). A clean hierarchy helps AI agents understand content organization.
How to implement
Ensure you have exactly one <h1> per page, and headings follow sequential order: h1 > h2 > h3. Don't skip levels (e.g., h1 directly to h3).
What we measured 2/3 OG tags present
Missing or incomplete Open Graph tags. OG tags help AI agents (and social platforms) understand your page title, description, and image.
How to implement
Add og:title, og:description, and og:image meta tags to your page's <head>.
Nos preocupamos por tu privacidad Usamos cookies para analizar el tráfico, personalizar contenido, funciones de redes sociales y mostrar anuncios basados en tus hábitos. Puedes aceptar, rechazar o ajustar las opciones en la configuración de cookies. [Más información sobre cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/). Nos preocupamos por tu privacidad Al aceptar, instalaremos cookies en tu dispositivo para mejorar el servicio de esta página web. Puedes modificar aquí tu configuración y escoger el tipo de autorización que das. También puedes consultar la información sobre [cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/). Bloques de cookies por tipo Cookies necesarias Algunas cookies son necesarias para el uso de la web de Amnistía Internacional. Puedes restringirlas o bloquearlas de forma general configurando tu navegador, pero algunas áreas del sitio no funcionarán. No almacenan ninguna información de identificación personal. Cookies para estadísticas No No Nos permiten entender cómo estás navegando por la página web y nos ayudarán a mejorar tu experiencia al visitarla. Cookies de mercadotecnia No No Sirven para mejorar la relevancia de los anuncios que pueden aparecer en otros sitios webs por los que navegas.
Amnistía Internacional España - Derechos humanos [Ir a contenido principal](https://www.es.amnesty.org/#skiplink-main-content)
[](https://www.es.amnesty.org/)
Actuamos por los derechos humanos
en todo el mundo
[](https://www.es.amnesty.org/buscador/ "Ir a la búsqueda")[Hazte socio/a](https://crm.es.amnesty.org/unete-a-amnistia/?origen=web)
- 
Blog
CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos
[¡Infórmate!](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/)
Amnistía Internacional es una organización global e independiente formada por más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.
¡Te necesitamos!
Miles de personas necesitan tu ayuda
[Hazte socio/a](https://crm.es.amnesty.org/unete-a-amnistia/?origen=home)
- 
[
Acción
Firma para detener la limpieza étnica de Israel en Cisjordania
Firma
](https://www.es.amnesty.org/actua/acciones/israel-cisjordania-limpieza-etnica-jun26/)
- 
[
Campaña
ES MáS FáCiL ENTRaR eN LA CaSITA DE BeNiTO QUe CoNSEGUiR UNa ViVIeNDA DiGNa
¡Visítala!
](https://www.es.amnesty.org/ld/sealquilacasita/)
- 
[
Acción
Yo quiero vivir en un país donde todo el mundo pueda tener una casa digna
Firma
](https://www.es.amnesty.org/actua/acciones/el-pais-donde-quiero-vivir-vivienda/)
- 
[
Acción
Firma por un alto el fuego real y duradero en Oriente Medio
Firma
](https://www.es.amnesty.org/actua/acciones/poblacion-civil-oriente-medio-mar26/)
- 
[
Acción
Firma y exige justicia para Haitam
Firma
](https://www.es.amnesty.org/actua/acciones/haitam-mejri-espana-abr26/)
- 
[
Acción
Rompe el silencio por las mujeres de Afganistán
Firma
](https://www.es.amnesty.org/actua/acciones/afganistan-mujeres-ago24/)
## Últimas noticias

Noticia
11 de junio de 2026
[Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/afganistan-el-nuevo-codigo-que-permite-el-matrimonio-infantil-agrava-la-situacion-lamentable-de-los-derechos-de-las-mujeres-y-las-ninas/ "Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/afganistan-el-nuevo-codigo-que-permite-el-matrimonio-infantil-agrava-la-situacion-lamentable-de-los-derechos-de-las-mujeres-y-las-ninas/ "Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas")

Noticia
11 de junio de 2026
[Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/los-estados-europeos-inician-una-nueva-politica-migratoria-comun-que-amenaza-los-derechos-de-la-poblacion-migrante-y-refugiada/ "Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/los-estados-europeos-inician-una-nueva-politica-migratoria-comun-que-amenaza-los-derechos-de-la-poblacion-migrante-y-refugiada/ "Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada")

Noticia
11 de junio de 2026
[Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nuevo-informe-global-sistemas-de-perfilacion-del-riesgo-usados-para-identificar-infractores-potenciales-vulneran-el-derecho-internacional-y-deben-prohibirse/ "Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nuevo-informe-global-sistemas-de-perfilacion-del-riesgo-usados-para-identificar-infractores-potenciales-vulneran-el-derecho-internacional-y-deben-prohibirse/ "Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse")

Noticia
10 de junio de 2026
[Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/frente-a-la-aceleracion-de-la-limpieza-etnica-palestina-perpetrada-por-israel-el-mundo-debe-tomar-medidas-para-detener-la-anexion-de-cisjordania/ "Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/frente-a-la-aceleracion-de-la-limpieza-etnica-palestina-perpetrada-por-israel-el-mundo-debe-tomar-medidas-para-detener-la-anexion-de-cisjordania/ "Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania")
[Ver más noticias](https://www.es.amnesty.org/en-que-estamos/noticias/)
## Éxitos

Buena noticia
04 de junio de 2026
[Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/hungria-la-retirada-de-los-cargos-presentados-contra-los-organizadores-de-las-marchas-del-orgullo-de-budapest-y-pecs-da-testimonio-del-poder-de-la-solidaridad/ "Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/hungria-la-retirada-de-los-cargos-presentados-contra-los-organizadores-de-las-marchas-del-orgullo-de-budapest-y-pecs-da-testimonio-del-poder-de-la-solidaridad/ "Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad")

Buena noticia
21 de mayo de 2026
[Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nueva-resolucion-de-la-onu-sobre-rendicion-de-cuentas-en-materia-climatica-un-importante-paso-adelante-para-progresar-hacia-la-justicia-climatica/ "Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática")
[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nueva-resolucion-de-la-onu-sobre-rendicion-de-cuentas-en-materia-climatica-un-importante-paso-adelante-para-progresar-hacia-la-justicia-climatica/ "Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática")
[Ver más éxitos](https://www.es.amnesty.org/en-que-estamos/exitos/)
## Blog

Blog
11 de junio de 2026
[CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/ "CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos")
[Leer más](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/ "CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos")

Blog
09 de junio de 2026
[Cómo Rusia utiliza la educación para adoctrinar a la infancia](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/como-rusia-utiliza-la-educacion-para-adoctrinar-a-la-infancia/ "Cómo Rusia utiliza la educación para adoctrinar a la infancia")
[Leer más](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/como-rusia-utiliza-la-educacion-para-adoctrinar-a-la-infancia/ "Cómo Rusia utiliza la educación para adoctrinar a la infancia")
[Ver más entradas del blog](https://www.es.amnesty.org/en-que-estamos/blog/)

Buscamos gente como tú. ¡PARTICIPA!
Hazte activista de derechos humanos
[¿Qué significa ser activista?](https://www.es.amnesty.org/actua/voluntariado/)
ÚNETE
Únete a Amnistía Internacional
Defendemos los derechos humanos en todo el mundo. Y lo hacemos sin aceptar dinero de gobiernos ni partidos políticos. Esa independencia nos permite señalar a quien haya que señalar. Sin filtros. Sin miedo. Nuestro trabajo sigue siendo necesario, quizá más que nunca. Necesitamos personas como tú, que no miran hacia otro lado cuando todo invita a hacerlo. Eres el "no me rindo" que tanto necesitamos en estos tiempos.
[ÚNETE](https://crm.es.amnesty.org/unete-a-amnistia/?origen=banner_home)
Nos preocupamos por tu privacidad
Usamos cookies para analizar el tráfico, personalizar contenido, funciones de redes sociales y mostrar anuncios basados en tus hábitos. Puedes aceptar, rechazar o ajustar las opciones en la configuración de cookies. [Más información sobre cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).
Nos preocupamos por tu privacidad
Al aceptar, instalaremos cookies en tu dispositivo para mejorar el servicio de esta página web. Puedes modificar aquí tu configuración y escoger el tipo de autorización que das. También puedes consultar la información sobre [cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).
Aceptar todas
Bloques de cookies por tipo
Cookies necesarias
Algunas cookies son necesarias para el uso de la web de Amnistía Internacional. Puedes restringirlas o bloquearlas de forma general configurando tu navegador, pero algunas áreas del sitio no funcionarán. No almacenan ninguna información de identificación personal.
Cookies para estadísticas
No
No
Nos permiten entender cómo estás navegando por la página web y nos ayudarán a mejorar tu experiencia al visitarla.
Cookies de mercadotecnia
No
No
Sirven para mejorar la relevancia de los anuncios que pueden aparecer en otros sitios webs por los que navegas.
Upload this file as /index.md on your server so AI agents can access a clean version of your page. You can also configure Accept: text/markdown content negotiation to serve it automatically.
Generated llms.txt for this single page
# es.amnesty.org > Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo. ## Main - [Visita la web de Amnistía Internacional España](https://www.es.amnesty.org/): Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo l… - [Lo más visto](https://www.es.amnesty.org/lo-mas-visto/) - [Trump y los derechos humanos](https://www.es.amnesty.org/en-que-estamos/campanas/trump-derechos-humanos/) - [La pena de muerte](https://www.es.amnesty.org/en-que-estamos/temas/pena-de-muerte/) - [Qué son los derechos humanos](https://www.es.amnesty.org/en-que-estamos/temas/derechos-humanos/) - [Violencia contra las mujeres en España](https://www.es.amnesty.org/en-que-estamos/espana/violencia-contra-las-mujeres/) - [Quiénes somos](https://www.es.amnesty.org/quienes-somos/) - [Historia y logros](https://www.es.amnesty.org/quienes-somos/historia/) - [Objetivos](https://www.es.amnesty.org/quienes-somos/objetivos/) ## Blog - [Qué está pasando en Irán](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/que-esta-pasando-entre-iran-estados-unidos-e-israel-donde-quedan-los-derechos-humanos/) - [20 grandes frases para mostrar tu orgullo LGBTIQ+](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/20-grandes-frases-para-mostrar-tu-orgullo-lgbti/) - [Blog](https://www.es.amnesty.org/en-que-estamos/blog/)
Full llms.txt requires domain-wide analysis (coming soon)
Upload this file to https://www.es.amnesty.org/llms.txt at the root of your domain. AI agents like ChatGPT, Claude, and Perplexity check this file to understand your site structure.
Semantic HTML
Has both <article> and <main>
no <h1>
43 semantic elements, 189 divs (ratio: 19%)
12/17 images with meaningful alt text
Avg div depth: 5.1, max: 13
Content Efficiency
100% token reduction (HTML→Markdown)
Content ratio: 0.8% (4148 content chars / 523745 HTML bytes)
383/2356 elements with inline styles (16.3%)
HTML size: 511KB
AI Discoverability
No llms.txt found
robots.txt exists
All major AI bots allowed
Sitemap found
Structured Data
JSON-LD found: WebSite, BreadcrumbList, WebPage
2/3 OG tags present
Meta description: 156 chars
Canonical URL present
lang="es-ES"
Accessibility
Content available without JavaScript
Page size: 511KB
Main content starts at 85% of HTML
{
"url": "https://www.es.amnesty.org/",
"timestamp": 1781425815467,
"fetch": {
"mode": "simple",
"timeMs": 232,
"htmlSizeBytes": 523745,
"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": "Visita la web de Amnistía Internacional España",
"excerpt": "Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.",
"byline": null,
"siteName": null,
"lang": "es-ES",
"contentLength": 4148,
"metadata": {
"description": "Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.",
"ogTitle": "Visita la web de Amnistía Internacional España",
"ogDescription": "Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.",
"ogImage": null,
"ogType": null,
"canonical": "https://www.es.amnesty.org/",
"lang": "es-ES",
"schemas": [
{
"@context": "https://www.schema.org",
"@type": "WebSite",
"url": "https://www.es.amnesty.org/",
"name": "Amnistía Internacional España - Derechos humanos"
},
{
"@context": "https://www.schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "https://www.es.amnesty.org/",
"name": "Inicio"
}
}
]
},
{
"@context": "https://schema.org/",
"@type": "WebPage",
"dateModified": "2025-07-30T12:40:34+02:00",
"datePublished": "2023-11-03T17:57:35+01:00",
"description": "Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.",
"inLanguage": "es-ES",
"isPartOf": {
"@type": "WebSite",
"name": "Amnistía Internacional España",
"url": "https://www.es.amnesty.org"
},
"license": {
"@type": "CreativeWork",
"name": "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License",
"url": "https://creativecommons.org/licenses/by-nc-nd/4.0/"
},
"mainEntityOfPage": {
"@type": "WebPage"
},
"name": "Amnistía Internacional España - Derechos humanos",
"publisher": {
"@type": "Organization",
"logo": {
"@type": "ImageObject",
"url": "https://www.es.amnesty.org/fileadmin/user_upload/global/images/logo-desktop.svg"
},
"name": "Amnistía Internacional España"
},
"url": "https://www.es.amnesty.org/"
}
],
"robotsMeta": "index,follow",
"author": null,
"generator": "TYPO3 CMS",
"markdownAlternateHref": null
}
},
"markdown": "Nos preocupamos por tu privacidad\n\nUsamos cookies para analizar el tráfico, personalizar contenido, funciones de redes sociales y mostrar anuncios basados en tus hábitos. Puedes aceptar, rechazar o ajustar las opciones en la configuración de cookies. [Más información sobre cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).\n\nNos preocupamos por tu privacidad\n\nAl aceptar, instalaremos cookies en tu dispositivo para mejorar el servicio de esta página web. Puedes modificar aquí tu configuración y escoger el tipo de autorización que das. También puedes consultar la información sobre [cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).\n\nBloques de cookies por tipo\n\nCookies necesarias\n\nAlgunas cookies son necesarias para el uso de la web de Amnistía Internacional. Puedes restringirlas o bloquearlas de forma general configurando tu navegador, pero algunas áreas del sitio no funcionarán. No almacenan ninguna información de identificación personal.\n\nCookies para estadísticas\n\nNo\n\nNo\n\nNos permiten entender cómo estás navegando por la página web y nos ayudarán a mejorar tu experiencia al visitarla.\n\nCookies de mercadotecnia\n\nNo\n\nNo\n\nSirven para mejorar la relevancia de los anuncios que pueden aparecer en otros sitios webs por los que navegas.\n",
"fullPageMarkdown": "Amnistía Internacional España - Derechos humanos [Ir a contenido principal](https://www.es.amnesty.org/#skiplink-main-content)\n\n[](https://www.es.amnesty.org/)\n\nActuamos por los derechos humanos\nen todo el mundo\n\n[](https://www.es.amnesty.org/buscador/ \"Ir a la búsqueda\")[Hazte socio/a](https://crm.es.amnesty.org/unete-a-amnistia/?origen=web)\n\n- \n\n Blog\n\n CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos\n\n [¡Infórmate!](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/)\n\nAmnistía Internacional es una organización global e independiente formada por más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.\n\n¡Te necesitamos!\n\nMiles de personas necesitan tu ayuda\n\n[Hazte socio/a](https://crm.es.amnesty.org/unete-a-amnistia/?origen=home)\n\n- \n\n [\n\n Acción\n\n Firma para detener la limpieza étnica de Israel en Cisjordania\n\n Firma\n\n ](https://www.es.amnesty.org/actua/acciones/israel-cisjordania-limpieza-etnica-jun26/)\n\n- \n\n [\n\n Campaña\n\n ES MáS FáCiL ENTRaR eN LA CaSITA DE BeNiTO QUe CoNSEGUiR UNa ViVIeNDA DiGNa\n\n ¡Visítala!\n\n ](https://www.es.amnesty.org/ld/sealquilacasita/)\n\n- \n\n [\n\n Acción\n\n Yo quiero vivir en un país donde todo el mundo pueda tener una casa digna\n\n Firma\n\n ](https://www.es.amnesty.org/actua/acciones/el-pais-donde-quiero-vivir-vivienda/)\n\n- \n\n [\n\n Acción\n\n Firma por un alto el fuego real y duradero en Oriente Medio\n\n Firma\n\n ](https://www.es.amnesty.org/actua/acciones/poblacion-civil-oriente-medio-mar26/)\n\n- \n\n [\n\n Acción\n\n Firma y exige justicia para Haitam\n\n Firma\n\n ](https://www.es.amnesty.org/actua/acciones/haitam-mejri-espana-abr26/)\n\n- \n\n [\n\n Acción\n\n Rompe el silencio por las mujeres de Afganistán\n\n Firma\n\n ](https://www.es.amnesty.org/actua/acciones/afganistan-mujeres-ago24/)\n\n## Últimas noticias\n\n\n\nNoticia\n\n11 de junio de 2026\n\n[Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/afganistan-el-nuevo-codigo-que-permite-el-matrimonio-infantil-agrava-la-situacion-lamentable-de-los-derechos-de-las-mujeres-y-las-ninas/ \"Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/afganistan-el-nuevo-codigo-que-permite-el-matrimonio-infantil-agrava-la-situacion-lamentable-de-los-derechos-de-las-mujeres-y-las-ninas/ \"Afganistán: El nuevo código que permite el matrimonio infantil agrava la situación lamentable de los derechos de las mujeres y las niñas\")\n\n\n\nNoticia\n\n11 de junio de 2026\n\n[Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/los-estados-europeos-inician-una-nueva-politica-migratoria-comun-que-amenaza-los-derechos-de-la-poblacion-migrante-y-refugiada/ \"Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/los-estados-europeos-inician-una-nueva-politica-migratoria-comun-que-amenaza-los-derechos-de-la-poblacion-migrante-y-refugiada/ \"Los Estados europeos inician una nueva política migratoria común que amenaza los derechos de la población migrante y refugiada\")\n\n\n\nNoticia\n\n11 de junio de 2026\n\n[Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nuevo-informe-global-sistemas-de-perfilacion-del-riesgo-usados-para-identificar-infractores-potenciales-vulneran-el-derecho-internacional-y-deben-prohibirse/ \"Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nuevo-informe-global-sistemas-de-perfilacion-del-riesgo-usados-para-identificar-infractores-potenciales-vulneran-el-derecho-internacional-y-deben-prohibirse/ \"Nuevo informe global: Sistemas de perfilación del riesgo usados para identificar infractores potenciales vulneran el derecho internacional y deben prohibirse\")\n\n\n\nNoticia\n\n10 de junio de 2026\n\n[Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/frente-a-la-aceleracion-de-la-limpieza-etnica-palestina-perpetrada-por-israel-el-mundo-debe-tomar-medidas-para-detener-la-anexion-de-cisjordania/ \"Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/frente-a-la-aceleracion-de-la-limpieza-etnica-palestina-perpetrada-por-israel-el-mundo-debe-tomar-medidas-para-detener-la-anexion-de-cisjordania/ \"Frente a la aceleración de la limpieza étnica palestina perpetrada por Israel, el mundo debe tomar medidas para detener la anexión de Cisjordania\")\n\n[Ver más noticias](https://www.es.amnesty.org/en-que-estamos/noticias/)\n\n## Éxitos\n\n\n\nBuena noticia\n\n04 de junio de 2026\n\n[Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/hungria-la-retirada-de-los-cargos-presentados-contra-los-organizadores-de-las-marchas-del-orgullo-de-budapest-y-pecs-da-testimonio-del-poder-de-la-solidaridad/ \"Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/hungria-la-retirada-de-los-cargos-presentados-contra-los-organizadores-de-las-marchas-del-orgullo-de-budapest-y-pecs-da-testimonio-del-poder-de-la-solidaridad/ \"Hungría: La retirada de los cargos presentados contra los organizadores de las marchas del Orgullo de Budapest y Pécs da testimonio del poder de la solidaridad\")\n\n\n\nBuena noticia\n\n21 de mayo de 2026\n\n[Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nueva-resolucion-de-la-onu-sobre-rendicion-de-cuentas-en-materia-climatica-un-importante-paso-adelante-para-progresar-hacia-la-justicia-climatica/ \"Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/noticias/noticia/articulo/nueva-resolucion-de-la-onu-sobre-rendicion-de-cuentas-en-materia-climatica-un-importante-paso-adelante-para-progresar-hacia-la-justicia-climatica/ \"Nueva resolución de la ONU sobre rendición de cuentas en materia climática: un importante paso adelante para progresar hacia la justicia climática\")\n\n[Ver más éxitos](https://www.es.amnesty.org/en-que-estamos/exitos/)\n\n## Blog\n\n\n\nBlog\n\n11 de junio de 2026\n\n[CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/ \"CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/caf-y-el-tren-ligero-de-jesuralen-cinco-afirmaciones-corporativas-que-desoyen-el-derecho-internacional-y-los-derechos-humanos/ \"CAF y el tren ligero de Jesuralén: cinco afirmaciones corporativas que desoyen el derecho internacional y los derechos humanos\")\n\n\n\nBlog\n\n09 de junio de 2026\n\n[Cómo Rusia utiliza la educación para adoctrinar a la infancia](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/como-rusia-utiliza-la-educacion-para-adoctrinar-a-la-infancia/ \"Cómo Rusia utiliza la educación para adoctrinar a la infancia\")\n\n[Leer más](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/como-rusia-utiliza-la-educacion-para-adoctrinar-a-la-infancia/ \"Cómo Rusia utiliza la educación para adoctrinar a la infancia\")\n\n[Ver más entradas del blog](https://www.es.amnesty.org/en-que-estamos/blog/)\n\n\n\nBuscamos gente como tú. ¡PARTICIPA!\n\nHazte activista de derechos humanos\n\n[¿Qué significa ser activista?](https://www.es.amnesty.org/actua/voluntariado/)\n\nÚNETE\n\nÚnete a Amnistía Internacional\n\nDefendemos los derechos humanos en todo el mundo. Y lo hacemos sin aceptar dinero de gobiernos ni partidos políticos. Esa independencia nos permite señalar a quien haya que señalar. Sin filtros. Sin miedo. Nuestro trabajo sigue siendo necesario, quizá más que nunca. Necesitamos personas como tú, que no miran hacia otro lado cuando todo invita a hacerlo. Eres el \"no me rindo\" que tanto necesitamos en estos tiempos.\n\n[ÚNETE](https://crm.es.amnesty.org/unete-a-amnistia/?origen=banner_home)\n\nNos preocupamos por tu privacidad\n\nUsamos cookies para analizar el tráfico, personalizar contenido, funciones de redes sociales y mostrar anuncios basados en tus hábitos. Puedes aceptar, rechazar o ajustar las opciones en la configuración de cookies. [Más información sobre cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).\n\nNos preocupamos por tu privacidad\n\nAl aceptar, instalaremos cookies en tu dispositivo para mejorar el servicio de esta página web. Puedes modificar aquí tu configuración y escoger el tipo de autorización que das. También puedes consultar la información sobre [cómo usamos las cookies](https://www.es.amnesty.org/politica-de-cookies-modal/).\n\nAceptar todas\n\nBloques de cookies por tipo\n\nCookies necesarias\n\nAlgunas cookies son necesarias para el uso de la web de Amnistía Internacional. Puedes restringirlas o bloquearlas de forma general configurando tu navegador, pero algunas áreas del sitio no funcionarán. No almacenan ninguna información de identificación personal.\n\nCookies para estadísticas\n\n No\n\nNo\n\nNos permiten entender cómo estás navegando por la página web y nos ayudarán a mejorar tu experiencia al visitarla.\n\nCookies de mercadotecnia\n\n No\n\nNo\n\nSirven para mejorar la relevancia de los anuncios que pueden aparecer en otros sitios webs por los que navegas.\n",
"markdownStats": {
"images": 0,
"links": 2,
"tables": 0,
"codeBlocks": 0,
"headings": 0
},
"tokens": {
"htmlTokens": 282869,
"markdownTokens": 304,
"reduction": 282565,
"reductionPercent": 100
},
"score": {
"score": 57,
"grade": "D",
"dimensions": {
"semanticHtml": {
"score": 80,
"weight": 20,
"grade": "B",
"checks": {
"uses_article_or_main": {
"score": 100,
"weight": 20,
"details": "Has both <article> and <main>"
},
"proper_heading_hierarchy": {
"score": 70,
"weight": 25,
"details": "no <h1>"
},
"semantic_elements": {
"score": 62,
"weight": 20,
"details": "43 semantic elements, 189 divs (ratio: 19%)"
},
"meaningful_alt_texts": {
"score": 71,
"weight": 15,
"details": "12/17 images with meaningful alt text"
},
"low_div_nesting": {
"score": 99,
"weight": 20,
"details": "Avg div depth: 5.1, max: 13"
}
}
},
"contentEfficiency": {
"score": 43,
"weight": 25,
"grade": "D",
"checks": {
"token_reduction_ratio": {
"score": 100,
"weight": 40,
"details": "100% token reduction (HTML→Markdown)"
},
"content_to_noise_ratio": {
"score": 0,
"weight": 30,
"details": "Content ratio: 0.8% (4148 content chars / 523745 HTML bytes)"
},
"minimal_inline_styles": {
"score": 0,
"weight": 15,
"details": "383/2356 elements with inline styles (16.3%)"
},
"reasonable_page_weight": {
"score": 20,
"weight": 15,
"details": "HTML size: 511KB"
}
}
},
"aiDiscoverability": {
"score": 35,
"weight": 25,
"grade": "F",
"checks": {
"has_llms_txt": {
"score": 0,
"weight": 20,
"details": "No llms.txt found"
},
"has_robots_txt": {
"score": 100,
"weight": 10,
"details": "robots.txt exists"
},
"robots_allows_ai_bots": {
"score": 100,
"weight": 15,
"details": "All major AI bots allowed"
},
"has_sitemap": {
"score": 100,
"weight": 10,
"details": "Sitemap found"
},
"supports_markdown_negotiation": {
"score": 0,
"weight": 25,
"details": "No Markdown for Agents support detected"
},
"has_content_signals": {
"score": 0,
"weight": 20,
"details": "No Content-Signal found (robots.txt or HTTP headers)"
}
}
},
"structuredData": {
"score": 92,
"weight": 15,
"grade": "A",
"checks": {
"has_schema_org": {
"score": 100,
"weight": 30,
"details": "JSON-LD found: WebSite, BreadcrumbList, WebPage"
},
"has_open_graph": {
"score": 67,
"weight": 25,
"details": "2/3 OG tags present"
},
"has_meta_description": {
"score": 100,
"weight": 20,
"details": "Meta description: 156 chars"
},
"has_canonical_url": {
"score": 100,
"weight": 15,
"details": "Canonical URL present"
},
"has_lang_attribute": {
"score": 100,
"weight": 10,
"details": "lang=\"es-ES\""
}
}
},
"accessibility": {
"score": 52,
"weight": 15,
"grade": "D",
"checks": {
"content_without_js": {
"score": 100,
"weight": 40,
"details": "Content available without JavaScript"
},
"reasonable_page_size": {
"score": 40,
"weight": 30,
"details": "Page size: 511KB"
},
"fast_content_position": {
"score": 0,
"weight": 30,
"details": "Main content starts at 85% of HTML"
}
}
}
}
},
"recommendations": [
{
"id": "add_llms_txt",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_llms_txt.title",
"descriptionKey": "rec.add_llms_txt.description",
"howToKey": "rec.add_llms_txt.howto",
"effort": "quick-win",
"estimatedImpact": 10,
"checkScore": 0,
"checkDetails": "No llms.txt found"
},
{
"id": "improve_content_ratio",
"priority": "critical",
"category": "contentEfficiency",
"titleKey": "rec.improve_content_ratio.title",
"descriptionKey": "rec.improve_content_ratio.description",
"howToKey": "rec.improve_content_ratio.howto",
"effort": "moderate",
"estimatedImpact": 6,
"checkScore": 0,
"checkDetails": "Content ratio: 0.8% (4148 content chars / 523745 HTML bytes)"
},
{
"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": 6,
"checkScore": 0,
"checkDetails": "No Markdown for Agents support detected"
},
{
"id": "add_content_signals",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_content_signals.title",
"descriptionKey": "rec.add_content_signals.description",
"howToKey": "rec.add_content_signals.howto",
"effort": "quick-win",
"estimatedImpact": 5,
"checkScore": 0,
"checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
},
{
"id": "remove_inline_styles",
"priority": "critical",
"category": "contentEfficiency",
"titleKey": "rec.remove_inline_styles.title",
"descriptionKey": "rec.remove_inline_styles.description",
"howToKey": "rec.remove_inline_styles.howto",
"effort": "moderate",
"estimatedImpact": 3,
"checkScore": 0,
"checkDetails": "383/2356 elements with inline styles (16.3%)"
},
{
"id": "reduce_page_size",
"priority": "high",
"category": "accessibility",
"titleKey": "rec.reduce_page_size.title",
"descriptionKey": "rec.reduce_page_size.description",
"howToKey": "rec.reduce_page_size.howto",
"effort": "moderate",
"estimatedImpact": 4,
"checkScore": 40,
"checkDetails": "Page size: 511KB"
},
{
"id": "move_content_earlier",
"priority": "high",
"category": "accessibility",
"titleKey": "rec.move_content_earlier.title",
"descriptionKey": "rec.move_content_earlier.description",
"howToKey": "rec.move_content_earlier.howto",
"effort": "moderate",
"estimatedImpact": 4,
"checkScore": 0,
"checkDetails": "Main content starts at 85% of HTML"
},
{
"id": "reduce_page_weight",
"priority": "high",
"category": "contentEfficiency",
"titleKey": "rec.reduce_page_weight.title",
"descriptionKey": "rec.reduce_page_weight.description",
"howToKey": "rec.reduce_page_weight.howto",
"effort": "significant",
"estimatedImpact": 4,
"checkScore": 20,
"checkDetails": "HTML size: 511KB"
},
{
"id": "fix_heading_hierarchy",
"priority": "medium",
"category": "semanticHtml",
"titleKey": "rec.fix_heading_hierarchy.title",
"descriptionKey": "rec.fix_heading_hierarchy.description",
"howToKey": "rec.fix_heading_hierarchy.howto",
"effort": "quick-win",
"estimatedImpact": 6,
"checkScore": 70,
"checkDetails": "no <h1>"
},
{
"id": "add_open_graph",
"priority": "medium",
"category": "structuredData",
"titleKey": "rec.add_open_graph.title",
"descriptionKey": "rec.add_open_graph.description",
"howToKey": "rec.add_open_graph.howto",
"effort": "quick-win",
"estimatedImpact": 4,
"checkScore": 67,
"checkDetails": "2/3 OG tags present"
}
],
"llmsTxtPreview": "# es.amnesty.org\n\n> Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.\n\n## Main\n- [Visita la web de Amnistía Internacional España](https://www.es.amnesty.org/): Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo l…\n- [Lo más visto](https://www.es.amnesty.org/lo-mas-visto/)\n- [Trump y los derechos humanos](https://www.es.amnesty.org/en-que-estamos/campanas/trump-derechos-humanos/)\n- [La pena de muerte](https://www.es.amnesty.org/en-que-estamos/temas/pena-de-muerte/)\n- [Qué son los derechos humanos](https://www.es.amnesty.org/en-que-estamos/temas/derechos-humanos/)\n- [Violencia contra las mujeres en España](https://www.es.amnesty.org/en-que-estamos/espana/violencia-contra-las-mujeres/)\n- [Quiénes somos](https://www.es.amnesty.org/quienes-somos/)\n- [Historia y logros](https://www.es.amnesty.org/quienes-somos/historia/)\n- [Objetivos](https://www.es.amnesty.org/quienes-somos/objetivos/)\n\n## Blog\n- [Qué está pasando en Irán](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/que-esta-pasando-entre-iran-estados-unidos-e-israel-donde-quedan-los-derechos-humanos/)\n- [20 grandes frases para mostrar tu orgullo LGBTIQ+](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/20-grandes-frases-para-mostrar-tu-orgullo-lgbti/)\n- [Blog](https://www.es.amnesty.org/en-que-estamos/blog/)\n\n",
"llmsTxtExisting": null,
"emergingProtocols": {
"oauthDiscovery": {
"exists": false,
"url": "https://www.es.amnesty.org/.well-known/oauth-authorization-server"
},
"mcpServerCard": {
"exists": false,
"url": "https://www.es.amnesty.org/.well-known/mcp.json"
},
"a2aAgentCard": {
"exists": false,
"url": "https://www.es.amnesty.org/.well-known/agent.json"
},
"count": 0
},
"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": "# es.amnesty.org\n\n> Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.\n\n## Main\n- [Visita la web de Amnistía Internacional España](https://www.es.amnesty.org/): Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo l…\n- [Lo más visto](https://www.es.amnesty.org/lo-mas-visto/)\n- [Trump y los derechos humanos](https://www.es.amnesty.org/en-que-estamos/campanas/trump-derechos-humanos/)\n- [La pena de muerte](https://www.es.amnesty.org/en-que-estamos/temas/pena-de-muerte/)\n- [Qué son los derechos humanos](https://www.es.amnesty.org/en-que-estamos/temas/derechos-humanos/)\n- [Violencia contra las mujeres en España](https://www.es.amnesty.org/en-que-estamos/espana/violencia-contra-las-mujeres/)\n- [Quiénes somos](https://www.es.amnesty.org/quienes-somos/)\n- [Historia y logros](https://www.es.amnesty.org/quienes-somos/historia/)\n- [Objetivos](https://www.es.amnesty.org/quienes-somos/objetivos/)\n\n## Blog\n- [Qué está pasando en Irán](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/que-esta-pasando-entre-iran-estados-unidos-e-israel-donde-quedan-los-derechos-humanos/)\n- [20 grandes frases para mostrar tu orgullo LGBTIQ+](https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/20-grandes-frases-para-mostrar-tu-orgullo-lgbti/)\n- [Blog](https://www.es.amnesty.org/en-que-estamos/blog/)\n\n",
"filename": "/llms.txt"
},
{
"id": "fix_heading_hierarchy",
"title": "Fix heading hierarchy",
"description": "Your page has no <h1>. Every page needs exactly one <h1> as the main heading. Add it inside your <main> or <article>.",
"language": "html",
"code": "<h1>Visita la web de Amnistía Internacional España</h1>",
"filename": "<main> or <article>"
},
{
"id": "add_open_graph",
"title": "Add missing Open Graph tags",
"description": "Open Graph tags control how your page looks when shared on social media and how AI platforms preview your URL in answers.",
"language": "html",
"code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://www.es.amnesty.org/\">\n<meta property=\"og:type\" content=\"website\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://www.es.amnesty.org/\">\n<meta property=\"og:type\" content=\"website\">"
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// Quick Open Graph tags without a plugin (skip if Yoast / Rank Math is active)\nadd_action('wp_head', function () {\n if (!is_singular()) return;\n $post = get_queried_object();\n $title = get_the_title($post);\n $desc = get_the_excerpt($post) ?: wp_trim_words(strip_tags($post->post_content), 30);\n $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n $url = get_permalink($post);\n printf('<meta property=\"og:title\" content=\"%s\">' . \"\\n\", esc_attr($title));\n printf('<meta property=\"og:description\" content=\"%s\">' . \"\\n\", esc_attr($desc));\n printf('<meta property=\"og:image\" content=\"%s\">' . \"\\n\", esc_url($image));\n printf('<meta property=\"og:url\" content=\"%s\">' . \"\\n\", esc_url($url));\n echo '<meta property=\"og:type\" content=\"article\">' . \"\\n\";\n}, 5);"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "app/page.tsx",
"code": "// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: \"Visita la web de Amnistía Internacional España\",\n description: \"Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.\",\n openGraph: {\n title: \"Visita la web de Amnistía Internacional España\",\n description: \"Una organización global e independiente de más de 10 millones de personas que actúan contra la injusticia defendiendo los derechos humanos en todo el mundo.\",\n url: \"https://www.es.amnesty.org/\",\n images: [\"https://yoursite.com/og-image.jpg\"],\n type: 'website',\n },\n};"
}
]
},
{
"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\">"
}
]
}
]
}
Use our API to get this programmatically (coming soon)
This JSON is for internal use — unlike the Markdown and llms.txt files, it's not meant to be uploaded to your site. Save it as a baseline to track your score over time, share it with your dev team, or integrate it into your CI/CD pipeline.
Share your results
Or ask an AI to help you fix it
Want a second opinion?
Cloudflare runs a free scanner too, and it asks a different question. It scores what your site publishes for agents to call — MCP server cards, Agent Skills, API catalogs, DNS records. We score whether an agent can reach, read and understand your content. A site can do well on one and poorly on the other, so expect two different numbers: they are answers to two different questions, and both are worth knowing.
Scan www.es.amnesty.org with CloudflareEmbed your badge
Add this badge to your site. It updates automatically as your AI-readiness score changes.
<script src="https://agentready.md/badge.js" data-id="7dc8fc84-fa80-4306-9561-5a6b59bfde26" data-domain="www.es.amnesty.org"></script>
[](https://agentready.md/r/7dc8fc84-fa80-4306-9561-5a6b59bfde26)
Coming soon: Full Domain Analysis
Crawl your entire domain, generate llms.txt, and monitor your AI-readiness score over time. Join the waitlist to be notified.
You're on the list! We'll notify you when it launches.