Skip to content
D

drimble.nl

Scan history Scanned 2026-05-18 10:55 UTC
Changes since selected scan Not comparable because methodology information is unavailable

Result summary

Measured coverage

40/100

Methodology grade

C

Methodology legacy

48 checkpoints assessed

Find
4/8 passed
Read
8/23 passed
Act
5/17 passed
Readiness profiles Filter the detailed results by purpose

Select a profile to filter the detailed results.

Action plan

Priority actions Prioritized by exact impact on the overall stable-core score.
Failed JSON-LD present +5 overall pts

No valid JSON-LD blocks with schema.org @context found.

JSON-LD present
HIGH

JSON-LD is the preferred format for structured data by Google and AI search engines. It tells AI systems exactly what your page is about using a standardized vocabulary.

Add at least one <script type="application/ld+json"> block with "@context": "schema.org" describing your organization or page content. Schema markup provides a 73% higher selection rate in Google AI Overviews.

JSON-LD html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company",
  "url": "https://drimble.nl",
  "logo": "https://drimble.nl/logo.png"
}
</script>
Failed High-value schema types +5 overall pts

No high-value schema types found. We check for 17 recognized types including Article, Product, SoftwareApplication, FAQPage, LocalBusiness, VideoObject, and more.

High-value schema types
HIGH

Certain schema types (Article, Product, FAQPage, etc.) trigger rich results in Google and are used by AI search engines like Perplexity and ChatGPT to generate citations and structured answers.

Add JSON-LD markup for content-appropriate types like Article, Product, SoftwareApplication, FAQPage, LocalBusiness, Service, Event, or VideoObject to improve visibility in AI-powered search results.

JSON-LD html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Your App Name",
  "operatingSystem": "Web",
  "applicationCategory": "BusinessApplication",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  }
}
</script>
Failed Organization / WebSite schema +4 overall pts

No Organization or WebSite schema type found in JSON-LD.

Organization / WebSite schema
HIGH

Organization and WebSite schemas establish your brand identity in the knowledge graph. AI systems use these to attribute content, display rich results, and build entity relationships.

Add a JSON-LD block with @type "Organization" or "WebSite" including at least "name" and "url" properties.

JSON-LD html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company",
  "url": "https://drimble.nl",
  "logo": "https://drimble.nl/logo.png",
  "sameAs": [
    "https://twitter.com/yourcompany",
    "https://linkedin.com/company/yourcompany"
  ]
}
</script>
Failed llms.txt +3 overall pts

No valid llms.txt found at /llms.txt.

llms.txt
HIGH

llms.txt provides a curated entry point for AI agents — coding assistants, browsing agents, and task automation tools that fetch specific pages to complete tasks. Unlike crawlers that scrape everything, agents benefit from a structured overview of your most important pages.

Create an /llms.txt file with a markdown heading and relevant URLs to help LLMs understand your site.

llms.txt plain
# /llms.txt
# drimble.nl

> drimble.nl - your site description here.

