---
title: "Check reference · Sitebulb Labs"
description: "Explore every AI agent readiness check in the Sitebulb Labs Extension, grouped by category, and learn how results contribute to your site's score."
url: https://labs.sitebulb.com/docs/checks/
---

# Check reference

Explore every AI agent readiness check in the Sitebulb Labs Extension, grouped by category, and learn how results contribute to your site's score.

The Sitebulb Labs Extension has **50 checks in six categories**. A normal scan leaves out checks for emerging standards. You can include those in the extension’s settings; they are marked **emerging** below. They can add bonus points, but missing an emerging signal does not lower a category score.

A check can return one of six statuses:

| Status         | Meaning                                                         | Effect on score       |
| -------------- | --------------------------------------------------------------- | --------------------- |
| **Pass**       | The check found the signal or a sound configuration             | Full credit if scored |
| **Warn**       | Something is present but incomplete, or needs attention         | Half credit if scored |
| **Fail**       | A problem the check can confirm                                 | No credit if scored   |
| **N/A**        | The check does not apply or there is nothing relevant to assess | Excluded              |
| **Info**       | A finding without a clear pass or fail                          | Excluded              |
| **Unmeasured** | The check applies, but the extension could not complete it      | Excluded              |

Some checks are **bonus** checks. Passing one adds points to the overall score; its absence cannot reduce a category score. The extension calculates category scores from the other applicable checks, then combines those scores with extra weight on **Content accessibility** and **Bot access control**. Bonus points are capped at 10. **Protocol discovery** and **Commerce** contain only bonus checks, so neither has a category percentage unless scored checks are added in a future version.

The priority panel estimates how many points each fix could add. It draws those estimates from the current scan rather than a fixed list of “easy wins”.

## Discoverability

Can an agent find the site’s pages, files, and published services?

