Skip to content
Good for Bots

Click badge to copy

Changed your site? Run a new scan.

Claim to rescan

Claiming is free. Verify ownership to request a rescan after deploying your changes.

Unclaimed listings are checked automatically every 90 days.

Good for Bots report

square9.ai scores 11 of 100: 8 of the 50 base points, 19 of the 50 agent-layer points, 15 points taken back by penalties.

Earned

8 of the 50 base points above the line, 19 of the 50 agent-layer points below it.

11

3 prompts away

Copy them below ↓

38

Taken back

Earned, then taken back by penalties.

1

Still open

Behind the checks below, with prompts in Pro.

50
Penalties15
How scoring works · current methodology →

3 prompts, 38 points

For Claude Code, Cursor or Codex. The score moves after the next scan.

+15score from 11 to 26

Serve our crawler without a challenge

A Cloudflare challenge identified by the cf-mitigated header. A model fetching this page gets the challenge, not the content.

Read prompt

+12.5score from 26 to 39

Serve Markdown at its own URL

No /llms-full.txt and no markdown versions linked from llms.txt.

Read prompt

+10score from 39 to 49

Serve Markdown when asked for it

Asking the homepage for markdown returned HTTP 403.

Read prompt

Pro

22 more prompts in Pro

Pro shows a prompt for every fix and drafts your llms.txt and robots.txt. It never changes the score.

$9 once, per listingSee Pro

Deployed your fixes? Rescan to update your score →

Ready-made files

Pro drafts these for this site.

Pro

A ready-made llms.txt and robots.txt

Pro drafts both files for square9.ai from its scan, keeps only links and rules our parsers can verify, and hands them over ready to review and publish. It never changes the score.

See Pro

Select a check to see what we found and how it is graded.

Readable base

7.5 / 50

Passes.

3.3 of 3.3 points.

robots.txt is valid, with 1 user-agent group.

Half passes.

4.2 of 8.3 points.

robots.txt names a sitemap, but the server refused it to our crawler (a bot challenge, HTTP 403).

Prompt in Pro →
Fails.

0 of 8.3 points.

The homepage did not return an HTML document, so there is no markup to read.

Prompt in Pro →
Fails.

0 of 10 points.

The homepage did not return an HTML document, so there is no markup to read.

Prompt in Pro →
Fails.

0 of 8.3 points.

The homepage did not supply usable HTML to assess navigation links.

Prompt in Pro →
Fails.

0 of 4.2 points.

The homepage did not supply usable HTML to assess links and buttons.

Prompt in Pro →
Fails.

0 of 2.5 points.

The homepage did not supply usable HTML to assess form fields.

Prompt in Pro →
Fails.

0 of 2.5 points.

The homepage did not supply usable HTML to assess controls and role declarations.

Prompt in Pro →
Fails.

0 of 1.7 points.

The homepage did not supply usable HTML to read a canonical URL from.

Prompt in Pro →

Agent layer

18.8 / 50

Passes.

11.3 of 11.3 points.

/llms.txt is well formed: 122 links across 8 sections.

Passes.

7.5 of 7.5 points.

/llms.txt is descriptive: a summary plus descriptions on 100% of links.

Fails.

0 of 12.5 points.

No /llms-full.txt and no markdown versions linked from llms.txt.

Fails.

0 of 10 points.

Asking the homepage for markdown returned HTTP 403.

Fails.

0 of 5 points.

robots.txt names no AI crawlers, so every operator has to guess.

Prompt in Pro →
Fails.

0 of 2.5 points.

No usage declaration found in robots.txt or the final successful homepage response header.

Prompt in Pro →

Penalties

− 15

Fails.

Penalty: 15 of 15 points.

A Cloudflare challenge identified by the cf-mitigated header. A model fetching this page gets the challenge, not the content.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge answered instead of the homepage, so its indexing rules were never read. The challenge is a separate penalty.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge answered instead of the homepage, so its markup is not the site's.

Passes.

Penalty: 0 of 25 points.

robots.txt allows every known search and user-fetch crawler to reach the homepage.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge owns the refused response, so its HTTP status is not charged again.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge answered instead of the homepage, so its metadata was not graded.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge answered instead of the homepage, so its redirect chain was not charged separately.

Not applicable.

Penalty: 0 of 0 points.

A bot challenge answered the direct request, so its timing belongs to the WAF penalty.

Agent capabilities

0 of 10 · no points

Each one found adds +1 to the badge.

Not applicable.

Adds +1 to the badge when found.

No API catalog published.

Not applicable.

Adds +1 to the badge when found.

No /auth.md published.

Not applicable.

Adds +1 to the badge when found.

No AI Catalog published, so no MCP server card can be discovered.