## Docs
- [Getting Started](https://drimble.nl/docs/getting-started)
- [API Reference](https://drimble.nl/docs/api)

## Optional
- [Blog](https://drimble.nl/blog)
- [Changelog](https://drimble.nl/changelog)
Failed Content negotiation (text/markdown) +3 overall pts

Server returned HTML (content-type: text/html; charset=UTF-8) when Accept: text/markdown was requested. No content negotiation support detected.

Content negotiation (text/markdown)
HIGH

AI agents fetch pages programmatically and benefit from machine-readable formats. Serving Markdown via Accept: text/markdown allows agents to consume structured content without HTML parsing overhead — saving up to 80% of tokens while preserving headings, links, and emphasis.

Serve Markdown when AI agents request it via `Accept: text/markdown`. Add a `Vary: Accept` header so CDN caches serve format-appropriate responses.

# Express.js middleware
app.get('*', (req, res, next) => {
  if (req.accepts('text/markdown')) {
    res.set('Content-Type', 'text/markdown')
    res.set('Vary', 'Accept')
    return res.sendFile(markdownPath(req.path))
  }
  next()
})

# Phoenix / Plug
case get_req_header(conn, "accept") do
  [accept | _] when accept =~ "text/markdown" ->
    conn
    |> put_resp_content_type("text/markdown")
    |> put_resp_header("vary", "Accept")
    |> send_resp(200, markdown_for(conn.request_path))
    |> halt()
  _ -> conn
end

# Test: curl -H "Accept: text/markdown" https://drimble.nl/
Failed HSTS header +3 overall pts

Strict-Transport-Security header is not set. Note: sites on the HSTS preload list may not send this header but are still protected via browser preloading.

HSTS header
HIGH

HSTS prevents protocol downgrade attacks by telling browsers to always use HTTPS. AI agents that follow redirects benefit from HSTS as it eliminates insecure initial connections.

Add the Strict-Transport-Security header with max-age=31536000 (1 year) and includeSubDomains. If your site is on the HSTS preload list (hstspreload.org), the header is still recommended for first-visit protection.

Server config plain
# Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

# Apache (.htaccess)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Failed WebMCP Declarative API +3 overall pts

No WebMCP signals found.

WebMCP Declarative API
HIGH

WebMCP is the W3C proposal for exposing website functionality directly to AI agents. Declarative tool annotations on forms let agents perform actions (search, purchase, book) without screen scraping.

Implement WebMCP to let AI agents interact with your site. Declarative: add tool-name and tool-description attributes to <form> elements. Imperative: use navigator.modelContext.provideContext() to register tools.

<form tool-name="search" tool-description="Search products by keyword">
  <input type="text" name="query" tool-param-description="Search query">
  <button type="submit">Search</button>
</form>
Failed A2A Agent Card +3 overall pts

No A2A Agent Card found at /.well-known/agent-card.json or /.well-known/agent.json.

A2A Agent Card
HIGH

Google's Agent-to-Agent (A2A) protocol enables autonomous agent-to-agent communication. An Agent Card at /.well-known/agent-card.json (new) or /.well-known/agent.json (legacy) advertises your agent's capabilities to other AI systems.

Create an A2A Agent Card at /.well-known/agent-card.json with required fields: name, description, url, version, capabilities, supportedInterfaces.

.well-known/agent.json json
{
  "name": "My Agent",
  "description": "An AI assistant for customer support",
  "url": "https://drimble.nl/agent",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "supportedInterfaces": [
    {
      "url": "https://drimble.nl/mcp",
      "transport": "http",
      "protocol": "MCP/2025-06-18",
      "protocolBinding": "MCP",
      "protocolVersion": "2025-06-18"
    }
  ],
  "preferredTransport": "MCP",
  "skills": [
    {"id": "support", "name": "Customer Support"}
  ]
}
Failed FAQPage schema +3 overall pts

No FAQPage schema found. Sites with FAQPage schema are 8× more likely to be cited by ChatGPT.

FAQPage schema
HIGH

FAQPage schema is one of the strongest structured data signals for AI citation. Research shows websites with FAQPage schema are 8× more likely to appear in ChatGPT search results compared to those without it.

Add FAQPage structured data with Question/Answer pairs covering common queries about your product or service. Pages with FAQPage schema are 8× more likely to be cited by ChatGPT, making this one of the highest-ROI structured data investments for AI visibility.

JSON-LD html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is AI agent readiness?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "AI agent readiness measures how well a website can be discovered, understood, and interacted with by AI systems."
      }
    },
    {
      "@type": "Question",
      "name": "How do I improve my AI readiness score?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Add structured data, ensure clean semantic HTML, allow AI crawlers in robots.txt, and implement agent protocols."
      }
    }
  ]
}
</script>
Partial AI crawler directives +2 overall pts