- [**robots.txt present & valid**](https://labs.sitebulb.com/docs/checks/discoverability/robots-txt)\
  checks that `/robots.txt` is reachable and contains usable crawl rules or sitemap references.
- [**Sitemap available**](https://labs.sitebulb.com/docs/checks/discoverability/sitemap)\
  looks for a sitemap that lists pages to crawl.
- [**Link response headers**](https://labs.sitebulb.com/docs/checks/discoverability/link-headers)\
  looks for HTTP `Link` headers such as `alternate`, `canonical`, and `describedby`.
- [**Agent-friendly 404s**](https://labs.sitebulb.com/docs/checks/discoverability/agent-friendly-404)\
  checks that a missing page returns HTTP 404 or 410 instead of a misleading 200 response.
- [**Redirect hygiene**](https://labs.sitebulb.com/docs/checks/discoverability/redirect-hygiene)\
  looks for JavaScript or meta-refresh redirects that an agent reading the initial HTML might miss.
- [**Sitemap freshness (lastmod)**](https://labs.sitebulb.com/docs/checks/discoverability/sitemap-lastmod)\
  checks sitemap `<lastmod>` values that help an agent identify changed pages.
- Emerging check [**DNS for AI Discovery (DNS-AID)**](https://labs.sitebulb.com/docs/checks/discoverability/dns-aid)\
  looks for a DNS TXT record advertising agent endpoints.
- Emerging check [**ARD catalog (ai-catalog)**](https://labs.sitebulb.com/docs/checks/discoverability/ard-catalog)\
  looks for a catalog of the domain’s agents, skills, APIs, or MCP servers.
- Emerging check [**ARD entry validity**](https://labs.sitebulb.com/docs/checks/discoverability/ard-entries-valid)\
  checks catalog entries for a domain-anchored identifier, display name, media type, and a URL or inline data.
- Emerging check [**ARD trust manifest**](https://labs.sitebulb.com/docs/checks/discoverability/ard-trust-manifest)\
  checks whether the catalog points to a manifest that binds its entries to a publisher identity.
- Emerging check [**NLWeb Schema Feeds**](https://labs.sitebulb.com/docs/checks/discoverability/nlweb-schema-feeds)\
  looks for a `schemamap:` directive in `robots.txt` pointing to structured-data feeds.

## Content accessibility

Can an agent read and understand the content it finds?

- [**Content without JavaScript**](https://labs.sitebulb.com/docs/checks/content-accessibility/content-no-js)\
  compares the server’s HTML with the rendered page to see whether meaningful content depends on JavaScript.
- [**Markdown content negotiation**](https://labs.sitebulb.com/docs/checks/content-accessibility/markdown-negotiation)\
  checks whether the page serves Markdown when requested with `Accept: text/markdown`.
- [**Markdown negotiation caching (Vary)**](https://labs.sitebulb.com/docs/checks/content-accessibility/markdown-negotiation-vary)\
  checks for `Vary: Accept` so caches do not mix up HTML and Markdown responses.
- [**llms.txt links resolve**](https://labs.sitebulb.com/docs/checks/content-accessibility/llms-txt-links-resolve)\
  checks that links in `/llms.txt` do not point to missing pages.
- [**JSON-LD entity linking (sameAs)**](https://labs.sitebulb.com/docs/checks/content-accessibility/json-ld-entity-linking)\
  checks whether structured data links an entity to its other known profiles or identifiers.
- [**Organization schema completeness**](https://labs.sitebulb.com/docs/checks/content-accessibility/org-schema-completeness)\
  checks the details in the page’s `Organization` structured-data node.
- [**Schema type breadth**](https://labs.sitebulb.com/docs/checks/content-accessibility/schema-type-breadth)\
  looks for specific schema types, such as articles or products, rather than only generic types.
- [**Structured data (JSON-LD)**](https://labs.sitebulb.com/docs/checks/content-accessibility/structured-data)\
  looks for Schema.org JSON-LD on the page.
- Emerging check [**Markdown URL fallback (.md)**](https://labs.sitebulb.com/docs/checks/content-accessibility/markdown-url-fallback)\
  looks for a Markdown version of the page at a `.md` URL.
- Emerging check [**Markdown alternate link**](https://labs.sitebulb.com/docs/checks/content-accessibility/markdown-link-alternate)\
  looks for a `rel="alternate"` link to a `text/markdown` version of the page.
- Emerging check [**llms.txt present**](https://labs.sitebulb.com/docs/checks/content-accessibility/llms-txt)\
  looks for a Markdown map of the site’s important content at `/llms.txt`.
- Emerging check [**Modular llms.txt**](https://labs.sitebulb.com/docs/checks/content-accessibility/modular-llms-txt)\
  looks for section-specific `llms.txt` files.
- Emerging check [**Speakable content markup**](https://labs.sitebulb.com/docs/checks/content-accessibility/speakable-content)\
  looks for `speakable` markup identifying content suitable for voice output.

## Bot access control

What do the site’s crawl rules say about AI bots and user-triggered agents?

- [**AI bot rules in robots.txt**](https://labs.sitebulb.com/docs/checks/bot-access-control/ai-bot-rules)\
  checks the rules for named AI crawlers, including whether they are allowed or blocked.
- [**robots.txt agent-user policy**](https://labs.sitebulb.com/docs/checks/bot-access-control/robots-agent-user-policy)\
  checks whether rules for user-triggered agents, such as ChatGPT-User or Claude-User, block access.
- Emerging check [**Content Signals**](https://labs.sitebulb.com/docs/checks/bot-access-control/content-signals)\
  looks for Cloudflare’s `Content-Signal:` directive in `robots.txt`.
- Emerging check [**Web Bot Auth**](https://labs.sitebulb.com/docs/checks/bot-access-control/web-bot-auth)\
  looks for the signatures directory used to identify agents with HTTP Message Signatures.

## Protocol discovery

Can an agent find an API, tool, or service it can use? All checks in this category are bonus checks.

- [**MCP Server Card**](https://labs.sitebulb.com/docs/checks/protocol-discovery/mcp-server-card)\
  looks for a well-known descriptor of an MCP server.
- [**API Catalog**](https://labs.sitebulb.com/docs/checks/protocol-discovery/api-catalog)\
  looks for the RFC 9727 `/.well-known/api-catalog` endpoint.
- [**Rate limit response headers**](https://labs.sitebulb.com/docs/checks/protocol-discovery/rate-limit-headers)\
  checks whether an API advertises limits so an agent can pace its requests.
- [**OAuth Authorization Server discovery**](https://labs.sitebulb.com/docs/checks/protocol-discovery/oauth-discovery)\
  looks for RFC 8414 metadata about obtaining authorization.
- [**OAuth Protected Resource metadata**](https://labs.sitebulb.com/docs/checks/protocol-discovery/oauth-protected-resource)\
  looks for RFC 9728 metadata identifying a resource’s authorization servers.
- Emerging check [**Agent Skills**](https://labs.sitebulb.com/docs/checks/protocol-discovery/agent-skills)\
  looks for a manifest of callable skills.
- Emerging check [**WebMCP**](https://labs.sitebulb.com/docs/checks/protocol-discovery/webmcp)\
  checks the live page for tools exposed through `document.modelContext`.
- Emerging check [**A2A Agent Card**](https://labs.sitebulb.com/docs/checks/protocol-discovery/a2a-agent-card)\
  looks for a card describing an agent’s capabilities and endpoint.

## Agent experience

Can an agent make sense of the page and use its controls?

- [**Content efficiency**](https://labs.sitebulb.com/docs/checks/agent-experience/content-efficiency)\
  measures readable text against the amount of HTML.
- [**Page token budget**](https://labs.sitebulb.com/docs/checks/agent-experience/page-token-budget)\
  flags pages whose size could cause an agent to miss content when working within a context limit.
- [**Metadata completeness**](https://labs.sitebulb.com/docs/checks/agent-experience/metadata-completeness)\
  checks the page title, description, and canonical URL.
- [**Trust anchor pages**](https://labs.sitebulb.com/docs/checks/agent-experience/trust-anchors)\
  looks for about, contact, and privacy pages.
- [**Document structure**](https://labs.sitebulb.com/docs/checks/agent-experience/ax-document-structure)\
  checks landmarks and heading order.
- [**Native interactive controls**](https://labs.sitebulb.com/docs/checks/agent-experience/ax-native-controls)\
  checks whether interactive elements use controls that keyboard users and agents can operate.
- [**Accessible names on controls**](https://labs.sitebulb.com/docs/checks/agent-experience/ax-accessible-names)\
  checks whether buttons and other controls have names an agent can identify.
- [**Form control labelling**](https://labs.sitebulb.com/docs/checks/agent-experience/ax-form-labeling)\
  checks whether form fields have labels.
- [**Accessibility-tree injection safety**](https://labs.sitebulb.com/docs/checks/agent-experience/ax-tree-injection-safe)\
  looks for instruction-shaped text in labels and alternative text that could steer an agent.
- Emerging check [**Pagination signals**](https://labs.sitebulb.com/docs/checks/agent-experience/content-crawl-depth)\
  looks for `rel="next"` and `rel="prev"` links on paginated content.

## Commerce

Can an agent transact with the site? All four checks are **emerging bonus** checks, so an ordinary site is not penalised for lacking them.

- Emerging check [**x402 payments**](https://labs.sitebulb.com/docs/checks/commerce/x402)\
  looks for HTTP 402 payment support.
- Emerging check [**Merchant Payment Protocol (MPP)**](https://labs.sitebulb.com/docs/checks/commerce/mpp)\
  looks for merchant payment capabilities.
- Emerging check [**Universal Commerce Protocol (UCP)**](https://labs.sitebulb.com/docs/checks/commerce/ucp)\
  looks for agent-driven commerce support.
- Emerging check [**Agentic Commerce Protocol (ACP)**](https://labs.sitebulb.com/docs/checks/commerce/acp)\
  looks for a way for agents to complete purchases.

## Check sets

For most addresses, the extension runs all checks, including content and API checks. Individual checks can still report N/A. For hosts whose first label is `api`, `apis`, `graphql`, or `rest`, or begins with one of those followed by a hyphen (for example, `api-eu.example.com`), it skips content-only checks. It does not currently offer a manual check-set selector. You can turn emerging checks on or off in settings; they are off by default.
