AI search platforms · ChatGPT

ChatGPT SEO: How ChatGPT Search Picks and Cites Sources

ChatGPT SEO, in the sense of getting cited, starts with OpenAI's search crawler: ChatGPT search can only cite pages that OAI-SearchBot is allowed to fetch. This guide sets out 6 steps to earn ChatGPT citations, from robots.txt and firewall rules to answer-first passages and referral tracking with utm_source=chatgpt.com, each step checked against OpenAI's documentation on 25 September 2026.

Plain-text file: the 6 steps, the robots.txt group, OpenAI's IP-list URL and the GA4 click path.

Start an AI visibility audit

Opens the audit request form with your website filled in. Bikash replies personally.

Note: "ChatGPT SEO" has two meanings. This page covers the first: getting a website found, quoted and linked by ChatGPT search. Using ChatGPT as a writing or research tool for ordinary SEO work is a different practice and is not covered here.

How does ChatGPT search choose which pages to cite?

ChatGPT search cites pages it retrieves from third-party search providers and partner content, then links them inline and in a Sources panel. OpenAI states ChatGPT sends an initial query, reviews the results, and sends more specific follow-up queries before writing the answer.

ChatGPT search is the feature of OpenAI’s ChatGPT that looks up current information on the web and writes an answer with links to the pages it used. OpenAI does not run a public web index of its own for this in the way Google does. In the words of its help article, ChatGPT search “leverages third-party search providers, as well as content provided directly by our partners.” A third-party search provider is an outside search service that returns a list of results for a query; partner content is material that publishers and data providers supply to OpenAI directly.

  1. Query a search providerChatGPT rewrites the user's question into one or more targeted search queries and sends them to a search partner.
  2. Re-query with more specific termsAfter reviewing the first results, ChatGPT "may send additional, more specific queries to other search providers", in OpenAI's words.
  3. Write the answer and cite itChatGPT writes the response with inline citations and a Sources button that opens a sidebar of references.

ChatGPT sends a query to a search provider, reviews results, sends more specific queries, then writes an answer with inline citations and a Sources panel.

The second stage matters most for site owners. OpenAI’s own example is a researcher asking about drugs that target a specific cancer receptor: ChatGPT first searches a broad phrase, then follows up with a narrower query naming one drug candidate and a conference. A page can therefore be retrieved for a sub-question the user never typed. Pages that answer those narrower follow-up questions directly, with the specific name, number or date in the passage, give ChatGPT something precise to quote.

The third stage decides the credit. A citation in ChatGPT search is a link attached to a claim in the answer, shown inline next to the sentence it supports; hovering over it shows the source. Every page used is also listed when the reader clicks the Sources button under the response. A page that is retrieved but contributes nothing quotable is simply left out of both.

Last checked against OpenAI's documentation: 25 September 2026.

Which OpenAI crawler controls whether ChatGPT can cite a site?

OAI-SearchBot controls ChatGPT search eligibility. A site that blocks it is not shown in ChatGPT search answers, apart from navigational links. GPTBot governs training data and ChatGPT-User handles user-requested visits; neither decides search appearance.

A web crawler is an automated program that fetches pages, and each of OpenAI’s three crawlers identifies itself with its own user-agent token in robots.txt, the plain-text file at the root of a domain that tells crawlers which paths they may fetch. OpenAI documents the three separately, and each setting works independently of the others.

OpenAI's three crawlers and their effect on ChatGPT search (OpenAI documentation, checked 25 September 2026)
CrawlerJobDoes blocking it remove a site from ChatGPT search answers?Follows robots.txt?
OAI-SearchBot"Used to surface websites in search results in ChatGPT's search features"Yes — the site "will not be shown in ChatGPT search answers, though can still appear as navigational links"Yes
GPTBotCrawls content that may be used to train OpenAI's generative AI foundation modelsNoYes
ChatGPT-UserVisits a page when a ChatGPT or Custom GPT user's request calls for itNo — OpenAI says it is "not used to determine whether content may appear in Search"Not reliably — OpenAI says "robots.txt rules may not apply"

