SEO

ChatGPT SEO: How ChatGPT Picks Sources and How to Get Cited

Rafal ChojnackiBy Rafal Chojnacki19 min

In ChatGPT Search, a cited link is the visible result of several steps. ChatGPT may decide that a question would benefit from the web, rewrite the request into one or more queries for search providers, review results and answer with links. Site owners can control access and improve the clarity of their pages, but they cannot require a citation. OpenAI documents crawler roles, query rewriting and opt-outs, while saying only that ranking uses factors intended to surface reliable, relevant information; it does not publish their weights.

ChatGPT SEO: How ChatGPT Picks Sources and How to Get Cited

TL;DR

  • Searching is a decision, not a default. OpenAI states ChatGPT will automatically search the web if the question might benefit from information on the web, and users can also trigger it manually.
  • The query you optimize for is not the one the user typed. OpenAI states ChatGPT search typically rewrites the query into one or more targeted queries sent to its search providers.
  • Four OpenAI agents do four jobs. GPTBot crawls for training, OAI-SearchBot surfaces sites in ChatGPT search, ChatGPT-User fetches pages when a user asks, OAI-AdsBot checks ad landing pages.
  • Blocking them is not one decision. Sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers; disallowing GPTBot only signals no training use.
  • robots.txt does not reliably stop a user-initiated fetch. OpenAI states that because ChatGPT-User actions are initiated by a user, robots.txt rules may not apply.
  • Selection weights are not published. OpenAI says ranking considers factors intended to surface reliable, relevant information, but does not publish the weighting or a guaranteed recipe for citation.
  • The controllable content layer is clarity and evidence. Important definitions, comparisons and answers should remain accurate when excerpted, while the article as a whole should still read naturally for a person.
  • One prompt check is not a measurement. OpenAI gives owners no citation report, so visibility is sampled and cross-read against server logs.

When ChatGPT answers from the model and when it goes to the web

The first branch decides whether your site is involved at all. OpenAI's help documentation describes both paths: ChatGPT may determine that current information from the web would improve the response and search automatically, and the user can also choose to search by clicking the web search icon or typing / and selecting Search.

Some questions are answered without visible web search or citations. In that situation a page-level change cannot force the current response to refresh. Crawl controls still matter for their documented purposes — search eligibility and signalling a training preference — but they are not a button for updating a particular answer.

This is why the crawler decisions below are not interchangeable. OpenAI gives site owners separate controls for potential training use and ChatGPT search. A site can allow OAI-SearchBot while disallowing GPTBot, or configure the opposite policy, although allowing the training crawler does not mean that every page will be used in training.

Chain from a user question in ChatGPT to a cited source: decide whether to search, rewrite into queries, retrieve results, quote a passage.

The same split shows up in OpenAI's developer documentation for the web search tool, which states that the model can choose to search the web or not based on the content of the input prompt, and that a developer can require the search instead. Searching is a tool call the system decides to make, not a permanent property of the assistant.

Brand questions land in either bucket depending on how they are phrased, which is why the accuracy of what the model already believes about a brand matters as much as retrieval does. That second problem is entity work, covered in our guide to LLM SEO.

How your question becomes a query you never wrote

When ChatGPT does search, it does not hand the user's sentence to a search provider. OpenAI states that ChatGPT search sometimes partners with other search providers, and that when it does, it typically rewrites the query into one or more targeted queries that it sends those providers. In plainer terms: ChatGPT turns the request into one or more search queries, retrieves results, and uses them to generate an answer with links to sources.

Two practical conclusions follow. Optimizing a page for a prompt string is a category error: the prompt is an input to a rewriting step, not a query that hits an index. What survives the rewrite is plain vocabulary — the entity, the category, the constraint, the unit, the location, the year.

A useful page should be understandable through several ways buyers phrase the same need, because one complex request may produce several targeted queries. Descriptive headings and focused sections make relevant information easier to find, but they should support the argument rather than reduce every article to a list of isolated answers.

OpenAI currently links to privacy information for Bing and Shopify when explaining third-party search providers, but that does not make either provider the complete or permanent retrieval architecture for every ChatGPT experience. Build around accessible, useful pages rather than assumptions about a single underlying index.

