Verifiziertes AgentReady.md-Zertifikat
Ausgestellt am sig: b247319b8acf78ce Verifizieren →

Analysierte URL

https://prompt-vault-cg3.pages.dev/

Weitere URL analysieren

KI-Ready Score

55 / D

Mangelhaft

von 100

Token-Einsparung

HTML-Tokens 1051
Markdown-Tokens 108
Einsparung 90%

Score-Aufschlüsselung

Semantisches HTML 70/100
Inhaltseffizienz 63/100
KI-Auffindbarkeit 35/100
Strukturierte Daten 10/100
Zugänglichkeit 100/100

Emerging Protocols

0 von 3 erkannt

Well-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.

{\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '; 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', '; 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":"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 :\n# "}] }'>

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.

{\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});"}] }'>

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.

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('' . \"\\n\", esc_attr($title));\n printf('' . \"\\n\", esc_attr($desc));\n printf('' . \"\\n\", esc_url($image));\n printf('' . \"\\n\", esc_url($url));\n echo '' . \"\\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};"}] }'>

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.

Markdown-Tokens: 108
用途別テンプレート / ローカル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

llms.txt herunterladen
# 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">&times;</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

Verwendet article- oder main-Element (100/100)

Has <main>

Korrekte Überschriftenhierarchie (100/100)

Clean heading hierarchy

Verwendet semantische HTML-Elemente (23/100)

3 semantic elements, 40 divs (ratio: 7%)

Aussagekräftige Bild-Alt-Texte (0/100)

0/1 images with meaningful alt text

Geringe div-Verschachtelungstiefe (100/100)

Avg div depth: 2.5, max: 4

Inhaltseffizienz

Gutes Token-Reduktionsverhältnis (100/100)

90% token reduction (HTML→Markdown)

Gutes Inhalt-zu-Rausch-Verhältnis (25/100)

Content ratio: 8.1% (296 content chars / 3657 HTML bytes)

Minimale Inline-Styles (0/100)

5/63 elements with inline styles (7.9%)

Angemessenes Seitengewicht (100/100)

HTML size: 4KB

KI-Auffindbarkeit

Hat llms.txt-Datei (50/100)

llms.txt exists but appears empty or invalid

Hat robots.txt-Datei (100/100)

robots.txt exists

robots.txt erlaubt KI-Bots (100/100)

All major AI bots allowed

Hat sitemap.xml (0/100)

No sitemap found

Markdown for Agents Unterstützung (0/100)
&#10007; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
Hat Content-Signal (robots.txt oder HTTP-Header) (0/100)
&#10003; robots.txt &#10003; HTTP header &#10007; Policy

Strukturierte Daten

Hat Schema.org / JSON-LD (0/100)

No JSON-LD / Schema.org found

Hat Open-Graph-Tags (0/100)

0/3 OG tags present

Hat Meta-Beschreibung (0/100)

No meta description

Hat kanonische URL (0/100)

No canonical URL

Hat lang-Attribut (100/100)

lang="ja"

Zugänglichkeit

Inhalt ohne JavaScript verfügbar (100/100)

Content available without JavaScript

Angemessene Seitengröße (100/100)

Page size: 4KB

Inhalt erscheint früh im HTML (100/100)

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\">&times;</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.

Teilen Sie Ihre Ergebnisse

Twitter LinkedIn

Badge einbetten

Fügen Sie dieses Badge zu Ihrer Website hinzu. Es aktualisiert sich automatisch, wenn sich Ihr KI-Bereitschafts-Score ändert.

AgentReady.md score for prompt-vault-cg3.pages.dev
Script Empfohlen
<script src="https://agentready.md/badge.js" data-id="9e0fa7bd-3a32-402e-b0f0-43e88760123e" data-domain="prompt-vault-cg3.pages.dev"></script>
Markdown
[![AgentReady.md score for prompt-vault-cg3.pages.dev](https://agentready.md/badge/prompt-vault-cg3.pages.dev.svg)](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.

Sie stehen auf der Liste! Wir benachrichtigen Sie, sobald es verfügbar ist.