Verified AgentReady.md certificate
Issued sig: 230244df147141f1 Verify →

Analyzed URL

https://polenmadrid.com/

Analyze another URL

AI-Ready Score

74 / C

Fair

out of 100

Token Savings

HTML tokens 10.638
Markdown tokens 177
Savings 98%

Score Breakdown

Semantic HTML 85/100
Content Efficiency 63/100
AI Discoverability 55/100
Structured Data 85/100
Accessibility 100/100

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.

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.

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.

Your page relies heavily on <div> elements. Semantic elements like <section>, <nav>, <header>, <footer>, and <aside> provide meaningful structure for AI agents.

How to implement

Replace generic <div> containers with appropriate semantic elements. Use <section> for thematic groups, <nav> for navigation, <header>/<footer> for page/section headers and footers.

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.

Markdown tokens: 177
Predicción

## Estimación de niveles de polen

Estimaciones para el Sábado, 28 de marzo de 2026 basadas en datos históricos de los últimos 5 años y tendencia reciente.

### Temporada actual

Cupresáceas/Taxáceas Bajo 26 granos/m³ ●●○

Plátano de paseo Muy alto 1.627 granos/m³ ●●●

**Otros alérgenos principales**

Moreras Muy alto 2.026 granos/m³ ●●●

Pinos Muy alto 117 granos/m³ ●●●

Populus Alto 78 granos/m³ ●●●

Estas estimaciones son orientativas y se actualizarán automáticamente cuando lleguen los datos oficiales.
Niveles de polen hoy en Madrid — PolenMadrid

