← Guides · updated September 14, 2026
Classic technical SEO asks whether a crawler can find, fetch and understand your pages. AI discovery asks the same question of a different reader — one that arrives with a task, reads a page or two, and either finishes the errand or gives up. The fundamentals overlap almost entirely. The failure modes don't.
Googlebot renders JavaScript. Most production agents don't — they make a plain HTTP request and read the HTML that comes back. Googlebot is allow-listed through every bot-protection product. Agents are the traffic those products are tuned to stop. And Googlebot has all the time in the world; an agent has a step budget and a person waiting.
So a site can be technically flawless for search and still lose every agent at the door. In our latest Field Test episode, 2 of 141 page fetches hit a bot wall. 7% of the 113 sites on our Index block at least one AI crawler by policy.
Pricing, plan comparisons, cancellation steps, contact details: these must exist in the served HTML, not appear after a script runs. Server-side rendering, static generation, or pre-rendering for the handful of pages that carry answers. The test is one command:
curl -sL https://yourdomain.com/pricing | grep -o '\$[0-9]*' | head
No prices in the output means no prices for an agent. This single check is worth 25 of the 100 points on the Index.
Bot-protection defaults treat every non-browser request as hostile. That includes an agent fetching your help
center because a customer asked how to cancel. Review your rules: distinguish scrapers from named, well-behaved
agents; serve the plain HTML version to anything that identifies itself honestly; never put your support and legal
pages behind a challenge. And write a robots.txt that says what you mean — blocking everything is a
choice, and we report it as "closed by policy" rather than as a bug.
JSON-LD is read directly, no parsing heuristics needed. Organization and WebSite on the
homepage; Product with Offer on every plan; FAQPage wherever you answer a question;
HowTo for cancellation and setup flows. Keep it in sync with the visible page — an agent that reads both and
finds them disagreeing trusts neither.
Pricing, support, docs, legal. Each linked from the homepage with a real <a href> in the HTML, not a
JavaScript menu, not an icon with no text. An agent that has to guess URLs burns its step budget guessing.
A curated, link-rich llms.txt at the root is the fastest way to tell an AI reader where things are. It costs
ten minutes and it's checked on every audit. Here is the template.
The standard advice, still right: /sitemap.xml or a Sitemap: line in robots.txt,
every canonical URL, and a real <lastmod> on each. Crawlers of every kind use it to spend their budget on
what changed.
Fetch your own pages the way an agent does and read what comes back:
curl -sL -A "Mozilla/5.0 (compatible; ClaudeBot/1.0)" https://yourdomain.com/ | head -c 2000
If you see "Just a moment", "Verifying you are human", or an empty app shell, that is what every agent sees. Then look at your site's Index report — each check maps to a fix — and read a few Field Test transcripts to watch a real agent hit real walls, verbatim.
Related: AI Readiness Audit Checklist for Websites · llms.txt and OpenAPI for AI Agents