Only one of the three rows answers “Yes” in the third column: OAI-SearchBot is the single crawler whose robots.txt setting decides whether a site’s pages can be cited in ChatGPT search. A navigational link is the exception OpenAI carves out — a plain link to a site, for example when a user asks for a brand’s homepage, which can still appear even when the site has opted out. Full rule sets and verification steps: OAI-SearchBot access rules.

The minimum robots.txt group that keeps a site eligible is two lines long:

User-agent: OAI-SearchBot
Allow: /

Get cited in ChatGPT search in 6 steps: allow OAI-SearchBot and its IP ranges, serve content in HTML, stay findable in public web search, answer follow-up queries in separate passages, publish consistent brand facts, and track tagged referrals.

The steps run from the gate to the measurement. Steps 1 to 3 decide whether ChatGPT can reach a page at all; steps 4 and 5 decide whether a reached page is worth quoting; step 6 shows whether the work changed anything. Access is the gate, and content decides selection: no amount of rewriting helps a page OAI-SearchBot cannot fetch, and a fetchable page with no quotable answer is fetched for nothing.

1. Allow OAI-SearchBot in robots.txt and at the firewall

Open yourdomain.com/robots.txt and look for any group that names OAI-SearchBot, and for a User-agent: * group with a broad Disallow. If OAI-SearchBot falls under a blocking rule, add an explicit group for it:

User-agent: OAI-SearchBot
Allow: /

Allow the IP ranges listed at openai.com/searchbot.json in any firewall or bot-management rule. robots.txt is only half of access: many CDNs and security plugins block unfamiliar crawlers by default, and a request refused at the firewall never reaches the robots.txt rules at all. OpenAI publishes the addresses OAI-SearchBot uses so a firewall rule can admit the real crawler while still refusing traffic that only borrows its name.

OpenAI’s documentation states that it takes about 24 hours for its systems to adjust after a robots.txt update, so test the change the day after you make it. To confirm the file itself behaves as intended for every path, check ChatGPT crawler access with the free checker, which parses your robots.txt for OAI-SearchBot, GPTBot, ChatGPT-User and 13 other AI user agents.

2. Serve each page’s main content in the HTML response

OpenAI does not document JavaScript rendering for OAI-SearchBot. Its crawler page covers user agents, robots.txt and IP ranges, and says nothing about whether the bot executes scripts before reading a page. The safe assumption is the one that holds for every crawler: text that exists only after JavaScript runs may not be seen.

Check the raw HTML of each important page — “view source” in a browser, or curl from a terminal — rather than the rendered page. The headings, the answer paragraphs, prices, product names and contact facts should all be present in that first response. Server-side rendering or static generation covers this for JavaScript frameworks; tabs, accordions and “read more” panels are fine as long as their text is in the HTML and only hidden by CSS.

Because ChatGPT search retrieves from third-party search providers, a page that ordinary web search cannot find gives ChatGPT nothing to retrieve. OpenAI does not name those providers in its help article, so the practical rule is to be discoverable in public web search generally, not to optimize for one engine.

That means the standard indexability checks: no noindex tag on pages you want cited, an HTTP 200 status, a canonical tag pointing to the page itself, an XML sitemap listing every page that matters, and internal links that reach each of those pages within a few clicks of the homepage. A new page with no internal links and no sitemap entry can take much longer to appear in any search index, and so in any ChatGPT answer.

4. Answer each likely follow-up query in its own passage

ChatGPT search sends narrower follow-up queries after its first search, so each page should hold separate, self-contained answers to the narrower questions a topic raises. Give each question its own heading, and open the section under it with the answer: the subject named in full, the fact stated, the number or date included, in 40 to 60 words.

