ARI-100 report · scanned 2026-11-11T23:16:11.400Z · 4855 ms · engine ARI-100
Agent readiness — squishy-finder.com
63
Grade C — Partly readable
Level L1 · Crawlable
Domains
| Domain | Weight | Score | Passed | Scored |
|---|---|---|---|---|
| Reachability & Access | 20 | 88.9 | 11 | 15 |
| Render & Delivery | 10 | 56.7 | 6 | 11 |
| Structure & Semantics | 12 | 75 | 8 | 12 |
| Structured Data | 12 | 81.6 | 4 | 7 |
| Discovery Files | 14 | 67.7 | 10 | 18 |
| Agent Interfaces | 14 | 16 | 2 | 27 |
| Operability & Commerce | 10 | 24.1 | 1 | 12 |
| Trust & Authority | 8 | 58.3 | 5 | 10 |
Crawler reachability
Each agent was fetched with its own user-agent string and matched against robots.txt with RFC 9309 longest-match rules. A verdict is one of allowed, blocked, challenged, rate limited or unverifiable.
| Crawler | Platform | Role | Weight | HTTP | Verdict |
|---|---|---|---|---|---|
| OAI-SearchBot | ChatGPT search | search | 10 | 200 | allowed |
| ChatGPT-User | ChatGPT | user | 9 | 200 | allowed |
| Claude-SearchBot | Claude search | search | 10 | 200 | allowed |
| Claude-User | Claude | user | 9 | 200 | allowed |
| PerplexityBot | Perplexity | search | 10 | 200 | allowed |
| Perplexity-User | Perplexity | user | 9 | 200 | allowed |
| Googlebot | Google / AI Overviews | search | 10 | 200 | allowed |
| Google-Agent | Google AI Mode | user | 7 | 200 | allowed |
| Google-GeminiNotebook | Gemini | user | 5 | 200 | allowed |
| bingbot | Bing / Copilot | search | 8 | 200 | allowed |
| Applebot | Siri / Apple Intelligence | search | 6 | 200 | allowed |
| meta-webindexer | Meta AI | search | 5 | 200 | allowed |
| meta-externalfetcher | Meta AI | user | 5 | 200 | allowed |
| MistralAI-Index | Mistral Le Chat | search | 4 | 200 | allowed |
| MistralAI-User | Mistral Le Chat | user | 4 | 200 | allowed |
| Amzn-SearchBot | Alexa | search | 4 | 200 | allowed |
| Amzn-User | Alexa | user | 3 | 200 | allowed |
| DuckAssistBot | DuckDuckGo AI | search | 3 | 200 | allowed |
| YouBot | You.com | search | 3 | 200 | allowed |
| GPTBot | OpenAI training | train | 0 | 200 | allowed |
| ClaudeBot | Anthropic training | train | 0 | 200 | allowed |
| Google-Extended | Gemini training | train | 0 | 200 | allowed |
| Applebot-Extended | Apple training | train | 0 | 200 | allowed |
| CCBot | Common Crawl | train | 0 | 200 | allowed |
| Bytespider | ByteDance | train | 0 | 200 | allowed |
| meta-externalagent | Meta training | train | 0 | 200 | allowed |
| cohere-ai | Cohere training | train | 0 | 200 | allowed |
| AI2Bot | Allen Institute | train | 0 | 200 | allowed |
| Diffbot | Diffbot | other | 1 | 200 | allowed |
| Amazonbot | Amazon | train | 0 | 200 | allowed |
| GoogleOther | Google other | other | 1 | 200 | allowed |
| Google-CloudVertexBot | Vertex AI | train | 0 | 200 | allowed |
Failing checks, most recoverable first
65 checks are not passing. The first 3 fix prompts are free; the rest are part of the paid pack. Every prompt is written to be pasted into a coding agent verbatim.
Homepage content is in the raw HTML
render/ssr-home · weight 5 · fail · +5 recoverable · 53 chars of text, 0 H1 in raw HTML
Server-render the homepage of https://squishy-finder.com: ship at least 500 characters of real text and an H1 in the initial HTML response rather than after hydration (SSR/SSG, or prerender). Evidence: 53 chars of text, 0 H1 in raw HTML.
Inner pages carry text without JavaScript
render/ssr-inner · weight 4 · fail · +4 recoverable · 0/2 sampled inner pages carry 400+ chars without JS
Server-render the inner pages of https://squishy-finder.com (0/2 sampled inner pages carry 400+ chars without JS): move the primary copy into the HTML response for each template, not only the homepage.
An OpenAPI description is published
interfaces/openapi · weight 4 · fail · +4 recoverable · openapi.json HTTP 404
Publish /openapi.json on https://squishy-finder.com (OpenAPI 3.1) describing every public endpoint, with operation summaries and example responses. Evidence: openapi.json HTTP 404.
Exactly one H1 states the page subject
structure/one-h1 · weight 3 · fail · +3 recoverable · 0 H1: ""
Ensure exactly one non-empty H1 on https://squishy-finder.com/us that states the page subject; demote extra H1s to H2. Evidence: 0 H1: "".
The advertised MCP endpoint answers
interfaces/mcp-live · weight 3 · fail · +3 recoverable · MCP endpoint answered no endpoint in card
Make the MCP endpoint advertised by https://squishy-finder.com actually answer: respond to initialize and tools/list at the URL in the card, and keep the card in sync with the deployed tool set. Evidence: MCP endpoint answered no endpoint in card.
A commerce profile is published
commerce/ucp-profile · weight 3 · fail · +3 recoverable · HTTP 404
Publish a commerce profile at /.well-known/ucp on https://squishy-finder.com declaring the merchant, the catalogue, and the endpoints an agent may call. Evidence: HTTP 404.
Add-to-cart is a real labelled control
commerce/add-to-cart · weight 3 · fail · +3 recoverable · no add-to-cart control
Replace the add-to-cart div on https://squishy-finder.com/us with a real <button type="submit"> inside a <form>, with an accessible name that includes the product. Evidence: no add-to-cart control.
Variant pickers are real form controls
commerce/variant-controls · weight 3 · fail · +3 recoverable · no variant form controls
Convert the variant pickers on https://squishy-finder.com/us to real form controls (select or radio inputs) with a label per option, so an agent can set a value. Evidence: no variant form controls.
AI bot policy is named, not inherited
access/bot-policy-deliberate · weight 2 · fail · +2 recoverable · 0 named user-agent groups
Name the AI crawlers explicitly in robots.txt for https://squishy-finder.com instead of relying on a wildcard, so each one has a deliberate policy. Evidence: 0 named user-agent groups.
Text-to-markup ratio is workable
render/text-ratio · weight 2 · fail · +2 recoverable · text/markup 0.2%
Raise the text-to-markup ratio on https://squishy-finder.com/us to at least 5%: trim wrapper divs and inline styles, and put the copy in plain elements. Evidence: text/markup 0.2%.
A skill file tells coding agents how to work with the site
discovery/agents-md · weight 2 · fail · +2 recoverable · AGENTS.md HTTP 404
Publish /AGENTS.md on https://squishy-finder.com describing how a coding agent should build against or use the site: install, configuration, and worked examples. Evidence: AGENTS.md HTTP 404.
Content usage preferences are declared
discovery/content-signal · weight 2 · fail · +2 recoverable · no Content-Signal line
Add a Content-Signal line to robots.txt on https://squishy-finder.com, e.g. "Content-Signal: search=yes, ai-input=yes, ai-train=no", so usage terms are machine-readable. Evidence: no Content-Signal line.
An API catalog linkset is published
interfaces/api-catalog · weight 2 · fail · +2 recoverable · no linkset
Publish /.well-known/api-catalog on https://squishy-finder.com as an RFC 9727 linkset pointing at the API, its OpenAPI description and its docs. Evidence: no linkset.
Protected resources declare their authorization server
interfaces/oauth-protected-resource · weight 2 · fail · +2 recoverable · HTTP 404
Publish /.well-known/oauth-protected-resource on https://squishy-finder.com naming the resource and its authorization server, so an agent can discover how to get a token without scraping docs. Evidence: HTTP 404.
Authorization server metadata is published
interfaces/oauth-as · weight 2 · fail · +2 recoverable · HTTP 404
Publish /.well-known/oauth-authorization-server on https://squishy-finder.com with issuer, authorization_endpoint, token_endpoint and grant types. Evidence: HTTP 404.
Permissions are scoped
interfaces/scopes · weight 2 · fail · +2 recoverable · no named scopes
Replace all-or-nothing credentials on https://squishy-finder.com with named scopes (for example read:catalog, write:cart) declared in the OpenAPI security scheme and the authorization-server metadata. Evidence: no named scopes.
Agent sign-up is documented for machines
interfaces/auth-md · weight 2 · fail · +2 recoverable · auth.md HTTP 404
Publish /auth.md on https://squishy-finder.com telling an agent how to register, get a credential and revoke it, with the exact request/response shapes. Evidence: auth.md HTTP 404.
An A2A agent card is published
interfaces/a2a-card · weight 2 · fail · +2 recoverable · HTTP 404
Publish a /.well-known/agent-card.json on https://squishy-finder.com describing the agent: name, description, capabilities, skills and endpoint. Evidence: HTTP 404.
The API is easy to call from a model
interfaces/fc-friendly · weight 2 · fail · +2 recoverable · 0 described properties in the schema
Simplify the API surface on https://squishy-finder.com for function calling: flat named parameters, enums instead of free-text where possible, and a description on every field in the OpenAPI spec. Evidence: 0 described properties in the schema.
A developer portal is reachable from the homepage
interfaces/dev-portal · weight 2 · fail · +2 recoverable · no developer link
Link the developer docs from the homepage and main navigation of https://squishy-finder.com — one hop, not three. Evidence: no developer link.
The site tells an agent when to use it
interfaces/agent-instruction · weight 2 · fail · +2 recoverable · no when-to-use block
Add a when-to-use block to https://squishy-finder.com (in llms.txt, the MCP card or the agent manifest) stating what the agent is for, what it must not do, and one worked call. Evidence: no when-to-use block.
A cart can be handed back to a shopper
commerce/checkout-permalink · weight 2 · fail · +2 recoverable · no cart permalink
Add a shareable cart/checkout permalink on https://squishy-finder.com that carries line items in the URL, so an agent can build a cart and hand the link to a person. Evidence: no cart permalink.
Price, stock and variants are in the HTML
commerce/pdp-facts-html · weight 4 · partial · +2 recoverable · no price in HTML
Put product name, price, currency and availability in the server HTML of https://squishy-finder.com/us — not fetched client-side — with the variants listed. Evidence: no price in HTML.
Policy pages are linked sitewide
commerce/policy-links · weight 2 · fail · +2 recoverable · 0/5 policy pages linked
Link returns, shipping, terms, privacy and contact from the footer of every page on https://squishy-finder.com. Evidence: 0/5 policy pages linked.
Claims are checkable
trust/sources · weight 2 · fail · +2 recoverable · 0 outbound source link(s)
Add outbound links to primary sources for the factual claims on https://squishy-finder.com/us — the operator documentation, study or specification, not another summary. Evidence: 0 outbound source link(s).
About and contact are reachable
trust/about-contact · weight 2 · fail · +2 recoverable · no about or contact link
Publish a reachable About and Contact page on https://squishy-finder.com and link both from the footer. Evidence: no about or contact link.
Response is fast enough for an agent timeout
render/ttfb · weight 3 · partial · +1.5 recoverable · 823 ms to first byte
Speed up the server response for https://squishy-finder.com/us: TTFB should land under 800 ms. Cache the HTML at the edge, and remove synchronous calls from the render path. Evidence: 823 ms to first byte.
Canonical points at itself
structure/canonical · weight 3 · partial · +1.5 recoverable · canonical https://squishy.build/us
Add a self-referencing rel=canonical to https://squishy-finder.com/us that matches the URL actually served (https, final host, no tracking params). Evidence: canonical https://squishy.build/us.
Publisher entity is declared and linked
data/org-entity · weight 3 · partial · +1.5 recoverable · entity without sameAs
Add an Organization (or Person) JSON-LD node on https://squishy-finder.com with name, url, logo, and sameAs links to the profiles the brand actually owns. Evidence: entity without sameAs.
A public API answers without a human
interfaces/public-api · weight 3 · partial · +1.5 recoverable · no API declared
Expose at least one unauthenticated read endpoint on https://squishy-finder.com that returns the site's core facts as JSON, and document it in the OpenAPI spec. Evidence: no API declared.
Search works through a GET URL
commerce/site-search · weight 3 · partial · +1.5 recoverable · no GET search form
Make site search on https://squishy-finder.com work over GET with a ?q= parameter that returns results in the server HTML, so an agent can construct a search URL. Evidence: no GET search form.
A named, accountable author or publisher
trust/author · weight 3 · partial · +1.5 recoverable · no author signal
Show a named author or accountable publisher on https://squishy-finder.com/us, with a link to an about page that establishes who they are. Evidence: no author signal.
Training policy is explicit
access/training-policy · weight 1 · fail · +1 recoverable · no explicit training policy
State a training policy on https://squishy-finder.com: either name CCBot / Google-Extended / Bytespider explicitly in robots.txt, or add a Content-Signal line (search=yes, ai-input=yes, ai-train=no). Evidence: no explicit training policy.
Snippets and large image previews are allowed
access/snippets-allowed · weight 2 · partial · +1 recoverable · snippet directives incomplete
On https://squishy-finder.com set "max-snippet:-1, max-image-preview:large" in the meta robots tag or X-Robots-Tag so assistants can quote the page. Evidence: snippet directives incomplete.
Headings are sequential and descriptive
structure/heading-order · weight 2 · partial · +1 recoverable · 0 skipped level(s), 0 H2(s)
Fix the heading outline on https://squishy-finder.com/us: no skipped levels (H2 to H4), and make each H2 describe its section. Evidence: 0 skipped level(s), 0 H2(s).
Open Graph title, description and image
structure/og-tags · weight 2 · partial · +1 recoverable · og:title yes, og:description yes, og:image no
Add Open Graph tags to https://squishy-finder.com/us: og:title, og:description, og:image (1200x630 absolute URL), og:url, og:type. Evidence: og:title yes, og:description yes, og:image no.
Published and modified dates are declared
data/dates · weight 2 · partial · +1 recoverable · no dates in schema
Add datePublished and dateModified to the schema on https://squishy-finder.com/us, kept in sync with the visible date. Evidence: no dates in schema.
BreadcrumbList declares the page position
data/breadcrumb · weight 1 · fail · +1 recoverable · no BreadcrumbList
Add a BreadcrumbList to https://squishy-finder.com/us whose items match the visible breadcrumb. Evidence: no BreadcrumbList.
Sitemap entries carry real lastmod
discovery/sitemap-lastmod · weight 2 · partial · +1 recoverable · no lastmod
Add truthful <lastmod> values to the sitemap on https://squishy-finder.com from real content timestamps. Evidence: no lastmod.
HTML advertises its Markdown twin
discovery/md-alternate · weight 1 · fail · +1 recoverable · no <link rel=alternate type=text/markdown>
Add <link rel="alternate" type="text/markdown" href="/<path>.md"> to the head of https://squishy-finder.com/us. Evidence: no <link rel=alternate type=text/markdown>.
A Markdown sitemap lists the pages in one read
discovery/sitemap-md · weight 1 · fail · +1 recoverable · HTTP 404
Publish /sitemap.md on https://squishy-finder.com: a Markdown list of the site's pages as [title](url), one line each, so an agent gets the whole map in one cheap request. Evidence: HTTP 404.
DNS advertises agent endpoints
discovery/dns-aid · weight 1 · fail · +1 recoverable · no _agents TXT record
Publish a DNS discovery record for https://squishy-finder.com (a TXT record listing the agent endpoints the site exposes) so an agent learns the surface before fetching a page. Evidence: no _agents TXT record.
The skill file is substantive
discovery/agents-md-depth · weight 1 · fail · +1 recoverable · 0/3 of install, configuration, examples
Deepen /AGENTS.md on https://squishy-finder.com to include install steps, configuration, and at least one complete usage example. Evidence: 0/3 of install, configuration, examples.
The page declares the index that covers it
discovery/describedby · weight 1 · fail · +1 recoverable · rel=describedby to the index
Add a rel="describedby" link to the covering /llms.txt from every page on https://squishy-finder.com so an agent can widen from one page to the index. Evidence: rel=describedby to the index.
The MCP card carries the fields a client needs
interfaces/mcp-card-fields · weight 2 · partial · +1 recoverable · 1/4 required groups in the card
Complete the MCP server card on https://squishy-finder.com: transport, endpoint URL, auth requirement, and every tool with a declared input schema and description. Evidence: 1/4 required groups in the card.
Agent skills are indexable
interfaces/agent-skills · weight 1 · fail · +1 recoverable · HTTP 404
Publish /.well-known/agent-skills/index.json on https://squishy-finder.com listing each skill document with name, description and URL. Evidence: HTTP 404.
Site actions are exposed to in-browser agents
interfaces/webmcp · weight 1 · fail · +1 recoverable · no WebMCP registration
Register the site's real actions (search, filter, add to cart) as WebMCP tools on https://squishy-finder.com so a browser agent can call them without guessing at the DOM. Evidence: no WebMCP registration.
One index lists every agent interface
interfaces/ard · weight 1 · fail · +1 recoverable · HTTP 404
Publish an ARD manifest at /.well-known/ard.json on https://squishy-finder.com listing every agentic artefact with its type and URL, and advertise it with rel="ard". Evidence: HTTP 404.
A wildcard agent manifest is published
interfaces/agents-json · weight 1 · fail · +1 recoverable · HTTP 404
Publish /.well-known/agents.json on https://squishy-finder.com: a JSON document naming each agent or action the site accepts, with the URL to call and the input it expects. Evidence: HTTP 404.
Per-action permissions are declared
interfaces/agent-permissions · weight 1 · fail · +1 recoverable · HTTP 404
Publish /.well-known/agent-permissions.json on https://squishy-finder.com mapping each action an agent may take to the scope it needs and whether a human must confirm it. Evidence: HTTP 404.
A natural-language query endpoint answers
interfaces/nlweb-ask · weight 1 · fail · +1 recoverable · /ask → HTTP 404, text/html; charset=utf-8
Expose a natural-language query endpoint at https://squishy-finder.com/ask that accepts ?query= and returns JSON (answer plus result URLs), so an agent can ask the site directly instead of crawling it. Evidence: /ask → HTTP 404, text/html; charset=utf-8.
The interface is declared for agent-driven UI
interfaces/a2ui · weight 1 · fail · +1 recoverable · no A2UI declaration
Declare an agent-driven UI surface on https://squishy-finder.com: mark the page (or publish a manifest) as A2UI so a reviewing agent knows the controls are renderable from a declared schema rather than inferred from the DOM. Evidence: no A2UI declaration.
A personal-agent profile is published
interfaces/pap · weight 1 · fail · +1 recoverable · HTTP 404
Publish /.well-known/personal-agent.json on https://squishy-finder.com describing how an agent acting for a signed-in person is identified and what it may do on their behalf. Evidence: HTTP 404.
The site publishes its own bot signing keys
access/web-bot-auth · weight 1 · fail · +1 recoverable · HTTP 404
Publish a signing-key directory at https://squishy-finder.com/.well-known/http-message-signatures-directory so another site can verify requests this site's bots send. Evidence: HTTP 404.
Errors are machine-readable
interfaces/json-errors · weight 2 · partial · +1 recoverable · unknown API path returned text/html; charset=utf-8
Return RFC 9457 problem-details JSON for every error on https://squishy-finder.com, including unknown routes, so an agent can recover instead of parsing an HTML error page. Evidence: unknown API path returned text/html; charset=utf-8.
Rate limits are declared in headers
interfaces/rate-limit-headers · weight 1 · fail · +1 recoverable · no rate-limit headers
Emit RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset (and Retry-After on 429) from the API on https://squishy-finder.com. Evidence: no rate-limit headers.
Writes are retry-safe
interfaces/idempotency · weight 1 · fail · +1 recoverable · Idempotency-Key documented
Accept an Idempotency-Key header on mutating endpoints of https://squishy-finder.com and document it, so an agent can retry without duplicating work. Evidence: Idempotency-Key documented.
Paid access is discoverable by an agent
interfaces/payment-negotiation · weight 1 · fail · +1 recoverable · x402 discovery HTTP 404
Make paid access discoverable on https://squishy-finder.com: return HTTP 402 with a machine-readable list of accepted payment options, or publish a machine-readable price list. Evidence: x402 discovery HTTP 404.
Machine payment is accepted
commerce/x402 · weight 1 · fail · +1 recoverable · no x402 accepts array
Accept machine payment on https://squishy-finder.com: answer with HTTP 402 and an x402 accepts array (asset, amount, network, payTo) on the paid resource. Evidence: no x402 accepts array.
Delegated payment authorization is advertised
commerce/ap2 · weight 1 · fail · +1 recoverable · AP2 advertised
Advertise delegated payment authorization on https://squishy-finder.com (AP2 extension on the agent card or commerce profile) with the mandate shapes you accept. Evidence: AP2 advertised.
A checkout protocol profile is published
commerce/acp-profile · weight 1 · fail · +1 recoverable · acp profile HTTP 404
Publish a checkout-protocol profile at /.well-known/acp.json on https://squishy-finder.com naming the checkout endpoint and supported payment methods. Evidence: acp profile HTTP 404.
Checkout terms an agent needs are documented
commerce/checkout-docs · weight 2 · partial · +1 recoverable · checkout terms incomplete
Document the checkout terms an agent must know on https://squishy-finder.com: shipping cost and regions, return window, tax handling, and lead time. Evidence: checkout terms incomplete.
A visible publish or update date
trust/visible-date · weight 2 · partial · +1 recoverable · no visible date
Show a visible publish or last-updated date on https://squishy-finder.com/us that matches dateModified in the schema. Evidence: no visible date.
The organization node is complete
trust/org-completeness · weight 2 · partial · +1 recoverable · legalName missing
Complete the Organization schema on https://squishy-finder.com with legalName, address, contactPoint, logo and sameAs. Evidence: legalName missing.
Text responses are compressed
render/compression · weight 1 · partial · +0.5 recoverable · no compression header relayed
Enable Brotli/gzip compression for HTML and JSON on https://squishy-finder.com. Evidence: no compression header relayed.
Unlock the full fix pack
Pro shows every prompt, keeps the report on a schedule, and exposes the same scan over the API and MCP so your agent can close the loop without a human copying text.
Take the report with you
- /report/squishy-finder.com.json — cached JSON, 6-hour TTL
- /report/squishy-finder.com.md — Markdown mirror, text/markdown
- /badge/squishy-finder.com.svg — score badge
- /api/scan?url=… — the same number as JSON
A snapshot is not a guarantee: one scan is one request per surface at one moment. Re-scan after every deploy.