URL analizzato
https://audiovisual.ec.europa.eu
Punteggio AI-Ready
Scarso
su 100
Risparmio di token
Dettaglio del punteggio
Il tuo sito non ha un file llms.txt. Questo è lo standard emergente per aiutare gli agenti IA a comprendere la struttura del tuo sito.
Come implementare
Crea un file /llms.txt seguendo la specifica llmstxt.org. Includi una descrizione del sito e link alle tue pagine principali.
La tua pagina non utilizza elementi <article> o <main>. Questi contenitori semantici aiutano gli agenti IA a identificare l'area del contenuto principale e ignorare navigazione, barre laterali e piè di pagina.
Come implementare
Aggiungi un elemento <main> attorno al contenuto principale della tua pagina e usa <article> per blocchi di contenuto autonomi come post del blog o descrizioni di prodotti.
La struttura delle intestazioni presenta problemi (livelli saltati o tag h1 multipli). Una gerarchia pulita aiuta gli agenti IA a comprendere l'organizzazione dei contenuti.
Come implementare
Assicurati di avere esattamente un <h1> per pagina e che le intestazioni seguano un ordine sequenziale: h1 > h2 > h3. Non saltare livelli (es. da h1 direttamente a h3).
La tua pagina ha un basso rapporto tra contenuto reale e HTML totale. Gran parte del peso della pagina è markup, script o stili anziché contenuto.
Come implementare
Sposta i CSS in fogli di stile esterni, rimuovi gli stili inline, minimizza JavaScript e assicurati che l'HTML si concentri sulla struttura del contenuto.
Il tuo sito non supporta Markdown for Agents. Questo standard Cloudflare permette agli agenti IA di richiedere contenuti in formato markdown, riducendo l'uso dei token di ~80%.
Come implementare
Implementa uno o più: (1) Rispondere a Accept: text/markdown con contenuto markdown. (2) Servire URL .md (es: /pagina.md). (3) Aggiungere tag <link rel="alternate" type="text/markdown">. (4) Aggiungere header HTTP Link per la scoperta markdown.
Nessuna direttiva Content-Signal trovata. Queste indicano agli agenti IA come possono usare i tuoi contenuti (indicizzazione, input IA, dati di addestramento). La posizione consigliata è robots.txt.
Come implementare
Aggiungi Content-Signal al tuo robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Puoi anche aggiungerlo come header HTTP nelle risposte markdown.
La tua pagina si basa molto sugli elementi <div>. Elementi semantici come <section>, <nav>, <header>, <footer> e <aside> forniscono una struttura significativa per gli agenti IA.
Come implementare
Sostituisci i contenitori <div> generici con elementi semantici appropriati. Usa <section> per gruppi tematici, <nav> per la navigazione, <header>/<footer> per intestazioni e piè di pagina.
Nessun dato strutturato Schema.org trovato. JSON-LD aiuta gli agenti IA a estrarre informazioni fattuali e strutturate dalle tue pagine.
Come implementare
Aggiungi un blocco <script type="application/ld+json"> con markup Schema.org. Usa tipi appropriati: Article per post del blog, Product per pagine prodotto, Organization per la pagina aziendale.
Tag Open Graph mancanti o incompleti. I tag OG aiutano gli agenti IA (e le piattaforme social) a comprendere titolo, descrizione e immagine della tua pagina.
Come implementare
Aggiungi i meta tag og:title, og:description e og:image nel <head> della tua pagina.
Nessuna meta descrizione trovata. Questo tag fornisce un riassunto conciso della pagina per agenti IA e motori di ricerca.
Come implementare
Aggiungi un tag <meta name="description" content="..."> con una descrizione di 150-160 caratteri del contenuto della pagina.
Audiovisual Service
Carica questo file come /index.md sul tuo server affinché gli agenti IA possano accedere a una versione pulita della tua pagina. Puoi anche configurare la negoziazione dei contenuti Accept: text/markdown per servirlo automaticamente.
llms.txt generato per questa singola pagina
# audiovisual.ec.europa.eu ## Main - [Audiovisual Service](https://audiovisual.ec.europa.eu)
Il llms.txt completo richiede un'analisi dell'intero dominio (prossimamente)
Carica questo file come https://audiovisual.ec.europa.eu/llms.txt nella radice del tuo dominio. Agenti IA come ChatGPT, Claude e Perplexity controllano questo file per comprendere la struttura del tuo sito.
HTML Semantico
Missing <article> and <main> elements
No headings found
0 semantic elements, 2 divs (ratio: 0%)
No images found
Avg div depth: 0.5, max: 1
Efficienza dei contenuti
100% token reduction (HTML→Markdown)
Content ratio: 0.0% (0 content chars / 84202 HTML bytes)
0/29 elements with inline styles (0.0%)
HTML size: 82KB
Scopribilità IA
No llms.txt found
robots.txt exists
All major AI bots allowed
Sitemap found
Dati Strutturati
No JSON-LD / Schema.org found
0/3 OG tags present
No meta description
No canonical URL
No lang attribute on <html>
Accessibilità
Content available without JavaScript
Page size: 82KB
Main content starts at 100% of HTML
{
"url": "https://audiovisual.ec.europa.eu",
"timestamp": 1775649313480,
"fetch": {
"mode": "simple",
"timeMs": 13,
"htmlSizeBytes": 84202,
"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": "Audiovisual Service",
"excerpt": "",
"byline": null,
"siteName": null,
"lang": null,
"contentLength": 0,
"metadata": {
"description": null,
"ogTitle": null,
"ogDescription": null,
"ogImage": null,
"ogType": null,
"canonical": null,
"lang": null,
"schemas": [],
"robotsMeta": null,
"author": null,
"generator": null,
"markdownAlternateHref": null
}
},
"markdown": "\n",
"fullPageMarkdown": "Audiovisual Service\n",
"markdownStats": {
"images": 0,
"links": 0,
"tables": 0,
"codeBlocks": 0,
"headings": 0
},
"tokens": {
"htmlTokens": 31967,
"markdownTokens": 1,
"reduction": 31966,
"reductionPercent": 100
},
"score": {
"score": 44,
"grade": "D",
"dimensions": {
"semanticHtml": {
"score": 35,
"weight": 20,
"grade": "F",
"checks": {
"uses_article_or_main": {
"score": 0,
"weight": 20,
"details": "Missing <article> and <main> elements"
},
"proper_heading_hierarchy": {
"score": 0,
"weight": 25,
"details": "No headings found"
},
"semantic_elements": {
"score": 0,
"weight": 20,
"details": "0 semantic elements, 2 divs (ratio: 0%)"
},
"meaningful_alt_texts": {
"score": 100,
"weight": 15,
"details": "No images found"
},
"low_div_nesting": {
"score": 100,
"weight": 20,
"details": "Avg div depth: 0.5, max: 1"
}
}
},
"contentEfficiency": {
"score": 70,
"weight": 25,
"grade": "C",
"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.0% (0 content chars / 84202 HTML bytes)"
},
"minimal_inline_styles": {
"score": 100,
"weight": 15,
"details": "0/29 elements with inline styles (0.0%)"
},
"reasonable_page_weight": {
"score": 100,
"weight": 15,
"details": "HTML size: 82KB"
}
}
},
"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": 0,
"weight": 15,
"grade": "F",
"checks": {
"has_schema_org": {
"score": 0,
"weight": 30,
"details": "No JSON-LD / Schema.org found"
},
"has_open_graph": {
"score": 0,
"weight": 25,
"details": "0/3 OG tags present"
},
"has_meta_description": {
"score": 0,
"weight": 20,
"details": "No meta description"
},
"has_canonical_url": {
"score": 0,
"weight": 15,
"details": "No canonical URL"
},
"has_lang_attribute": {
"score": 0,
"weight": 10,
"details": "No lang attribute on <html>"
}
}
},
"accessibility": {
"score": 70,
"weight": 15,
"grade": "C",
"checks": {
"content_without_js": {
"score": 100,
"weight": 40,
"details": "Content available without JavaScript"
},
"reasonable_page_size": {
"score": 100,
"weight": 30,
"details": "Page size: 82KB"
},
"fast_content_position": {
"score": 0,
"weight": 30,
"details": "Main content starts at 100% 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": "add_article_main",
"priority": "critical",
"category": "semanticHtml",
"titleKey": "rec.add_article_main.title",
"descriptionKey": "rec.add_article_main.description",
"howToKey": "rec.add_article_main.howto",
"effort": "quick-win",
"estimatedImpact": 8,
"checkScore": 0,
"checkDetails": "Missing <article> and <main> elements"
},
{
"id": "fix_heading_hierarchy",
"priority": "critical",
"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": 0,
"checkDetails": "No headings 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.0% (0 content chars / 84202 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": "critical",
"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": 0,
"checkDetails": "0 semantic elements, 2 divs (ratio: 0%)"
},
{
"id": "add_schema_org",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_schema_org.title",
"descriptionKey": "rec.add_schema_org.description",
"howToKey": "rec.add_schema_org.howto",
"effort": "moderate",
"estimatedImpact": 6,
"checkScore": 0,
"checkDetails": "No JSON-LD / Schema.org found"
},
{
"id": "add_open_graph",
"priority": "high",
"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": 0,
"checkDetails": "0/3 OG tags present"
},
{
"id": "add_meta_description",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_meta_description.title",
"descriptionKey": "rec.add_meta_description.description",
"howToKey": "rec.add_meta_description.howto",
"effort": "quick-win",
"estimatedImpact": 4,
"checkScore": 0,
"checkDetails": "No meta description"
}
],
"llmsTxtPreview": "# audiovisual.ec.europa.eu\n\n## Main\n- [Audiovisual Service](https://audiovisual.ec.europa.eu)\n\n",
"llmsTxtExisting": null,
"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": "# audiovisual.ec.europa.eu\n\n## Main\n- [Audiovisual Service](https://audiovisual.ec.europa.eu)\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>Audiovisual Service</h1>",
"filename": "<main> or <article>"
},
{
"id": "add_open_graph",
"title": "Add missing Open Graph tags",
"description": "These tags control how your page looks when shared on social media and some AI platforms.",
"language": "html",
"code": "<meta property=\"og:title\" content=\"Audiovisual Service\">\n<meta property=\"og:description\" content=\"Page description.\">\n<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://audiovisual.ec.europa.eu\">\n<meta property=\"og:type\" content=\"website\">",
"filename": "<head>"
},
{
"id": "add_meta_description",
"title": "Add meta description",
"description": "A good meta description (50-160 characters) helps AI agents understand your page quickly.",
"language": "html",
"code": "<meta name=\"description\" content=\"Audiovisual Service\">",
"filename": "<head>"
},
{
"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\": \"Audiovisual Service\",\n \"description\": \"Page description.\",\n \"url\": \"https://audiovisual.ec.europa.eu\",\n \"inLanguage\": \"en\"\n}\n</script>",
"filename": "<head>"
},
{
"id": "add_article_main",
"title": "Wrap content in <main> and <article>",
"description": "Semantic HTML landmarks help AI agents identify the main content of your page.",
"language": "html",
"code": "<main>\n <article>\n <h1>Your Page Title</h1>\n <p>Your content here...</p>\n </article>\n</main>",
"filename": "<body>"
},
{
"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"
}
]
}
Usa la nostra API per ottenere questo programmaticamente (prossimamente)
Questo JSON è per uso interno — a differenza dei file Markdown e llms.txt, non è destinato ad essere caricato sul tuo sito. Salvalo come riferimento per monitorare il tuo punteggio nel tempo, condividilo con il tuo team di sviluppo o integralo nella tua pipeline CI/CD.
Prossimamente: Analisi completa del dominio
Scansiona l'intero dominio, genera llms.txt e monitora il tuo punteggio di prontezza IA nel tempo. Iscriviti alla lista d'attesa.