llms.txt for SaaS: What We Shipped to Get Found by AI Crawlers
llms.txt won't magically get your SaaS cited by ChatGPT. The honest version — plus the robots allowlist and schema that actually move the needle.
The Argus Team
Reply Argus
An llms.txt file is a plain-markdown map of your site that you publish for language models to read — and if you're shipping one because you heard it makes ChatGPT cite your SaaS, I have to be the one to tell you: probably not, at least not on its own, and not the way people are selling it. We shipped one for ReplyArgus. It's a good idea. It's also the smallest lever in the whole "get found by AI" question, and the loudest one gets the least return.
This is the honest version. What llms.txt actually is and where it came from, whether the big models read it yet (the answer is not what the SEO threads want it to be), and the handful of things that genuinely decide whether an answer engine can find and quote you: the robots.txt allowlist, clean server-rendered HTML, structured data, and content shaped so a model can lift the answer. Here's what we shipped, in order of how much it matters.
So what is an llms.txt file, exactly?
llms.txt is a proposed convention: a single markdown file at the root of your domain (`yoursite.com/llms.txt`) that hands a language model a clean, curated summary of what your product is and where the important pages live. It was proposed in September 2024 by Jeremy Howard of Answer.AI, and the format is deliberately dull: an H1 with your name, a blockquote one-liner, then sections of annotated links. Some sites also ship a longer `/llms-full.txt` with the actual prose inlined.
The reasoning behind it is sound. A model that lands on your marketing page has to wade through navigation, cookie banners, JavaScript-rendered widgets, and ad slots to find the one sentence that says what you do, and it burns a limited context window doing it. llms.txt is the same instinct as a good README: skip the chrome, here's the map, in the plain markdown these models parse most reliably. Ours is short on purpose.
# Reply Argus
> Watches your Apple App Store and Google Play reviews and drafts
> on-brand AI replies in the reviewer's own language. Approve each
> reply, or set rules to auto-publish by rating, keyword, or store.
## What it does
- Monitors App Store + Google Play reviews in one inbox.
- Drafts a reply in the reviewer's language (100+), grounded in
your past approved replies and a knowledge base.
- Approve-by-default; auto-publish is opt-in and rule-based.
## Pricing
- Free — $0, no card. 1 app, manual approval.
- Indie $29 / Pro $79 / Studio $299. 10-day trial on paid.
## Links
- Pricing: https://www.replyargus.com/pricing
- Features: https://www.replyargus.com/features
- Blog: https://www.replyargus.com/blogDoes ChatGPT, Claude, or Perplexity actually read it?
Short answer: as of mid-2026, none of them have publicly confirmed they consume llms.txt at crawl time or at inference. Google has said it doesn't use the file, and its search advocates have compared the idea to the long-dead keywords meta tag, a signal publishers fill in that the engine quietly ignores. Server-log analyses that people keep posting tell the same story: the big AI crawlers request your HTML pages and your sitemap far more than they ever request `/llms.txt`. Real adoption on the publishing side, unconfirmed adoption on the reading side. That's the actual state of it.
So why did we ship one anyway? Because it costs an afternoon, has zero downside, and it's a cheap forward bet. If the standard gets picked up, we're already there; if it doesn't, we've lost a static file. It also doubles as a genuinely useful human artifact: a clean, one-glance description of the product you can point anyone at. What you should not do is treat it as a ranking lever or expect it to change whether an answer engine quotes you. It won't. The things below will.
llms.txt is not robots.txt — they're different jobs
This trips people up constantly. robots.txt controls access: which crawlers may fetch which paths. llms.txt offers a summary to a model that has already been let in. Shipping llms.txt while your robots.txt blocks GPTBot is like leaving a welcome note on a locked door. Get the access layer right first.
What actually gets a SaaS found by AI today
If your goal is to be the thing ChatGPT or Perplexity names when someone asks "what's a good tool for replying to app reviews," the mechanics are less exotic than the llms.txt hype implies. Four things do almost all the work, roughly in order:
- Let the AI crawlers in. If your robots.txt blocks the answer-engine bots, nothing downstream matters — you can't be cited from a page a model was never allowed to fetch. This is the real gate, and most sites get it wrong by accident.
- Ship server-rendered HTML. A model that fetches your page and gets an empty div waiting on JavaScript reads nothing. If your key content only exists after client-side hydration, it's invisible to the crawlers that don't run a full browser. View-source should already contain your answer.
- Structure content for extraction. Answer engines lift spans, not vibes. Lead with the direct answer in the first sentence of a section, then earn the depth underneath it. A wall of preamble before the payoff gets skipped.
- Emit structured data. Schema.org JSON-LD — FAQPage, HowTo, Organization, BreadcrumbList — hands a machine your facts as typed data instead of asking it to infer them from prose. This is the boring, load-bearing part.
The robots.txt allowlist is the real gate
Every answer engine crawls with a named user agent, and if you've ever pasted a generic "block AI bots" snippet into your robots.txt, you may have quietly locked yourself out of citation. The bots that matter right now are `GPTBot`, `OAI-SearchBot`, and `ChatGPT-User` for OpenAI, `ClaudeBot` and `Claude-Web` for Anthropic, `PerplexityBot` for Perplexity, and `Google-Extended` for Google's AI surfaces. Decide deliberately which of those you welcome, and know the tradeoff: some are training crawlers, some are live answer-engine fetchers, and blocking the second kind is what actually costs you visibility.
Our robots.txt names those agents explicitly and welcomes them onto the marketing surface while keeping the signed-in app, auth callbacks, and API routes out of the index. It also points every crawler at the sitemap and declares the canonical host, so there's no ambiguity about which URL is the real one. The signed-in dashboard has nothing a crawler needs; the blog, features, and pricing pages are the whole point. That split, public surface open and product internals closed, is the posture you want.
Write so a model can lift your answer
The single highest-leverage habit isn't a file at all. It's structure. When someone asks Perplexity a question, it's looking for a passage it can quote with attribution. Pages that open with the direct answer, then support it, get lifted. Pages that open with "In today's crowded app market…" get scrolled past by humans and skipped by models for the same reason: the answer is buried.
Then you make the facts machine-readable. Every post on this blog emits JSON-LD: BlogPosting for the article, BreadcrumbList for the trail, and, where a post has a FAQ or a step-by-step, FAQPage and HowTo schema generated straight from the content. That's the difference between a model inferring your Q&A from paragraph soup and reading it as a typed list it can quote verbatim. The FAQ block at the bottom of this post becomes FAQPage structured data on publish, the technique demonstrating itself.
None of this replaces being genuinely the best answer. Schema on a thin page just helps a machine parse a page nobody should cite. The order is: be right and be deep first, then make it easy to fetch, parse, and quote.
We didn't stop at being readable — we made the product callable
llms.txt lets a model read about ReplyArgus. Our [MCP connector](/agentic-tools) lets an agent operate it: pull your unanswered App Store and Google Play reviews, draft grounded replies, cluster complaints by theme, and queue them for approval, all from inside Claude, ChatGPT, or Cursor. Being found is table stakes; being usable by the agent is the actual bet. We walk through the tools it exposes in [the app reviews MCP guide](/blog/app-reviews-mcp).
Ship the AI-discoverability stack for your own SaaS
If you want to do this for your product, here's the order that matters, cheapest and highest-impact first:
- 1
Step 1 — Fix the robots.txt gate
Audit your robots.txt for an accidental block on GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, or Google-Extended. Explicitly allow the answer-engine bots on your public marketing paths, keep app internals disallowed, and point them at your sitemap.
- 2
Step 2 — Confirm your content is in the HTML
View-source (or curl) your key pages. If the main content is missing until JavaScript runs, server-render or statically generate it. A crawler that gets an empty shell indexes an empty shell.
- 3
Step 3 — Restructure for extraction
Put the direct answer in the first sentence of each section. Turn your real customer questions into an on-page FAQ. This helps human skimmers and answer engines with the same edit.
- 4
Step 4 — Add structured data
Emit Organization schema on your homepage, and FAQPage plus HowTo JSON-LD wherever your pages have questions or steps. Validate it, then let it ride.
- 5
Step 5 — Ship llms.txt last
Now the cheap forward bet is worth it. Publish a short, honest /llms.txt with your summary and best links. Treat any lift from it as upside, not the plan.
That sequence is the whole answer to "how do I get my SaaS found by AI," and notice llms.txt is at the bottom, not the top. The loud, novel thing is the least of it. The unglamorous work is what puts you in the citation: letting crawlers in, rendering real HTML, answering the question in the first line, marking up your facts.
It's the same conviction that shaped ReplyArgus. We didn't just want a review tool a search engine could find; we wanted one an agent could run, which is why the review inbox, grounded drafting, and roadmap board all sit behind a connector any assistant can call. If you ship apps and want your reviews answered by a system built this way, you can see how it compares in [the review management roundup](/blog/best-app-review-management-software-2026) or connect a store and watch it draft the first one.
Start free — connect a store and let an agent work your reviews
ReplyArgus is agent-native by design: an MCP connector, clean structured content, and a review loop an assistant can operate end to end. Free plan, no card — [start free](/signup) and ask your agent to draft its first reply in minutes.
Frequently asked
- What is llms.txt and where does it go?
- llms.txt is a markdown file placed at the root of your domain (yoursite.com/llms.txt) that gives language models a clean, curated summary of your site and links to your key pages. It was proposed by Answer.AI's Jeremy Howard in September 2024 as an LLM-friendly counterpart to robots.txt and sitemap.xml.
- Does ChatGPT or Claude actually read llms.txt?
- As of mid-2026, no major provider — OpenAI, Anthropic, Google, or Perplexity — has publicly confirmed it consumes llms.txt at crawl or inference time. Google has said it doesn't use it. Publisher adoption is real; confirmed reader adoption is not. Ship it as a cheap forward bet, not a ranking lever.
- Is llms.txt the same as robots.txt?
- No. robots.txt controls which crawlers may access which paths — the access layer. llms.txt offers a summary to a model that's already been allowed in. They solve different problems, and llms.txt does nothing if your robots.txt is blocking the AI bots in the first place.
- How do I actually get my SaaS cited by AI answer engines?
- Four things, in order: allow the answer-engine crawlers (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended) in robots.txt; serve your content as real HTML, not JavaScript-only; lead each section with the direct answer so a model can lift it; and add Schema.org JSON-LD (FAQPage, HowTo, Organization). llms.txt is a distant fifth.
- Which AI crawlers should I allow in robots.txt?
- The answer-engine fetchers you want citations from: OAI-SearchBot and ChatGPT-User (OpenAI's search/browse), ClaudeBot and Claude-Web (Anthropic), PerplexityBot (Perplexity), and Google-Extended (Google's AI surfaces). GPTBot is a training crawler, so allow it deliberately. Blocking the live answer-engine bots is what actually costs you visibility.
- Does structured data help LLMs, or just Google?
- Both. JSON-LD hands any machine your facts as typed data instead of asking it to infer them from prose, which helps traditional rich results and gives answer engines a clean, quotable source. FAQPage and HowTo schema are especially useful because they map directly to the question-and-answer shape LLMs extract.
Try it
Let Argus draft your next reply.
Watch it answer a real review in your voice. 10-day trial, no card to begin.
Keep reading
4.0 vs 4.5 Stars: What a Half-Star Really Costs You in Installs
The app rating conversion curve is steepest between 3.0 and 4.0, not at the top. Here's what a half-star is actually worth — and why replying defends the exact band that pays.
Read moreReview Bombing on the App Store: How to Detect It and What Each Store Actually Does
How to spot a coordinated 1-star spike, what Apple vs Google will and won't remove, and how to recover your app rating after a review bomb.
Read more