The same fact written two ways for a question ChatGPT might send as a follow-up query
VersionPassage under "How long does OpenAI take to apply a robots.txt change?"
BeforeCrawler settings are something a lot of site owners wonder about, and the answer depends on a few factors. As we'll see, it isn't instant, and you'll want to be patient while things update behind the scenes.
AfterOpenAI applies a robots.txt change in about 24 hours. Its crawler documentation states that it can take roughly a day from a site's robots.txt update for OpenAI's systems to adjust, so test OAI-SearchBot access the following day.

The “after” passage can be lifted on its own: it names the company, the file and the time, and needs no surrounding paragraph to make sense. The “before” passage contains no fact at all, so there is nothing in it for an answer to cite. Apply the same test to every section of a key page: if a reader saw only the first two sentences under the heading, would they have the answer?

5. Publish consistent brand facts on and off the site

ChatGPT builds answers about a business from every page it retrieves, not only the business’s own site, so contradictions between sources weaken the answer or push it towards a competitor described more clearly. Four facts carry most of the weight and should read the same everywhere:

  • Name: the exact brand name, spelled and punctuated one way.
  • Category: the plain description of what the business is, in the words buyers use.
  • Location: the city and country served, or “worldwide” if that is true.
  • Founder: the person behind the business, with a linked profile.

State these on the homepage and About page, then repeat them unchanged on social profiles, directory listings, author bios and partner pages. Where third-party sites describe the business, correct outdated details at the source; a page ChatGPT retrieves from someone else’s site is as likely to be quoted as your own.

6. Tag, track and re-test ChatGPT referrals

ChatGPT adds utm_source=chatgpt.com to the links it sends, according to OpenAI’s Publishers and Developers FAQ. A UTM parameter is a tag appended to a URL that analytics tools read to label where a visit came from, so every click from a ChatGPT answer arrives already marked. The GA4 click path is in the next section.

Referral data shows clicks, not citations, so pair it with a fixed prompt set: 20 to 50 questions your buyers ask, run in ChatGPT search on a regular schedule, with the cited pages logged each time. Change one thing at a time — the robots.txt rule, a rewritten passage, a corrected profile — and re-run the same prompts afterwards. Answers vary from one run to the next, so compare several runs rather than a single screenshot.

How do you see ChatGPT referral traffic in GA4?

ChatGPT referral traffic appears in GA4 under the session source chatgpt.com. ChatGPT adds utm_source=chatgpt.com to the links it sends, so a Traffic acquisition report filtered to that source shows sessions, engagement and conversions from ChatGPT answers.

GA4, Google Analytics 4, reads the utm_source value on each landing URL and stores it in the Session source dimension, the field that names where a session started. Four clicks isolate ChatGPT:

  1. Open Reports › Acquisition › Traffic acquisitionThis report lists sessions by where they came from.
  2. Change the primary dimension to Session sourceUse the dropdown above the first table column.
  3. Search the table for chatgpt.comThe row shows sessions, engaged sessions, key events and revenue from ChatGPT links.
  4. Add a comparison for Session source exactly matches chatgpt.comKeep it applied to track ChatGPT sessions against all traffic over time.

Add Landing page as a secondary dimension to see which pages ChatGPT sends visitors to; those are the pages it cites and users choose to open. Two limits apply. Visitors who copy a URL out of an answer instead of clicking arrive without the tag and show up as direct traffic. And the report counts visits, not appearances: a page cited in many answers that few people click will look quiet in GA4.

No. Blocking GPTBot stops OpenAI's training crawler only. ChatGPT search eligibility depends on OAI-SearchBot, and OpenAI treats each crawler setting independently, so a site can refuse training use and still appear in ChatGPT search answers.

This is the most common crawler mistake in ChatGPT SEO. A site owner who wants to keep content out of model training adds User-agent: GPTBot with Disallow: / — which is exactly what that token is for — and leaves OAI-SearchBot alone. The site stays eligible for ChatGPT search. The opposite choice works too: a site can allow GPTBot and block OAI-SearchBot. The error to avoid is a blanket User-agent: * disallow added “to block AI”, which removes OAI-SearchBot along with everything else.

Does ChatGPT read llms.txt files?

