In 2024, your homepage competed for ten blue links on a search results page. In 2026, it competes for inclusion inside an AI-generated answer. The mechanics of getting there are different enough that a classical SEO audit misses most of what now matters — and most teams haven’t noticed the shift yet.
We’ve been calling this new surface AI readiness, though the wider industry has settled on Generative Engine Optimization (GEO) as the umbrella term. Whatever you call it, the question it answers is concrete: when ChatGPT, Claude, Perplexity, Gemini, or Google’s AI Overviews answer a question your business should be the answer to, do they cite you, summarise you accurately, or quietly ignore you?
This piece walks through what changed, who the new crawlers are, the five signals that actually move the needle, and the order to ship them in. By the end you should have a clear two-week roadmap for lifting your domain’s AI readiness score from whatever it is now into the top 5% of the web.
What changed in 2026
Three things make AI readiness distinct from classical SEO. None of them are subtle once you see them, but most teams are still optimizing for the old surface.
- Crawler identity. AI bots use distinct user-agents from search bots —
Disallow: Googlebotdoes not affectGPTBot, and vice versa. Yourrobots.txtfrom 2019 almost certainly says nothing about the dozen new crawlers fetching your pages every day. - Rendering tolerance. Most AI training crawlers do not execute JavaScript. A perfectly optimized Next.js SPA can be invisible to them. If your homepage is a blank
<div>that hydrates on load, an LLM sees an empty page. - Editorial signals.
llms.txtis a markdown table of contents you write for LLMs. It has no equivalent in classical SEO — there’s nositemap.xmlconvention that tells a search engine which pages matter more, only which pages exist.
Who the new crawlers are
Before you can decide what to allow and deny, you need to know who’s knocking. The lineup as of mid-2026:
- GPTBot (OpenAI) — fetches pages for training ChatGPT’s base models. Respects
robots.txt. - OAI-SearchBot (OpenAI) — separate crawler for ChatGPT’s real-time browsing. Distinct from GPTBot. You can allow one and block the other.
- ChatGPT-User (OpenAI) — fired on-demand when a user asks ChatGPT to fetch a URL. Per-request, not bulk.
- Claude-Web / ClaudeBot (Anthropic) — training and retrieval crawlers. Separate user-agents for separate purposes.
- PerplexityBot — Perplexity’s fetcher; cites sources prominently, so showing up here has direct visibility upside.
- Google-Extended — Google’s opt-out signal for Gemini training. Doesn’t affect Googlebot indexing.
- CCBot (Common Crawl) — open dataset that many smaller models train on. Block here and you block downstream training too.
- Bytespider, Diffbot, FacebookBot, Amazonbot — assorted training and retrieval bots from the next tier of operators.
The point isn’t to memorize this list. The point is to realize that “allow all bots” and “allow Google, block everyone else” are both probably wrong choices for your business. You need an opinion per crawler.
The five signals that move citations
From most to least leverage, these are the dimensions that actually move whether an LLM cites you, summarises you accurately, or quietly ignores you. We’ll go deeper on each below.
- JSON-LD structured data. The single highest-ROI addition. Without it, LLMs guess your entity from prose — and guess wrong, sometimes.
- llms.txt. Editorial control over which pages enter the LLM’s “important” list. Cheap to ship; almost no one has it.
- Server-side rendering. Training crawlers do not execute JS. Hydration is a death sentence for citation.
- Bot-aware robots.txt. Decide your stance per-bot, not blanket. Most sites accidentally allow training they would not opt into.
- Canonical + sitemap hygiene. Still the table stakes. AI bots get confused by duplicate-content fragmentation, same as Googlebot did in 2010.
Signal #1: JSON-LD structured data
Structured data is the single highest-leverage change you can make. LLMs are trained on web text, but they have a strong bias toward explicit, machine-readable claims when they exist. A JSON-LD block on your homepage that says “this organization is called X, founded in year Y, based in country Z” will be trusted over a paragraph that says the same thing in prose.
Why? Because the model has seen the JSON-LD pattern millions of times in its training data tied to accurate citations, and it’s seen prose tied to both accurate and inaccurate ones. Structured data is the format LLMs reach for when they need to be sure.
Minimum useful coverage for a business website:
- An
OrganizationorLocalBusinessblock on the homepage. - A
ProductorSoftwareApplicationblock on each product page. - An
Articleblock on every blog post, with a populatedauthoranddatePublished. - A
FAQPageblock wherever you answer questions — these get pulled into AI Overviews almost verbatim. - A
BreadcrumbListon category and detail pages.
Signal #2: llms.txt
llms.txt is the AI-era equivalent of sitemap.xml, except it’s editorial. A sitemap says “here are all my URLs.” An llms.txt says “here are the URLs that matter, in this order, with this framing.” The file lives at the root of your domain and is plain markdown.
It costs nothing to ship and the vast majority of the web doesn’t have one yet. That makes it both a competitive edge and a fast win. We have a longer piece on llms.txt that walks through the format with real-world examples from GitHub, Anthropic, and Cloudflare.
Signal #3: server-side rendering
Almost no AI training crawler executes JavaScript. Some on-demand fetchers (ChatGPT-User, Claude-Web’s on-demand mode) do, but the bulk training crawlers walk through pages reading raw HTML. If your homepage is a hydrated SPA, the version those bots see looks like this:
No content. No headings. No paragraphs to cite. The fix is either server-side rendering (Next.js App Router, Remix, Nuxt, SvelteKit), static site generation, or — if you can’t change the framework — prerendered HTML snapshots served conditionally based on user-agent.
curl -A "GPTBot/1.0" https://yoursite.com. If what comes back is mostly empty, your AI readiness score is capped low regardless of what else you do.Signal #4: bot-aware robots.txt
Most robots.txt files in 2026 are still from the Googlebot era — a singleUser-agent: * stanza that either allows everything or denies everything. Neither is right. The right move is to take a position per-crawler.
A sensible default for most commercial sites:
The reasoning: retrieval bots fetch your page and cite it when the user asks something relevant. That’s pure upside — block them and you give up free visibility. Training bots fetch your page and may or may not regurgitate it later, with no attribution. That trade is more debatable, and you should make it deliberately.
Signal #5: canonical hygiene
This is table stakes — but you’d be surprised how many sites still get it wrong, and AI bots are unforgiving about it. The three pieces:
- Every page should declare a single
<link rel="canonical">pointing to itself or a canonical equivalent. Conflicting canonicals confuse LLMs and dilute citation weight. - Your
sitemap.xmlshould match your canonical URLs exactly — no trailing slash mismatches, no?utmnoise, no mixed protocols. - Duplicate content should be consolidated. If two URLs serve the same content, pick one as canonical and 301 the rest. LLMs that see fragmented duplicates often cite the wrong copy or none of them.
The 5-minute starter fix
Drop this into your <head>. Five minutes of work, often 15–18 points of score lift in the AI Readiness Check:
That single block does more for AI citation than a quarter of classical SEO work. It tells every LLM that ever ingests your homepage: this is the entity, this is its name, these are the verified identities on other platforms. From there the model can resolve almost any question about your business to a structured, attributable answer.
How to audit your own domain
You don’t need to do this by hand. The audit breaks into five mechanical checks:
- JSON-LD presence. Does the homepage have at least an
Organizationblock? Do inner pages have type-appropriate structured data? - llms.txt presence. Does
/llms.txtresolve with markdown content? - SSR check. Does a no-JS HTTP fetch return meaningful content?
- Robots policy. Does
robots.txtmention AI-specific user-agents, or is it silent on them? - Canonical hygiene. Do canonicals match the sitemap, and is there one canonical per page?
What to ship this week
Pick one signal — JSON-LD is usually the right starting point — and ship it on Monday. Re-scan on Friday. Repeat for the next month. You’ll out-score 95% of the web by quarter end.
If you only have one hour: add the Organization JSON-LD block to your homepage. If you have one day: add JSON-LD plus a basic llms.txt. If you have one week: do those plus the robots.txt rewrite plus an SSR audit of your top ten pages.
FAQ
What is AI readiness?
A set of signals on your domain that determine whether AI systems (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews) cite you accurately when answering questions in your topic area. It overlaps with SEO but adds new requirements — primarily structured data, llms.txt, server-side rendering, and a per-crawler robots.txt policy.
Is AI readiness the same as Generative Engine Optimization (GEO)?
Roughly, yes. GEO is the umbrella term the industry settled on. AI readiness is the score; GEO is the discipline of improving it. We use both interchangeably.
Should I block GPTBot?
Depends on your business. If your content is your moat (publishing, research, paid courses), blocking training crawlers is defensible. If your content is your marketing (most B2B, most e-commerce, most SaaS), blocking them costs you visibility downstream when users ask AI questions you should be the answer to.
How do I check if my site is AI-ready?
Run an AI Readiness scan. It checks all five signals in one pass and returns a score plus the specific gaps to fix. Most teams score 30–50/100 on the first scan and reach 80+ within two weeks of focused work.
What’s the difference between an AI training bot and an AI retrieval bot?
Training bots (GPTBot, ClaudeBot, CCBot) fetch your pages to add them to a training corpus. Retrieval bots (OAI-SearchBot, ChatGPT-User, PerplexityBot) fetch your pages on demand when a user asks a question, and typically cite the source. The two should usually have different rules in robots.txt.