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

Directory of local software alternatives organized by country and region
ToolRoots is a directory that lists local alternatives to widely used software tools. It organizes products by their country of origin and hosting region. Visitors can browse software categorized by countries such as France, Germany, the United States, and the United Kingdom, or search for substitutes to specific platforms like QuickBooks, Stripe, AWS, and Mailchimp. The site provides submission options for tool creators, offering a free listing tier tied to a homepage badge installation as well as a premium tier.
“ToolRoots is a directory of local software alternatives categorized by country of origin and hosting region.”
Simulated from the response GoodForBotsBot received on , not a live answer from any AI assistant.
A language model reading this input learns that ToolRoots is a platform for discovering regional software alternatives. The text provides a list of featured tools with their countries of origin and hosting locations, browsing categories by country and hosting region, and alternative groupings for popular platforms. Contact details including an email address are found within the provided JSON-LD blocks. While the homepage outlines submission steps and free versus premium options, exact numerical pricing figures are omitted from the text input. The provided JSON-LD schema adds organization data, a website description, an item list of recent tools, and truncated FAQ entries about finding and listing tools.
The input does not state the exact monetary cost of the premium tier or provide full answers to the frequently asked questions regarding listing details due to truncation in the JSON-LD block.
Good for Bots report
robots.txt is present and valid. robots.txt is valid, with 1 user-agent group.
Sitemap is present and parses. Sitemap declared in robots.txt, listing at least 200 URLs.
Describes itself to machines with schema.org JSON-LD. All 4 pages read pass. The homepage describes itself to machines as Organization, ImageObject, ContactPoint in valid schema.org JSON-LD.
Content is marked up so a reader can find it. All 4 pages read pass. The homepage marks its content root, its heading outline and its landmarks.
Navigation links expose usable destinations. 22 of 22 assessed homepage navigation links expose usable destinations.
Links and buttons have accessible names. 227 of 227 assessed homepage links and buttons have a nonempty accessible name.
Controls expose roles, states and relationships. 224 of 227 assessed homepage controls and role declarations meet the static role, state and relationship checks. +1.3 with its prompt in Pro.
Each page declares one usable canonical URL. 3 of 4 pages read pass; 1 partly. The page at /browse declares its canonical URL only in a <link> in the body; HTML head processing and Google's guidance expect it in the head.
Section links reach an element on the page. All 4 pages read pass. The homepage has 2 section links, and every one reaches an element on the page.
Serves markdown at its own URL. No /llms-full.txt and no markdown versions linked from llms.txt. +12.5 with its prompt.
llms.txt is present and well formed. No /llms.txt on this site. +11.3 with its prompt.
Serves markdown when asked for it. None of the 4 pages read pass. Asking the homepage for markdown still returns text/html. +10 with its prompt.
llms.txt is descriptive, not a bare link list. No usable /llms.txt to judge. +7.5 with its prompt in Pro.
States a position on AI crawlers. robots.txt names no AI crawlers, so every operator has to guess. +5 with its prompt in Pro.
Declares AI usage preferences. No usage declaration found in robots.txt or the final successful homepage response header. +2.5 with its prompt in Pro.
Advertises machine-readable resources with typed links. None of the 4 pages read pass. The homepage's links are all ordinary page furniture; none point an agent anywhere. +1.3 with its prompt in Pro.
Earned
49 of the 50 base points above the line, none of the agent layer below it.
3 prompts away
Still open
Behind the checks below, with prompts in Pro.
For the owner of toolroots.com
They are in the owner view, ready to paste into Claude Code, Cursor or Codex, beside the badge and rescans.
Select a check to see what we found and how it is graded.
Readable base
48.7 / 50
3.5 of 3.5 points.
robots.txt is valid, with 1 user-agent group.
8.8 of 8.8 points.
Sitemap declared in robots.txt, listing at least 200 URLs.
8.8 of 8.8 points.
All 4 pages read pass. The homepage describes itself to machines as Organization, ImageObject, ContactPoint in valid schema.org JSON-LD.
10.5 of 10.5 points.
All 4 pages read pass. The homepage marks its content root, its heading outline and its landmarks.
4.4 of 4.4 points.
227 of 227 assessed homepage links and buttons have a nonempty accessible name.
0 of 0 points.
No applicable form fields were observed in the homepage HTML.
1.3 of 2.6 points.
224 of 227 assessed homepage controls and role declarations meet the static role, state and relationship checks.
1.8 of 1.8 points.
3 of 4 pages read pass; 1 partly. The page at /browse declares its canonical URL only in a <link> in the body; HTML head processing and Google's guidance expect it in the head.
0.9 of 0.9 points.
All 4 pages read pass. The homepage has 2 section links, and every one reaches an element on the page.
Agent layer
0 / 50
0 of 11.3 points.
No /llms.txt on this site.
0 of 12.5 points.
No /llms-full.txt and no markdown versions linked from llms.txt.
0 of 10 points.
None of the 4 pages read pass. Asking the homepage for markdown still returns text/html.
0 of 5 points.
robots.txt names no AI crawlers, so every operator has to guess.
0 of 2.5 points.
No usage declaration found in robots.txt or the final successful homepage response header.
0 of 1.3 points.
None of the 4 pages read pass. The homepage's links are all ordinary page furniture; none point an agent anywhere.
Penalties
− 0
Penalty: 0 of 15 points.
Our crawler reaches the page without being challenged.
Penalty: 0 of 20 points.
Nothing on the homepage tells a crawler to skip it or to withhold its snippet.
Penalty: 0 of 25 points.
The captured homepage HTML contains 421 content words; completeness is not assessed.
Penalty: 0 of 25 points.
robots.txt allows every known search and user-fetch crawler to reach the homepage.
Penalty: 0 of 10 points.
The homepage is served over HTTPS and returns HTTP 200.
Penalty: 0 of 3 points.
The homepage provides both a non-empty title and meta description.
Penalty: 0 of 3 points.
The homepage is reached in 0 redirects.
Penalty: 0 of 3 points.
The homepage reached a plain crawler in 199 ms.
Agent capabilities
0 of 11 · no points
Each one found adds +1 to the badge.
Adds +1 to the badge when found.
No API catalog published.
Adds +1 to the badge when found.
No /auth.md published.
Adds +1 to the badge when found.
No AI Catalog published, so no MCP server card can be discovered.
Adds +1 to the badge when found.
No A2A Agent Card at /.well-known/agent-card.json, and none listed in an AI Catalog.
Adds +1 to the badge when found.
No usable Agent Skills index was found at either well-known path or in the AI Catalog.
Adds +1 to the badge when found.
No WebMCP declarations were found in the collected HTML or inline scripts. External scripts were not inspected.
Adds +1 to the badge when found.
No Web Bot Auth key directory at /.well-known/http-message-signatures-directory.
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.
Adds +1 to the badge when found.
No ACP discovery declaration established at /.well-known/acp.json.
Adds +1 to the badge when found.
No UCP discovery declaration established at /.well-known/ucp.
Adds +1 to the badge when found.
No public AMP discovery declaration established. Private or hidden agents may not advertise one to our crawler.
It decides which conditional checks apply. “Not established” means no proof in what we read, not proof of absence.
Access & usage policy
GoodForBotsBot received HTTP 200 via a direct request. No indexing restriction was observed in the supported homepage directives.
Sampled URL: https://toolroots.com/
No matching refusal for this URL was found for the listed identities.
Declared allow · Scan admission
The recorded robots admission decision allowed our crawler to proceed.
GoodForBotsBot admission along the homepage request chain
https://toolroots.com/
Declared allow · robots.txt
No matching refusal for this URL in the applicable robots group. This is a declaration, not an access test.
Acquisition of https://toolroots.com/
https://toolroots.com/robots.txt
User-agent: * allow: /
robots.txt is present and validStates a position on AI crawlersAllows search and user-fetch crawlers
GoodForBotsBot received HTTP 200 via a direct request.
Observed · Direct request
Our request received HTTP 200. A status alone does not identify a WAF.
Our recorded direct transport attempt; intermediate attempt URLs are not retained
https://toolroots.com
HTTP 200
Observed · Final homepage response
GoodForBotsBot received HTTP 200 via a direct request.
homepage response
https://toolroots.com/
HTTP 200 Transport: direct
Serves the homepage over HTTPS with HTTP 200Serves our crawler without a challenge
No indexing restriction was observed in the supported homepage directives.
Not observed · Homepage directives
No indexing restriction was observed in the supported homepage directives.
homepage response
https://toolroots.com/
No snippet restriction was observed in the supported homepage directives.
Not observed · Homepage directives
No snippet restriction was observed in the supported homepage directives.
homepage response
https://toolroots.com/
No applicable preference for this use was established.
Unstated · AIPREF Content-Usage
No applicable AIPREF preference was established for this purpose.
Purpose: search; applicable robots group/path and this response's header
https://toolroots.com/
No applicable preference for this use was established.
Unstated · AIPREF Content-Usage
No applicable AIPREF preference was established for this purpose.
Purpose: ai-use; applicable robots group/path and this response's header
https://toolroots.com/
No applicable preference for this use was established.
Unstated · AIPREF Content-Usage
No applicable AIPREF preference was established for this purpose.
Purpose: train-ai; applicable robots group/path and this response's header
https://toolroots.com/
In its category
The prompts in the owner view would take ToolRoots to 82, 3rd in its category.
To the prompts →Category average 59. The percentile appears once the catalogue holds a few hundred sites.
Every scan is kept. Pro draws the history as a chart →
The homepage and up to three pages from the sitemap and homepage links. Structured data, page structure, Markdown negotiation and typed links check each page read and take the median page; other checks read the homepage.
More like ToolRoots:Directories & AggregatorsB2BB2CStartups
goodforbots.com
Evaluates website readability for AI crawlers and language models with a scoring rubric
Same category
submityourstartup.now
Open launch directory for early-stage founders to submit startups and get discovered
Same category
remoteornothing.com
Fully remote job board with region and salary filters sourced from employer career pages
Same category
websoftreview.com
Curated software reviews and daily launches of web tools and SaaS products
Do you run toolroots.com? Open the owner view → Removing the listing is free. Remove →