認証済み AgentReady.md 証明書
発行日時 sig: c5501ef4c032e439 検証 →

分析済みURL

https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1

計測: 先週

別のURLを分析

AI-Readyスコア

良好

/ 100

トークン削減量

HTMLトークン 4749
Markdownトークン 623
削減率 87%

スコア内訳

アクセシビリティ 88/100
AI発見可能性 69/100
構造化データ 63/100
セマンティックHTML 95/100
コンテンツ効率 85/100

新興プロトコル

6件中0件検出

AIエージェントが探すwell-knownエンドポイント。検出されればエージェントが自動的にあなたのサービスを発見・接続できます。

  • OAuth Protected Resource RFC 9728
    /.well-known/oauth-protected-resource
  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card SEP-1649 draft
    /.well-known/mcp/server-card.json
  • A2A Agent Card A2A v1.0
    /.well-known/agent-card.json
  • API Catalog RFC 9727
    /.well-known/api-catalog
  • Agent Skills index Discovery RFC v0.2.0 draft
    /.well-known/agent-skills/index.json

この数字は動きます。 モニタリングは開発中です。リストに登録すると公開時にお知らせします。

リストに登録されました!サービス開始時にお知らせします。

計測結果 No meta description

メタディスクリプションが見つかりません。このタグはAIエージェントと検索エンジンにページの簡潔な要約を提供します。

実装方法

ページコンテンツの150-160文字の説明を含む<meta name="description" content="...">タグを追加してください。

コーディングエージェントに貼り付けて修正させる

計測結果 Application level — Content negotiation, <link> tag

このサイトは Markdown for Agents に部分的にしか対応していません。すでにある仕組みは上の「計測した内容」に並んでいます。残りを追加すると、より多くのエージェントが HTML を解析せず markdown を要求でき、トークンを約 80% 削減できます。

実装方法

  • /page.md のように、2 つ目の URL で Markdown 版を配信します。
  • Markdown 版を指す Link HTTP ヘッダーを追加します: Link: <…>; rel="alternate"; type="text/markdown"。
コーディングエージェントに貼り付けて修正させる

計測結果 No llms.txt found

サイトにllms.txtファイルがありません。これはAIエージェントがサイト構造を理解するための新しい標準です。

実装方法

llmstxt.org仕様に従って/llms.txtファイルを作成してください。サイトの説明と主要ページへのリンクを含めてください。

コーディングエージェントに貼り付けて修正させる

計測結果 No Content-Signal found (robots.txt or HTTP headers)

Content-Signalディレクティブが見つかりません。これらはAIエージェントにコンテンツの使用方法(検索インデックス、AI入力、トレーニングデータ)を伝えます。推奨場所はrobots.txtです。

実装方法

robots.txtにContent-Signalを追加:User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no。markdown応答のHTTPヘッダーとしても追加できます。

コーディングエージェントに貼り付けて修正させる
Markdownトークン: 623
De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.

De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).

Meer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een [3D Viewer](https://app.pdok.nl/3d-viewer/) zijn te vinden op de [website van PDOK](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) en in de [productbeschrijving](https://3d.kadaster.nl/productbeschrijving/).

Dataset details
| Keywords | 3D Basisbestand, gebouwen, terreinen, water, wegen, DTM, DSM, AHN, hoogte attributen |
| License | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.nl) |
| Support | [PDOK Support](https://www.pdok.nl/support) |
| Metadata for OGC API 3D Geovolumes | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/335a62b6-ee20-405a-8dca-45995bee2615) |
| Metadata for OGC API Features | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/364ade50-5aae-4420-9d9b-ad4ebca2d032) |
| Metadata for dataset | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/2fdeecd0-3d28-43f9-894e-e8444fdffeb3) |
| Dataset-aanbieder |

Kadaster (3D Basisvoorziening)

 |
| Updatefrequentie |

Jaarlijks

 |
| Dienstverlening |