Short glossary

  • Grounding — supplying a model with retrieved content at answer time, so the response reflects sources rather than only model parameters.
  • Query rewriting — converting a user's request into one or more search queries of the assistant's own wording.
  • Passage — the fragment an assistant quotes or paraphrases: a paragraph, table row or list item.
  • Product token — the name a crawler operator publishes for robots.txt, such as OAI-SearchBot, which may differ from the user-agent string in logs.
  • User-initiated fetch — a request made because a person asked the assistant to look at a page, not because a crawler scheduled it.
  • Nondeterminism — the same prompt can produce different answers on different runs, so one observation is not a measurement.

Four OpenAI agents, four different consequences

This is the part of ChatGPT SEO that is fully documented, and the part most often decided by accident. OpenAI publishes four agents with four separate purposes.

Agent What OpenAI says it is for Respects robots.txt What disallowing it means
GPTBot Crawling content that may be used in training OpenAI's generative AI foundation models Yes Signals that the content should not be used for training; does not remove the site from ChatGPT search
OAI-SearchBot Surfacing websites in search results in ChatGPT's search features Yes OpenAI states opted-out sites will not be shown in search answers, although a navigational link may still appear
ChatGPT-User User-initiated actions in ChatGPT and custom GPTs, when a person asks about something OpenAI states robots.txt rules may not apply Unreliable as a block, because the fetch is triggered by a person
OAI-AdsBot Validating the safety of web pages submitted as ads on ChatGPT Yes Affects review of ad landing pages, not organic visibility

Read the first two rows together and the configuration risk becomes obvious. A blanket rule against unfamiliar bots, or a CDN profile that treats all AI agents as one category, can remove the search agent along with the training crawler. The business may lose search eligibility even though it only intended to express a training preference.

The asymmetry in the third row matters as much. If someone pastes your URL into ChatGPT, the fetch happens on behalf of that person, and OpenAI's documentation says robots.txt rules may not apply. A page that must not be readable by an assistant needs authentication or removal, not a crawl directive.

OpenAI's publisher guidance describes an additional Atlas case: even when a page is disallowed, Atlas may surface a title-only link if the URL is known and appears relevant. Owners who do not want that link can use noindex, but the crawler must be allowed to access the page to read the tag. This is a product-specific control that should be checked against the current documentation, not treated as a universal privacy mechanism.

Four OpenAI agents side by side: GPTBot for training, OAI-SearchBot for ChatGPT search, ChatGPT-User for user-initiated fetches, OAI-AdsBot for ad landing pages.
Goal What to set Side effect to accept
Stay eligible for ChatGPT search, signal that content should not be used for training Allow OAI-SearchBot, disallow GPTBot Search eligibility remains, but a citation is not guaranteed
Keep content out of ChatGPT search summaries and snippets Disallow OAI-SearchBot; review OpenAI's current noindex guidance for links in Atlas A title-only or navigational link may still appear in documented cases unless the crawler can read noindex
Stop a page being read when a user pastes its URL Authentication, paywall or removal robots.txt alone is not a reliable control here
Run ads on ChatGPT Allow OAI-AdsBot on landing pages Landing pages are reviewed; see our guide to ChatGPT Ads

OpenAI publishes IP ranges for each agent as JSON files on its own domain — searchbot.json, gptbot.json, chatgpt-user.json, adsbot.json. Use them: a user-agent string is trivially spoofed, so counting hits by name alone counts bots that are not OpenAI's. Verified logs also answer a better question than the total — whether the search agent reaches the pages you care about, or only the homepage.

What decides which passage gets quoted

OpenAI does not publish the weighting or a schema property that guarantees a citation. Its help article says ranking uses factors designed to help users find reliable, relevant information, while the search documentation explains query rewriting and third-party providers. That supports sound fundamentals, but not a proprietary “ChatGPT ranking formula”.

What can be improved without pretending to know the ranking system is the quality of the source page. Query rewriting means the page should use precise vocabulary around the entity, need and constraint rather than repeat one prompt verbatim. Search results and generated answers may excerpt or paraphrase a small part of a page, so key answer blocks should not depend entirely on a pronoun or unexplained reference several paragraphs earlier.

The practical rule is: make the important answer complete at the point where the reader needs it. A definition, price condition, eligibility rule or comparison conclusion should name its subject and include the qualification that changes its meaning. Transitional and narrative paragraphs can still do their normal job.

A long article is not a problem by itself. The problem is making a user read several screens before receiving the definition, recommendation or limitation promised by the heading. Use a direct answer first where intent calls for one, then add reasoning, examples and nuance. This serves scanning readers and creates passages that can be understood when surfaced outside the full article.

