AI SEO: How to Get Cited by ChatGPT and Perplexity
Ranking on Google and being quoted by an answer engine are different problems. Here's how AI crawlers actually read your site, the robots.txt line that blocks them, and what makes a page citable.
By Niraj Kumar
Search is splitting in two.
People still Google. But increasingly they ask — an assistant, a chat box, an AI overview sitting above the blue links — and the answer they get is assembled from a handful of sources the model could read, understand and trust. If you're not one of those sources, you're not in the answer. There is no page two to be on.
This is a genuinely different game from ranking, and most of the advice floating around treats it as the same game with a new name. It isn't. Here's what actually determines whether an answer engine can cite you.
Ranking and being cited are different problems
Traditional SEO competes for a position in a list. Ten results, you want to be near the top, and a user picks one.
AI SEO competes to be the source quoted inside an answer. There is no list. The model reads a few pages, synthesises, and attributes. The user may never visit your site at all — but your brand appears as the authority in the answer they act on.
The overlap is real. Clean structure, good content and a crawlable site help both. But the failure modes are completely different, and the AI-specific ones are largely invisible to every SEO tool you already own:
| Traditional SEO | AI SEO | |
|---|---|---|
| The prize | A position in a ranked list | A citation inside a generated answer |
| The crawler | Googlebot, Bingbot | GPTBot, ClaudeBot, PerplexityBot, and a dozen more |
| The unit | A page | An extractable answer on a page |
| Fatal error | noindex |
A robots.txt line you've never read |
| How you notice | Traffic drops | You don't. Nothing drops. You were simply never there. |
That last row is the whole reason to care now. There is no alarm for "you are absent from every AI answer in your category." Nothing turns red. Your Google traffic looks fine. You just quietly stop being in the conversation where an increasing share of buying decisions now starts.
Step 1: Check whether you're blocked. Right now.
Before content, before schema, before anything: are the crawlers even allowed in?
AI crawlers are separate bots with their own user agents, and they obey robots.txt.
A great many sites are blocking them without knowing it — because someone added a
"block AI scrapers" rule during the 2023 panic, or a security plugin did, or a CDN
offers a one-click "block AI bots" toggle that somebody clicked.
If GPTBot can't fetch your page, nothing else in this article matters. Your content quality is irrelevant. You are not in the index.
The bots to know
They fall into three groups, and conflating them is the most common mistake:
- Training crawlers —
GPTBot,ClaudeBot,CCBot,Google-Extended,Applebot-Extended,Bytespider,meta-externalagent. These fetch content that may be used to train models. Blocking them is a legitimate, defensible choice. - Search / indexing crawlers —
OAI-SearchBot,PerplexityBot,Claude-SearchBot,DuckAssistBot. These build the retrieval index an assistant searches when answering. Blocking these is what removes you from answers. - Live user-fetch agents —
ChatGPT-User,Claude-User,MistralAI-User. These fire when a human asks the assistant to look at a page. Blocking these means a user who explicitly asks about your site gets told it can't be read.
The distinction matters enormously and almost nobody makes it. You can refuse to
be training data and still be citable. Blocking GPTBot (training) while allowing
OAI-SearchBot (search) is a completely coherent position: don't learn from me, but
do quote me. Most sites that "blocked AI" blocked all three groups indiscriminately
and gave up their visibility for nothing.
Read your own robots.txt
curl -s https://yourdomain.com/robots.txt
Look for anything like this:
User-agent: GPTBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
Then decide, per group, deliberately. If you want to be cited but not trained on:
# Training — declined
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
# Search & retrieval — welcome
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
Rules are not the same as reality
Here's the trap that catches people who did check their robots.txt and found it
clean: the rules can be fine and the fetch can still fail.
Your CDN or WAF may block unfamiliar user agents at the edge — Cloudflare, for
instance, ships bot-fighting rules that will happily 403 an AI crawler that
robots.txt explicitly allows. Or your page renders entirely in client-side
JavaScript, and the crawler, which mostly does not execute JS, receives an empty
shell.
So don't just read the rules. Actually fetch the page as the bot:
curl -sI -A "GPTBot/1.0" https://yourdomain.com/your-key-page
curl -s -A "PerplexityBot/1.0" https://yourdomain.com/your-key-page | head -40
If the status isn't a 200, or the body comes back as a skeleton with no text in it,
you have found your problem, and it is a bigger problem than anything you were going
to do with keywords. This is exactly the
indexability trap from traditional SEO,
wearing a new hat: a check that is binary, invisible on the rendered page, and
capable of nullifying every other thing you do.
Step 2: Be citable, not just crawlable
Assume the bots can now read you. That gets you eligible, not quoted. A model assembling an answer picks the sources it can extract a clean answer from.
Answer the question, in the first paragraph, in plain sentences
An answer engine is doing extraction. It wants a passage it can lift, attribute and stand behind. Give it one.
The pattern that works is boring and specific: a clear question as a heading, and a direct, self-contained answer immediately beneath it.
Hard to cite: "Pricing is something a lot of teams struggle with, and in this section we'll explore some of the considerations that go into it, drawing on our experience working with hundreds of customers over the years…"
Easy to cite: "How much does an SEO audit cost? A one-off professional SEO audit typically costs between $500 and $5,000, depending on site size. Automated continuous auditing runs $20–200/month. The difference is that an audit is a snapshot; monitoring is ongoing."
The second one can be quoted verbatim, with attribution, and it stands alone. The first cannot be quoted at all — there is nothing in it. The build-up-to-the-point style that works for a human reader who has already committed to your page is actively hostile to extraction.
Self-contained is the key word. A passage that says "as we discussed above" or "this approach" is unquotable, because lifted out of context it means nothing. Write each answer as if it might appear alone, on someone else's screen — because it might.
Structure the model can parse
- Headings that are questions. "How much does X cost?" beats "Pricing".
- Direct answers, up front. Then the nuance. Inverted pyramid, like journalism.
- Lists and tables for anything enumerable. They extract cleanly.
- Real numbers, dates and names. Specifics are quotable; adjectives are not. "It's fast" cites nothing. "Under 200ms at the 75th percentile" is a fact a model can repeat and attribute.
- Say the date. Models weight recency and, more importantly, will often refuse to cite content they can't date.
Be an entity the model recognises
Models reason about entities — organisations, products, people — not just strings. Help them:
OrganizationJSON-LD on your site: who you are, your logo, yoursameAslinks to your real profiles elsewhere.FAQPageJSON-LD where you genuinely have FAQs. This one has a direct payoff: it hands an answer engine pre-chunked question/answer pairs.- Be consistent across the web. The same company name, the same description, the same URL, everywhere. Models corroborate across sources, and a site that describes itself three different ways is three weak signals instead of one strong one.
Step 3: llms.txt — cheap, unproven, do it anyway
llms.txt is an emerging convention: a markdown file at your root that tells a
language model what your site is and points at your most important pages.
# WebGrowthSignal
> The AI growth operating system for websites. Audits your site across
> seven domains, scores it, and turns the findings into a daily action list.
## Core pages
- [How it works](https://webgrowthsignal.com/how-it-works): the audit-to-action loop
- [Pricing](https://webgrowthsignal.com/pricing): plans and what's in each
- [AI SEO](https://webgrowthsignal.com/features/ai-seo): getting cited by answer engines
Be honest about the status: it is not yet universally honoured. Anyone telling you llms.txt is a ranking factor is guessing. But it takes twenty minutes, it costs nothing, and being early on a convention that might get adopted is a cheap option to hold. Treat it as a lottery ticket you get for free, not as a strategy.
What you can and can't measure
The honest part. Attribution here is genuinely bad, and anyone claiming precise AI citation analytics is overselling.
What you can do:
- Ask the assistants directly. Query ChatGPT, Perplexity and Claude with the ten questions your customers actually ask. See who gets cited. Do it monthly. It's manual, it's unglamorous, and it's the single most informative thing on this list.
- Watch your referrer logs. Perplexity and ChatGPT do send referral traffic, and it shows up in first-party analytics. It'll be small. It is not zero, and its composition is interesting — these visitors arrive with much higher intent, because they've already been told you're the answer.
- Track the inputs you control. Crawler access, answerability, entity schema coverage. These are the things you can actually fix, and they're the things that gate everything downstream.
That last point is the design principle behind our AI SEO module:
it checks whether the bots are allowed in, whether the fetch actually succeeds,
whether your key pages are answerable, and whether your entity data exists — then
scores it and generates the deliverables (llms.txt, the JSON-LD) rather than just
naming the gap. Measuring your citation rate is mostly not possible yet. Measuring
whether you are eligible to be cited absolutely is, and that's where all the
currently-available leverage sits.
What to do this week
curlyour ownrobots.txt. Find out, today, whether you're blocking the search crawlers. Most people are surprised. This is ten minutes and it is by far the highest-value item here.- Fetch a key page as
GPTBotandPerplexityBot. Rules passing isn't enough — confirm the CDN doesn't 403 them and the page isn't an empty JS shell. - Decide your training-vs-search position deliberately, and write it into
robots.txton purpose rather than by accident. - Rewrite the top of your three most important pages into question-heading + direct-answer form. Self-contained, with a real number in it.
- Ship
OrganizationJSON-LD, andFAQPagewhere you have real FAQs. - Ask ChatGPT and Perplexity the five questions your buyers ask. Write down who gets cited. That's your baseline — and, for now, your only honest metric.
None of this is a trick, and none of it is at odds with normal SEO — a page that's clean, fast, well-structured and genuinely answers the question does well in both worlds. The difference is that the AI failure mode is silent. Nobody sends you an email when you're absent from every answer in your category. You simply have to go and look.