[Producten- en Diensten Catalogus](https://www.pdok.nl/producten-en-dienstencatalogi)

 |
| Kosten afname |

Geen

 |
| Authenticatie |

Geen

 |
3D Basisvoorziening (OGC API)

[To main content](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1#main)

# 3D Basisvoorziening (OGC API)

De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.

De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).

Meer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een [3D Viewer](https://app.pdok.nl/3d-viewer/) zijn te vinden op de [website van PDOK](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) en in de [productbeschrijving](https://3d.kadaster.nl/productbeschrijving/).

Dataset details
| Keywords | 3D Basisbestand, gebouwen, terreinen, water, wegen, DTM, DSM, AHN, hoogte attributen |
| License | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.nl) |
| Support | [PDOK Support](https://www.pdok.nl/support) |
| Metadata for OGC API 3D Geovolumes | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/335a62b6-ee20-405a-8dca-45995bee2615) |
| Metadata for OGC API Features | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/364ade50-5aae-4420-9d9b-ad4ebca2d032) |
| Metadata for dataset | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/2fdeecd0-3d28-43f9-894e-e8444fdffeb3) |
| Dataset-aanbieder |

Kadaster (3D Basisvoorziening)

 |
| Updatefrequentie |

Jaarlijks

 |
| Dienstverlening |

[Producten- en Diensten Catalogus](https://www.pdok.nl/producten-en-dienstencatalogi)

 |
| Kosten afname |

Geen

 |
| Authenticatie |

Geen

 |

![3D Basisvoorziening Thumbnail](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/resources/3d.png)

## [OpenAPI specification](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/api)

The specification in OpenAPI v3 format describes the OGC API in such a way that both humans and computers can explore the API's options. It shows both in- and output options, and helps to quickly generate a first working API call with the desired result. The page is available in both HTML and JSON.

View as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/api?f=json)

## [Conformance](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/conformance)

The conformance describes which OGC standards this API implements. The page is available in both HTML and JSON.

View as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/conformance?f=json)

## [Collections](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/collections)

This API offers one or more collections that divide the dataset in various object types, which can be called separately through for instance *features* or *tiles*. The page is available in both HTML and JSON.

View as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/collections?f=json)

このファイルをサーバーの/kadaster/3d-basisvoorziening/ogc/v1.mdとしてアップロードし、AIエージェントがページのクリーンなバージョンにアクセスできるようにしましょう。Accept: text/markdownコンテンツネゴシエーションを設定して自動的に配信することもできます。

この単一ページ用に生成されたllms.txt

llms.txtをダウンロード
# api.pdok.nl

> De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. D…