Depends on the page around it Survives being quoted alone
"It usually takes about two weeks." "The audit timeline depends on the number of templates, markets and data sources, and starts after the required access is available."
"As described above, the second method is safer." "Server-side tagging is the safer method because the tag configuration is not exposed in the browser."
"We support all major integrations." "The platform integrates with BaseLinker, Shopify, WooCommerce and custom ERP systems through a REST API."

In each rewrite the subject came back into the sentence, the qualifier came with it, and the claim became checkable. None of that is a trick aimed at a model. It is the edit you would make if a journalist were going to quote one line of the page.

Preparing a page to be quoted out of context

The checklist below is what we apply to pages that are meant to be answer material. It is deliberately boring, and it is the part of AI SEO work that survives changes in provider behaviour, because it is about the document rather than about a specific assistant.

  • Name the subject early in sections that may be read independently — the product, service or standard, not only "the tool".
  • Define each term once, where it is first used, in a sentence that works as a standalone definition.
  • Use headings that reveal the section's answer intent. A buyer's question such as "How long does a migration take?" is often more useful than a generic label such as "Timelines", but not every heading needs to be a question.
  • Carry the qualifier inside the claim: market, currency, plan, version, date. A number without its scope is unusable.
  • Put dates and authorship where they can be read: named author with a role, published date, updated date.
  • Link the primary source next to any claim that can change — provider documentation, the standard, the regulation.
  • Give tables unambiguous column headers; a quoted table has to explain itself.
  • Drop cross-references as load-bearing text. "As mentioned above" is a broken link once the paragraph is lifted.

None of this needs a separate AI-only version of the page. It is the same content, edited so any single block can leave home safely.

Why one prompt check is not a measurement

Two people running the same question through ChatGPT can get different answers, and so can the same person twice. Part of that variance is specific to this chain. Whether a search fires at all differs between runs, because that is a per-request decision. If it fires, the rewritten queries can differ, so the candidate set differs. Provider results change over time. Account context, memory, region and language shift the answer further, and model versions change under the same product name.

So a screenshot proves a citation was possible on one run. It does not establish presence, and it does not establish a position. Anyone reporting "we rank first in ChatGPT" is reporting one sample of a stochastic process.

A second constraint is specific to OpenAI: there is no owner-facing citation report. Google exposes generative AI impressions in Search Console, and Microsoft exposes citations and grounding queries in Bing Webmaster Tools — for the Google side, see our guide to Google AI Mode. For ChatGPT the equivalent data does not exist, so measurement is assembled from three imperfect sources:

Source What it tells you What it cannot tell you
A fixed prompt set, repeated Share of runs where the brand or URL appears, and whether the description is accurate Volume, or why a run differed
Verified OAI-SearchBot and ChatGPT-User requests in server logs Which pages the search agent reaches, and whether users paste your URLs Whether a fetch became a citation
Referral sessions from ChatGPT in analytics Traffic that arrived from a cited link Answers where the brand was named but not clicked

Record conditions with every observation: date, country, language, account state, exact prompt, whether search visibly fired, which links appeared. Report a share of runs, and do not call it share of search unless the sampling method supports that word.

A passage that survives being quoted alone: subject named, question answered, qualifier and date included, source linked.

How Space Ads approaches this

Space Ads starts a ChatGPT visibility review with access because this layer can be tested directly. We compare robots.txt, CDN or WAF bot rules and verified server requests, then document which OpenAI agents can reach the URL groups in scope. This separates a deliberate policy from an accidental infrastructure block before anyone rewrites content to solve an access problem.

Then we review commercially important pages as both complete journeys and potential excerpts. Definitions, conditions, evidence and dates are placed beside the claims they qualify, while the surrounding argument remains natural. Measurement uses a defined prompt sample with conditions recorded for each run, verified bot requests and referral traffic. These are reported as separate evidence layers because a crawl is not a citation, a citation is not a click, and a sampled prompt is not market-wide demand.

A practical implementation order

Phase 1 — access and baseline.

  1. Pull the four agent IP range files and check server logs for verified hits, per agent, per URL group.
  2. Read robots.txt and the CDN or WAF bot rules together, and write down what they decide for each agent.
  3. Set the policy deliberately: training and search eligibility are separate, and noindex needs the crawl allowed.
  4. Fix self-cancelling combinations — blocked agent plus noindex, or a blanket rule catching OAI-SearchBot.
  5. Write the baseline prompt set: the questions that precede a purchase or an enquiry, phrased as buyers phrase them.