Mixed AI crawler policies. Disallowed: CCBot. Not mentioned (10): Google-Extended, ClaudeBot, Amazonbot, Claude-User, Bytespider, PerplexityBot, Applebot-Extended, meta-externalagent, Claude-SearchBot, OAI-SearchBot.

AI crawler directives
MEDIUM

Major AI systems use dedicated crawlers (GPTBot, ClaudeBot, Amazonbot). Explicit directives signal whether you want your content included in AI training and search results.

1 AI crawlers are blocked. Consider allowing them to improve AI discoverability.

robots.txt plain
# Add to your /robots.txt - explicit Allow for AI crawlers
User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Amazonbot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: PerplexityBot
Allow: /
Failed Content Signals (robots.txt) +2 overall pts

No Content-Signal directive found in robots.txt. AI crawlers cannot read your usage preferences.

Content Signals (robots.txt)
HIGH

Content Signals is a draft IETF standard (draft-romm-aipref-contentsignals) for declaring AI content usage preferences in robots.txt. Compliant crawlers respect signals like `ai-train=no` (do not train on this content) or `search=yes` (use for search). It is part of Cloudflare's agent web stack and gates Level 2 on their readiness scanner.

Add a `Content-Signal:` line to robots.txt declaring your AI training, search, and ai-input preferences.

robots.txt plain
# Add to /robots.txt:
Content-Signal: ai-train=yes, search=yes, ai-input=yes
Failed Link response headers +2 overall pts

No Link response header found on the root page. Agents must parse HTML to discover related resources.

Link response headers
HIGH

Link response headers (RFC 8288) tell agents about machine-readable resources at request time. Cloudflare's isitagentready.com and other scanners explicitly look for `api-catalog`, `service-desc`, `service-doc`, and `sitemap` rels to enable agent discovery without parsing HTML.

Add an RFC 8288 Link response header advertising your OpenAPI document, API catalog, and sitemap so agents can discover them at request time.

Server config plain
# Nginx
add_header Link '</.well-known/api-catalog>; rel="api-catalog", </openapi.json>; rel="service-desc", </sitemap.xml>; rel="sitemap"' always;

# Phoenix / Plug
plug :put_link_headers

defp put_link_headers(conn, _opts) do
  put_resp_header(
    conn,
    "link",
    "</.well-known/api-catalog>; rel=\"api-catalog\", " <>
      "</openapi.json>; rel=\"service-desc\", " <>
      "</sitemap.xml>; rel=\"sitemap\""
  )
end

# Test: curl -I https://drimble.nl/ | grep -i '^link:'
Failed OpenAPI / API documentation +2 overall pts

No OpenAPI or Swagger documentation found.

OpenAPI / API documentation
HIGH

OpenAPI specifications let AI agents understand and call your API programmatically. AI coding assistants and agent frameworks use OpenAPI to generate correct API calls automatically.

Create an OpenAPI 3.x specification and serve it at /openapi.json or /.well-known/openapi to enable AI agents to discover and use your API.

openapi.json json
{
  "openapi": "3.1.0",
  "info": {
    "title": "My API",
    "version": "1.0.0"
  },
  "paths": {
    "/api/search": {
      "get": {
        "summary": "Search items",
        "parameters": [
          {"name": "q", "in": "query", "schema": {"type": "string"}}
        ]
      }
    }
  }
}
Failed Interactive Surface Coverage +2 overall pts

0/2 interactive surfaces covered by WebMCP tool annotations (0%). Forms: 0/2, Search: 0/0, Actions: 0/0, Filters: 0/0.

Interactive Surface Coverage
HIGH

Higher coverage of interactive surfaces with WebMCP annotations means AI agents can perform more actions on your site without screen scraping or brittle heuristics.

Add tool-name and tool-description attributes to uncovered forms and interactive elements to increase agent coverage.

Failed Semantic HTML elements +1 overall pts

Found 2/5 semantic elements: footer, article/section.

Semantic HTML elements
HIGH

