URL analisado
https://prompt-vault-cg3.pages.dev/
Pontuação AI-Ready
Fraco
de 100
Poupança de tokens
Desdobramento da pontuação
Protocolos emergentes
0 de 3 detetadosEndpoints well-known que os agentes de IA procuram. Detetado significa que um agente pode descobrir e conectar-se automaticamente ao seu serviço.
-
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
O seu site não suporta Markdown for Agents. Este padrão Cloudflare permite que agentes de IA solicitem conteúdo em formato markdown, reduzindo o uso de tokens em ~80%.
Como implementar
Implemente um ou mais: (1) Responder a Accept: text/markdown com conteúdo markdown. (2) Servir URLs .md (ex: /pagina.md). (3) Adicionar tags <link rel="alternate" type="text/markdown">. (4) Adicionar cabeçalhos HTTP Link para descoberta markdown.
Nenhum sitemap encontrado. Um sitemap ajuda os agentes de IA a descobrir todas as páginas do seu site.
Como implementar
Crie um /sitemap.xml listando todas as suas páginas públicas. A maioria das plataformas CMS pode gerar isto automaticamente.
Nenhuma diretiva Content-Signal encontrada. Estas indicam aos agentes de IA como podem usar o seu conteúdo (indexação, entrada IA, dados de treino). A localização recomendada é robots.txt.
Como implementar
Adicione Content-Signal ao seu robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Também pode adicioná-lo como cabeçalho HTTP em respostas markdown.
Algumas imagens não têm texto alt descritivo. Bons textos alt ajudam os agentes de IA a compreender o conteúdo e contexto das imagens.
Como implementar
Adicione atributos alt descritivos a todas as imagens. Descreva o que a imagem mostra, não apenas 'imagem' ou 'foto'. Para imagens decorativas, use alt="" (vazio).
Muitos elementos têm atributos de estilo inline. Estes adicionam ruído para agentes de IA que extraem conteúdo.
Como implementar
Mova todos os estilos inline para classes CSS na sua folha de estilos. Use frameworks CSS utilitários como Tailwind se precisar de muitos estilos únicos.
A sua página tem um baixo rácio de conteúdo real em relação ao HTML total. Grande parte do peso da página é markup, scripts ou estilos em vez de conteúdo.
Como implementar
Mova CSS para folhas de estilo externas, remova estilos inline, minimize JavaScript e garanta que o HTML se foca na estrutura do conteúdo.
Não foram encontrados dados estruturados Schema.org. JSON-LD ajuda os agentes de IA a extrair informação factual e estruturada das suas páginas.
Como implementar
Adicione um bloco <script type="application/ld+json"> com marcação Schema.org. Use tipos apropriados: Article para publicações de blog, Product para páginas de produtos, Organization para a página da sua empresa.
A sua página depende muito de elementos <div>. Elementos semânticos como <section>, <nav>, <header>, <footer> e <aside> fornecem uma estrutura significativa para agentes de IA.
Como implementar
Substitua contentores <div> genéricos por elementos semânticos apropriados. Use <section> para grupos temáticos, <nav> para navegação, <header>/<footer> para cabeçalhos e rodapés de página/secção.
Tags Open Graph em falta ou incompletas. As tags OG ajudam os agentes de IA (e plataformas sociais) a compreender o título, descrição e imagem da sua página.
Como implementar
Adicione meta tags og:title, og:description e og:image ao <head> da sua página.
Nenhuma meta descrição encontrada. Esta tag fornece um resumo conciso da página para agentes de IA e motores de busca.
Como implementar
Adicione uma tag <meta name="description" content="..."> com uma descrição de 150-160 caracteres do conteúdo da página.
用途別テンプレート / ローカルDB / コピー中心 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます
Prompt Vault 用途別テンプレート / ローカルDB / コピー中心 # Prompt Vault 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます × Category ## Title Purpose コピー ノード 関係 おすすめ 別名 要約 手順 備考 全文プロンプト
Carregue este ficheiro como /index.md no seu servidor para que os agentes de IA possam aceder a uma versão limpa da sua página. Também pode configurar a negociação de conteúdo Accept: text/markdown para o servir automaticamente.
A nossa recomendação
# prompt-vault-cg3.pages.dev > 用途別テンプレート / ローカルDB / コピー中心 ## Main - [Prompt Vault](https://prompt-vault-cg3.pages.dev/): 用途別テンプレート / ローカルDB / コピー中心
O llms.txt completo requer análise de todo o domínio (em breve)
Carregue este ficheiro como https://prompt-vault-cg3.pages.dev/llms.txt na raiz do seu domínio. Agentes de IA como ChatGPT, Claude e Perplexity verificam este ficheiro para compreender a estrutura do seu site.
Este site já possui um ficheiro llms.txt.
Formato inválido — deve começar com um título # e ter conteúdo 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 Semântico
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
Eficiência de conteúdo
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
Descobribilidade IA
llms.txt exists but appears empty or invalid
robots.txt exists
All major AI bots allowed
No sitemap found
Dados Estruturados
No JSON-LD / Schema.org found
0/3 OG tags present
No meta description
No canonical URL
lang="ja"
Acessibilidade
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\">"
}
]
}
]
}
Use a nossa API para obter isto programaticamente (em breve)
Este JSON é para uso interno — ao contrário dos ficheiros Markdown e llms.txt, não se destina a ser carregado no seu site. Guarde-o como referência para acompanhar a sua pontuação ao longo do tempo, partilhe-o com a sua equipa de desenvolvimento ou integre-o no seu pipeline CI/CD.
Incorpore o seu badge
Adicione este badge ao seu site. Atualiza automaticamente quando a sua pontuação de prontidão para IA mudar.
<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/pt/r/9e0fa7bd-3a32-402e-b0f0-43e88760123e)
Em breve: Análise completa de domínio
Rastreie todo o seu domínio, gere llms.txt e monitorize a sua pontuação de prontidão para IA ao longo do tempo. Inscreva-se na lista de espera.