Not applicable.

Adds +1 to the badge when found.

No A2A Agent Card at /.well-known/agent-card.json, and none listed in an AI Catalog.

Not applicable.

Adds +1 to the badge when found.

No usable Agent Skills index was found at either well-known path or in the AI Catalog.

Not applicable.

Adds +1 to the badge when found.

No usable HTML was available to inspect for WebMCP declarations.

Not applicable.

Adds +1 to the badge when found.

No Web Bot Auth key directory at /.well-known/http-message-signatures-directory.

Not applicable.

Adds +1 to the badge when found.

No HTTP 402 payment challenge on the homepage or robots.txt, and no manifest at /.well-known/x402.

Not applicable.

Adds +1 to the badge when found.

No ACP discovery declaration established at /.well-known/acp.json.

Not applicable.

Adds +1 to the badge when found.

No UCP discovery declaration established at /.well-known/ucp.

Access & usage policy

Who can read this page, and for what purpose?

The scan did not obtain an eligible homepage response for interpreting its content policy. Unknown: no eligible homepage response was available.

Sampled URL: https://square9.ai/

Declared crawling rules

No matching refusal for this URL was found for the listed identities.

Sources and scope: declared crawling rules
  • Declared allow · Scan admission

    • GoodForBotsBot/1.0 (+https://goodforbots.com/bot)

    The recorded robots admission decision allowed our crawler to proceed.

    GoodForBotsBot admission along the homepage request chain

    https://square9.ai/

    robots.txt is present and valid

  • Declared allow · robots.txt

    • goodforbotsbot (Site diagnostics)
    • * (Default robots group)
    • oai-searchbot (ai-search)
    • claude-searchbot (ai-search)
    • perplexitybot (ai-search)
    • mistralai-index (ai-search)
    • kimi-searchbot (ai-search)
    • amzn-searchbot (ai-search)
    • meta-webindexer (ai-search)
    • exasearchbot (ai-search)
    • aiwebindex (ai-search)
    • duckassistbot (ai-search)
    • shapbot (ai-search)
    • yandexadditional (ai-search)
    • yandexadditionalbot (ai-search)
    • gptbot (ai-training)
    • claudebot (ai-training)
    • mistralai-training (ai-training)
    • kimibot (ai-training)
    • ai2bot (Unknown)
    • applebot-extended (ai-training)
    • webzio-extended (ai-training)
    • chatgpt-user (user-fetch)
    • claude-user (user-fetch)
    • perplexity-user (user-fetch)
    • mistralai-user (user-fetch)
    • kimi-user (user-fetch)
    • amzn-user (user-fetch)
    • diffbot-user (user-fetch)
    • firecrawlagent (extraction)
    • webzio (extraction)
    • meta-externalfetcher (user-fetch, agent)
    • google-extended (ai-training, grounding)
    • meta-externalagent (ai-training, product-improvement)
    • amazonbot (ai-training, product-improvement)
    • ccbot (open-dataset, ai-training)
    • googlebot (search)
    • bingbot (search)

    No matching refusal for this URL in the applicable robots group. This is a declaration, not an access test.

    Acquisition of https://square9.ai/

    https://square9.ai/robots.txt

    User-agent: *
    allow: /

    robots.txt is present and validStates a position on AI crawlersAllows search and user-fetch crawlers

Observed access

The scan did not obtain an eligible homepage response for interpreting its content policy.

Sources and scope: observed access
Coverage and interpretation
  • Crawler coverage includes the registered identities and up to 50 user-agent entries from robots.txt. Source excerpts and detail groups are bounded; omissions are labelled.
  • Observed access describes GoodForBotsBot only. Other crawler entries describe declared rules, not tests of those operators' access.
  • Coverage is the sampled homepage response and collected robots.txt files. No indexing or citation is guaranteed. Usage preferences are declarations, not a legal determination of permission.
  • This explanation adds no points or penalties. Any score effects belong to the linked checks.
  • AIPREF and Content Signals keep their own definitions. AIPREF search can include processing used exclusively for search; training preferences are not a blanket ruling on every search process.
Scanned

Site profile

Login
Not established
API
Not established
Commerce
Not established

It decides which conditional checks apply. “Not established” means no proof in what we read, not proof of absence.

Scan details

Every scan is kept. Pro draws the history as a chart →

Scanned
4 Oct 2026
Rubric
0.9.0
Requests
18
Fetched
506.3 KB
Took
96 s
Homepage
23 ms · direct
robots.txt
allowed

goodforbots.com

Evaluates website readability for AI crawlers and language models with a scoring rubric

Also Poor

xoner4.github.io

Public download and product information for the Honer AI Android application

Also Poor

getsignpack.com

Returns a 404 deployment not found error