AI agents navigate pages using the accessibility tree, not visual layout. Semantic elements like <main>, <nav>, and <article> provide structural meaning that AI systems rely on to parse content.

Add missing semantic elements: header, nav, main. Semantic HTML helps AI agents identify page regions and navigate content structure. See developer.mozilla.org/en-US/docs/Glossary/Semantics#semantics_in_html for semantic HTML documentation.

HTML html
<body>
  <header>
    <nav><!-- primary navigation --></nav>
  </header>
  <main>
    <article>
      <h1>Page Title</h1>
      <section><!-- content section --></section>
    </article>
  </main>
  <footer><!-- site footer --></footer>
</body>
Failed OAuth Discovery +1 overall pts

No OAuth/OIDC discovery document found at /.well-known/oauth-authorization-server or /.well-known/openid-configuration.

OAuth Discovery
HIGH

OAuth/OIDC discovery (RFC 8414, OpenID Connect Discovery 1.0) lets agents authenticate with your APIs without out-of-band setup. Cloudflare's isitagentready.com requires this for Level 4-5 readiness.

Publish an OAuth 2.0 Authorization Server Metadata document at /.well-known/oauth-authorization-server so agents can discover your auth endpoints.

# Serve OAuth 2.0 Authorization Server Metadata at:
# https://example.com/.well-known/oauth-authorization-server
{
  "issuer": "https://example.com",
  "authorization_endpoint": "https://example.com/oauth/authorize",
  "token_endpoint": "https://example.com/oauth/token",
  "response_types_supported": ["code"],
  "grant_types_supported": ["authorization_code", "refresh_token"]
}
Failed OAuth Protected Resource +1 overall pts

No OAuth Protected Resource Metadata found at /.well-known/oauth-protected-resource and no WWW-Authenticate header on the homepage.

OAuth Protected Resource
HIGH

OAuth Protected Resource Metadata (RFC 9728) tells agents which authorization servers issue tokens for your APIs. Cloudflare's isitagentready.com checks this as part of Level 5 readiness.

Publish OAuth Protected Resource Metadata at /.well-known/oauth-protected-resource describing which authorization servers issue tokens for your APIs.

# Serve OAuth Protected Resource Metadata at:
# https://example.com/.well-known/oauth-protected-resource
{
  "resource": "https://api.example.com",
  "authorization_servers": ["https://example.com"],
  "bearer_methods_supported": ["header"]
}
Failed Referrer-Policy +1 overall pts

Referrer-Policy header is not set.

Referrer-Policy
HIGH

Referrer-Policy controls what URL information is shared when users navigate away from your site. A strict policy protects user privacy and prevents leaking sensitive URL parameters.

Add a Referrer-Policy header (e.g., strict-origin-when-cross-origin or no-referrer).

Server config plain
# Nginx
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

# Apache (.htaccess)
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Failed Form field autocomplete +1 overall pts

0/3 applicable form inputs have autocomplete attributes (3 missing).

Form field autocomplete
HIGH

The autocomplete attribute tells AI agents and browsers what type of data a field expects (email, name, address). This semantic hint helps AI agents fill forms accurately without guessing field purposes from visual context.

Add autocomplete attributes to form inputs so AI agents and browsers understand the expected data type. Use standard values like "email", "name", "tel", "street-address". See html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill for the full list.

<input type="email" name="email" autocomplete="email">
<input type="text" name="name" autocomplete="name">
<input type="tel" name="phone" autocomplete="tel">
<input type="text" name="address" autocomplete="street-address">
Failed Question-based headings +1 overall pts

None of the 3 H2 headings use question format. Question-based H2 headings are 78.4% more likely to be cited by ChatGPT.

Question-based headings
HIGH

Question-based H2 headings dramatically improve AI citation likelihood. Research on 3M ChatGPT responses shows 78.4% of citations tied to questions came from H2 headings, and conversational Q&A format doubles overall citation rates.

Rewrite H2 headings as questions your audience asks. For example, instead of "Domain Authority Metrics" use "How does domain authority affect AI citations?". 78.4% of ChatGPT-cited pages use question-based H2 headings.

