Проанализированный URL
https://api.pdok.nl/kadaster/3d-basisvoorziening/ogc/v1
Измерено на прошлой неделе
Оценка AI-Ready
Хорошо
из 100
Экономия токенов
Разбивка оценки
Новые протоколы
Обнаружено 0 из 6Well-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
Мета-описание не найдено. Этот тег предоставляет краткое описание страницы для ИИ-агентов и поисковых систем.
Как внедрить
Добавьте тег <meta name="description" content="..."> с описанием содержимого страницы длиной 150–160 символов.
Что мы измерили Application level — Content negotiation, <link> tag
Ваш сайт поддерживает Markdown для агентов лишь частично — в разделе «что мы измерили» выше перечислены уже имеющиеся механизмы. Добавив остальные, вы позволите большему числу агентов запрашивать markdown вместо разбора HTML и сократите расход токенов примерно на 80%.
Как внедрить
- Отдавайте Markdown-двойник по второму адресу, например /page.md рядом с /page.
- Добавьте HTTP-заголовок Link на Markdown-версию: Link: <…>; rel="alternate"; type="text/markdown".
Что мы измерили No llms.txt found
На вашем сайте нет файла llms.txt. Это формирующийся стандарт для помощи ИИ-агентам в понимании структуры вашего сайта.
Как внедрить
Создайте файл /llms.txt в соответствии со спецификацией llmstxt.org. Включите описание сайта и ссылки на ваши ключевые страницы.
Что мы измерили No Content-Signal found (robots.txt or HTTP headers)
Директивы Content-Signal не найдены. Они сообщают ИИ-агентам, как можно использовать ваш контент (поисковая индексация, ИИ-ввод, данные для обучения). Рекомендуемое расположение — robots.txt.
Как внедрить
Добавьте Content-Signal в ваш robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Также можно добавить как HTTP-заголовок в 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. 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 |  ## [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 на ваш сервер, чтобы ИИ-агенты могли получить доступ к чистой версии вашей страницы. Вы также можете настроить согласование контента Accept: text/markdown для автоматической отдачи.
Сгенерированный 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, проверяют этот файл для понимания структуры вашего сайта.
Доступность
Content available without JavaScript
Main content starts at 44% of HTML
Page size: 18KB
Обнаруживаемость ИИ
All major AI search bots allowed
Sitemap found
robots.txt exists
No llms.txt found
Структурированные данные
JSON-LD found but basic types: Dataset
All OG tags present
No meta description
Canonical URL present
lang="nl"
Семантический HTML
Clean heading hierarchy
Has <main>
6 semantic elements, 20 divs (ratio: 23%)
3/3 images with meaningful alt text
Avg div depth: 1.9, max: 4
Эффективность контента
87% token reduction (HTML→Markdown)
Content ratio: 18.0% (3309 content chars / 18431 HTML bytes)
HTML size: 18KB
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\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-конвейер.
Поделитесь результатами
Или попросите ИИ помочь это исправить
Нужно второе мнение?
У Cloudflare тоже есть бесплатный сканер, и он задаёт другой вопрос. Он оценивает то, что ваш сайт публикует для вызова агентами: MCP server cards, Agent Skills, каталоги API, DNS-записи. Мы оцениваем, может ли агент добраться до вашего контента, прочитать и понять его. Сайт может быть хорош в одном и плох в другом, так что ждите двух разных чисел: это ответы на два разных вопроса, и знать стоит оба.
Проверить api.pdok.nl через CloudflareВстройте ваш бейдж
Добавьте этот бейдж на ваш сайт. Он обновляется автоматически при изменении вашей оценки ИИ-готовности.
<script src="https://agentready.md/badge.js" data-id="8ed60079-ef32-422f-8fb9-745504ea4e4d" data-domain="api.pdok.nl"></script>
[](https://agentready.md/ru/r/api.pdok.nl)
Скоро: Полный анализ домена
Сканируйте весь домен, генерируйте llms.txt и отслеживайте оценку ИИ-готовности со временем. Присоединяйтесь к списку ожидания.
Вы в списке! Мы уведомим вас о запуске.