Agent readiness report
www.whosbest.org
Agent Readability vercel
94/100Excellent
Better than 86% of 7 sites scanned · 220 of 235 checks passed
llms.txt llmstxt.org
100/100Excellent
10 of 10 lint rules
Accessibility A1–A23
87/100Good
13 of 15 rules · homepage static DOM · does not affect main score
Markdown readiness accept-md
100/100Fully negotiated
Accept: text/markdown → text/markdown
L4 Agent Integration
Integrated: at least one agent protocol advertised. Next: Publish a Web Bot Auth directory.
Next level Level 5 · Auth & Trust
3 changes unlock Level 5.
- Publish a Web Bot Auth directoryServe /.well-known/http-message-signatures-directory with your bot signing keys (any 2 of 3) B5
- Publish all four integrationsServe MCP server card, A2A agent card, Agent Skills index and api-catalog (any 2 of 3) C1+C4+C6+C7
- Publish auth metadataServe /.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server (or openid-configuration) or /auth.md (any 2 of 3) C3|C8|C11
Site-wide
14 passed · 1 n/allms.txt
/llms.txt4 passed
Passed llms.txt exists S1 Found llms.txt at https://www.whosbest.org/llms.txt
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — Probe /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Selected /llms.txt: HTTP 200, text/plain, 8,455 chars · https://www.whosbest.org/llms.txt
- conclude Found llms.txt at https://www.whosbest.org/llms.txt
Required · site
Passed llms.txt served as text/plain S2 Content-Type is text/plain
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Content-Type header: text/plain → media type 'text/plain' · https://www.whosbest.org/llms.txt
- conclude Content-Type is text/plain
Required · site
Passed llms.txt is non-empty S3 llms.txt has 8,455 characters
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Body: 8,455 chars, 61 non-blank line(s) · https://www.whosbest.org/llms.txt
- conclude llms.txt has 8,455 characters
Required · site
Passed llms.txt links do not point at .html files S4 No links point at .html files
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Inspected 48 link(s); 0 end in .html/.htm · https://www.whosbest.org/llms.txt
- conclude No links point at .html files
Recommended · site
robots.txt
/robots.txt3 passed
Passed robots.txt allows AI crawlers S5 None of the 9 known AI crawlers are disallowed
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Parsed robots.txt: 19 group(s), 1 sitemap line(s), 1 Content-Signal line(s); root path allowed for all 9 known AI crawlers · https://www.whosbest.org/robots.txt
- conclude None of the 9 known AI crawlers are disallowed
Required · site
Passed /llms.txt is not blocked by robots.txt S6 /llms.txt is allowed for all crawlers
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Evaluated /llms.txt against 10 user agents (* + AI crawlers): none disallow it · https://www.whosbest.org/robots.txt
- conclude /llms.txt is allowed for all crawlers
Required · site
Passed robots.txt exists S7 robots.txt found (19 group(s), 1 sitemap line(s))
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Parsed robots.txt: 19 group(s), 1 sitemap line(s), 1 Content-Signal line(s) · https://www.whosbest.org/robots.txt
- conclude robots.txt found (19 group(s), 1 sitemap line(s))
Required · site
Sitemap
/sitemap.xml · /sitemap.md4 passed
Passed sitemap.xml is valid S8 Valid sitemap: 341 URL(s)
Evidence
- fetch GEThttps://www.whosbest.org/sitemap.xml → 200 · Content-Type: application/xml; charset=utf-8 · 140 ms — GET /sitemap.xml<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.whosbest.org/</loc> <lastmod>2026-08-22</lastmod> <changefreq>weekly</changefreq> <priority>1.0</priority> </url> <url> <loc>http://www.whosbest.org/abo…
- parse Parsed /sitemap.xml: 341 URL(s), 0 child sitemap(s) · https://www.whosbest.org/sitemap.xml
- conclude Valid sitemap: 341 URL(s)
Required · site
Passed sitemap entries have lastmod S9 341/341 entries (100%) have lastmod
Evidence
- fetch GEThttps://www.whosbest.org/sitemap.xml → 200 · Content-Type: application/xml; charset=utf-8 · 140 ms — GET /sitemap.xml<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.whosbest.org/</loc> <lastmod>2026-08-22</lastmod> <changefreq>weekly</changefreq> <priority>1.0</priority> </url> <url> <loc>http://www.whosbest.org/abo…
- parse Counted <lastmod> on 341 <url> entries: 341 present, 0 missing · https://www.whosbest.org/sitemap.xml
- conclude 341/341 entries (100%) have lastmod
Recommended · site
Passed sitemap.md exists S10 Found sitemap.md at https://www.whosbest.org/sitemap.md
Evidence
- fetch GEThttps://www.whosbest.org/sitemap.md → 200 · Content-Type: text/markdown; charset=utf-8 · 217 ms — GET /sitemap.md# WhosBest.org sitemap > Markdown index of every public page on WhosBest.org — rankings, sector and category hubs, city hubs, community lists, company pages, and agent-discovery files. 101 links, generated 2026-08-23. Append `.md` to any page path for a markdown twin; the XML sitemap (which also li…
- parse Selected /sitemap.md: HTTP 200, text/markdown, 10,498 chars · https://www.whosbest.org/sitemap.md
- conclude Found sitemap.md at https://www.whosbest.org/sitemap.md
Recommended · site
Passed sitemap.md has headings and links S11 sitemap.md has 9 heading(s) and 101 link(s)
Evidence
- fetch GEThttps://www.whosbest.org/sitemap.md → 200 · Content-Type: text/markdown; charset=utf-8 · 217 ms — GET /sitemap.md# WhosBest.org sitemap > Markdown index of every public page on WhosBest.org — rankings, sector and category hubs, city hubs, community lists, company pages, and agent-discovery files. 101 links, generated 2026-08-23. Append `.md` to any page path for a markdown twin; the XML sitemap (which also li…
- parse Parsed sitemap.md as markdown: 9 heading(s), 101 link(s) · https://www.whosbest.org/sitemap.md# WhosBest.org sitemap ## Key pages ## Rankings ## Sector hubs ## Categories
- conclude sitemap.md has 9 heading(s) and 101 link(s)
Recommended · site
AGENTS.md
/AGENTS.md2 passed
Passed AGENTS.md exists S12 Found agent instructions at https://www.whosbest.org/AGENTS.md
Evidence
- fetch GEThttps://www.whosbest.org/AGENTS.md → 200 · Content-Type: text/markdown · 24 ms — GET /AGENTS.md# WhosBest.org Agent Skill > How AI agents, LLM crawlers, and automated tools should discover, read, cite, and call WhosBest.org — an independent, evidence-backed rankings platform for B2B service providers, powered by Winston AI. WhosBest.org publishes editorial rankings, Winston AI algorithmic s…
- parse Selected /AGENTS.md: HTTP 200, text/markdown, 8,760 chars · https://www.whosbest.org/AGENTS.md
- conclude Found agent instructions at https://www.whosbest.org/AGENTS.md
Recommended · site
Passed AGENTS.md has required sections S13 3/3 required section types present
Evidence
- fetch GEThttps://www.whosbest.org/AGENTS.md → 200 · Content-Type: text/markdown · 24 ms — GET /AGENTS.md# WhosBest.org Agent Skill > How AI agents, LLM crawlers, and automated tools should discover, read, cite, and call WhosBest.org — an independent, evidence-backed rankings platform for B2B service providers, powered by Winston AI. WhosBest.org publishes editorial rankings, Winston AI algorithmic s…
- parse Parsed 7 heading(s); matched 3/3 section types (setup / configuration / usage) · https://www.whosbest.org/AGENTS.md# WhosBest.org Agent Skill ## Installation ## Configuration ## Usage Examples ## API ## Data & Attribution ## Contact
- conclude 3/3 required section types present
Recommended · site
Transport
1 passed
Passed Site is served over HTTPS S14 Root URL is HTTPS
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Root scheme: https; homepage final URL: https://www.whosbest.org/ · https://www.whosbest.org/
- conclude Root URL is HTTPS
Required · site
API
/openapi.json1 n/a
Not applicable Root OpenAPI document (API-first sites) S15 Site does not look API-first (no OpenAPI/Swagger links or /api paths found)
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse API-first heuristic: inspected 341 sitemap URL(s) and the homepage links for /api, openapi or swagger — no match · https://www.whosbest.org/
- conclude Site does not look API-first (no OpenAPI/Swagger links or /api paths found)
Optional · site
Pages
10 checked · avg 20.6/23 · P1–P24 per pageWarning www.whosbest.org/ 21/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/
Passed
P6 Meta description (≥ 50 chars)
Description is 214 chars
Passed
P7 og:title
og:title: WhosBest.org | The Directory of Excellence
Passed
P8 og:description
og:description: AI-powered, evidence-backed rankings of B2B providers, AI platforms, and social …
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 11 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
33 heading(s)
Failed
P13 Text-to-HTML ratio
Text-to-HTML ratio 9.2% (3,025 text chars / 32,821 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/index.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </index.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
3,025 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/find 21/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/find
Passed
P6 Meta description (≥ 50 chars)
Description is 138 chars
Passed
P7 og:title
og:title: Find a Provider | WhosBest.org
Passed
P8 og:description
og:description: Tell us what you need and we'll match you with the top-rated B2B providers in yo…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 12 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
9 heading(s)
Failed
P13 Text-to-HTML ratio
Text-to-HTML ratio 2.9% (442 text chars / 15,060 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/find.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </find.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/find>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
442 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/about 21/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/about
Passed
P6 Meta description (≥ 50 chars)
Description is 220 chars
Passed
P7 og:title
og:title: About WhosBest.org — Evidence-backed rankings powered by Winston AI
Passed
P8 og:description
og:description: WhosBest.org publishes evidence-backed rankings powered by Winston AI — transpar…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 25 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
20 heading(s)
Warning
P13 Text-to-HTML ratio
Text-to-HTML ratio 12.4% (3,434 text chars / 27,759 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/about.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </about.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/about>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
3,434 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/check 22/23
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/check
Passed
P6 Meta description (≥ 50 chars)
Description is 300 chars
Passed
P7 og:title
og:title: Agent Readiness Check — Free llms.txt, robots, markdown and metadata scan | Whos…
Passed
P8 og:description
og:description: Free agent-readiness check. Scan any public website in about 20 seconds for llms…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 30 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
17 heading(s)
Warning
P13 Text-to-HTML ratio
Text-to-HTML ratio 11.2% (3,895 text chars / 34,655 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/check.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </check.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/check>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Passed
P21 Code blocks declare a language
All 1 markdown code block(s) declare a language
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
3,895 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/lists 16/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/lists
Passed
P6 Meta description (≥ 50 chars)
Description is 135 chars
Passed
P7 og:title
og:title: Browse rankings | WhosBest.org
Passed
P8 og:description
og:description: Every WhosBest ranking, filtered the way you want. Editorial top lists, Winston …
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 12 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
27 heading(s)
Failed
P13 Text-to-HTML ratio
Text-to-HTML ratio 6.4% (2,047 text chars / 32,191 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Failed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/lists.md → HTTP 503 text/markdown
Failed
P16 Markdown frontmatter (title, description, last_updated)
No markdown version available to inspect
Passed
P17 link rel=alternate type=text/markdown
Link header: </lists.md>; rel=alternate; type=text/markdown
Failed
P18 Markdown endpoint sends Link rel=canonical
No markdown version available
Failed
P19 Accept: text/markdown negotiation
Accept: text/markdown → HTTP 503 text/markdown
Failed
P20 Markdown has a ## Sitemap section
No markdown version available
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
2,047 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Passed www.whosbest.org/terms 22/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/terms
Passed
P6 Meta description (≥ 50 chars)
Description is 172 chars
Passed
P7 og:title
og:title: Terms of Service | WhosBest.org
Passed
P8 og:description
og:description: WhosBest.org terms of service: the rules for using our rankings platform, commun…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 12 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
22 heading(s)
Passed
P13 Text-to-HTML ratio
Text-to-HTML ratio 29.3% (7,277 text chars / 24,871 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/terms.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </terms.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/terms>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
7,277 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/cities 21/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/cities
Passed
P6 Meta description (≥ 50 chars)
Description is 129 chars
Passed
P7 og:title
og:title: Browse Cities | WhosBest.org
Passed
P8 og:description
og:description: Browse local provider rankings by city across all sectors on WhosBest.org. Evide…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 15 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
10 heading(s)
Failed
P13 Text-to-HTML ratio
Text-to-HTML ratio 1.7% (321 text chars / 18,446 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/cities.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </cities.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/cities>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
321 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Passed www.whosbest.org/privacy 22/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/privacy
Passed
P6 Meta description (≥ 50 chars)
Description is 143 chars
Passed
P7 og:title
og:title: Privacy Policy | WhosBest.org
Passed
P8 og:description
og:description: WhosBest.org privacy policy: what information we collect, how we use and protect…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 12 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
21 heading(s)
Passed
P13 Text-to-HTML ratio
Text-to-HTML ratio 26.4% (6,282 text chars / 23,807 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/privacy.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </privacy.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/privacy>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
6,282 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Warning www.whosbest.org/sitemap 18/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/sitemap
Passed
P6 Meta description (≥ 50 chars)
Description is 137 chars
Passed
P7 og:title
og:title: Site map | WhosBest.org
Passed
P8 og:description
og:description: Complete site map for WhosBest.org — quick links to every major area including r…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 12 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
19 heading(s)
Warning
P13 Text-to-HTML ratio
Text-to-HTML ratio 10.8% (2,780 text chars / 25,707 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/sitemap.md → text/markdown
Failed
P16 Markdown frontmatter (title, description, last_updated)
Markdown has no YAML frontmatter
Passed
P17 link rel=alternate type=text/markdown
Link header: </sitemap.md>; rel=alternate; type=text/markdown
Failed
P18 Markdown endpoint sends Link rel=canonical
Markdown response has no Link: rel="canonical" header
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Failed
P20 Markdown has a ## Sitemap section
No ## Sitemap heading in markdown
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
2,780 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
Passed www.whosbest.org/glossary 22/22
Passed
P1 Returns HTTP 200
HTTP 200
Passed
P2 At most one redirect
No redirects
Passed
P3 Content-Type is text/html
Content-Type: text/html; charset=utf-8
Passed
P4 No noindex / noai X-Robots-Tag
No restrictive X-Robots-Tag
Passed
P5 Canonical link
canonical: http://www.whosbest.org/glossary
Passed
P6 Meta description (≥ 50 chars)
Description is 233 chars
Passed
P7 og:title
og:title: Glossary — Rankings & AI Agent-Readiness Terms | WhosBest.org
Passed
P8 og:description
og:description: Definitions of the ranking and AI agent-readiness terms used on WhosBest.org — W…
Passed
P9 html lang attribute
lang="en"
Passed
P10 JSON-LD structured data present
1 JSON-LD block(s), 46 node(s)
Passed
P11 JSON-LD has required fields
name/headline, description, url/@id, dateModified and BreadcrumbList present
Passed
P12 At least 3 headings (h1–h3)
10 heading(s)
Passed
P13 Text-to-HTML ratio
Text-to-HTML ratio 18.1% (8,834 text chars / 48,841 HTML chars)
Passed
P14 Links to a glossary
Links to https://www.whosbest.org/glossary
Passed
P15 Markdown mirror ({path}.md)
https://www.whosbest.org/glossary.md → text/markdown
Passed
P16 Markdown frontmatter (title, description, last_updated)
Frontmatter has title, description and last_updated
Passed
P17 link rel=alternate type=text/markdown
Link header: </glossary.md>; rel=alternate; type=text/markdown
Passed
P18 Markdown endpoint sends Link rel=canonical
Link: <http://www.whosbest.org/glossary>; rel="canonical"
Passed
P19 Accept: text/markdown negotiation
Accept: text/markdown → text/markdown
Passed
P20 Markdown has a ## Sitemap section
## Sitemap section present
Not applicable
P21 Code blocks declare a language
No code blocks on the page
Not applicable
P22 API pages link an API schema
Not an API documentation page
Passed
P23 Content does not depend on JavaScript rendering
8,834 chars of server-rendered text
Passed
P24 llms.txt describedby link
Link header: </llms.txt>; rel="describedby"
llms.txt lint
10 passed · does not affect the main scorellms.txt
/llms.txt10 passed
Passed llms.txt returns HTTP 200 L1 HTTP 200 from https://www.whosbest.org/llms.txt
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Status line: HTTP 200, text/plain, 8,455 chars · https://www.whosbest.org/llms.txt
- conclude HTTP 200 from https://www.whosbest.org/llms.txt
Required · llmstxt
Passed First line is an H1 title L2 H1 title: "WhosBest.org"
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse First non-blank line is a # heading · https://www.whosbest.org/llms.txt# WhosBest.org
- conclude H1 title: "WhosBest.org"
Required · llmstxt
Passed Content is parseable markdown (not an HTML shell) L3 Body parses as markdown
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Body parsed as markdown: 6 ## section(s), 48 link(s), 8,455 chars · https://www.whosbest.org/llms.txt
- conclude Body parses as markdown
Required · llmstxt
Passed Blockquote summary follows the H1 L4 Blockquote summary present: "WhosBest.org is an independent, evidence-backed rankings platform for B2B servic…"
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Found a > blockquote immediately after the H1 · https://www.whosbest.org/llms.txtWhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites its underlying signa…
- conclude Blockquote summary present: "WhosBest.org is an independent, evidence-backed rankings platform for B2B servic…"
Recommended · llmstxt
Passed At least one H2 section with a link list L5 6 H2 section(s) with link lists (48 links)
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Parsed 6 ## section(s); 6 contain link lists · https://www.whosbest.org/llms.txt## Key Pages (12 link(s)) ## Sector Hubs (8 link(s)) ## Featured Rankings (5 link(s)) ## Methodology & Standards (4 link(s)) ## For AI Agents (12 link(s)) ## Optional (7 link(s))
- conclude 6 H2 section(s) with link lists (48 links)
Recommended · llmstxt
Passed Link lines use - [name](url): notes format L6 All 48 link line(s) are well-formed
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Inspected 48 bullet line(s): 48 well-formed '- [name](url): notes', 0 malformed · https://www.whosbest.org/llms.txt
- conclude All 48 link line(s) are well-formed
Recommended · llmstxt
Passed Sampled links resolve (2xx) L7 All 5 sampled link(s) returned 2xx
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- fetch HEADhttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · 115 ms — HEAD https://www.whosbest.org/
- fetch HEADhttps://www.whosbest.org/top-lists → 200 · Content-Type: text/html; charset=utf-8 · 102 ms — HEAD https://www.whosbest.org/top-lists
- fetch HEADhttps://www.whosbest.org/lists → 200 · Content-Type: text/html; charset=utf-8 · 179 ms — HEAD https://www.whosbest.org/lists
- fetch HEADhttps://www.whosbest.org/cities → 200 · Content-Type: text/html; charset=utf-8 · 155 ms — HEAD https://www.whosbest.org/cities
- fetch HEADhttps://www.whosbest.org/find → 200 · Content-Type: text/html; charset=utf-8 · 101 ms — HEAD https://www.whosbest.org/find
- parse Sampled 5 of 44 same-host link(s): 5 returned 2xx · https://www.whosbest.org/llms.txtok 200 https://www.whosbest.org/ ok 200 https://www.whosbest.org/top-lists ok 200 https://www.whosbest.org/lists ok 200 https://www.whosbest.org/cities ok 200 https://www.whosbest.org/find
- conclude All 5 sampled link(s) returned 2xx
Recommended · llmstxt
Passed ## Optional section used correctly L8 ## Optional is last and lists 7 link(s)
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse ## Optional is section 6 of 6 (last) with 7 link(s) · https://www.whosbest.org/llms.txt
- conclude ## Optional is last and lists 7 link(s)
Optional · llmstxt
Passed Served as text/plain L9 Content-Type: text/plain
Evidence
- fetch GEThttps://www.whosbest.org/llms.txt → 200 · Content-Type: text/plain · 21 ms — GET /llms.txt# WhosBest.org > WhosBest.org is an independent, evidence-backed rankings platform for B2B service providers, AI platforms, healthcare technology, professional services, education software, local business tools, analytics platforms, and cloud platforms. Every ranking is methodology-driven, cites it…
- parse Content-Type header: text/plain → media type 'text/plain' · https://www.whosbest.org/llms.txt
- conclude Content-Type: text/plain
Recommended · llmstxt
Passed llms-full.txt exists L10 Found /llms-full.txt (text/plain)
Evidence
- fetch HEADhttps://www.whosbest.org/llms-full.txt → 200 · Content-Type: text/plain; charset=utf-8 · 172 ms — Probe /llms-full.txt
- parse /llms-full.txt answered HTTP 200 with a non-HTML body (text/plain) · https://www.whosbest.org/llms-full.txt
- conclude Found /llms-full.txt (text/plain)
Optional · llmstxt
Markdown negotiation
4 passed · does not affect the main scoreAccept: text/markdown
10 page(s) sampled4 passed
Passed Serves markdown for Accept: text/markdown M1 Accept: text/markdown → text/markdown
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/markdown; charset=utf-8 · Vary: Accept, Accept-Encoding · 4 ms — GET / with Accept: text/markdown--- title: "WhosBest.org | The Directory of Excellence" description: "AI-powered, evidence-backed rankings of B2B providers, AI platforms, and social networks. Curated top lists across healthcare, technology, education, and professional services — transparent scoring, no pay-to-play." canonical_url:…
- parse Response to Accept: text/markdown: HTTP 200, Content-Type text/markdown; charset=utf-8, Vary Accept, Accept-Encoding → markdown representation served · https://www.whosbest.org/
- conclude Accept: text/markdown → text/markdown
Required · markdown
Passed Responds with Vary: Accept M2 Vary: Accept, Accept-Encoding
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Vary: Accept, Accept-Encoding · Content-Type: text/markdown; charset=utf-8 · 4 ms — GET / with Accept: text/markdown--- title: "WhosBest.org | The Directory of Excellence" description: "AI-powered, evidence-backed rankings of B2B providers, AI platforms, and social networks. Curated top lists across healthcare, technology, education, and professional services — transparent scoring, no pay-to-play." canonical_url:…
- parse Vary header on the negotiated response: Accept, Accept-Encoding → lists Accept · https://www.whosbest.org/
- conclude Vary: Accept, Accept-Encoding
Required · markdown
Passed Returns 406 for an unsatisfiable Accept M3 Unsatisfiable Accept → 406 Not Acceptable
Evidence
- fetch GEThttps://www.whosbest.org/ → 406 · Content-Type: text/plain; charset=utf-8 · 6 ms — GET / with Accept: application/vnd.whosbest.unsatisfiable+nonexistent406 Not Acceptable The requested media type is not available for http://www.whosbest.org/. Available representations: text/html http://www.whosbest.org/ text/markdown http://www.whosbest.org/index.md (or send Accept: text/markdown)
- parse Response to an unsatisfiable Accept: HTTP 406, Content-Type text/plain; charset=utf-8, Vary Accept (expected HTTP 406) · https://www.whosbest.org/
- conclude Unsatisfiable Accept → 406 Not Acceptable
Recommended · markdown
Passed Honours Accept q-values M4 Both q-value orderings were honoured
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/markdown; charset=utf-8 · 2 ms — GET / Accept: text/html;q=0.5, text/markdown;q=1.0--- title: "WhosBest.org | The Directory of Excellence" description: "AI-powered, evidence-backed rankings of B2B providers, AI platforms, and social networks. Curated top lists across healthcare, technology, education, and professional services — transparent scoring, no pay-to-play." canonical_url:…
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · 48 ms — GET / Accept: text/markdown;q=0.1, text/html;q=1.0<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse markdown-preferred → text/markdown (ok); html-preferred → text/html (ok) · https://www.whosbest.org/
- conclude Both q-value orderings were honoured
Recommended · markdown
Bot access
3 passed · 2 n/a · does not affect the main scoreSignals
/robots.txt · headers · DNS3 passed2 n/a
Passed robots.txt has explicit AI-bot rules B1 Explicit rules for GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot, YouBot, Bytespider, Applebot-Extended, cohere-ai
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Parsed robots.txt: 19 group(s), 1 sitemap line(s), 1 Content-Signal line(s); 9 of 9 known AI crawlers have their own User-agent group · https://www.whosbest.org/robots.txtUser-agent groups: * | GPTBot | OAI-SearchBot | ChatGPT-User | ClaudeBot | anthropic-ai | Claude-User | Claude-SearchBot | PerplexityBot | Google-Extended | BingBot | Googlebot AI crawlers named: GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot, YouBot, Bytespider, Applebot-Extended, cohere-…
- conclude Explicit rules for GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot, YouBot, Bytespider, Applebot-Extended, cohere-ai
Required · bots
Passed robots.txt declares Content-Signal B2 Content-Signal: search=yes, ai-input=yes, ai-train=yes
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Looked for Content-Signal directives in robots.txt: 1 found · https://www.whosbest.org/robots.txtsearch=yes, ai-input=yes, ai-train=yes
- conclude Content-Signal: search=yes, ai-input=yes, ai-train=yes
Required · bots
Passed Homepage sends Link headers B3 Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown"
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Link response header on the homepage: 2 relation(s): describedby, alternate · https://www.whosbest.org/</llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown"
- conclude Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown"
Recommended · bots
Not applicable DNS-AID agent discovery records B4 DNS-AID lookups disabled for this scan
Evidence
- parse Scan options exclude DNS lookups; no queries issued
- conclude DNS-AID lookups disabled for this scan
Optional · bots
Informational Web Bot Auth signature directory B5 No Web Bot Auth directory (optional; only needed if you operate signed bots)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/http-message-signatures-directory → 404 · Content-Type: text/html; charset=utf-8 · 26 ms — GET /.well-known/http-message-signatures-directory<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse HTTP 404; no directory published · https://www.whosbest.org/.well-known/http-message-signatures-directory
- conclude No Web Bot Auth directory (optional; only needed if you operate signed bots)
Optional · bots
Protocol discovery
5 of 16 found · informational.well-known
graded only when present5 found · 0 issues · 11 not found
Informational MCP server card C1 No MCP server card (/.well-known/mcp.json or /.well-known/mcp/server-card.json)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/mcp.json → 404 · Content-Type: text/html; charset=utf-8 · 49 ms — GET /.well-known/mcp.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/.well-known/mcp/server-card.json → 404 · Content-Type: text/html; charset=utf-8 · 105 ms — GET /.well-known/mcp/server-card.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 2 location(s); none served a MCP server card/.well-known/mcp.json: HTTP 404 /.well-known/mcp/server-card.json: HTTP 404
- conclude No MCP server card (/.well-known/mcp.json or /.well-known/mcp/server-card.json)
Optional · protocolsSpec: modelcontextprotocol.io
Not applicable MCP server card is well-formed C2 No MCP server card to validate
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/mcp.json → 404 · Content-Type: text/html; charset=utf-8 · 49 ms — GET /.well-known/mcp.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/.well-known/mcp/server-card.json → 404 · Content-Type: text/html; charset=utf-8 · 105 ms — GET /.well-known/mcp/server-card.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse No MCP server card JSON was found at either location (see C1); nothing to validate
- conclude No MCP server card to validate
Optional · protocols
Informational OAuth protected resource metadata C3 No OAuth protected resource metadata (/.well-known/oauth-protected-resource)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/oauth-protected-resource → 404 · Content-Type: text/html; charset=utf-8 · 51 ms — GET /.well-known/oauth-protected-resource<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 1 location(s); none served a OAuth protected resource metadata/.well-known/oauth-protected-resource: HTTP 404
- conclude No OAuth protected resource metadata (/.well-known/oauth-protected-resource)
Optional · protocolsSpec: rfc-editor.org/rfc/rfc9728
Informational A2A agent card C4 No A2A agent card (/.well-known/agent-card.json or /.well-known/agent.json)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/agent-card.json → 404 · Content-Type: text/html; charset=utf-8 · 46 ms — GET /.well-known/agent-card.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/.well-known/agent.json → 404 · Content-Type: text/html; charset=utf-8 · 126 ms — GET /.well-known/agent.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 2 location(s); none served a A2A agent card/.well-known/agent-card.json: HTTP 404 /.well-known/agent.json: HTTP 404
- conclude No A2A agent card (/.well-known/agent-card.json or /.well-known/agent.json)
Optional · protocolsSpec: a2a-protocol.org/latest/specification
Not applicable A2A agent card is well-formed C5 No A2A agent card to validate
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/agent-card.json → 404 · Content-Type: text/html; charset=utf-8 · 46 ms — GET /.well-known/agent-card.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/.well-known/agent.json → 404 · Content-Type: text/html; charset=utf-8 · 126 ms — GET /.well-known/agent.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse No A2A agent card JSON was found at either location (see C4); nothing to validate
- conclude No A2A agent card to validate
Optional · protocols
Passed Agent Skills index C6 Agent Skills index found at /.well-known/agent-skills/index.json
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/agent-skills/index.json → 200 · Content-Type: application/json; charset=utf-8 · 18 ms — GET /.well-known/agent-skills/index.json{ "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json", "version": "0.2.0", "skills": [ { "name": "whosbest-agent-readiness-scan", "type": "skill-md", "description": "Scan any public website for AI-agent readiness with the free WhosBest.org checker: 0-1…
- parse /.well-known/agent-skills/index.json → HTTP 200, application/json, valid JSON Object · https://www.whosbest.org/.well-known/agent-skills/index.json
- conclude Agent Skills index found at /.well-known/agent-skills/index.json
Optional · protocols
Passed API catalog (/.well-known/api-catalog) C7 API catalog found at /.well-known/api-catalog
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/api-catalog → 200 · Content-Type: application/linkset+json; charset=utf-8 · 18 ms — GET /.well-known/api-catalog{ "linkset": [ { "anchor": "http://www.whosbest.org/api/v1/readiness", "service-desc": [ { "href": "http://www.whosbest.org/openapi.json", "type": "application/json" } ], "service-doc": [ { "href": "http://www.whosbe…
- parse /.well-known/api-catalog → HTTP 200, application/linkset+json, valid JSON Object (JSON not required) · https://www.whosbest.org/.well-known/api-catalog
- conclude API catalog found at /.well-known/api-catalog
Optional · protocols
Informational OAuth / OpenID server metadata C8 No OAuth/OpenID server metadata (/.well-known/oauth-authorization-server or /.well-known/openid-configuration)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/oauth-authorization-server → 404 · Content-Type: text/html; charset=utf-8 · 54 ms — GET /.well-known/oauth-authorization-server<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/.well-known/openid-configuration → 404 · Content-Type: text/html; charset=utf-8 · 125 ms — GET /.well-known/openid-configuration<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 2 location(s); none served a OAuth/OpenID server metadata/.well-known/oauth-authorization-server: HTTP 404 /.well-known/openid-configuration: HTTP 404
- conclude No OAuth/OpenID server metadata (/.well-known/oauth-authorization-server or /.well-known/openid-configuration)
Optional · protocolsSpec: rfc-editor.org/rfc/rfc8414
Informational security.txt C9 No security.txt (RFC 9116) — optional but recommended
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/security.txt → 404 · Content-Type: text/html; charset=utf-8 · Vary: Accept-Encoding, Accept · 119 ms — GET /.well-known/security.txt<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/security.txt → 404 · Content-Type: text/html; charset=utf-8 · Vary: Accept-Encoding, Accept · 49 ms — GET /security.txt<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse /.well-known/security.txt → HTTP 404; /security.txt → HTTP 404
- conclude No security.txt (RFC 9116) — optional but recommended
Optional · protocolsSpec: rfc-editor.org/rfc/rfc9116
Passed OpenAPI document C10 OpenAPI document found at /openapi.json
Evidence
- fetch GEThttps://www.whosbest.org/openapi.json → 200 · Content-Type: application/json; charset=utf-8 · 39 ms — GET /openapi.json{ "openapi": "3.1.0", "info": { "title": "WhosBest Agent Readiness API", "version": "2.0", "summary": "Free, key-less API that scores any public website's readiness for AI agents and LLM crawlers.", "description": "Scan a site (JSON or Server-Sent Events), fetch the persisted rep…
- parse /openapi.json → HTTP 200, application/json, valid JSON Object (JSON not required) · https://www.whosbest.org/openapi.json
- conclude OpenAPI document found at /openapi.json
Optional · protocols
Informational /auth.md agent auth instructions C11 No /auth.md (optional: markdown instructions telling agents how to authenticate)
Evidence
- fetch GEThttps://www.whosbest.org/auth.md → 404 · Content-Type: text/markdown; charset=utf-8 · 30 ms — GET /auth.md# Not found No markdown document exists at `/auth.md`. Every public HTML page on WhosBest.org has a markdown twin at the same path with a `.md` suffix (the home page is `/index.md`). Start from the [markdown sitemap](http://www.whosbest.org/sitemap.md) or [llms.txt](http://www.whosbest.org/llms.tx…
- parse /auth.md → HTTP 404 · https://www.whosbest.org/auth.md
- conclude No /auth.md (optional: markdown instructions telling agents how to authenticate)
Optional · protocolsSpec: isitagentready.com
Informational UCP manifest C12 No UCP manifest (/.well-known/ucp)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/ucp → 404 · Content-Type: text/html; charset=utf-8 · 420 ms — GET /.well-known/ucp<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 1 location(s); none served a UCP manifest/.well-known/ucp: HTTP 404
- conclude No UCP manifest (/.well-known/ucp)
Optional · protocolsSpec: ucp.dev
Informational ACP manifest C13 No ACP manifest (/.well-known/acp.json)
Evidence
- fetch GEThttps://www.whosbest.org/.well-known/acp.json → 404 · Content-Type: text/html; charset=utf-8 · 163 ms — GET /.well-known/acp.json<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Probed 1 location(s); none served a ACP manifest/.well-known/acp.json: HTTP 404
- conclude No ACP manifest (/.well-known/acp.json)
Optional · protocolsSpec: agentcommerceprotocol.com
Informational x402 payment-required endpoints C14 No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs
Evidence
- parse Inspected 44 response(s) recorded so far in this scan: 0 returned HTTP 402, none with an accepts[] body
- conclude No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs
Optional · protocolsSpec: x402.org
Passed Advertised endpoints not blocked by robots.txt C15 All 44 advertised endpoint(s) are crawlable
Evidence
- fetch GEThttps://www.whosbest.org/robots.txt → 200 · Content-Type: text/plain · 3 ms — GET /robots.txt# WhosBest.org — welcome AI crawlers for discovery and attribution # llms.txt: https://www.whosbest.org/llms.txt # AGENTS.md: https://www.whosbest.org/AGENTS.md User-agent: * Allow: / Allow: /llms.txt Disallow: /sadmin/ Content-Signal: search=yes, ai-input=yes, ai-train=yes User-agent: GPTBot Allow…
- parse Evaluated 44 same-host endpoint(s) from llms.txt (found) and AGENTS.md (found) against robots.txt rules for * and 9 AI crawlers: 0 blocked · https://www.whosbest.org/robots.txthttps://www.whosbest.org/ https://www.whosbest.org/top-lists https://www.whosbest.org/lists https://www.whosbest.org/cities https://www.whosbest.org/find
- conclude All 44 advertised endpoint(s) are crawlable
Optional · protocols
Passed Content parity for AI crawlers (GPTBot vs browser UA) C16 Baseline text 3,025 chars vs GPTBot 3,025 chars (0% difference)
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET / (baseline UA)<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 237 ms — GET / (GPTBot UA)<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Extracted visible text from both responses: baseline 3,025 chars vs GPTBot 3,025 chars → 0% difference (allowed ≤ 15%, or ≤ 25% when both exceed 500 chars) · https://www.whosbest.org/
- conclude Baseline text 3,025 chars vs GPTBot 3,025 chars (0% difference)
Required · protocols
Accessibility
13 passed · 2 failed · 8 n/a · does not affect the main scoreA1–A23
homepage · static DOM13 passed2 failed8 n/a
Not applicable Images have alt text A1 No <img> elements
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for image(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No <img> elements
Required · accessibility
Passed Form controls have labels A2 All 1 form control(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 1 form control(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 1 form control(s) pass
Required · accessibility
Failed Links and buttons have accessible names A3 1 of 61 link(s)/button(s) fail
How to fix
<a href="/" aria-label="Home"><svg …></svg></a>
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 61 link(s)/button(s): 1 violation(s); examples: · https://www.whosbest.org/<button type="button" class="wb-nav-backdrop" aria-hidden="true" tabindex="-1" b-y8qcnkyf5a=""></button>
- conclude 1 of 61 link(s)/button(s) fail
Required · accessibilitySpec: w3.org/WAI/WCAG22/quickref
Not applicable Media elements declare width and height A4 No img/video/iframe elements
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for media element(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No img/video/iframe elements
Recommended · accessibility
Failed ARIA/label id references resolve and ids are unique A5 1 of 15 id(s)/reference(s) fail
How to fix
Make every id unique and ensure aria-labelledby/aria-describedby/aria-controls/for values point at existing ids
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 15 id(s)/reference(s): 1 violation(s); examples: · https://www.whosbest.org/aria-controls="gs-results" does not resolve
- conclude 1 of 15 id(s)/reference(s) fail
Required · accessibilitySpec: w3.org/TR/wai-aria-1.2
Not applicable iframes have a title A6 No iframes
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for iframe(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No iframes
Required · accessibility
Passed One h1 and no skipped heading levels A7 All 33 heading(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 33 heading(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 33 heading(s) pass
Recommended · accessibility
Passed No positive tabindex A8 All 1 tabindex attribute(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 1 tabindex attribute(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 1 tabindex attribute(s) pass
Recommended · accessibility
Passed Viewport allows zoom A9 Viewport allows zoom: width=device-width, initial-scale=1.0, viewport-fit=cover
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Parsed <meta name="viewport">: user-scalable=no absent, maximum-scale < 2 absent · https://www.whosbest.org/width=device-width, initial-scale=1.0, viewport-fit=cover
- conclude Viewport allows zoom: width=device-width, initial-scale=1.0, viewport-fit=cover
Required · accessibility
Passed Document has a non-empty title A10 <title>WhosBest.org | The Directory of Excellence</title>
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Read <title>: 42 chars · https://www.whosbest.org/WhosBest.org | The Directory of Excellence
- conclude <title>WhosBest.org | The Directory of Excellence</title>
Required · accessibility
Not applicable aria-label includes the visible text A11 No controls with both aria-label and visible text
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for labelled control(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No controls with both aria-label and visible text
Recommended · accessibility
Passed Landmark main or skip link A12 <main> landmark present
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Looked for <main>/role="main": found; in-page 'skip' link: none · https://www.whosbest.org/
- conclude <main> landmark present
Recommended · accessibility
Passed Valid BCP-47 lang A13 lang="en" is valid
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Read the lang attribute on <html>: "en" (valid BCP-47) · https://www.whosbest.org/
- conclude lang="en" is valid
Required · accessibility
Passed No focusable content inside aria-hidden A14 All 17 aria-hidden region(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 17 aria-hidden region(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 17 aria-hidden region(s) pass
Required · accessibility
Passed No nested interactive controls A15 All 62 interactive control(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 62 interactive control(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 62 interactive control(s) pass
Required · accessibility
Passed No empty headings A16 All 33 heading(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 33 heading(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 33 heading(s) pass
Recommended · accessibility
Passed No timed meta refresh A17 No meta refresh
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Looked for <meta http-equiv="refresh">: none · https://www.whosbest.org/
- conclude No meta refresh
Required · accessibility
Not applicable Valid autocomplete tokens A18 No autocomplete attributes
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for autocomplete attribute(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No autocomplete attributes
Recommended · accessibility
Not applicable Data tables have headers A19 No tables
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for table(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No tables
Recommended · accessibility
Not applicable SVG role=img has an accessible name A20 No svg role=img elements
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for svg(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No svg role=img elements
Recommended · accessibility
Not applicable Audio/video have captions track A21 No audio/video elements
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Searched the homepage DOM for media element(s): none found, nothing to audit · https://www.whosbest.org/
- conclude No audio/video elements
Recommended · accessibility
Passed Lists contain only list items A22 All 5 list(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 5 list(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 5 list(s) pass
Recommended · accessibility
Passed ARIA roles and attributes are valid A23 All 31 ARIA role(s)/attribute(s) pass
Evidence
- fetch GEThttps://www.whosbest.org/ → 200 · Content-Type: text/html; charset=utf-8 · Link: </llms.txt>; rel="describedby", </index.md>; rel="alternate"; type="text/markdown" · Vary: Accept-Encoding, Accept · 201 ms — GET /<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <base href="/"> <link rel="icon" type="image/png" href="favicon.png"> <link rel="stylesheet" href="css/tokens.css?v=202608232129" />…
- parse Inspected 31 ARIA role(s)/attribute(s): 0 violation(s) · https://www.whosbest.org/
- conclude All 31 ARIA role(s)/attribute(s) pass
Required · accessibility
Compare
Top public scans · full leaderboardwww.whosbest.org
94#1
L4 · Agent Integration · youwww.herringbickers.com
56#2
L1 · Basic Crawlabilitywww.browarddefender.org
45#3
L1 · Basic Crawlabilityexample.com
28#4
L0 · Not Agent Readywww.wte.net
21#5
L1 · Basic Crawlabilityjobsaicopilot.com
17#6
L0 · Not Agent Ready
Privacy
Public scans list the domain, score and level on the leaderboards and feed the percentile corpus. Only public URLs were fetched; nothing was stored from the site beyond this report.