Dev.to WebDev 🛠 Dev 👁 0 📖 6 min read

How AI answer engines pick their sources (and how to get your SaaS cited)

Ask ChatGPT or Perplexity "what's the best tool for X?" and you get a neat paragraph with a few linked sources. If your product is in your buyers' answers, great. If it isn't, it's worth asking why, and the reason usuall

Ask ChatGPT or Perplexity "what's the best tool for X?" and you get a neat paragraph with a few linked sources. If your product is in your buyers' answers, great. If it isn't, it's worth asking why, and the reason usually isn't magic.

This post covers how answer engines decide what to cite, which parts you can influence, and how to measure it without guessing. Some people call this GEO (generative engine optimization) or AEO (answer engine optimization). Most of it is just good engineering hygiene plus being present where your buyers already look.

Two ways a model "knows" about you

It helps to separate two mechanisms:

1. Training data. The model learned something about your product during pre-training. That knowledge is frozen at a cutoff date, comes with no citation, and you can't update it on demand. If your product launched after the cutoff, or barely appeared on the public web before it, the model may simply not know you exist.

2. Retrieval (live search / grounding). For many queries, especially "best", "vs", "alternatives" and "pricing" questions, the engine runs one or more web searches, fetches pages, and writes an answer grounded in those pages. This is where citations come from. Perplexity is retrieval-first. ChatGPT, Claude and Gemini search when the question needs fresh or specific information. Google's AI Overviews and AI Mode sit on top of Google Search's index, and Google says they may use a "query fan-out" technique: several related searches across subtopics, then a synthesized answer.

The practical takeaway: you can't edit training data, but you can influence retrieval. And retrieval rewards the same things it always has: being indexable, relevant and trusted, and showing up in the result sets the engine pulls from.

Why third-party sources matter more than your homepage

Look at the citations under a "best [category] tools" answer and you'll usually see a mix like this:

  • Listicles and comparison articles ("10 best X in 2026")
  • Review platforms and software directories
  • Reddit threads and community forums
  • Documentation, GitHub READMEs, and help centers
  • Occasionally, vendor pages

That makes sense. When someone asks "which tool should I use?", a neutral roundup is a more useful source than a vendor's own landing page. An engine running fan-out searches will pull the pages that rank for those sub-queries, and those are mostly third-party pages.

So for a SaaS, a big part of getting cited is being mentioned, accurately, on the pages that get cited for your category. Concretely:

  • Directories and review sites relevant to your niche: keep the listing complete, with the correct category, current pricing, and a clear one-line description.
  • Comparison and "alternatives" articles: if one ranks for your category and leaves you out, reach out to the author with accurate facts. Don't spam.
  • Communities: take part genuinely where your users already hang out. Answer questions, disclose that you work on the product, and don't astroturf. Communities notice, and so does everyone reading the thread.
  • Docs and integrations: public docs, integration pages on partners' sites, and well-maintained READMEs are things engines can actually quote.

Make your own pages easy to quote

Your site still matters, especially for factual questions ("does X support SSO?", "how much does X cost?", "does X integrate with Postgres?"). Engines extract passages, so write pages that hold up when quoted out of context.

Clear, factual pages. Have one page per important fact cluster: pricing, integrations, security/compliance, a feature overview, and an honest "X vs Y" page if you have one. Put the answer in the first sentence or two, then the detail. Keep things like plan names, limits and supported platforms in plain HTML text, not baked into images or hidden behind client-side rendering.

Structured data. Schema.org markup (Organization, SoftwareApplication, Product, FAQPage, BreadcrumbList) helps machines understand what a page is about. Keep expectations realistic, though. Google states there's no special schema required for AI Overviews or AI Mode, and it asks that structured data match the visible text. Treat schema as helpful hygiene, not a ranking hack.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "YourApp",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": { "@type": "Offer", "price": "29", "priceCurrency": "USD" }
}
</script>

llms.txt. llms.txt is a proposed convention: a Markdown file at /llms.txt that gives LLMs a curated map of your most useful content. It's cheap to add and handy for docs-heavy products, especially when developers paste your docs into coding assistants. It's still a proposal, though, not something every engine is known to consume, and Google says you don't need new "AI text files" to appear in its AI features. Add it if it's easy, and don't expect it to move the needle on its own.

Don't accidentally block the crawlers

This one is surprisingly common. A security rule, a CDN bot-protection toggle, or a copy-pasted "block all AI bots" robots.txt can quietly remove you from retrieval.

Most vendors now split crawlers by purpose, so you can opt out of training without opting out of search:

  • OpenAI documents separate agents for training (GPTBot), search (OAI-SearchBot) and user-initiated fetches (ChatGPT-User). See OpenAI's crawler docs.
  • Anthropic lists ClaudeBot (training), Claude-SearchBot (search indexing) and Claude-User (fetches on a user's behalf), and notes that blocking the latter two may reduce your visibility. See Anthropic's help article.
  • Perplexity documents PerplexityBot and Perplexity-User. See Perplexity's bot docs.
  • Google: AI Overviews and AI Mode are governed by normal Googlebot access. Google-Extended controls use in some of Google's other AI systems, not Search (Google's docs).

An example that opts out of training but stays citable:

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Claude-User
Allow: /

Whether to allow training crawlers is your call. Just make it a deliberate decision. Then check your server or CDN logs to confirm the search and user agents actually get 200s and not 403s. A clean robots.txt doesn't help if your WAF blocks the request first.

Measure it like you'd measure anything else

"Are we visible in AI answers?" is answerable, roughly, with a small and boring process:

  1. Write down your buyers' prompts. Use 20–50 real questions, taken from sales calls, support tickets and search queries. Mix category questions ("best open-source feature flag tool"), comparisons ("X vs Y"), and problem questions ("how do I do Z without a backend").
  2. Run them across engines. Cover ChatGPT, Perplexity, Gemini, Claude and Google AI Overviews. Use fresh sessions and note the date, since answers vary between runs and over time.
  3. Record two things per answer: whether your product is mentioned (and how accurately), and which domains are cited.
  4. Aggregate the cited domains. You'll usually find a fairly short list of sites that keep coming up for your category. That list is your to-do list: those are the pages to be present and accurate on.
  5. Repeat monthly. Track mention rate and citation share over time, not individual answers.

A spreadsheet works fine to start. If you'd rather automate it, tools exist for this. For example, Kollavo tracks which sources AI engines cite for your buyers' prompts, helps you get listed on them, and offers a free AI visibility score as a starting point.

Checklist

  • [ ] Search and user-fetch agents (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Googlebot) allowed in robots.txt and at the CDN/WAF
  • [ ] Key facts (pricing, integrations, security, platforms) on crawlable, server-rendered HTML pages
  • [ ] Answer-first writing: each page states its main fact up top
  • [ ] Schema.org markup that matches visible content
  • [ ] Optional /llms.txt pointing to your best docs
  • [ ] Complete, accurate listings on the directories and review sites in your niche
  • [ ] Accurate presence in the comparison and "alternatives" articles engines cite
  • [ ] Genuine, disclosed participation in relevant communities
  • [ ] A fixed set of buyer prompts, run monthly across engines, with cited domains logged

None of this is a trick. Answer engines are retrieval systems sitting on top of the web, so being crawlable, clear, and present where your category gets discussed is most of the work.

Written by Josh Adams.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.