Analysierte URL
https://prompt-vault-cg3.pages.dev/
KI-Ready Score
Mangelhaft
von 100
Token-Einsparung
Score-Aufschlüsselung
Emerging Protocols
0 von 3 erkanntWell-known-Endpunkte, nach denen KI-Agenten suchen. Erkannt bedeutet, dass ein Agent Ihren Dienst automatisch finden und verbinden kann.
-
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
Ihre Website unterstützt kein Markdown for Agents. Dieser Cloudflare-Standard ermöglicht KI-Agenten, Inhalte im Markdown-Format anzufordern und reduziert den Token-Verbrauch um ~80%.
So implementieren Sie es
Implementieren Sie eines oder mehrere: (1) Auf Accept: text/markdown mit Markdown-Inhalt antworten. (2) .md-URLs bereitstellen (z.B. /seite.md). (3) <link rel="alternate" type="text/markdown">-Tags hinzufügen. (4) Link-HTTP-Header für Markdown-Erkennung hinzufügen.
Keine Sitemap gefunden. Eine Sitemap hilft KI-Agenten, alle Seiten Ihrer Website zu entdecken.
So implementieren Sie es
Erstellen Sie eine /sitemap.xml, die alle Ihre öffentlichen Seiten auflistet. Die meisten CMS-Plattformen können diese automatisch generieren.
Keine Content-Signal-Direktiven gefunden. Diese teilen KI-Agenten mit, wie sie Ihre Inhalte verwenden dürfen (Suchindexierung, KI-Eingabe, Trainingsdaten). Der empfohlene Ort ist robots.txt.
So implementieren Sie es
Fügen Sie Content-Signal zu Ihrer robots.txt hinzu: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Sie können es auch als HTTP-Header bei Markdown-Antworten hinzufügen.
Einige Bilder haben keine beschreibenden Alt-Texte. Gute Alt-Texte helfen KI-Agenten, Bildinhalte und -kontext zu verstehen.
So implementieren Sie es
Fügen Sie beschreibende alt-Attribute zu allen Bildern hinzu. Beschreiben Sie, was das Bild zeigt, nicht nur 'Bild' oder 'Foto'. Für dekorative Bilder verwenden Sie alt="" (leer).
Viele Elemente haben Inline-Style-Attribute. Diese erzeugen Rauschen für KI-Agenten bei der Inhaltsextraktion.
So implementieren Sie es
Verlagern Sie alle Inline-Styles in CSS-Klassen in Ihrem Stylesheet. Verwenden Sie Utility-CSS-Frameworks wie Tailwind, wenn Sie viele individuelle Styles benötigen.
Ihre Seite hat ein niedriges Verhältnis von tatsächlichem Inhalt zum gesamten HTML. Ein Großteil des Seitengewichts besteht aus Markup, Skripten oder Styles statt Inhalt.
So implementieren Sie es
Verlagern Sie CSS in externe Stylesheets, entfernen Sie Inline-Styles, minimieren Sie JavaScript und stellen Sie sicher, dass sich das HTML auf die Inhaltsstruktur konzentriert.
Keine Schema.org-strukturierten Daten gefunden. JSON-LD hilft KI-Agenten, faktische, strukturierte Informationen aus Ihren Seiten zu extrahieren.
So implementieren Sie es
Fügen Sie einen <script type="application/ld+json">-Block mit Schema.org-Markup hinzu. Verwenden Sie passende Typen: Article für Blogbeiträge, Product für Produktseiten, Organization für Ihre Unternehmensseite.
Ihre Seite stützt sich stark auf <div>-Elemente. Semantische Elemente wie <section>, <nav>, <header>, <footer> und <aside> bieten eine sinnvolle Struktur für KI-Agenten.
So implementieren Sie es
Ersetzen Sie generische <div>-Container durch passende semantische Elemente. Verwenden Sie <section> für thematische Gruppen, <nav> für Navigation, <header>/<footer> für Seiten-/Abschnittskopf und -fußzeilen.
Fehlende oder unvollständige Open-Graph-Tags. OG-Tags helfen KI-Agenten (und sozialen Plattformen), Titel, Beschreibung und Bild Ihrer Seite zu verstehen.
So implementieren Sie es
Fügen Sie og:title, og:description und og:image Meta-Tags zum <head> Ihrer Seite hinzu.
Keine Meta-Beschreibung gefunden. Dieses Tag bietet eine prägnante Zusammenfassung der Seite für KI-Agenten und Suchmaschinen.
So implementieren Sie es
Fügen Sie ein <meta name="description" content="...">-Tag mit einer 150-160 Zeichen langen Beschreibung des Seiteninhalts hinzu.
用途別テンプレート / ローカルDB / コピー中心 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます
Prompt Vault 用途別テンプレート / ローカルDB / コピー中心 # Prompt Vault 直感的に画像からプロンプトを探し出し、全文をそのままコピーできるギャラリーベースの最小サイトです。 0 items ## ギャラリー 0 templates ### テンプレート一覧 画像がないものもここから開けます × Category ## Title Purpose コピー ノード 関係 おすすめ 別名 要約 手順 備考 全文プロンプト
Laden Sie diese Datei als /index.md auf Ihren Server hoch, damit KI-Agenten auf eine saubere Version Ihrer Seite zugreifen können. Sie können auch die Accept: text/markdown-Inhaltsverhandlung konfigurieren, um sie automatisch auszuliefern.
Unsere Empfehlung
# prompt-vault-cg3.pages.dev > 用途別テンプレート / ローカルDB / コピー中心 ## Main - [Prompt Vault](https://prompt-vault-cg3.pages.dev/): 用途別テンプレート / ローカルDB / コピー中心
Vollständige llms.txt erfordert eine domainweite Analyse (kommt bald)
Laden Sie diese Datei als https://prompt-vault-cg3.pages.dev/llms.txt im Stammverzeichnis Ihrer Domain hoch. KI-Agenten wie ChatGPT, Claude und Perplexity prüfen diese Datei, um Ihre Website-Struktur zu verstehen.
Diese Website hat bereits eine llms.txt-Datei.
Ungültiges Format — sollte mit einer # Überschrift beginnen und aussagekräftigen Inhalt haben<!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>
Semantisches HTML
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
Inhaltseffizienz
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
KI-Auffindbarkeit
llms.txt exists but appears empty or invalid
robots.txt exists
All major AI bots allowed
No sitemap found
Strukturierte Daten
No JSON-LD / Schema.org found
0/3 OG tags present
No meta description
No canonical URL
lang="ja"
Zugänglichkeit
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\">"
}
]
}
]
}
Nutzen Sie unsere API, um dies programmatisch abzurufen (kommt bald)
Dieses JSON ist für den internen Gebrauch bestimmt — im Gegensatz zu den Markdown- und llms.txt-Dateien soll es nicht auf Ihre Website hochgeladen werden. Speichern Sie es als Ausgangswert, um Ihren Score im Zeitverlauf zu verfolgen, teilen Sie es mit Ihrem Entwicklerteam oder integrieren Sie es in Ihre CI/CD-Pipeline.
Badge einbetten
Fügen Sie dieses Badge zu Ihrer Website hinzu. Es aktualisiert sich automatisch, wenn sich Ihr KI-Bereitschafts-Score ändert.
<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/de/r/9e0fa7bd-3a32-402e-b0f0-43e88760123e)
Demnächst: Vollständige Domain-Analyse
Crawlen Sie Ihre gesamte Domain, generieren Sie llms.txt und überwachen Sie Ihren KI-Bereitschaftswert im Zeitverlauf. Tragen Sie sich in die Warteliste ein.