<!-- Instead of keyword-focused headings: -->
<h2>Domain Authority Metrics</h2>
<h2>SEO Best Practices</h2>

<!-- Use question-based headings: -->
<h2>How does domain authority affect AI citations?</h2>
<h2>What SEO practices improve AI visibility?</h2>
<h2>Why do AI systems prefer structured content?</h2>
Failed API Catalog (RFC 9727) +1 overall pts

No API Catalog found at /.well-known/api-catalog.

API Catalog (RFC 9727)
HIGH

API Catalog (RFC 9727 + RFC 9264 Linkset) gives agents a single discovery endpoint listing every API the site offers, with machine-readable links to OpenAPI specs (service-desc), human docs (service-doc), and health endpoints. Cloudflare's isitagentready.com scores this as part of Level 3 readiness.

Serve an RFC 9727 API Catalog at /.well-known/api-catalog with a linkset of service-desc, service-doc, and status links.

{
  "linkset": [
    {
      "anchor": "https://example.com/api/v1",
      "service-desc": [
        {"href": "https://example.com/openapi.json", "type": "application/openapi+json"}
      ],
      "service-doc": [
        {"href": "https://example.com/docs", "type": "text/html"}
      ],
      "status": [
        {"href": "https://example.com/health", "type": "application/json"}
      ]
    }
  ]
}
Failed Agent Skills index +1 overall pts

No Agent Skills index found at /.well-known/agent-skills/index.json or /.well-known/skills/index.json.

Agent Skills index
HIGH

Agent Skills Discovery (cloudflare/agent-skills-discovery-rfc v0.2.0) lets sites publish a directory of agent-callable skills with SHA-256 verifiable SKILL.md content. Cloudflare's isitagentready.com checks this for Level 4-5 readiness.

Publish an Agent Skills index per cloudflare/agent-skills-discovery-rfc v0.2.0 with top-level "$schema" and each skill's name, type (skill-md or archive), description, url, and digest (sha256:{64-hex}).

{
  "$schema": "https://raw.githubusercontent.com/cloudflare/agent-skills-discovery-rfc/main/schema/index.schema.json",
  "version": "0.2.0",
  "skills": [
    {
      "name": "search-products",
      "type": "skill-md",
      "description": "Search the product catalog",
      "url": "https://example.com/.well-known/agent-skills/search-products/SKILL.md",
      "digest": "sha256:abc123..."
    }
  ]
}
Failed WebMCP manifest +1 overall pts

No WebMCP manifest found at /.well-known/webmcp or /.well-known/webmcp.json.

WebMCP manifest
HIGH

A WebMCP manifest at /.well-known/webmcp.json enables pre-navigation discovery - AI agents can learn what tools your site offers before even loading the page.

Create a WebMCP manifest at /.well-known/webmcp.json with your tool definitions to enable pre-navigation agent discovery. Discovery is an active area of discussion in the WebMCP spec.

{
  "spec": "webmcp/0.1",
  "tools": [
    {
      "name": "search",
      "description": "Search products",
      "url": "/search",
      "method": "GET",
      "parameters": [
        {"name": "q", "type": "string", "description": "Search query"}
      ]
    }
  ]
}
Failed MCP Discovery +1 overall pts

No MCP discovery document found at /.well-known/mcp.json, /.well-known/mcp/server-card.json, or /.well-known/mcp/server-cards.json.

MCP Discovery
HIGH

The Model Context Protocol (MCP) by Anthropic is the standard for connecting AI assistants to external tools and data. A discovery document lets AI systems find and connect to your MCP server. SEP-1649 (modelcontextprotocol PR 2127) defines the new server-card.json schema with serverInfo, transport, and capabilities fields.

Create an MCP server card at /.well-known/mcp/server-card.json following SEP-1649 (serverInfo.name, transport, capabilities).