Phase 2 — pages and measurement.

  1. Pick the answer-material pages: category explainers, comparisons, pricing logic, scope, eligibility, constraints.
  2. Edit each against the excerpt-readiness checklist, prioritising definitions, conclusions, conditions and evidence.
  3. Add missing qualifiers and dates, and link the primary source next to anything that can change.
  4. Run the prompt set several times per prompt, logging conditions and links, and keep the raw log.
  5. Set a review cadence based on commercial importance and rate of change; recheck agent policy after infrastructure or documentation changes.

Common mistakes

Mistake What to do instead
Treating all AI crawlers as one robots.txt decision Set training and search separately: GPTBot and OAI-SearchBot do different jobs
Blocking an agent and adding noindex Allow the crawl so the tag can be read, or accept that it is never seen
Assuming robots.txt keeps a page out of answers User-initiated fetches may ignore it; use authentication when it must be private
Writing pages for prompt strings Cover the entity, category, constraint, unit and date in language buyers naturally use
Hiding the answer inside a long narrative Give a direct answer where the intent calls for one, then support it with reasoning and evidence
Reading one ChatGPT answer as a ranking Sample a fixed prompt set repeatedly and report a share of runs
Counting bot hits by user-agent name Verify against the published IP ranges first; the name is trivially spoofed
Publishing an AI-only duplicate of a page Edit the real page; a parallel version splits signals and adds maintenance debt

FAQ

What is ChatGPT SEO?

ChatGPT SEO is a practical label for making a website eligible and useful in ChatGPT Search: allowing the relevant crawler, publishing reliable pages that can answer rewritten queries, and keeping important claims accurate when excerpted. OpenAI says ChatGPT Search ranking uses factors designed to find reliable, relevant information, but it does not publish the weighting and no implementation can guarantee placement or citation.

How do you rank in ChatGPT?

There is no stable position comparable with a conventional keyword ranking. OpenAI says ChatGPT Search uses multiple factors intended to surface reliable, relevant information and does not guarantee top placement. Results are generated per request and may change with query rewriting, location, memory, available sources and product updates. Control the fundamentals: allow OAI-SearchBot when search visibility is wanted, publish accurate and accessible pages, and make important answers easy to understand and verify.

OpenAI states that any public website can appear in ChatGPT search, and that owners should check they are not blocking OAI-SearchBot in robots.txt and that their host or CDN allows traffic from OpenAI's published IP ranges. Appearing is an access decision first and a content decision second; neither guarantees a citation.

Does blocking GPTBot remove a site from ChatGPT answers?

No. OpenAI's crawler documentation states that disallowing GPTBot indicates content should not be used to train foundation models, while OAI-SearchBot is the agent tied to ChatGPT's search features. The settings are independent, so a site can block training and stay citable in ChatGPT search.

Can robots.txt stop ChatGPT from reading a page a user pastes?

Not reliably. OpenAI documents ChatGPT-User as the agent for user-initiated actions and states that because these actions are initiated by a user, robots.txt rules may not apply. Content that must not be readable by an assistant needs authentication, a paywall or removal.

Does ChatGPT search the web for every question?

No. OpenAI states that ChatGPT will automatically search the web if the question might benefit from information on the web, and that users can also trigger a search manually. Questions answered from the model alone never touch your site, which is why an accurate public brand description matters independently of retrieval.

How is ChatGPT visibility measured?

Because OpenAI provides no citation report for site owners, measurement combines three imperfect sources: a fixed prompt set run repeatedly with its conditions logged, server logs of verified OAI-SearchBot and ChatGPT-User requests, and referral sessions from ChatGPT in analytics. The output is a share of runs over time, not a position.

Sources and further reading

State as of July 2026 — providers rename their agents and change their rules. Check the current documentation before writing a robots.txt policy.

In short

  • A citation in ChatGPT ends a chain: decide whether to search, rewrite into queries, retrieve and support the answer with links.
  • Training preference and search access are separate controls: GPTBot for potential training use, OAI-SearchBot for ChatGPT search.
  • User-initiated fetches may not respect robots.txt, so crawl directives are not a privacy control.
  • Selection weights are not documented; the controllable content layer is accessible, relevant, well-supported information.
  • Because answers may excerpt or paraphrase a small block, definitions, conclusions and conditions should make sense at the point where they appear.
  • OpenAI offers no citation report, so visibility comes from a repeated prompt set, verified logs and referral data.

Continue learning

Continue reading

Success Stories

The same operating standard, across different models