URL analizzato
https://prompt-vault-cg3.pages.dev/
Punteggio AI-Ready
Scarso
su 100
Risparmio di token
Dettaglio del punteggio
Protocolli emergenti
0 di 3 rilevatiEndpoint well-known cercati dagli agenti IA. Rilevato significa che un agente può scoprire e connettersi automaticamente al tuo servizio.
-
OAuth Discovery RFC 8414
/.well-known/oauth-authorization-server -
MCP Server Card Anthropic
/.well-known/mcp.json -
A2A Agent Card Google
/.well-known/agent.json
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 sitemap trovata. Una sitemap aiuta gli agenti IA a scoprire tutte le pagine del tuo sito.
Come implementare
Crea un /sitemap.xml che elenchi tutte le tue pagine pubbliche. La maggior parte delle piattaforme CMS può generarla automaticamente.
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.
Alcune immagini non hanno testi alt descrittivi. Buoni testi alt aiutano gli agenti IA a comprendere il contenuto e il contesto delle immagini.
Come implementare
Aggiungi attributi alt descrittivi a tutte le immagini. Descrivi cosa mostra l'immagine, non solo 'immagine' o 'foto'. Per le immagini decorative, usa alt="" (vuoto).
Molti elementi hanno attributi di stile inline. Questi aggiungono rumore per gli agenti IA che estraggono contenuti.
Come implementare
Sposta tutti gli stili inline in classi CSS nel tuo foglio di stile. Usa framework CSS utility come Tailwind se hai bisogno di molti stili unici.
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.
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.
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.
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.
用途別テンプレート / ローカルDB / コピー中心 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます
Prompt Vault 用途別テンプレート / ローカルDB / コピー中心 # Prompt Vault 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます × Category ## Title Purpose コピー ノード 関係 おすすめ 別名 要約 手順 備考 全文プロンプト
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.
La nostra raccomandazione
# prompt-vault-cg3.pages.dev > 用途別テンプレート / ローカルDB / コピー中心 ## Main - [Prompt Vault](https://prompt-vault-cg3.pages.dev/): 用途別テンプレート / ローカルDB / コピー中心
Il llms.txt completo richiede un'analisi dell'intero dominio (prossimamente)
Carica questo file come https://prompt-vault-cg3.pages.dev/llms.txt nella radice del tuo dominio. Agenti IA come ChatGPT, Claude e Perplexity controllano questo file per comprendere la struttura del tuo sito.
Questo sito ha già un file llms.txt.
Formato non valido — dovrebbe iniziare con un titolo # e avere contenuto significativo<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Prompt Vault</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<main class="page">
<section class="hero">
<div class="panel hero-copy">
<div class="eyebrow">用途別テンプレート / ローカルDB / コピー中心</div>
<h1>Prompt Vault</h1>
<p class="lead">直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。</p>
</div>
</section>
<section class="panel detail">
<div class="head" style="align-items: center;">
<div>
<div class="subtle" id="gallery-count">0 items</div>
<h2 id="detail-title">ギャラリー</h2>
</div>
<input id="search" class="search" placeholder="検索: タイトル / 目的 / ブロックID" style="max-width: 320px; margin-bottom: 0;" />
</div>
<div class="gallery" id="gallery"></div>
<div class="template-section">
<div class="head template-section__head">
<div>
<div class="subtle" id="template-count">0 templates</div>
<h3>テンプレート一覧</h3>
</div>
<div class="subtle">画像がないものもここから開けます</div>
</div>
<div class="template-rail" id="template-rail"></div>
</div>
</section>
</main>
<div class="modal" id="modal">
<div class="modal-close" id="modal-close">×</div>
<div class="modal-content">
<div class="modal-image-view">
<img id="modal-img" src="" alt="" />
</div>
<div class="modal-info">
<div>
<div class="eyebrow" id="modal-kind">Category</div>
<h2 id="modal-title">Title</h2>
<p class="subtle" id="modal-purpose" style="margin-top: 4px; margin-bottom: 16px;">Purpose</p>
<button class="button primary" id="modal-copy" style="width: 100%; margin-bottom: 16px;">コピー</button>
</div>
<div class="block" id="modal-primary-block">
<div class="subtle" id="modal-primary-title">ノード</div>
<div class="tagrow" id="modal-primary"></div>
</div>
<div class="block" id="modal-secondary-block">
<div class="subtle" id="modal-secondary-title">関係</div>
<div class="tagrow" id="modal-secondary"></div>
</div>
<div class="block" id="modal-recommend-block">
<div class="subtle">おすすめ</div>
<div class="recommend-grid" id="modal-recommend"></div>
</div>
<div class="block" id="modal-aliases-block">
<div class="subtle">別名</div>
<div class="tagrow" id="modal-aliases"></div>
</div>
<div class="block" id="modal-summary-block">
<div class="subtle">要約</div>
<p id="modal-summary" class="modal-summary"></p>
</div>
<div class="block" id="modal-steps-block">
<div class="subtle">手順</div>
<div class="recipe" id="modal-steps"></div>
</div>
<div class="block" id="modal-notes-block">
<div class="subtle">備考</div>
<p id="modal-notes" class="modal-summary"></p>
</div>
<div class="block" style="margin-top: 0;">
<div class="subtle" id="modal-prompt-title">全文プロンプト</div>
<pre id="modal-prompt"></pre>
</div>
</div>
</div>
</div>
<script src="app.js" defer></script>
</body>
</html>
HTML Semantico
Has <main>
Clean heading hierarchy
3 semantic elements, 40 divs (ratio: 7%)
0/1 images with meaningful alt text
Avg div depth: 2.5, max: 4
Efficienza dei contenuti
90% token reduction (HTML→Markdown)
Content ratio: 8.1% (296 content chars / 3657 HTML bytes)
5/63 elements with inline styles (7.9%)
HTML size: 4KB
Scopribilità IA
llms.txt exists but appears empty or invalid
robots.txt exists
All major AI bots allowed
No sitemap found
Dati Strutturati
No JSON-LD / Schema.org found
0/3 OG tags present
No meta description
No canonical URL
lang="ja"
Accessibilità
Content available without JavaScript
Page size: 4KB
Main content starts at 6% of HTML
{
"url": "https://prompt-vault-cg3.pages.dev/",
"timestamp": 1777611816430,
"fetch": {
"mode": "simple",
"timeMs": 58,
"htmlSizeBytes": 3657,
"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": "Prompt Vault",
"excerpt": "用途別テンプレート / ローカルDB / コピー中心",
"byline": null,
"siteName": null,
"lang": "ja",
"contentLength": 296,
"metadata": {
"description": null,
"ogTitle": null,
"ogDescription": null,
"ogImage": null,
"ogType": null,
"canonical": null,
"lang": "ja",
"schemas": [],
"robotsMeta": null,
"author": null,
"generator": null,
"markdownAlternateHref": null
}
},
"markdown": "用途別テンプレート / ローカルDB / コピー中心\n\n直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。\n\n0 items\n\n## ギャラリー\n\n0 templates\n\n### テンプレート一覧\n\n画像がないものもここから開けます\n",
"fullPageMarkdown": "Prompt Vault\n\n用途別テンプレート / ローカルDB / コピー中心\n\n# Prompt Vault\n\n直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。\n\n0 items\n\n## ギャラリー\n\n0 templates\n\n### テンプレート一覧\n\n画像がないものもここから開けます\n\n×\n\nCategory\n\n## Title\n\nPurpose\n\nコピー\n\nノード\n\n関係\n\nおすすめ\n\n別名\n\n要約\n\n手順\n\n備考\n\n全文プロンプト\n",
"markdownStats": {
"images": 0,
"links": 0,
"tables": 0,
"codeBlocks": 0,
"headings": 2
},
"tokens": {
"htmlTokens": 1051,
"markdownTokens": 108,
"reduction": 943,
"reductionPercent": 90
},
"score": {
"score": 55,
"grade": "D",
"dimensions": {
"semanticHtml": {
"score": 70,
"weight": 20,
"grade": "C",
"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": 23,
"weight": 20,
"details": "3 semantic elements, 40 divs (ratio: 7%)"
},
"meaningful_alt_texts": {
"score": 0,
"weight": 15,
"details": "0/1 images with meaningful alt text"
},
"low_div_nesting": {
"score": 100,
"weight": 20,
"details": "Avg div depth: 2.5, max: 4"
}
}
},
"contentEfficiency": {
"score": 63,
"weight": 25,
"grade": "C",
"checks": {
"token_reduction_ratio": {
"score": 100,
"weight": 40,
"details": "90% token reduction (HTML→Markdown)"
},
"content_to_noise_ratio": {
"score": 25,
"weight": 30,
"details": "Content ratio: 8.1% (296 content chars / 3657 HTML bytes)"
},
"minimal_inline_styles": {
"score": 0,
"weight": 15,
"details": "5/63 elements with inline styles (7.9%)"
},
"reasonable_page_weight": {
"score": 100,
"weight": 15,
"details": "HTML size: 4KB"
}
}
},
"aiDiscoverability": {
"score": 35,
"weight": 25,
"grade": "F",
"checks": {
"has_llms_txt": {
"score": 50,
"weight": 20,
"details": "llms.txt exists but appears empty or invalid"
},
"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": 0,
"weight": 10,
"details": "No 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": 10,
"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": 100,
"weight": 10,
"details": "lang=\"ja\""
}
}
},
"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: 4KB"
},
"fast_content_position": {
"score": 100,
"weight": 30,
"details": "Main content starts at 6% of HTML"
}
}
}
}
},
"recommendations": [
{
"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_sitemap",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_sitemap.title",
"descriptionKey": "rec.add_sitemap.description",
"howToKey": "rec.add_sitemap.howto",
"effort": "quick-win",
"estimatedImpact": 5,
"checkScore": 0,
"checkDetails": "No sitemap found"
},
{
"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": "improve_alt_texts",
"priority": "critical",
"category": "semanticHtml",
"titleKey": "rec.improve_alt_texts.title",
"descriptionKey": "rec.improve_alt_texts.description",
"howToKey": "rec.improve_alt_texts.howto",
"effort": "moderate",
"estimatedImpact": 4,
"checkScore": 0,
"checkDetails": "0/1 images with meaningful alt text"
},
{
"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": "5/63 elements with inline styles (7.9%)"
},
{
"id": "improve_content_ratio",
"priority": "high",
"category": "contentEfficiency",
"titleKey": "rec.improve_content_ratio.title",
"descriptionKey": "rec.improve_content_ratio.description",
"howToKey": "rec.improve_content_ratio.howto",
"effort": "moderate",
"estimatedImpact": 6,
"checkScore": 25,
"checkDetails": "Content ratio: 8.1% (296 content chars / 3657 HTML bytes)"
},
{
"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_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": 23,
"checkDetails": "3 semantic elements, 40 divs (ratio: 7%)"
},
{
"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": "# prompt-vault-cg3.pages.dev\n\n> 用途別テンプレート / ローカルDB / コピー中心\n\n## Main\n- [Prompt Vault](https://prompt-vault-cg3.pages.dev/): 用途別テンプレート / ローカルDB / コピー中心\n\n",
"llmsTxtExisting": "<!doctype html>\n<html lang=\"ja\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>Prompt Vault</title>\n <link rel=\"stylesheet\" href=\"style.css\" />\n</head>\n<body>\n <main class=\"page\">\n <section class=\"hero\">\n <div class=\"panel hero-copy\">\n <div class=\"eyebrow\">用途別テンプレート / ローカルDB / コピー中心</div>\n <h1>Prompt Vault</h1>\n <p class=\"lead\">直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。</p>\n </div>\n </section>\n\n <section class=\"panel detail\">\n <div class=\"head\" style=\"align-items: center;\">\n <div>\n <div class=\"subtle\" id=\"gallery-count\">0 items</div>\n <h2 id=\"detail-title\">ギャラリー</h2>\n </div>\n <input id=\"search\" class=\"search\" placeholder=\"検索: タイトル / 目的 / ブロックID\" style=\"max-width: 320px; margin-bottom: 0;\" />\n </div>\n\n <div class=\"gallery\" id=\"gallery\"></div>\n <div class=\"template-section\">\n <div class=\"head template-section__head\">\n <div>\n <div class=\"subtle\" id=\"template-count\">0 templates</div>\n <h3>テンプレート一覧</h3>\n </div>\n <div class=\"subtle\">画像がないものもここから開けます</div>\n </div>\n <div class=\"template-rail\" id=\"template-rail\"></div>\n </div>\n </section>\n </main>\n\n <div class=\"modal\" id=\"modal\">\n <div class=\"modal-close\" id=\"modal-close\">×</div>\n <div class=\"modal-content\">\n <div class=\"modal-image-view\">\n <img id=\"modal-img\" src=\"\" alt=\"\" />\n </div>\n <div class=\"modal-info\">\n <div>\n <div class=\"eyebrow\" id=\"modal-kind\">Category</div>\n <h2 id=\"modal-title\">Title</h2>\n <p class=\"subtle\" id=\"modal-purpose\" style=\"margin-top: 4px; margin-bottom: 16px;\">Purpose</p>\n <button class=\"button primary\" id=\"modal-copy\" style=\"width: 100%; margin-bottom: 16px;\">コピー</button>\n </div>\n <div class=\"block\" id=\"modal-primary-block\">\n <div class=\"subtle\" id=\"modal-primary-title\">ノード</div>\n <div class=\"tagrow\" id=\"modal-primary\"></div>\n </div>\n <div class=\"block\" id=\"modal-secondary-block\">\n <div class=\"subtle\" id=\"modal-secondary-title\">関係</div>\n <div class=\"tagrow\" id=\"modal-secondary\"></div>\n </div>\n <div class=\"block\" id=\"modal-recommend-block\">\n <div class=\"subtle\">おすすめ</div>\n <div class=\"recommend-grid\" id=\"modal-recommend\"></div>\n </div>\n <div class=\"block\" id=\"modal-aliases-block\">\n <div class=\"subtle\">別名</div>\n <div class=\"tagrow\" id=\"modal-aliases\"></div>\n </div>\n <div class=\"block\" id=\"modal-summary-block\">\n <div class=\"subtle\">要約</div>\n <p id=\"modal-summary\" class=\"modal-summary\"></p>\n </div>\n <div class=\"block\" id=\"modal-steps-block\">\n <div class=\"subtle\">手順</div>\n <div class=\"recipe\" id=\"modal-steps\"></div>\n </div>\n <div class=\"block\" id=\"modal-notes-block\">\n <div class=\"subtle\">備考</div>\n <p id=\"modal-notes\" class=\"modal-summary\"></p>\n </div>\n <div class=\"block\" style=\"margin-top: 0;\">\n <div class=\"subtle\" id=\"modal-prompt-title\">全文プロンプト</div>\n <pre id=\"modal-prompt\"></pre>\n </div>\n </div>\n </div>\n </div>\n\n <script src=\"app.js\" defer></script>\n</body>\n</html>",
"emergingProtocols": {
"oauthDiscovery": {
"exists": false,
"url": "https://prompt-vault-cg3.pages.dev/.well-known/oauth-authorization-server"
},
"mcpServerCard": {
"exists": false,
"url": "https://prompt-vault-cg3.pages.dev/.well-known/mcp.json"
},
"a2aAgentCard": {
"exists": false,
"url": "https://prompt-vault-cg3.pages.dev/.well-known/agent.json"
},
"count": 0
},
"snippets": [
{
"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:title\" content=\"Prompt Vault\">\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://prompt-vault-cg3.pages.dev/\">\n<meta property=\"og:type\" content=\"website\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<meta property=\"og:title\" content=\"Prompt Vault\">\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://prompt-vault-cg3.pages.dev/\">\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: \"Prompt Vault\",\n description: \"Page description.\",\n openGraph: {\n title: \"Prompt Vault\",\n description: \"Page description.\",\n url: \"https://prompt-vault-cg3.pages.dev/\",\n images: [\"https://yoursite.com/og-image.jpg\"],\n type: 'website',\n },\n};"
}
]
},
{
"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=\"用途別テンプレート / ローカルDB / コピー中心\">",
"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\": \"Prompt Vault\",\n \"description\": \"Page description.\",\n \"url\": \"https://prompt-vault-cg3.pages.dev/\",\n \"inLanguage\": \"ja\"\n}\n</script>",
"filename": "<head>"
},
{
"id": "add_sitemap",
"title": "Create /sitemap.xml",
"description": "A sitemap helps AI agents discover all your pages. Most CMS platforms generate one automatically.",
"language": "xml",
"code": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url>\n <loc>https://prompt-vault-cg3.pages.dev/</loc>\n <lastmod>2026-05-01</lastmod>\n </url>\n</urlset>",
"filename": "/sitemap.xml"
},
{
"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\">"
}
]
}
]
}
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.
Incorpora il tuo badge
Aggiungi questo badge al tuo sito. Si aggiorna automaticamente quando cambia il tuo punteggio di prontezza IA.
<script src="https://agentready.md/badge.js" data-id="9e0fa7bd-3a32-402e-b0f0-43e88760123e" data-domain="prompt-vault-cg3.pages.dev"></script>
[](https://agentready.md/it/r/9e0fa7bd-3a32-402e-b0f0-43e88760123e)
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.