{
  "$schema": "https://modelcontextprotocol.io/schema/server-card.json",
  "name": "My Server",
  "serverInfo": {"name": "My Server", "version": "1.0.0"},
  "transport": {"type": "streamable-http", "endpoint": "https://drimble.nl/mcp"},
  "capabilities": {"tools": {"listChanged": false}}
}
Failed agents.json +1 overall pts

No agents.json found at /.well-known/agents.json or /agents.json.

agents.json
HIGH

agents.json provides a directory of AI agent endpoints on your site. It helps agent orchestration systems discover and connect to your available AI services.

Create an agents.json file at /.well-known/agents.json with your agent endpoint definitions.

agents.json json
{
  "agents": [
    {
      "name": "Support Agent",
      "description": "Handles customer inquiries",
      "url": "https://drimble.nl/agents/support",
      "protocol": "a2a"
    }
  ]
}
Partial Author attribution +1 overall pts

Author meta tag found. For stronger E-E-A-T signals, also add author information to your JSON-LD structured data.

Author attribution
MEDIUM

Author attribution is a key E-E-A-T signal. Google reports 96% of AI Overview citations come from sources with strong E-E-A-T, and expert-authored content is 3.2× more likely to be cited than generic staff-written content.

Upgrade to JSON-LD author attribution by adding an "author" property with @type "Person" to your Article or BlogPosting schema. 96% of Google AI Overview sources show strong E-E-A-T signals — structured authorship connects you to the knowledge graph.

JSON-LD html
<!-- Option 1: JSON-LD author in Article (preferred) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Article Title",
  "author": {
    "@type": "Person",
    "name": "Jane Smith",
    "url": "https://drimble.nl/team/jane-smith"
  }
}
</script>

<!-- Option 2: Meta tag -->
<meta name="author" content="Jane Smith">

<!-- Option 3: Linked author -->
<a rel="author" href="https://drimble.nl/team/jane-smith">Jane Smith</a>
Failed X-Content-Type-Options +1 overall pts

X-Content-Type-Options header is not set.

X-Content-Type-Options
HIGH

This header prevents MIME type sniffing attacks. It ensures browsers and HTTP clients interpret your content exactly as intended, reducing the risk of content injection.

Add the header X-Content-Type-Options: nosniff to prevent MIME type sniffing.

Server config plain
# Nginx
add_header X-Content-Type-Options "nosniff" always;

# Apache (.htaccess)
Header always set X-Content-Type-Options "nosniff"
Partial Content freshness signals +1 overall pts

Publication date found (article:published_time (meta)) but no modification date. AI systems prefer dateModified to assess content freshness.

Content freshness signals
MEDIUM

AI systems strongly prefer recent content. ChatGPT gives 3.2× more citations to content updated within 30 days. Clear date signals (dateModified, article:modified_time) help AI determine your content's recency.

Add a dateModified property to your JSON-LD structured data or an article:modified_time meta tag. Content with explicit modification dates gets 3.2× more AI citations.

JSON-LD html
<!-- Option 1: JSON-LD (preferred) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Article Title",
  "datePublished": "2026-01-15T09:00:00Z",
  "dateModified": "2026-02-28T14:30:00Z"
}
</script>

<!-- Option 2: Open Graph meta tags -->
<meta property="article:published_time" content="2026-01-15T09:00:00Z">
<meta property="article:modified_time" content="2026-02-28T14:30:00Z">

<!-- Option 3: HTML time element -->
<time datetime="2026-02-28T14:30:00Z">Updated February 28, 2026</time>

<!-- Server-level: Ensure Last-Modified header is sent -->
# Nginx: add_header Last-Modified $date_gmt;
# Apache: FileETag MTime (default)
Failed Language attribute +1 overall pts

No lang attribute found on <html> tag.

Language attribute
HIGH

The lang attribute tells AI agents what language your content is in, enabling correct text processing, translation, and language-specific understanding.