## Main
- [3D Basisvoorziening (OGC API)](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1): De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (col…
- [To main content](https://api.pdok.nl/)
- [JSON](https://api.pdok.nl/?f=json)

完全なllms.txtにはドメイン全体の分析が必要です(近日公開)

このファイルをドメインのルートにhttps://api.pdok.nl/llms.txtとしてアップロードしてください。ChatGPT、Claude、PerplexityなどのAIエージェントはこのファイルを確認してサイト構造を理解します。

アクセシビリティ

JavaScript不要でコンテンツ利用可能 (100/100)

Content available without JavaScript

HTML内でコンテンツが早い位置に配置 (50/100)

Main content starts at 44% of HTML

適切なページサイズ (100/100)

Page size: 18KB

AI発見可能性

robots.txtがAIボットを許可 (100/100)

All major AI search bots allowed

Markdown for Agentsサポート (45/100) Application
✓ Accept: text/markdown ✗ .md URL ✓ <link> tag ✗ Link header
sitemap.xmlあり (100/100)

Sitemap found

robots.txtファイルあり (100/100)

robots.txt exists

llms.txtファイルあり (0/100)

No llms.txt found

Content-Signalあり(robots.txtまたはHTTPヘッダー) (0/100)
✓ robots.txt ✓ HTTP header ✗ Policy

構造化データ

Schema.org / JSON-LDあり (50/100)

JSON-LD found but basic types: Dataset

Open Graphタグあり (100/100)

All OG tags present

メタディスクリプションあり (0/100)

No meta description

正規URLあり (100/100)

Canonical URL present

lang属性あり (100/100)

lang="nl"

セマンティックHTML

適切な見出し階層 (100/100)

Clean heading hierarchy

articleまたはmain要素を使用 (100/100)

Has <main>

セマンティックHTML要素を使用 (77/100)

6 semantic elements, 20 divs (ratio: 23%)

意味のある画像alt属性 (100/100)

3/3 images with meaningful alt text

低いdivネスト深度 (100/100)

Avg div depth: 1.9, max: 4

コンテンツ効率

良好なトークン削減率 (100/100)

87% token reduction (HTML→Markdown)

良好なコンテンツ対ノイズ比 (50/100)

Content ratio: 18.0% (3309 content chars / 18431 HTML bytes)

適切なページ重量 (100/100)

HTML size: 18KB

最小限のインラインスタイル (100/100)

0/147 elements with inline styles (0.0%)

{
  "url": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1",
  "timestamp": 1791739203095,
  "fetch": {
    "mode": "simple",
    "timeMs": 91,
    "htmlSizeBytes": 18431,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": true,
        "url": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1?f=md"
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": "Cookie, Accept, Accept-Encoding, Accept-Language"
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "application",
      "contentNegotiationMediaType": "text/markdown",
      "properMediaType": true
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "3D Basisvoorziening (OGC API)",
    "excerpt": "De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).  Meer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een 3D Viewer zijn te vinden op de website van PDOK en in de productbeschrijving.",
    "byline": null,
    "siteName": null,
    "lang": "nl",
    "contentLength": 3309,
    "metadata": {
      "description": null,
      "ogTitle": "3D Basisvoorziening (OGC API)",
      "ogDescription": "De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).  Meer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een 3D Viewer zijn te vinden op de website van PDOK en in de productbeschrijving.",
      "ogImage": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/theme/logo-opengraph.png",
      "ogType": "website",
      "canonical": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1",
      "lang": "nl",
      "schemas": [
        {
          "@context": "https://schema.org/",
          "@type": "Dataset",
          "name": "3D Basisvoorziening (OGC API)",
          "description": "De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).  Meer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een 3D Viewer zijn te vinden op de website van PDOK en in de productbeschrijving.",
          "url": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1?f=html",
          "keywords": [
            "3D Basisbestand",
            "gebouwen",
            "terreinen",
            "water",
            "wegen",
            "DTM",
            "DSM",
            "AHN",
            "hoogte attributen"
          ],
          "license": "https://creativecommons.org/licenses/by/4.0/deed.nl",
          "isAccessibleForFree": true,
          "hasPart": [
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/gebouwen",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/terreinen",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/basisbestand_gebouwen",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/basisbestand_gebouwen_terreinen",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/hoogtestatistieken_gebouwen",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/digitaalterreinmodel",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/digitaaloppervlaktemodel_20cm",
            "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1/collections/digitaaloppervlaktemodel_8cm"
          ]
        }
      ],
      "robotsMeta": null,
      "author": null,
      "generator": null,
      "markdownAlternateHref": "https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1?f=md"
    }
  },
  "markdown": "De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.\n\nDe 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).\n\nMeer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een [3D Viewer](https://app.pdok.nl/3d-viewer/) zijn te vinden op de [website van PDOK](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) en in de [productbeschrijving](https://3d.kadaster.nl/productbeschrijving/).\n\nDataset details\n| Keywords | 3D Basisbestand, gebouwen, terreinen, water, wegen, DTM, DSM, AHN, hoogte attributen |\n| License | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.nl) |\n| Support | [PDOK Support](https://www.pdok.nl/support) |\n| Metadata for OGC API 3D Geovolumes | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/335a62b6-ee20-405a-8dca-45995bee2615) |\n| Metadata for OGC API Features | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/364ade50-5aae-4420-9d9b-ad4ebca2d032) |\n| Metadata for dataset | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/2fdeecd0-3d28-43f9-894e-e8444fdffeb3) |\n| Dataset-aanbieder |\n\nKadaster (3D Basisvoorziening)\n\n |\n| Updatefrequentie |\n\nJaarlijks\n\n |\n| Dienstverlening |\n\n[Producten- en Diensten Catalogus](https://www.pdok.nl/producten-en-dienstencatalogi)\n\n |\n| Kosten afname |\n\nGeen\n\n |\n| Authenticatie |\n\nGeen\n\n |\n",
  "fullPageMarkdown": "3D Basisvoorziening (OGC API)\n\n[To main content](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1#main)\n\n# 3D Basisvoorziening (OGC API)\n\nDe 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.\n\nDe 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. De bestanden zijn o.a. gebaseerd op topografie uit de Basisregistratie Grootschalige Topografie (BGT), de gebouwen uit de Basisregistratie Adressen en Gebouwen (BAG), en hoogtes uit luchtfotobeelden en het Actueel Hoogtebestand Nederland (AHN).\n\nMeer informatie over deze dataset en overige producten zoals het downloaden van deze dataset voor analysedoeleinden of een [3D Viewer](https://app.pdok.nl/3d-viewer/) zijn te vinden op de [website van PDOK](https://www.pdok.nl/introductie/-/article/3d-basisvoorziening-1) en in de [productbeschrijving](https://3d.kadaster.nl/productbeschrijving/).\n\nDataset details\n| Keywords | 3D Basisbestand, gebouwen, terreinen, water, wegen, DTM, DSM, AHN, hoogte attributen |\n| License | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.nl) |\n| Support | [PDOK Support](https://www.pdok.nl/support) |\n| Metadata for OGC API 3D Geovolumes | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/335a62b6-ee20-405a-8dca-45995bee2615) |\n| Metadata for OGC API Features | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/364ade50-5aae-4420-9d9b-ad4ebca2d032) |\n| Metadata for dataset | [View at Nationaal Georegister](https://nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/2fdeecd0-3d28-43f9-894e-e8444fdffeb3) |\n| Dataset-aanbieder |\n\nKadaster (3D Basisvoorziening)\n\n |\n| Updatefrequentie |\n\nJaarlijks\n\n |\n| Dienstverlening |\n\n[Producten- en Diensten Catalogus](https://www.pdok.nl/producten-en-dienstencatalogi)\n\n |\n| Kosten afname |\n\nGeen\n\n |\n| Authenticatie |\n\nGeen\n\n |\n\n![3D Basisvoorziening Thumbnail](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/resources/3d.png)\n\n## [OpenAPI specification](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/api)\n\nThe specification in OpenAPI v3 format describes the OGC API in such a way that both humans and computers can explore the API's options. It shows both in- and output options, and helps to quickly generate a first working API call with the desired result. The page is available in both HTML and JSON.\n\nView as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/api?f=json)\n\n## [Conformance](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/conformance)\n\nThe conformance describes which OGC standards this API implements. The page is available in both HTML and JSON.\n\nView as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/conformance?f=json)\n\n## [Collections](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/collections)\n\nThis API offers one or more collections that divide the dataset in various object types, which can be called separately through for instance *features* or *tiles*. The page is available in both HTML and JSON.\n\nView as [JSON](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/collections?f=json)\n",
  "markdownStats": {
    "images": 0,
    "links": 9,
    "tables": 1,
    "codeBlocks": 0,
    "headings": 0
  },
  "tokens": {
    "htmlTokens": 4749,
    "markdownTokens": 623,
    "reduction": 4126,
    "reductionPercent": 87
  },
  "score": {
    "score": 79,
    "grade": "B",
    "rubricVersion": 3,
    "dimensions": {
      "accessibility": {
        "score": 88,
        "weight": 30,
        "grade": "B",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 55,
            "evidence": "proven",
            "details": "Content available without JavaScript"
          },
          "fast_content_position": {
            "score": 50,
            "weight": 25,
            "evidence": "plausible",
            "details": "Main content starts at 44% of HTML"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Page size: 18KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 69,
        "weight": 25,
        "grade": "C",
        "checks": {
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "All major AI search bots allowed"
          },
          "supports_markdown_negotiation": {
            "score": 45,
            "weight": 20,
            "evidence": "plausible",
            "details": "Application level — Content negotiation, <link> tag",
            "mechanisms": {
              "negotiation": true,
              "mdUrl": false,
              "linkTag": true,
              "linkHeader": false
            }
          },
          "has_sitemap": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Sitemap found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "robots.txt exists"
          },
          "has_llms_txt": {
            "score": 0,
            "weight": 10,
            "evidence": "speculative",
            "details": "No llms.txt found"
          },
          "has_content_signals": {
            "score": 0,
            "weight": 10,
            "evidence": "speculative",
            "details": "No Content-Signal found (robots.txt or HTTP headers)",
            "mechanisms": {
              "robotsTxt": false,
              "httpHeader": false,
              "policy": false
            }
          }
        }
      },
      "structuredData": {
        "score": 63,
        "weight": 20,
        "grade": "C",
        "checks": {
          "has_schema_org": {
            "score": 50,
            "weight": 35,
            "evidence": "proven",
            "details": "JSON-LD found but basic types: Dataset"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 0,
            "weight": 20,
            "evidence": "plausible",
            "details": "No meta description"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "lang=\"nl\""
          }
        }
      },
      "semanticHtml": {
        "score": 95,
        "weight": 15,
        "grade": "A",
        "checks": {
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 30,
            "evidence": "plausible",
            "details": "Clean heading hierarchy"
          },
          "uses_article_or_main": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Has <main>"
          },
          "semantic_elements": {
            "score": 77,
            "weight": 20,
            "evidence": "plausible",
            "details": "6 semantic elements, 20 divs (ratio: 23%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "3/3 images with meaningful alt text"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "Avg div depth: 1.9, max: 4"
          }
        }
      },
      "contentEfficiency": {
        "score": 85,
        "weight": 10,
        "grade": "B",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "evidence": "speculative",
            "details": "87% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 50,
            "weight": 30,
            "evidence": "speculative",
            "details": "Content ratio: 18.0% (3309 content chars / 18431 HTML bytes)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 20,
            "evidence": "speculative",
            "details": "HTML size: 18KB"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "0/147 elements with inline styles (0.0%)"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "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",
      "howToStepKeys": null,
      "effort": "quick-win",
      "estimatedImpact": 4,
      "maxImpact": 4,
      "evidence": "plausible",
      "checkScore": 0,
      "checkDetails": "No meta description"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description_partial",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "howToStepKeys": [
        "rec.add_markdown_negotiation.step.md_url",
        "rec.add_markdown_negotiation.step.link_header"
      ],
      "effort": "significant",
      "estimatedImpact": 2.8,
      "maxImpact": 5,
      "evidence": "plausible",
      "checkScore": 45,
      "checkDetails": "Application level — Content negotiation, <link> tag"
    },
    {
      "id": "add_llms_txt",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_llms_txt.title",
      "descriptionKey": "rec.add_llms_txt.description",
      "howToKey": "rec.add_llms_txt.howto",
      "howToStepKeys": null,
      "effort": "quick-win",
      "estimatedImpact": 2.5,
      "maxImpact": 2.5,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "No llms.txt found"
    },
    {
      "id": "add_content_signals",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_content_signals.title",
      "descriptionKey": "rec.add_content_signals.description",
      "howToKey": "rec.add_content_signals.howto",
      "howToStepKeys": null,
      "effort": "quick-win",
      "estimatedImpact": 2.5,
      "maxImpact": 2.5,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
    }
  ],
  "llmsTxtPreview": "# api.pdok.nl\n\n> De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. D…\n\n## Main\n- [3D Basisvoorziening (OGC API)](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1): De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (col…\n- [To main content](https://api.pdok.nl/)\n- [JSON](https://api.pdok.nl/?f=json)\n\n",
  "llmsTxtExisting": null,
  "emergingProtocols": {
    "oauthProtectedResource": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/oauth-protected-resource"
    },
    "oauthDiscovery": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/mcp/server-card.json",
      "draft": true
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/agent-card.json"
    },
    "apiCatalog": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/api-catalog"
    },
    "agentSkills": {
      "exists": false,
      "url": "https://api.pdok.nl/.well-known/agent-skills/index.json",
      "draft": true
    },
    "count": 0,
    "total": 6
  },
  "botAccess": {
    "probed": true,
    "bot": "OAI-SearchBot",
    "controlStatus": 200,
    "botStatus": 200,
    "discriminates": false,
    "refusedAsBot": false,
    "edge": null,
    "verifiable": false,
    "detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
  },
  "snippets": [
    {
      "id": "add_llms_txt",
      "title": "Create /llms.txt",
      "description": "Upload this file to your web root. It tells AI agents what your site is about and which pages matter.",
      "language": "markdown",
      "code": "# api.pdok.nl\n\n> De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manieren gegenereerd. Er zijn acht collecties beschikbaar.  De 3D Basisvoorziening kan gebruikt worden op schaalniveaus tussen 1:500 en 1:10.000. D…\n\n## Main\n- [3D Basisvoorziening (OGC API)](https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1): De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (col…\n- [To main content](https://api.pdok.nl/)\n- [JSON](https://api.pdok.nl/?f=json)\n\n",
      "filename": "/llms.txt"
    },
    {
      "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=\"De 3D Basisvoorziening is een verzameling van ruimtelijke bestanden die hoogte informatie bevatten. Deze bestanden (collecties) worden op verschillende manie...\">",
      "filename": "<head>"
    },
    {
      "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\">"
        }
      ]
    }
  ]
}

