LLM SEO is the work of getting your pages found, read and cited by AI answer engines: ChatGPT, Claude, Perplexity and Google's AI features. People search for it as "ChatGPT SEO", "AI search optimization" or "how to rank in ChatGPT". The goal is the same: when someone asks an AI a question you can answer, your page is one of the sources it uses.
Much of it is ordinary SEO done well. But a few parts are specific to AI, and they're where most sites quietly fail. This guide covers both, in the order that matters.
How AI answer engines find sources
Every major AI company runs more than one crawler, and each has a different job. Knowing which is which is the foundation of LLM SEO, because you'll treat them differently in robots.txt and in your reporting.
| Intent | What it does | OpenAI | Anthropic | Perplexity |
|---|---|---|---|---|
| Training | Collects pages to train or refresh a model | GPTBot | ClaudeBot | None listed |
| Search index | Builds the index the AI searches when it answers | OAI-SearchBot | Claude-SearchBot | PerplexityBot |
| Answer fetch | Reads a page live, because a user's question needs it right now | ChatGPT-User | Claude-User | Perplexity-User |
Google works differently. Its AI features in Search use the same Googlebot index as regular results, and a separate Google-Extended token in robots.txt controls whether your content is used for Gemini models.
Two practical consequences:
- Training is slow and indirect. A page crawled for training today may influence a model months from now, with no link back to you.
- Search index and answer fetches are where citations come from. When ChatGPT, Claude or Perplexity shows a source link, it came from their search index or a live fetch. That's the part you can influence this month.
Step 1: Let the right AI crawlers in
Start with robots.txt at the root of your domain. Many sites block AI crawlers by accident, through a copied rule, a security plugin, or a CDN setting that blocks "AI bots" as a group.
If you want to be cited but would rather not be used for training, a common setup is:
# Allow AI search and live answer fetches
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
# Opt out of model training (optional)
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
Whether to allow training crawlers is a business decision, not an SEO rule. Blocking them doesn't remove you from AI search results, because each company treats its training and search crawlers separately.
Then check your CDN or firewall. A rule that blocks or challenges unknown bots can stop AI crawlers even when robots.txt allows them.
Step 2: Make your pages readable without JavaScript
This is the step most LLM SEO guides skip, and it's the one that fails most often on modern sites.
Most AI crawlers fetch the raw HTML of your page and don't run JavaScript. If your site is a React, Vue or Svelte single-page app, or was built with an AI app builder like Lovable, Replit, Bolt.new or Base44, the HTML is often a nearly empty shell:
<body>
<div id="root"></div>
<script src="/assets/index.js"></script>
</body>
A person sees the full page after the script runs. GPTBot, ClaudeBot and PerplexityBot see an empty div. An AI can't cite a page it can't read, no matter how good the writing is.
Check yours: a free scan fetches your pages the way ChatGPT, Claude, Perplexity and Google do, and shows what each one receives. If the answer is "almost nothing", fix this before anything else in this guide.
Fix it with server-side rendering, static generation, or prerendering (serving bots a rendered copy while people keep the live app). Our page on SEO for client-side apps explains the options without a rebuild.
Step 3: Get indexed in web search first
AI answer engines lean on search. ChatGPT search, Claude's web search, Perplexity and Google's AI features all retrieve candidate pages from a search index before they write an answer. If your page isn't in the index, it isn't in the candidate set.
So the basics still apply: an XML sitemap, clean canonicals, no accidental noindex, real internal links, and pages that are actually indexed in Google and Bing. If pages are stuck, see how to get Google to crawl and index your site and our guide to Crawled and Discovered, currently not indexed.
Step 4: Write answer-first pages
AI answers are assembled from passages. Pages that state a clear answer in a few sentences, near a heading that matches the question, are easier to quote than pages that build up to the point.
Practical patterns that help:
- Use the question as the heading, then answer it in the first one or two sentences. Add detail after.
- Be specific. Prices, limits, dates, version numbers, steps. Vague pages give an AI nothing to cite.
- Use tables for comparisons. "X vs Y" questions are common, and a table is easy to extract.
- Keep facts current, and show when the page was last checked. Answer engines favor sources that look maintained.
- Say who you are. A clear company name, product name and author make it easier to attribute the answer to you.
- Cover the follow-up questions. An FAQ section at the end often matches the second and third prompts in a conversation.
None of this is a trick. It's what makes a page useful to a person scanning it too.
Step 5: Be mentioned where AI already looks
When an AI answers "what's the best tool for X", it often cites pages that compare options: reviews, directories, community threads and comparison articles. Your own site is one source. Being mentioned accurately on others is how you show up in the rest.
- Keep your listings on directories and marketplaces in your category up to date.
- Publish honest comparison pages for the alternatives people actually weigh you against.
- Answer questions in communities where your customers already ask them, as yourself, with useful detail.
- Publish original data or research others will want to reference.
Step 6: Add structure, but don't expect it to do the heavy lifting
Clean metadata and structured data help machines understand a page: a unique <title> and meta description on every page, Open Graph tags, and JSON-LD for things like articles, products, FAQs and organization details.
You may also see advice to add an llms.txt file, a Markdown list of your important pages. It's cheap to add and harmless. But it can't fix pages that crawlers can't read, and it doesn't replace steps 1 to 5.
Step 7: Measure what AI actually does with your site
LLM SEO is hard to measure because there's no ranking report. Two kinds of data fill the gap, and they answer different questions.
Prompt tracking runs a fixed set of prompts through AI products and records whether you're mentioned or cited. It tells you what AI says about you. Tools such as Peec AI do this; see our Peec AI review for how one works.
Request logs record every AI crawler visit to your site. They tell you what AI read. In HadoSEO, that's a five-step funnel per page:
- Crawler reads: every visit from a search or AI crawler.
- Served in full: visits that received the complete page, not a blank shell.
- Answer fetches: live fetches by ChatGPT-User, Claude-User, Perplexity-User and similar, made while answering someone.
- Likely cited: the answer fetches we can attribute to a specific answer. A strong signal, not proof the page appeared in it.
- Visits from AI: people who clicked through from an AI product.
Every visit that claims to be a known crawler is checked against the operator's published IP ranges and reverse DNS. Spoofed bots are flagged, so they don't inflate your numbers. AI visibility tracking puts this next to your Google Search Console data, page by page.
Even without a tool, check your analytics for referrals from chatgpt.com, perplexity.ai and claude.ai. It's a lower bound, but it's real traffic.
How to rank in ChatGPT (and what "rank" means there)
There's no position 1 in ChatGPT. The same question can produce different answers for different people, and a follow-up question changes which sources appear. So "ranking in ChatGPT" really means being in the candidate set often enough to be chosen.
That comes down to the steps above: OAI-SearchBot and ChatGPT-User can reach your pages, the pages arrive as complete HTML, they're indexed in web search, they answer specific questions directly, and other sites mention you. Track it over many prompts and weeks, not one screenshot.
ChatGPT SEO vs Google SEO
Most of the work overlaps: crawlable pages, clear content, good internal links and a reputation beyond your own site. The differences:
- JavaScript matters more. Google can render JavaScript, though slowly. Most AI crawlers don't render it at all.
- Crawler access is split by intent. Google has one main crawler. OpenAI, Anthropic and Perplexity each have separate training, search and answer-fetch crawlers.
- The output is a passage, not a link. A clear, quotable answer near the top of a section matters more.
- Measurement is different. Search Console gives you rankings and clicks. For AI you need prompt tracking, request logs, or both.
A quick LLM SEO checklist
robots.txtallows the AI search and answer-fetch crawlers you want.- No CDN or firewall rule silently blocks AI bots.
- Pages return full HTML without JavaScript (check with a scan).
- Key pages are indexed in Google and Bing.
- Each important page answers a specific question in its first lines.
- Comparison pages and FAQs exist for the questions buyers ask.
- You're listed and described accurately on third-party sites.
- You measure both what AI says and what AI fetches.
Frequently Asked Questions
What is LLM SEO?
LLM SEO is the work of making your pages easy for large language model products, such as ChatGPT, Claude, Perplexity and Google's AI features, to find, read and cite. It overlaps with classic SEO, but adds AI crawler access, pages that are readable without JavaScript, answer-first writing and measurement of AI fetches.
How do I rank in ChatGPT?
There's no fixed ranking in ChatGPT. Answers change with the prompt and the conversation. What you can control: let OAI-SearchBot and ChatGPT-User reach your pages, serve complete HTML without relying on JavaScript, be indexed in web search, publish pages that answer specific questions directly, and be mentioned on other sites that answer engines already trust.
Does blocking GPTBot remove me from ChatGPT search?
OpenAI treats them separately. GPTBot is its training crawler, OAI-SearchBot is used for ChatGPT search, and ChatGPT-User fetches pages when a user's request needs them. You can block GPTBot and still allow OAI-SearchBot and ChatGPT-User.
Do AI crawlers run JavaScript?
Most AI crawlers fetch the raw HTML and don't run JavaScript. If your site builds pages in the browser, as many React apps and AI-built apps do, those crawlers can receive a nearly empty page. Server rendering or prerendering fixes it.
Is llms.txt required for LLM SEO?
No. llms.txt is an optional file that lists your important pages in Markdown. It's cheap to add, but it doesn't help if crawlers can't read the pages themselves. Get crawler access and readable HTML right first.
How do I measure LLM SEO?
Two ways. Prompt tracking tools record what AI answers say about you for a set of prompts. Request logs record which AI crawlers fetched which pages, including live answer fetches, and which AI products sent you visitors. Using both tells you what AI says and whether it could read you.
