Guide

How to get cited by ChatGPT

What has to be true before ChatGPT will name your company, in the order it has to be true.

Getting cited by ChatGPT requires four things in order: the search agent must be able to fetch your page, the page must contain a self-contained answer, your company must resolve as an identifiable entity, and other sources must corroborate you.

Most advice on this topic starts with content. That is the third thing that matters, not the first. If ChatGPT’s search agent cannot open your page, nothing you write on it will ever be quoted — and a blocked agent is far more common than a badly written page.

how a citation happensFetchthe search agent opensthe pageParseit finds aself-contained claimResolveit works out whopublished itCiteit names you in theanswerHOW A CITATION HAPPENS
Four steps, strictly in order. A failure at step one cannot be compensated for at step three.

Which ChatGPT crawler actually matters?

OpenAI operates several named agents and they do different jobs. Treating them as one thing is the single most common mistake in this area.

AgentWhat it doesBlocking it costs you
OAI-SearchBotBuilds the index ChatGPT search draws onYour pages are not in the pool ChatGPT can cite — expensive
ChatGPT-UserFetches a page when a user or a tool asks ChatGPT to open itA user who pastes your URL gets nothing back — expensive
GPTBotCollects content that may be used for model trainingLong-term familiarity only — a defensible choice

The distinction matters because the reasoning that leads a company to block training crawlers — not wanting its content absorbed into a model — does not apply to the search agents at all. Blocking OAI-SearchBot does not protect your content. It removes you from the answers while leaving everything else unchanged.

Many sites block all three because a single rule was written during an “AI scraping” conversation, with no distinction drawn. If that is your situation, you are not defending anything. You are simply absent.

How do I check whether ChatGPT can reach my site?

Not from a browser. The block, when there is one, is applied by user agent, and your browser is not the user agent in question. Request your own page while identifying as each agent:

curl -s -o /dev/null -w "%{http_code}\n" \
  -A "OAI-SearchBot/1.0; +https://openai.com/searchbot" \
  https://yourdomain.com/your-key-page

Repeat for ChatGPT-User. A 200 is a pass. A 403 or 429 means you are being refused, and the refusal is usually not in your robots.txt at all.

The trap nobody finds in their own repository. Managed bot rules at the CDN — Cloudflare, Fastly, or whatever sits in front of your origin — can block AI agents independently of your robots.txt, and some are enabled by default. The file says allow, the edge says deny, and nothing in your codebase reveals the conflict. Check the bot-management settings directly.

What makes a page quotable rather than just readable?

Assume the agent reaches the page. It now has to lift something out of it. What it is looking for is a short statement that survives being removed from its surroundings.

The test to apply to your own writing: take one sentence out of the page and read it alone, with no heading above it and no paragraph around it. If it still makes a complete, checkable claim, it is quotable. If it depends on the three sentences before it, it is not.

QuotableNot quotable
“A Foundation Sprint takes two weeks and covers crawler access, schema and the top five pages.”“Our process is designed around your needs and typically runs over a short engagement window.”
“Blocking OAI-SearchBot removes a site from the pool ChatGPT can cite.”“This can have significant implications for your visibility.”
“Google-Extended does not affect Google Search crawling or AI Overviews eligibility.”“There is some nuance here worth understanding.”

Notice what separates the columns. The quotable sentences contain a subject, a specific claim and something checkable. The others are hedged, contain no nouns worth indexing, and would embarrass an assistant that repeated them.

How should I structure a page for extraction?

  1. Make the heading the literal question. Not “Our approach to onboarding” but “How long does onboarding take?”. The heading is the retrieval target; the paragraph under it is the answer.
  2. Answer in the first forty words. Directly under the heading, before any context or qualification. The build-up can follow. It cannot precede.
  3. Use one question per section. Two questions answered in a single block means neither can be cleanly extracted.
  4. Replace comparative prose with a table. Tables are lifted far more readily than paragraphs describing a comparison, and they survive extraction with their structure intact.
  5. Attribute every number inline. A figure with a named source and a date is quotable. The same figure with “studies show” in front of it is not, because citing it would mean asserting something unsupported.
  6. Cut the hedging. “Can help to potentially improve” gives a model nothing to assert on your behalf.

Why does ChatGPT use my content but name someone else?

This is an entity problem, and it is the most frustrating of the four failures because everything looks fine from the outside. The agent fetched your page, found the answer, used it — and attributed it to a company it could identify more confidently.

Resolution depends on your identity being unambiguous and consistent. In practice that means:

  • Organization schema with a stable @id, identical on every page, not regenerated per template.
  • A real Person node for whoever is named as author or founder, with sameAs links that actually resolve. A dead profile link is worse than none.
  • One description, everywhere. The sentence in your schema, your llms.txt, your footer and your third-party profiles should be the same sentence. Models quote these strings close to verbatim.
  • Explicit disambiguation if your name collides with anything — another company, a generic term, a product. disambiguatingDescription exists precisely for this.