OpenAI does not list llms.txt among the signals for ChatGPT search. Its crawler documentation covers robots.txt rules and IP ranges only. llms.txt is a community proposal from llmstxt.org, and Grow AI Search's planned Exp 03 logs whether AI crawlers request it.

llms.txt is a proposed Markdown file at the root of a site that lists its most useful pages for language models, put forward by Jeremy Howard of Answer.AI in September 2024. OpenAI’s own developer documentation site links to an llms.txt index of its pages, but the crawler page says nothing about OAI-SearchBot reading such files on other sites or about llms.txt affecting which pages ChatGPT cites. Publishing one does no harm; it does not replace any of the 6 steps above.

OpenAI documents access and tagging. What it does not document is how much each content change moves citations — which is what testing is for.

What is Bikash Roy testing about ChatGPT citations?

Bikash Roy is running one ChatGPT experiment and has two more planned. Exp 01 tracks whether a new domain earns citations within 90 days; Exp 02 tests statistics and quotations; Exp 06 tests whether Reddit discussion changes ChatGPT recommendations.

  • RunningExp 01

    Can a brand-new domain get cited by AI engines in 90 days?

    Started on launch day with zero backlinks. 50 fixed prompts checked weekly on 6 engines, ChatGPT search among them.

    Status: running since launch day · Ends: day 90

  • PlannedExp 02

    Do statistics and quotations raise citation rate?

    Replicates the 2023 GEO paper's top tactics on 20 live pages, with 20 unchanged control pages.

    Status: planned · Engines: ChatGPT, Perplexity · Duration: 8 weeks

  • PlannedExp 06

    Do Reddit mentions change ChatGPT recommendations?

    Tracks recommendation prompts before and after a brand is discussed in relevant threads. Observes organic discussion only.

    Status: planned · Engines: ChatGPT, Perplexity · Duration: 12 weeks

None of these experiments has a result yet, so this page claims none. Each one fixes its prompts, engines and dates before it starts, and the full list with hypotheses and methods is on the GEO experiments page.

Get an audit of ChatGPT citations

Send your domain and the questions buyers ask before choosing you. The audit of ChatGPT citations tests OAI-SearchBot access at robots.txt and firewall level, runs your prompts in ChatGPT search and 5 other engines, and ranks every fix by impact. Bikash reads every request personally.

Frequently asked questions

Does ChatGPT search use Bing?

OpenAI's help article names "third-party search providers" without listing them. Bing is widely reported as one of those providers, but neither OpenAI's help article nor its crawler documentation names Bing, so this guide treats the provider list as unconfirmed and does not build steps around any single search engine.

Does submitting a site to Bing Webmaster Tools help ChatGPT citations?

OpenAI does not state that it reads Bing Webmaster Tools data. Bing Webmaster Tools reports citations in Microsoft Copilot and Bing's AI summaries through its AI Performance report, public preview since 10 February 2026. It is worth using for Microsoft's engines, not as a ChatGPT control.

How long does ChatGPT take to reflect a robots.txt change?

About 24 hours, according to OpenAI's crawler documentation. OpenAI states that its systems take roughly a day to adjust after a site updates its robots.txt file, so re-test ChatGPT search access the following day.

Related guides

  • Free AI crawler checker

    Test your robots.txt against OAI-SearchBot, GPTBot, ChatGPT-User and 13 other AI user agents.

  • AI visibility audit

    A 6-step review of how ChatGPT and 5 other engines cite your brand, ending in a ranked fix plan.

Sources

  1. OpenAI — Overview of OpenAI crawlers (checked 25 September 2026)
  2. OpenAI — Published OAI-SearchBot IP ranges (searchbot.json)
  3. OpenAI Help Center — Searching the web with ChatGPT (checked 25 September 2026)
  4. OpenAI Help Center — Publishers and Developers FAQ (checked 25 September 2026)
  5. Bing Webmaster Blog — Introducing AI Performance in Bing Webmaster Tools (10 February 2026)
  6. llms.txt proposal — llmstxt.org