[🌼 PolenMadrid](https://polenmadrid.com/)

Español English Français Italiano

# Niveles de polen en Madrid

Último dato oficial: Jueves, 26 de marzo de 2026 Última estimación: Sábado, 28 de marzo de 2026

Predicción## Estimación de niveles de polen

Estimaciones para el Sábado, 28 de marzo de 2026 basadas en datos históricos de los últimos 5 años y tendencia reciente.

### Temporada actual

Cupresáceas/Taxáceas Bajo 26 granos/m³ ●●○

Plátano de paseo Muy alto 1.627 granos/m³ ●●●

**Otros alérgenos principales**

Moreras Muy alto 2.026 granos/m³ ●●●

Pinos Muy alto 117 granos/m³ ●●●

Populus Alto 78 granos/m³ ●●●

Estas estimaciones son orientativas y se actualizarán automáticamente cuando lleguen los datos oficiales.

## Temporada actual

Estos alérgenos están en temporada alta ahora mismo, una media de todas las estaciones:

[Plátano de paseo Muy alto 1.132 granos/m³](https://polenmadrid.com/tipo/platano-de-paseo) [Cupresáceas/Taxáceas Bajo 17 granos/m³](https://polenmadrid.com/tipo/cupresaceas-taxaceas)

**Otros alérgenos principales**

[Moreras Muy alto 270 granos/m³](https://polenmadrid.com/tipo/moreras) [Pinos Muy alto 177 granos/m³](https://polenmadrid.com/tipo/pinos) [Populus Muy alto 121 granos/m³](https://polenmadrid.com/tipo/populus)

Valor máximo entre todas las estaciones del último día con datos oficiales.

## Estaciones de detección

[

Alcalá de Henares Muy alto

Este

Plátano de paseo 975 ↑

Moreras 270 ↑

Populus 78 ↑

](https://polenmadrid.com/estacion/alcala-de-henares)[

Alcobendas Muy alto

Norte

Plátano de paseo 393 ↑

Populus 121 ↑

Moreras 67 ↑

](https://polenmadrid.com/estacion/alcobendas)[

Aranjuez Alto

Sur

Plátano de paseo 266 ↑

Moreras 61 ↑

Pinos 31 ↑

](https://polenmadrid.com/estacion/aranjuez)[

Collado Villalba Medio

Sierra

Populus 30 ↑

Cupresáceas/Taxáceas 12 ↑

Sauces 9 ↑

](https://polenmadrid.com/estacion/collado-villalba)[

Coslada Muy alto

Este

Plátano de paseo 646 ↑

Moreras 195 ↑

Pinos 61 ↑

](https://polenmadrid.com/estacion/coslada)[

Getafe Muy alto

Sur

Plátano de paseo 833 ↑

Moreras 91 ↑

Pinos 38 ↑

](https://polenmadrid.com/estacion/getafe)[

Las Rozas Medio

Oeste

Populus 36 ↑

Moreras 7 ↑

Plátano de paseo 5 ↑

](https://polenmadrid.com/estacion/las-rozas)[

Leganés Medio

Sur

Moreras 23 ↑

Pinos 15 ↑

Quercus 14 ↑

](https://polenmadrid.com/estacion/leganes)[

Madrid-Arganzuela Muy alto

Capital

Plátano de paseo 1.014 ↑

Pinos 177 ↑

Moreras 143 ↑

](https://polenmadrid.com/estacion/madrid-arganzuela)[

Madrid-Barrio Salamanca Muy alto

Capital

Plátano de paseo 700 ↑

Populus 100 ↑

Moreras 55 ↑

](https://polenmadrid.com/estacion/madrid-barrio-salamanca)[

Madrid-Ciudad Universitaria Muy alto

Capital

Plátano de paseo 1.132 ↑

Moreras 81 ↑

Otros 37 ↑

](https://polenmadrid.com/estacion/madrid-ciudad-universitaria)

↑ sube · ↓ baja · = sin cambios — respecto al día anterior

Usamos cookies analíticas para mejorar tu experiencia. Sin tu consentimiento, las estadísticas se recopilan de forma anónima sin cookies. [Más información](https://polenmadrid.com/legal#cookies).

Aceptar cookies Rechazar Gestionar

**Esenciales** Necesarias para el funcionamiento del sitio (sesión, seguridad).

Siempre activas

**Analíticas** Nos ayudan a entender cómo se usa el sitio para mejorarlo.

**Publicidad** Permiten mostrar anuncios relevantes.

Guardar preferencias

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.

Our recommendation

Download llms.txt
# PolenMadrid

> Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo, plátano, cupresáceas y 23 tipos más.

## Main
- [Niveles de polen hoy en Madrid — PolenMadrid](https://polenmadrid.com/): Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo,…
- [Mapa](https://polenmadrid.com/mapa)
- [Histórico](https://polenmadrid.com/historico)
- [Calendario](https://polenmadrid.com/calendario)
- [Alertas](https://polenmadrid.com/alertas)
- [Acerca de](https://polenmadrid.com/acerca)
- [Ayuda](https://polenmadrid.com/ayuda)

## Legal
- [Aviso legal y privacidad](https://polenmadrid.com/legal)

Full llms.txt requires domain-wide analysis (coming soon)

Upload this file to https://polenmadrid.com/llms.txt at the root of your domain. AI agents like ChatGPT, Claude, and Perplexity check this file to understand your site structure.

This site already has a llms.txt file.

Valid format
# PolenMadrid

> Real-time pollen levels and allergy information for Madrid, Spain. Data from Red Palinocam (Comunidad de Madrid). Updated daily January-June, weekly July-December.

## Main Pages

- [Home — Current Levels](https://polenmadrid.com/): Today's pollen levels across all stations and allergen types
- [Map](https://polenmadrid.com/mapa): Interactive map of 11 monitoring stations
- [Historic Data](https://polenmadrid.com/historico): Historical pollen data from 1993 to present
- [Health Guide](https://polenmadrid.com/salud): Allergy health information and recommendations
- [FAQ](https://polenmadrid.com/ayuda/faq): Frequently asked questions about pollen and allergies
- [Pollen Calendar](https://polenmadrid.com/calendario): Annual pollination calendar for Madrid

## API

- [API Documentation](https://polenmadrid.com/ayuda/api): REST API endpoints for pollen data (JSON)

## Data

- Source: Red Palinocam (Comunidad de Madrid)
- License: CC-BY 4.0
- Coverage: 11 stations, 27 pollen types, 1993-present
- Format: CSV/JSON via API

Semantic HTML

Uses article or main element (100/100)

Has <main>

Proper heading hierarchy (100/100)

Clean heading hierarchy

Uses semantic HTML elements (25/100)

8 semantic elements, 100 divs (ratio: 7%)

Meaningful image alt texts (100/100)

No images found

Low div nesting depth (100/100)

Avg div depth: 1.8, max: 4

Content Efficiency

Good token reduction ratio (100/100)

98% token reduction (HTML→Markdown)

Good content-to-noise ratio (0/100)

Content ratio: 1.4% (528 content chars / 37738 HTML bytes)

Minimal inline styles (50/100)

11/503 elements with inline styles (2.2%)

Reasonable page weight (100/100)

HTML size: 37KB

AI Discoverability

Has llms.txt file (100/100)

llms.txt exists and is valid

Has robots.txt file (100/100)

robots.txt exists

Robots.txt allows AI bots (100/100)

All major AI bots allowed

Has sitemap.xml (100/100)

Sitemap found

Markdown for Agents support (0/100)
&#10007; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
Has Content-Signal (robots.txt or HTTP headers) (0/100)
&#10003; robots.txt &#10003; HTTP header &#10007; Policy

Structured Data

Has Schema.org / JSON-LD (50/100)

JSON-LD found but basic types: WebSite, GovernmentService, SpecialAnnouncement

Has Open Graph tags (100/100)

All OG tags present

Has meta description (100/100)

Meta description: 156 chars

Has canonical URL (100/100)

Canonical URL present

Has lang attribute (100/100)

lang="es"

Accessibility

Content available without JavaScript (100/100)

Content available without JavaScript

Reasonable page size (100/100)

Page size: 37KB

Content appears early in HTML (100/100)

Main content starts at 15% of HTML

{
  "url": "https://polenmadrid.com/",
  "timestamp": 1774709002425,
  "fetch": {
    "mode": "simple",
    "timeMs": 181,
    "htmlSizeBytes": 37738,
    "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": "Niveles de polen hoy en Madrid — PolenMadrid",
    "excerpt": "Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo, plátano, cupresáceas y 23 tipos más.",
    "byline": null,
    "siteName": "PolenMadrid",
    "lang": "es",
    "contentLength": 528,
    "metadata": {
      "description": "Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo, plátano, cupresáceas y 23 tipos más.",
      "ogTitle": "Niveles de polen hoy en Madrid — PolenMadrid",
      "ogDescription": "Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo, plátano, cupresáceas y 23 tipos más.",
      "ogImage": "https://polenmadrid.com/assets/img/og-image.png",
      "ogType": "website",
      "canonical": "https://polenmadrid.com/",
      "lang": "es",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebSite",
          "name": "PolenMadrid",
          "url": "https://polenmadrid.com/",
          "description": "Información actualizada sobre niveles de polen y alergias en la Comunidad de Madrid. Datos de la Red Palinológica (Red Palinocam).",
          "inLanguage": [
            "es",
            "en",
            "fr",
            "it"
          ]
        },
        {
          "@context": "https://schema.org",
          "@type": "GovernmentService",
          "name": "Red Palinocam — Monitorización de polen",
          "serviceType": "Pollen monitoring",
          "provider": {
            "@type": "GovernmentOrganization",
            "name": "Comunidad de Madrid"
          },
          "areaServed": {
            "@type": "AdministrativeArea",
            "name": "Comunidad de Madrid, España"
          },
          "url": "https://polenmadrid.com/"
        },
        {
          "@context": "https://schema.org",
          "@type": "SpecialAnnouncement",
          "name": "Alerta de niveles altos de polen en Madrid",
          "text": "Se han detectado niveles muy altos de polen en la Comunidad de Madrid.",
          "datePosted": "2026-03-26",
          "spatialCoverage": {
            "@type": "AdministrativeArea",
            "name": "Comunidad de Madrid, España"
          },
          "category": "https://www.wikidata.org/wiki/Q188553"
        }
      ],
      "robotsMeta": null,
      "author": null,
      "generator": null,
      "markdownAlternateHref": null
    }
  },
  "markdown": "Predicción\n\n## Estimación de niveles de polen\n\nEstimaciones para el Sábado, 28 de marzo de 2026 basadas en datos históricos de los últimos 5 años y tendencia reciente.\n\n### Temporada actual\n\nCupresáceas/Taxáceas Bajo 26 granos/m³ ●●○\n\nPlátano de paseo Muy alto 1.627 granos/m³ ●●●\n\n**Otros alérgenos principales**\n\nMoreras Muy alto 2.026 granos/m³ ●●●\n\nPinos Muy alto 117 granos/m³ ●●●\n\nPopulus Alto 78 granos/m³ ●●●\n\nEstas estimaciones son orientativas y se actualizarán automáticamente cuando lleguen los datos oficiales.\n",
  "fullPageMarkdown": "Niveles de polen hoy en Madrid — PolenMadrid\n\n[🌼 PolenMadrid](https://polenmadrid.com/)\n\nEspañol English Français Italiano\n\n# Niveles de polen en Madrid\n\nÚltimo dato oficial: Jueves, 26 de marzo de 2026 Última estimación: Sábado, 28 de marzo de 2026\n\nPredicción## Estimación de niveles de polen\n\nEstimaciones para el Sábado, 28 de marzo de 2026 basadas en datos históricos de los últimos 5 años y tendencia reciente.\n\n### Temporada actual\n\nCupresáceas/Taxáceas Bajo 26 granos/m³ ●●○\n\nPlátano de paseo Muy alto 1.627 granos/m³ ●●●\n\n**Otros alérgenos principales**\n\nMoreras Muy alto 2.026 granos/m³ ●●●\n\nPinos Muy alto 117 granos/m³ ●●●\n\nPopulus Alto 78 granos/m³ ●●●\n\nEstas estimaciones son orientativas y se actualizarán automáticamente cuando lleguen los datos oficiales.\n\n## Temporada actual\n\nEstos alérgenos están en temporada alta ahora mismo, una media de todas las estaciones:\n\n[Plátano de paseo Muy alto 1.132 granos/m³](https://polenmadrid.com/tipo/platano-de-paseo) [Cupresáceas/Taxáceas Bajo 17 granos/m³](https://polenmadrid.com/tipo/cupresaceas-taxaceas)\n\n**Otros alérgenos principales**\n\n[Moreras Muy alto 270 granos/m³](https://polenmadrid.com/tipo/moreras) [Pinos Muy alto 177 granos/m³](https://polenmadrid.com/tipo/pinos) [Populus Muy alto 121 granos/m³](https://polenmadrid.com/tipo/populus)\n\nValor máximo entre todas las estaciones del último día con datos oficiales.\n\n## Estaciones de detección\n\n[\n\nAlcalá de Henares Muy alto\n\nEste\n\nPlátano de paseo 975 ↑\n\nMoreras 270 ↑\n\nPopulus 78 ↑\n\n](https://polenmadrid.com/estacion/alcala-de-henares)[\n\nAlcobendas Muy alto\n\nNorte\n\nPlátano de paseo 393 ↑\n\nPopulus 121 ↑\n\nMoreras 67 ↑\n\n](https://polenmadrid.com/estacion/alcobendas)[\n\nAranjuez Alto\n\nSur\n\nPlátano de paseo 266 ↑\n\nMoreras 61 ↑\n\nPinos 31 ↑\n\n](https://polenmadrid.com/estacion/aranjuez)[\n\nCollado Villalba Medio\n\nSierra\n\nPopulus 30 ↑\n\nCupresáceas/Taxáceas 12 ↑\n\nSauces 9 ↑\n\n](https://polenmadrid.com/estacion/collado-villalba)[\n\nCoslada Muy alto\n\nEste\n\nPlátano de paseo 646 ↑\n\nMoreras 195 ↑\n\nPinos 61 ↑\n\n](https://polenmadrid.com/estacion/coslada)[\n\nGetafe Muy alto\n\nSur\n\nPlátano de paseo 833 ↑\n\nMoreras 91 ↑\n\nPinos 38 ↑\n\n](https://polenmadrid.com/estacion/getafe)[\n\nLas Rozas Medio\n\nOeste\n\nPopulus 36 ↑\n\nMoreras 7 ↑\n\nPlátano de paseo 5 ↑\n\n](https://polenmadrid.com/estacion/las-rozas)[\n\nLeganés Medio\n\nSur\n\nMoreras 23 ↑\n\nPinos 15 ↑\n\nQuercus 14 ↑\n\n](https://polenmadrid.com/estacion/leganes)[\n\nMadrid-Arganzuela Muy alto\n\nCapital\n\nPlátano de paseo 1.014 ↑\n\nPinos 177 ↑\n\nMoreras 143 ↑\n\n](https://polenmadrid.com/estacion/madrid-arganzuela)[\n\nMadrid-Barrio Salamanca Muy alto\n\nCapital\n\nPlátano de paseo 700 ↑\n\nPopulus 100 ↑\n\nMoreras 55 ↑\n\n](https://polenmadrid.com/estacion/madrid-barrio-salamanca)[\n\nMadrid-Ciudad Universitaria Muy alto\n\nCapital\n\nPlátano de paseo 1.132 ↑\n\nMoreras 81 ↑\n\nOtros 37 ↑\n\n](https://polenmadrid.com/estacion/madrid-ciudad-universitaria)\n\n↑ sube · ↓ baja · = sin cambios — respecto al día anterior\n\nUsamos cookies analíticas para mejorar tu experiencia. Sin tu consentimiento, las estadísticas se recopilan de forma anónima sin cookies. [Más información](https://polenmadrid.com/legal#cookies).\n\nAceptar cookies Rechazar Gestionar\n\n**Esenciales** Necesarias para el funcionamiento del sitio (sesión, seguridad).\n\nSiempre activas\n\n**Analíticas** Nos ayudan a entender cómo se usa el sitio para mejorarlo.\n\n**Publicidad** Permiten mostrar anuncios relevantes.\n\nGuardar preferencias\n",
  "markdownStats": {
    "images": 0,
    "links": 0,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 2
  },
  "tokens": {
    "htmlTokens": 10638,
    "markdownTokens": 177,
    "reduction": 10461,
    "reductionPercent": 98
  },
  "score": {
    "score": 74,
    "grade": "C",
    "dimensions": {
      "semanticHtml": {
        "score": 85,
        "weight": 20,
        "grade": "B",
        "checks": {
          "uses_article_or_main": {
            "score": 100,
            "weight": 20,
            "details": "Has <main>"
          },
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 25,
            "details": "Clean heading hierarchy"
          },
          "semantic_elements": {
            "score": 25,
            "weight": 20,
            "details": "8 semantic elements, 100 divs (ratio: 7%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 20,
            "details": "Avg div depth: 1.8, max: 4"
          }
        }
      },
      "contentEfficiency": {
        "score": 63,
        "weight": 25,
        "grade": "C",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "98% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "details": "Content ratio: 1.4% (528 content chars / 37738 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 50,
            "weight": 15,
            "details": "11/503 elements with inline styles (2.2%)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 15,
            "details": "HTML size: 37KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 55,
        "weight": 25,
        "grade": "D",
        "checks": {
          "has_llms_txt": {
            "score": 100,
            "weight": 20,
            "details": "llms.txt exists and is valid"
          },
          "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": 85,
        "weight": 15,
        "grade": "B",
        "checks": {
          "has_schema_org": {
            "score": 50,
            "weight": 30,
            "details": "JSON-LD found but basic types: WebSite, GovernmentService, SpecialAnnouncement"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 25,
            "details": "All 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\""
          }
        }
      },
      "accessibility": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 37KB"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 30,
            "details": "Main content starts at 15% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "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: 1.4% (528 content chars / 37738 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": "add_semantic_elements",
      "priority": "high",
      "category": "semanticHtml",
      "titleKey": "rec.add_semantic_elements.title",
      "descriptionKey": "rec.add_semantic_elements.description",
      "howToKey": "rec.add_semantic_elements.howto",
      "effort": "moderate",
      "estimatedImpact": 5,
      "checkScore": 25,
      "checkDetails": "8 semantic elements, 100 divs (ratio: 7%)"
    },
    {
      "id": "remove_inline_styles",
      "priority": "medium",
      "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": 50,
      "checkDetails": "11/503 elements with inline styles (2.2%)"
    }
  ],
  "llmsTxtPreview": "# PolenMadrid\n\n> Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo, plátano, cupresáceas y 23 tipos más.\n\n## Main\n- [Niveles de polen hoy en Madrid — PolenMadrid](https://polenmadrid.com/): Consulta los niveles de polen en Madrid hoy. Datos actualizados de 11 estaciones de la Red Palinocam: gramíneas, olivo,…\n- [Mapa](https://polenmadrid.com/mapa)\n- [Histórico](https://polenmadrid.com/historico)\n- [Calendario](https://polenmadrid.com/calendario)\n- [Alertas](https://polenmadrid.com/alertas)\n- [Acerca de](https://polenmadrid.com/acerca)\n- [Ayuda](https://polenmadrid.com/ayuda)\n\n## Legal\n- [Aviso legal y privacidad](https://polenmadrid.com/legal)\n\n",
  "llmsTxtExisting": "# PolenMadrid\n\n> Real-time pollen levels and allergy information for Madrid, Spain. Data from Red Palinocam (Comunidad de Madrid). Updated daily January-June, weekly July-December.\n\n## Main Pages\n\n- [Home — Current Levels](https://polenmadrid.com/): Today's pollen levels across all stations and allergen types\n- [Map](https://polenmadrid.com/mapa): Interactive map of 11 monitoring stations\n- [Historic Data](https://polenmadrid.com/historico): Historical pollen data from 1993 to present\n- [Health Guide](https://polenmadrid.com/salud): Allergy health information and recommendations\n- [FAQ](https://polenmadrid.com/ayuda/faq): Frequently asked questions about pollen and allergies\n- [Pollen Calendar](https://polenmadrid.com/calendario): Annual pollination calendar for Madrid\n\n## API\n\n- [API Documentation](https://polenmadrid.com/ayuda/api): REST API endpoints for pollen data (JSON)\n\n## Data\n\n- Source: Red Palinocam (Comunidad de Madrid)\n- License: CC-BY 4.0\n- Coverage: 11 stations, 27 pollen types, 1993-present\n- Format: CSV/JSON via API",
  "snippets": [
    {
      "id": "add_content_signals",
      "title": "Add Content-Signal directives",
      "description": "Content-Signal tells AI agents how they may use your content. The recommended location is robots.txt, but you can also add it as an HTTP header.",
      "language": "txt",
      "code": "# robots.txt (recommended, canonical location):\nUser-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no\n\n# Nginx — add to server block (optional, for HTTP header):\n# add_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;\n\n# Apache — add to .htaccess (optional, for HTTP header):\n# Header set Content-Signal \"search=yes, ai-input=yes, ai-train=no\"",
      "filename": "/robots.txt"
    },
    {
      "id": "add_markdown_negotiation",
      "title": "Support Markdown for Agents",
      "description": "Implement one or more of the 4 Markdown for Agents mechanisms to let AI agents request content in markdown format.",
      "language": "html",
      "code": "<!-- 1. Content negotiation: respond to Accept: text/markdown -->\n<!-- In your server/framework, check the Accept header and return markdown -->\n<!-- with Content-Type: text/markdown -->\n\n<!-- 2. Serve .md URLs (e.g., /about.md alongside /about) -->\n<!-- Generate static .md files or handle .md routes in your app -->\n\n<!-- 3. Add <link> tag in your HTML <head>: -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">\n\n<!-- 4. Add Link HTTP header on HTML responses: -->\n<!-- Link: </page.md>; rel=\"alternate\"; type=\"text/markdown\" -->\n\n<!-- Best practice: include Vary: Accept and X-Markdown-Tokens headers -->\n<!-- on markdown responses -->",
      "filename": "<head> + server config"
    }
  ]
}

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

Twitter LinkedIn

Embed your badge

Add this badge to your site. It updates automatically as your AI-readiness score changes.

AgentReady.md score for polenmadrid.com
Script Recommended
<script src="https://agentready.md/badge.js" data-id="c01befe7-b814-40bd-bef0-12f190d9fb05" data-domain="polenmadrid.com"></script>
Markdown
[![AgentReady.md score for polenmadrid.com](https://agentready.md/badge/polenmadrid.com.svg)](https://agentready.md/r/c01befe7-b814-40bd-bef0-12f190d9fb05)

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.