Add a lang attribute to your <html> tag (e.g. <html lang="en">). This helps AI agents determine the content language. See developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang for the lang attribute documentation.

HTML html
<html lang="en">
<!-- or for regional variants: -->
<html lang="en-US">
<html lang="nl-NL">
Partial Accessible landmarks & ARIA +1 overall pts

1 landmark regions (contentinfo) with ARIA enhancements (aria-label, aria-labelledby).

Accessible landmarks & ARIA
MEDIUM

ARIA landmarks help AI agents identify page regions (navigation, main content, footer). This is the same API used by screen readers and is increasingly used by AI browsing agents.

Use semantic HTML elements to define page regions: <header>, <nav>, <main>, <footer>. These provide implicit ARIA landmarks without needing explicit role attributes. See w3.org/WAI/ARIA/apg/patterns/landmarks for the W3C landmarks pattern.

HTML html
<!-- Semantic elements provide implicit ARIA landmarks -->
<header><!-- banner landmark -->
  <nav aria-label="Primary"><!-- navigation landmark -->
    <a href="/" aria-current="page">Home</a>
  </nav>
</header>
<main><!-- main landmark -->
  <article>...</article>
</main>
<footer><!-- contentinfo landmark --></footer>
Partial Image alt text +0 overall pts

15/16 images have alt attributes (1 missing).

Image alt text
MEDIUM

AI agents cannot see images. Alt text is the only way for AI systems to understand image content, context, and relevance to the surrounding text.

Add descriptive alt text to all images. Use alt="" for purely decorative images. Missing alt attributes prevent AI agents from understanding image content. See w3.org/WAI/WCAG22/Understanding/non-text-content.html for WCAG guidelines on non-text content.

HTML html
<!-- Descriptive alt text for meaningful images -->
<img src="chart.png" alt="Revenue growth chart showing 40% increase in Q4 2025">

<!-- Empty alt for purely decorative images -->
<img src="divider.svg" alt="">
Fix with AI Skills
$ /plugin marketplace add bartwaardenburg/isagentready-skills

Detailed results

Agent Protocols

Weight 15% · 9 failed checkpoints

0/100
AI Content Discovery

Weight 30% · 4 failed, 2 partial

54/100
Security & Trust

Weight 15% · 5 failed checkpoints

48/100
Content & Semantics

Weight 20% · 4 failed, 2 partial

73/100
AI Search Signals

Weight 20% · 4 failed, 1 partial

9/100
Supplemental evidence AI visitor test and training exposure. The score does not change.
AI Training Exposure

Does not affect the readiness score

Supplemental

1 of 3 AI training protection mechanisms active.

Common Crawl presence Unknown

Could not determine the latest Common Crawl index.

Training crawler blocking Partial

1 of 8 training crawlers blocked: CCBot. Still allowed: Amazonbot, Applebot-Extended, Bytespider, ClaudeBot, GPTBot, Google-Extended, meta-externalagent.

TDMRep declaration Not found

No TDMRep file found at /.well-known/tdmrep.json. The TDM Reservation Protocol (W3C) lets you declare whether you reserve text and data mining rights. See w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240510 for the specification.

ai.txt policy Not found

No ai.txt file found. ai.txt lets you declare AI usage preferences for your content.

Web Bot Auth Not found

No Web Bot Auth signature key directory found. Bots cannot prove their identity to origins via signed HTTP requests.

Next steps

DEVELOPER TOOLS

Scan and fix from your editor. Install the MCP server to scan, and AI skills to fix.

SCAN
$ claude mcp add isagentready-mcp -- npx -y isagentready-mcp
FIX
$ /plugin marketplace add bartwaardenburg/isagentready-skills
Request a detailed report Optional follow-up with a personalized PDF report
Free PDF Report

Get your detailed report

Receive a personalized report with actionable insights for improving your website's AI agent readiness.

  • Detailed score breakdown per category
  • Prioritized improvement recommendations
  • Step-by-step implementation guide

We'll use this address to send report updates.