A useful diagnostic: ask ChatGPT what your company does. If the description that comes back is wrong, read your own structured data before blaming the model. It is usually repeating you.

How much does being mentioned elsewhere matter?

A great deal, and this is the slowest part of the work. Assistants lean on sources they already treat as reliable for a category — roundups, comparison articles, directories, trade publications. Being named in those places does two things at once: it gives the model corroboration, and it puts you inside documents the model retrieves even when it never reaches your own site.

This is outreach, not on-page work. It cannot be automated, it takes months, and it is the reason a competitor with a weaker product sometimes owns the answer. It is also the part that is hardest for anyone to copy from you later.

How do I know whether any of this worked?

Carefully, because the obvious method is misleading. Assistant output is non-deterministic: ask the same question twice and the cited sources can differ. A single check is a screenshot, not a measurement.

  1. Write down ten to twenty questions your buyer would actually ask. Not your company name — the category question.
  2. Freeze that list. Do not edit it when results are inconvenient.
  3. Run every question at least three times, logged out, with the market pinned.
  4. Record how often you appear, not whether you appeared. Appearing in one run out of three is a real and different result from three out of three.
  5. Re-run on the same protocol after changes. Compare spreads, not single readings.

Referral traffic is a weak second signal, because a large share of assistant traffic arrives with no usable referrer. The GA4 method, and its limits →

What are the most common reasons a company is absent?

Across the sites we check, the same failures recur, and they are not evenly distributed. Ranked by how often they turn out to be the actual cause:

  1. A search agent refused at the edge. The robots.txt is permissive, the CDN is not, and nobody involved knows the rule exists.
  2. Nothing on the page is liftable. The company has plenty of content, all of it written to build a narrative, none of it containing a sentence that survives extraction.
  3. Answers buried below the fold of the section. The page does answer the question, four paragraphs after the heading, behind context nobody asked for.
  4. Content that only exists after hydration. The answer is rendered by JavaScript, the raw HTML contains a shell, and what the agent fetched was empty.
  5. An entity the model cannot resolve. Three different descriptions of the company in three places, a founder with no schema, and a name that collides with something else.
  6. No corroboration anywhere. Everything the model knows comes from the company’s own site, which is the weakest possible basis for naming it.

Only the last two are slow to fix. The first four are a week of work between them, and they account for the majority of cases.

What does this look like when it goes right?

Concretely: a prospect asks ChatGPT which vendors solve the problem your product solves. The search agent retrieves a handful of pages — some yours, some third-party comparisons that mention you. It finds a sentence on your pricing page that states plainly what you charge and what is included. It resolves your company against a schema identity it has seen consistently elsewhere. It names you, links you, and the prospect arrives already knowing your price.

That last part is worth sitting with. A visitor who arrives from an assistant has usually had their question answered before they clicked, which is why assistant traffic tends to behave differently from search traffic on arrival. They are further along, and they came because something you published was specific enough to be worth repeating.

What should I do first?

In this order, because each step is cheap and each one unblocks the next:

  1. Check crawler access for OAI-SearchBot and ChatGPT-User, at the CDN as well as in robots.txt. An afternoon at most, and it is binary.
  2. Pick your three highest-intent pages and rewrite the headings as buyer questions with a direct answer underneath.
  3. Fix the Organization schema so the description is the sentence you would want quoted.
  4. Ask ChatGPT your buyer’s category question and write down who it names. Those are the pages you are competing with for the citation.

None of that requires hiring anyone, and it closes the two failures that account for most absences.

FAQ

Related questions

Access fixes apply as soon as they ship — unblocking a search agent works the same day. Being named in answers takes longer, typically eight to twelve weeks, because the index has to re-encounter your pages and the corroboration that supports attribution builds slowly.

No. GPTBot collects content that may be used for training. ChatGPT search draws on the index built by OAI-SearchBot, and live page fetches come from ChatGPT-User. Blocking GPTBot alone does not remove you from search answers; blocking the other two does.

There is no submission form. The route in is being crawlable by the named search agents and being present in the sources those agents retrieve. Getting named in third-party pages models already trust does more than anything you can do on your own domain.

Usually one of three things: the search agent is blocked, your pages contain no self-contained statement about what you do, or your identity is ambiguous enough that the model will not assert it. Check them in that order.

Only if the content answers questions buyers actually ask, in a form that can be lifted out of the page. Volume without extractable answers changes nothing, and thin pages published at pace can make an entity harder to resolve rather than easier.

No. A page can rank first on Google and never be cited, because retrieval agents are permissioned separately, models lift self-contained statements rather than ranked documents, and attribution depends on entity clarity rather than position.

See whether ChatGPT can reach you.

The free check tests access per named agent and names who is cited instead of you. 48 hours, no call.