# sitesfor.ai — extended > Websites for AI agents. Adapted to published standards. In code you own. This document is denser than /llms.txt. It inlines post bodies, FAQ answers, the studio-vs-saas comparison, the standards we test against, the canonical signal catalogue, and pricing — for AI bots that prefer a single long-form document over crawling each route. ## SKU ladder (USD primary) ### Free Checker — $0 Free Checker scans a single URL against 43 published AI-agent-readiness signals and returns a deterministic letter grade, a global and vertical percentile, and the top-3 fixes in seconds. Features: - Letter grade A–F, in seconds - Tested against 43 published, vendor-neutral standards - Where you stand vs. every other site we've scanned — globally and within your vertical - Top 3 fixes that move your grade the most - Evidence for every score — verifiable yourself with `curl` Not included: - No JS-rendered DOM scan - No live MCP / ACP / x402 handshake - No persistent URL — the report exists in the browser tab ### Setup — from $5,000, one-time Setup is a one-time engagement that adapts an existing codebase for AI-agent readiness across all relevant signal groups (Discovery, Identity, Agent Contracts, Citation, Rendering, Hygiene, Commerce). It fixes every failing Checker signal, builds out missing coverage, installs server-log crawler analysis, configures GA4 AI-source segmentation, and delivers a baseline citation report and a before/after grade. Fixed-price, scope-based, deliverable is PRs into the customer repository. From $5,000. Contact via mailto or Calendly. Features: - Every failing Checker signal fixed — plus the signal coverage your site is missing - A baseline citation report across ChatGPT, Claude, and Perplexity - Server-log AI-crawler analysis installed; GA4 AI-source segmentation configured - Multi-page template audits (catalog, blog, docs) where they apply - Fixed-price scope agreed up front — no hourly surprises - 30 days of post-launch support and a validation re-scan documenting the score delta - Works with whatever your site is built on (Next, Astro, Nuxt, Hugo, WordPress, custom) Not included: - No greenfield builds in v1 (existing codebases only) - No SaaS layer running on our infrastructure - No self-serve checkout — scope is set on a discovery call ### Retainer — Monitor — $1,500/mo Retainer (Monitor tier) — $1,500/mo, 3-month minimum. Keeps a site from decaying after a Setup: monthly client report, schema/standards maintenance, a 50-prompt monthly citation panel, and a monthly Checker score delta. Sold after a Setup engagement. Features: - Monthly client report — skimmable in 90 seconds - Schema and standards maintenance as the published specs evolve - 50-prompt citation panel run monthly across ChatGPT, Claude, Perplexity - Monthly Checker score delta — what shipped, what is queued - ~2 hours of consult Not included: - No content production - No off-site co-citation work ### Retainer — Grow — $3,500/mo Retainer (Grow tier) — $3,500/mo, 3-month minimum. The hero tier. Everything in Monitor plus biweekly reporting, a 150-prompt weekly citation panel, ~4 pages/month of content and entity work, and server-log crawler analysis with action items. Features: - Everything in Monitor - Biweekly reporting - 150-prompt citation panel run weekly - ~4 pages/month of content and entity work - Server-log AI-crawler analysis with action items - ~4 hours of consult Not included: - No off-site co-citation campaign - No weekly call ### Retainer — Dominate — $7,500/mo Retainer (Dominate tier) — $7,500/mo, 3-month minimum. Everything in Grow plus weekly reporting, a 300+ prompt daily citation panel, content/entity/off-site co-citation work, and a weekly call. Features: - Everything in Grow - Weekly reporting - 300+ prompt citation panel run daily - Content, entity, and off-site co-citation work - Weekly call Not included: - No greenfield builds - No SaaS layer on our infrastructure ## Studio-vs-SaaS comparison (no vendor names) - **Lock-in** — Studio: Code in your repo. Cancel anytime — the work survives. · SaaS platforms: Runtime layer served from vendor infrastructure. Cancel and it disappears. - **Third-party JS on your domain** — Studio: None. Zero third-party scripts — no checkout, no analytics, no CDN fonts. · SaaS platforms: Tracking script + dashboard auth iframe required. - **Code ownership** — Studio: You own the PRs after the engagement. No license, no SaaS layer. · SaaS platforms: Methodology is proprietary. The "AI layer" is not in your repo. - **Methodology transparency** — Studio: Standards-only: schema.org, llms.txt, OpenAPI 3.1, MCP, ACP, AP2, x402, ... · SaaS platforms: Closed dashboard. Trademarked "AI Position Intelligence™"-style scoring. - **Recommendations** — Studio: Deterministic — top-3 fixes from a fixed table, not LLM-generated. Never contradicts the evidence panel. · SaaS platforms: LLM-generated. Frequently recommends fixes the evidence panel shows are already in place. - **Transactability (buyer agents)** — Studio: Commerce group graded: ACP feed, AP2 mandates, x402 challenge, schema.org Offer. · SaaS platforms: AEO discoverability only. Buyer-agent commerce layer ungraded. - **How you pay** — Studio: A one-time Setup, then an optional monthly retainer you can cancel after 3 months. · SaaS platforms: An indefinite subscription billed from day one. Stop paying and the layer goes dark. *A studio, not a platform. Your repo, not our domain. A retainer you can cancel, not a subscription you cannot.* ## Standards we test against - **schema.org** (W3C / WHATWG community) — https://schema.org/ — last checked 2026-06-15 - **JSON-LD** (W3C) — https://www.w3.org/TR/json-ld11/ — last checked 2026-06-15 - **schema.org Offer** (schema.org) — https://schema.org/Offer — last checked 2026-06-15 - **llms.txt** (llmstxt.org) — https://llmstxt.org/ — last checked 2026-06-15 - **OpenAPI 3.1** (OpenAPI Initiative) — https://spec.openapis.org/oas/v3.1.0 — last checked 2026-06-15 - **MCP** (Anthropic / community) — https://modelcontextprotocol.io/ — last checked 2026-06-15 - **IndexNow** (Microsoft + community) — https://www.indexnow.org/ — last checked 2026-06-15 - **robots.txt** (IETF / community) — https://datatracker.ietf.org/doc/html/rfc9309 — last checked 2026-06-15 - **ACP** (OpenAI + Stripe) — https://github.com/agentic-commerce-protocol/agentic-commerce-protocol — last checked 2026-06-15 - **AP2** (Google + community) — https://ap2-protocol.org/ — last checked 2026-06-15 - **x402** (Coinbase + community) — https://www.x402.org/ — last checked 2026-06-15 *We test against published, documented, vendor-neutral standards. We do not score sites against proprietary or unpublished protocols.* ## Signal catalogue (43 signals, weighted to 100) ### discovery - **1.** /robots.txt exists — 2 pts - **2.** AI bot policy explicit per UA (GPTBot, ClaudeBot, OAI-SearchBot, Google-Extended, PerplexityBot, Bingbot, Applebot-Extended, CCBot) — 5 pts - **3.** /sitemap.xml valid — 4 pts - **5.** /llms.txt parseable — 3 pts - **6.** /llms-full.txt extended summary — 1 pts - **7.** IndexNow key file present — 3 pts - **8.** Markdown variant for AI UAs (.md) on every route — 2 pts ### identity - **9.** JSON-LD parses cleanly via ajv — 6 pts - **10.** Organization complete — 5 pts - **11.** Person (founder) linked from Organization.founder — 2 pts - **12.** Reciprocal sameAs verification cross-domain — 3 pts - **13.** WebSite schema present — 2 pts - **14.** BreadcrumbList on inner pages — 2 pts - **15.** OG + Twitter card present — 1 pts - **16.** Favicon SVG variant + hreflang where multilingual — 1 pts ### agent-contracts - **18.** OpenAPI 3.1 document valid — 5 pts - **21.** MCP discoverable at /.well-known/mcp.json — 5 pts - **22.** MCP initialize handshake completes + tools/list returns ≥1 tool — 6 pts - **23.** OpenAPI server URLs respond — 2 pts ### rendering - **24.** SSR detection — raw fetch vs. headless DOM diff acceptable — 1 pts - **25.** Canonical consistent — 3 pts - **26.** Strong ETag / Last-Modified headers — 1 pts - **27.** Brotli on machine-readable resources — 1 pts - **28.** HTTP/2 or HTTP/3 — 1 pts - **29.** No JS-required navigation — 1 pts ### citation - **30.** Definitional sentence density — 1 pts - **31.** Stable claim anchors — 1 pts - **32.** Fact card block — 1 pts - **33.** Heading hierarchy clean — 1 pts - **34.** Image alt density ≥85% — 1 pts - **35.** FAQPage schema if FAQ detected — 1 pts - **36.** Article + dateline on blog — 1 pts - **37.** Statistics tables annotated — 1 pts ### hygiene - **38.** HTTPS + HSTS, no mixed content — 4 pts - **39.** Last-Modified within 12 months — 2 pts - **40.** No noindex on root + privacy policy present — 2 pts - **41.** security.txt present — 2 pts - **42.** Robots.txt does not unintentionally block AI bots needed for discoverability — 2 pts ### commerce - **43.** ACP feed valid (/sitesfor.acp.json or claimed in OpenAPI servers) — 2 pts - **44.** ACP checkout endpoint reachable + capability-negotiated — 2 pts - **45.** AP2 mandate-verifier endpoint resolves a test Intent Mandate — 2 pts - **46.** x402 challenge on at least one paid endpoint — 2 pts - **47.** schema.org Offer with price/currency/availability on commercial pages — 4 pts - **49.** WebMCP manifest present (W3C Web Machine Learning CG draft) — 1 pts (preview, weighted 0) - **49.** Google WebMCP manifest present — 1 pts (preview, weighted 0) ## FAQ ### What is "AI-agent readiness"? It is the property of a website that allows three distinct kinds of software readers — crawlers, assistants, and buyer agents — to use it fluently against published, vendor-neutral standards. The Checker grades a catalog of deterministic signals across seven groups and returns a letter grade plus a global percentile. ### How is this different from SEO? SEO grades pages against ranking signals for Google's index. AI-agent readiness grades pages against the standards three different software audiences need: crawlers (`/robots.txt`, `/llms.txt`, sitemaps), assistants (JSON-LD identity, OpenAPI 3.1, MCP handshake), and buyer agents (ACP, AP2, x402, schema.org Offer). The overlap with SEO is in the Hygiene group and parts of Citation — perhaps a third of the catalogue. The rest is new surface area. ### What does a Setup engagement include? Setup is the studio's one-time engagement. We adapt your site so AI agents — crawlers, assistants, and buyer agents — can use it fluently. Scope is agreed on the discovery call; the engagement fixes every failing Checker signal and builds out the signal coverage your site is missing (Discovery, Identity, Agent Contracts, Citation, Rendering, Hygiene, Commerce), including multi-page template audits (catalog, blog, docs) where they apply. It also includes a baseline citation report, server-log crawler analysis installed, GA4 AI-source segmentation configured, and a before/after Checker grade. Fixed-price scope agreed up front, 30 days of post-launch support, and a validation re-scan after launch. Deliverables are pull requests or commits into your repository — the code is yours after the engagement, no runtime dependency on the studio. Afterwards, an optional monthly Retainer keeps the score from decaying as the standards move. The studio adapts existing websites only in v1 (no greenfield builds) and works with whatever your site is built on (Next, Astro, Nuxt, Hugo, WordPress, custom). ### Is the AI-bot markdown variant cloaking? No. Cloaking is serving substantively different content to bots versus humans to manipulate ranking. We serve the same content to both, in two encodings: HTML for humans, a denser markdown variant for AI bots that benefit from it. The text, claims, and structure are identical; only the encoding differs. This is documented on `/policy.txt`, and the markdown variant is grepped on every build to verify content parity. ### Do you grade on a curve, or compare me against my industry? No curve. The Checker grades against universal published standards, so your letter grade is absolute — it never softens because your industry's average is also low. But the report does show you a map. Alongside the absolute grade you get a global percentile against the whole corpus, a vertical percentile against your self-classified peers ("among SaaS sites, your 67 is the median"), and a per-signal corpus-wide pass rate. The vertical number is a sales and prioritisation map, not a comfort blanket: it tells you how far the realistic frontier is, while the per-signal rarity tells you which fixes are table-stakes and which are genuine competitive moats. ### What data do you store about my site? One row per scan in a SQLite corpus on a single VPS — the URL, scan mode, score, signal results, and timestamp. No PII (websites are public information; the privacy framework that applies to user data does not apply to scan inputs). No cookies set on visitors. Reports themselves are ephemeral — returned inline as the HTTP response body and discarded after the request. ### Can AI agents call the Checker themselves? Yes. The site is itself agent-callable. The Checker is exposed as a tool via an MCP server at `/.well-known/mcp.json` and `/api/mcp`. The studio's catalogue is published as an ACP feed at `/sitesfor.acp.json` so buyer agents can discover purchasable SKUs and complete a Stripe Checkout flow on a user's behalf. The reference implementation is the proof. ## Blog posts (inline) ### An AI-readiness score is not the point. Fixing it is. *Published 2026-06-07 · tags: essay · https://sitesfor.ai/blog/ai-readiness-score-is-not-enough* Free AI-readiness scanners are everywhere now. We scanned 97 leading B2B SaaS sites — 84 of them (87%) scored an F. The score was never the hard part. Shipping the fix into your codebase is. import FactCard from '~/components/content/FactCard.astro'; import ClaimAnchor from '~/components/content/ClaimAnchor.astro'; In the last year, checking whether your website is "ready for AI" went from novel to commodity. There are now a dozen free scanners that will take your URL and hand back a grade. A large infrastructure vendor ships one. We ship one too — it's the free Checker on this site. So let's be honest about what a score is worth: not much, on its own. ## The score is the easy 5% We pointed our Checker at 97 well-known B2B SaaS companies — the kind of teams with real budgets and good engineers — and graded each against published, vendor-neutral standards for the three audiences a modern site serves: crawlers, assistants, and buying agents. 84 of the 97 — 87% — scored an F. Not one scored above 53 out of 100. Around 91% gave AI crawlers no specific instructions at all; roughly half had no `/llms.txt`; none exposed a machine-readable catalogue a buying agent could act on. Read that again: companies you've heard of, almost uniformly failing. Which tells you the diagnosis is not the bottleneck. If nearly everyone scores an F, a tool that simply *reports* the F is telling you something you could have guessed. The score is the easy 5% of the problem. The hard, valuable 95% is the part every scanner stops short of: actually changing the site. ## Why the fix is the hard part The fixes aren't exotic. They're published standards most teams just haven't gotten to — a parseable `/llms.txt`, complete `Organization` and `Person` schema, an `ai-plugin.json` and OpenAPI description if you have an API, `schema.org` `Offer` markup if you sell something. Nothing here requires inventing technology. What it requires is engineering time inside *your* codebase: someone who understands your Astro or Next or Rails app well enough to add the markup to the right templates, wire the build to emit the right files, and not break anything. That's the work a score can't do for you. A dashboard that tells you "you're missing llms.txt" has handed you a ticket, not a solution — and that ticket competes with your roadmap and loses, quarter after quarter. That's exactly why 86% are still failing. ## A score you rent vs. code you own This is the line that matters when you compare the options. Most of the AI-readiness tools are SaaS dashboards: you pay monthly, you get a number and a checklist, and the implementation is still your problem. The number lives on their domain; the work, if it ever happens, lives on yours. We do it the other way around. The diagnosis is free — run the Checker, get the grade, no sign-up. The implementation is a fixed-scope engagement that ships as pull requests into *your* repository. You own the code after. No SaaS layer running on someone else's infrastructure, no monthly fee to keep seeing your own score, nothing to rip out if you part ways. A score is something you rent. The fix is something you own. Only one of them changes whether an AI assistant cites you next quarter. ## What to do with this Run the [free Checker](/check) — get your grade in seconds, same as the 97 sites above. If you land where most do, the number won't shock you. The useful question is the next one: who's going to implement the fixes, and where will that code live? If the answer is "us, eventually, when the roadmap allows," history says that's a no. If you'd rather have it shipped into your repo now, against a fixed scope, with a before/after grade to prove it moved — that's the engagement. [Talk to the studio.](/#contact) The scanners aren't wrong. They're just the first 5%. --- *How we tested: we attempted 122 well-known B2B SaaS companies and successfully scanned 97 (the other 25 block non-browser traffic outright — itself a readiness problem, since several AI crawlers identify as bots). Each site was graded with our light-path Checker against published, vendor-neutral standards — schema.org, llms.txt, OpenAPI 3.1, MCP, ACP, robots.txt and others — scored to 100. No site was named; the numbers are aggregate. Run the same check on your own site at [/check](/check).* --- ### Build-time JSON-LD vs. runtime JSON-LD *Published 2026-05-14 · tags: essay · https://sitesfor.ai/blog/build-time-vs-runtime-jsonld* Three failure modes of hand-rolled structured data — and the build-time fix that ships in your repo, not someone else's. import FactCard from '~/components/content/FactCard.astro'; import ClaimAnchor from '~/components/content/ClaimAnchor.astro'; import DefinitionBlock from '~/components/content/DefinitionBlock.astro'; There's a thread of category-leading marketing that argues: hand-rolled JSON-LD drifts, has coverage gaps, ships invalid graphs, and therefore you should subscribe to a runtime schema-generation API. The first half of the claim is correct. The conclusion is a non-sequitur. The same failure modes are solvable at build time, in your repo, with no runtime dependency on anyone. **Build-time JSON-LD is** structured data generated from typed source code during the build, validated against `schema.org` shapes in CI, and embedded as static `