APIを使用してプログラムで取得できます(近日公開)

このJSONは内部使用向けです — MarkdownやllMs.txtファイルとは異なり、サイトにアップロードするものではありません。スコアの経時変化を追跡するための基準値として保存するか、開発チームと共有するか、CI/CDパイプラインに統合してください。

結果を共有

X LinkedIn Facebook WhatsApp Telegram Email

または AI に改善方法を聞く

セカンドオピニオンもどうぞ

Cloudflare も無料のスキャナーを公開していますが、問いが違います。あちらは、エージェントが呼び出すためにサイトが公開しているもの(MCP server card、Agent Skills、API カタログ、DNS レコード)を採点します。当社は、エージェントがコンテンツに到達し、読み、理解できるかを採点します。片方が高く、もう片方が低いサイトもあります。数字が食い違うのは当然です。別々の問いへの答えであり、どちらも知る価値があります。

Cloudflare で api.pdok.nl をスキャン

バッジを埋め込む

このバッジをサイトに追加してください。AI対応スコアが変わると自動的に更新されます。

AgentReady.md score for api.pdok.nl
Script 推奨
<script src="https://agentready.md/badge.js" data-id="8ed60079-ef32-422f-8fb9-745504ea4e4d" data-domain="api.pdok.nl"></script>
Markdown
[![AgentReady.md score for api.pdok.nl](https://agentready.md/badge/api.pdok.nl.svg)](https://agentready.md/ja/r/api.pdok.nl)

近日公開: ドメイン全体分析

ドメイン全体をクロールし、llms.txtを生成し、AI対応スコアを経時的にモニタリング。ウェイトリストに登録して通知を受け取りましょう。

リストに登録されました!サービス開始時にお知らせします。