AI Visibility Tracking ToolFree checker

Optimize for ChatGPT Search: A Technical Checklist

99Visibility Research · Updated October 21, 2026 · 9 min read

Short answer

To optimize for ChatGPT search, pass the two-part gate OpenAI describes. Allow OAI-SearchBot in robots.txt, and confirm your host or CDN lets traffic from OpenAI's published searchbot IP addresses through. Then make sure your key facts are in the raw HTML, because OpenAI's crawlers don't execute JavaScript. These steps make you eligible to appear. They don't guarantee that ChatGPT will retrieve or cite you.

Key takeaways

  • OpenAI's eligibility rule is a conjunction: robots.txt must allow OAI-SearchBot and your host or CDN must let OpenAI's searchbot IPs through.
  • GPTBot controls training only, so blocking or allowing it has no documented effect on ChatGPT search.
  • OpenAI's crawlers download JavaScript but don't run it, so prices, product names and claims that appear only after hydration may be invisible.
  • Passing the gates buys eligibility, not placement: OpenAI says ChatGPT ranks results on multiple factors and placement is not guaranteed.
  • Schema, llms.txt and AI-friendly rewriting have no credible evidence behind them as ChatGPT levers, so fix access and rendering first.

How ChatGPT search decides what it can show

ChatGPT search works in stages, and only some of them are yours.

  1. Access. A crawler has to be allowed to fetch your page and actually reach it. This is index-time inclusion, and you control it.
  2. Retrieval. For a given question, ChatGPT decides whether to search at all. If it does, OpenAI says it "rewrites your query into one or more targeted queries" and sends them to its search providers. You can't see those queries.
  3. Generation. The model picks which retrieved pages to use and cite. OpenAI's full ranking disclosure is that it uses "multiple factors" and "placement is not guaranteed."

There's also a fourth channel that sits outside all of this: what the model already knows with search off. That knowledge is frozen at a training cutoff. As of October 2026, OpenAI documents a February 16, 2026 cutoff for the GPT-5.6 family and August 31, 2025 for the Instant path. Nothing you publish this quarter changes an answer given with search off.

The practical conclusion is simple. Stage 1 is the only stage with documented, publisher-controlled levers. A critical survey of 45 GEO studies (arXiv, July 2026) found no technique with a stable, cross-platform causal effect on discoverability. So this checklist starts with access, and mostly stays there. For the detail behind each stage, see our walkthrough of OpenAI's help page on searching the web with ChatGPT.

Gate one: allow OAI-SearchBot in robots.txt

OAI-SearchBot is the crawler OpenAI uses to surface sites in ChatGPT's search features. OpenAI's crawler page is direct: sites opted out of OAI-SearchBot "will not be shown in ChatGPT search answers, though can still appear as navigational links." A navigational link is a plain pointer to your site, not a cited source inside an answer.

OpenAI runs three separate agents, and its documentation says "each setting is independent of the others":

  • OAI-SearchBot: ChatGPT search inclusion.
  • GPTBot: training data for OpenAI's foundation models. Nothing else.
  • ChatGPT-User: fetches pages when a user asks ChatGPT to. OpenAI says robots.txt rules "may not apply" to it, and it isn't used to decide what appears in search.

A robots.txt that keeps search access while opting out of training looks like this:

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

You don't have to block GPTBot. That's a separate policy choice about training, covered in GPTBot vs OAI-SearchBot. What matters here is that OAI-SearchBot isn't caught by a blanket rule. The most common real-world error is a User-agent: * disallow, or a copied "block all AI bots" list, that silently removes ChatGPT search eligibility along with training.

Gate two: let OpenAI's IP ranges through your host or CDN

This is the half most sites never test. OpenAI's help centre states that to be eligible you must allow OAI-SearchBot "and confirm that the website host or content delivery network allows traffic from OpenAI's published searchbot IP addresses." The word is and. A permissive robots.txt does nothing if your firewall returns a 403.

How this fails in practice:

  • Bot management or a WAF flags the crawler. OpenAI's own guidance notes these systems "can mistakenly block legitimate crawlers, often returning 403 Forbidden errors."
  • A JavaScript challenge or CAPTCHA intercepts the request. An automated crawler can't solve it, so it gets an HTML challenge page instead of your content.
  • A CDN default changes under you. From September 15, 2026, Cloudflare blocks its Training and Agent crawler categories by default on ad-displaying pages for new domains, new sites on existing accounts and existing free-tier customers, while Search stays allowed by default. Check which category each OpenAI agent falls into in your own dashboard rather than assuming.
  • IPv6-only edges. As of August 2026, OpenAI's published searchbot.json listed IPv4 prefixes only. An origin or bot-facing path reachable only over IPv6 can't be reached by those ranges.

OpenAI publishes its ranges as JSON at openai.com/searchbot.json, but it also warns against relying on IP allowlisting alone. Validate on the user-agent plus your CDN's verified-bot programme, and use the IP list as a cross-check. Our page on OpenAI crawlers, robots.txt and firewalls goes deeper on configuration. To see the result directly, the AI Crawler Checker requests a page as each AI crawler and shows which ones your firewall turns away.

Put the facts that matter in the raw HTML

Passing both gates gets OAI-SearchBot to your page. It still has to find your content there. Vercel's crawler study found that ChatGPT's crawlers fetch JavaScript files (11.50% of requests) but "don't execute them. They can't read client-side rendered content." Independent re-testing in June 2026 confirmed that GPTBot, OAI-SearchBot and ChatGPT-User still don't render JavaScript.

If your pricing table, product names or key claims load after hydration, OpenAI's crawlers may see an empty shell. Check it this way:

  1. Fetch the page with JavaScript disabled (for example, curl or your browser's view-source).
  2. Render the same page in a normal browser.
  3. Compare the visible text. Anything present only in the rendered version is at risk.

Pay special attention to content behind tabs, accordions, "load more" buttons and infinite scroll that pull text in with a fetch call. The fix is server-side rendering, static generation or prerendering for the content that matters. You don't need to server-render everything, just the facts you'd want quoted.

That last point is the one positive on-page signal in the evidence. Stating a specific fact (a price, a number, a one-line definition) on a page ChatGPT can fetch gives it a sentence it can quote. It doesn't make selection more likely. It means there's something correct to select.

What you control and what you don't

Most "optimize for ChatGPT" advice blurs this line. Here it is plainly.

Factor In your control? What the evidence says
OAI-SearchBot robots.txt permission Yes Disallow removes you from ChatGPT search answers (OpenAI)
CDN or firewall reachability Yes Required alongside robots.txt (OpenAI help centre)
Content in raw HTML Yes OpenAI crawlers don't execute JavaScript (Vercel)
noindex, nosnippet, data-nosnippet Yes Suppression controls; check you haven't applied them by accident
Whether ChatGPT searches for a question No Model-discretionary per query
The queries it actually runs No Rewritten by ChatGPT, not exposed
Where you land among retrieved sources No C-SEO Bench found context position dominates, with no publisher lever
What it says with search off No Fixed at the training cutoff

One thing sits in between. When ChatGPT cites other sites for your category instead of yours, being named accurately on those sites is associated with appearing in the answer. It's an association, not a promised effect, but it's a real route.

Remember too that logged-in answers vary. OpenAI says ChatGPT may use saved memories when rewriting a search query, so one person's test isn't a measurement. For how fresh the fetched copy is, see whether ChatGPT reads your live site or a saved copy.

The order of work

Work from the cheapest, most certain checks to the slower ones.

  1. Read your robots.txt. Confirm OAI-SearchBot is allowed on the pages you want in ChatGPT search, and that no wildcard rule overrides it. Decide on GPTBot separately.
  2. Test reachability as the crawler. Request a few representative URLs with the OAI-SearchBot user-agent. A 200 with your real content is a pass. A 403, 429 or challenge page is a fail, even if robots.txt says allow. Confirm /robots.txt itself is reachable too.
  3. Review CDN and bot-management settings. Look at AI crawler categories, verified-bot handling and any rules added since September 2026.
  4. Diff raw HTML against the rendered page. List every price, product name and core claim that exists only after JavaScript runs, and move it into the server response.
  5. Remove accidental suppression. Search templates for noindex, nosnippet, max-snippet:0 and data-nosnippet applied wider than intended.
  6. Make your own site consistent. If your pricing page, about page and footer state different facts, an engine can quote any of them. Pick one version and use it everywhere.
  7. Then look at what ChatGPT says. The free checker on this site shows whether ChatGPT names you for up to three buyer questions. Treat it as a snapshot, not a trend.

Steps 1 to 5 are binary. Once they pass, they stay passed until someone changes a config, so recheck after migrations, CDN changes and redesigns. The same sequence applies to other engines with their own bots; our Perplexity checklist covers PerplexityBot.

Common mistakes

  • Allowing GPTBot to "get found by ChatGPT." GPTBot governs training only. OpenAI asserts no search benefit for it anywhere.
  • Blocking all AI bots in one rule. It feels tidy and removes ChatGPT search eligibility along with training. Name each agent.
  • Treating robots.txt as the whole answer. It's necessary, not sufficient. The firewall decides whether the crawler gets in.
  • Assuming ranking in Bing carries over. OpenAI says ChatGPT "sometimes" partners with other search providers, with no measured effect. In OtterlyAI's 2026 test, two sites ranking in Bing drew effectively zero ChatGPT citations while ChatGPT's crawlers kept visiting.
  • Adding schema, FAQ markup or an llms.txt and waiting. None has credible evidence as a ChatGPT lever. Existing markup does no harm, but it isn't the fix.
  • Rewriting pages in an "AI-friendly" style. C-SEO Bench (NeurIPS 2025) found most content-rewriting methods ineffective and often harmful to ranking within the model's context.
  • Hiding text or instructions for AI crawlers. Prompt injection and cloaking exist, and research shows some engines can be manipulated by them. It's illegitimate, it puts your reputation at risk, and it's not a strategy.
  • Reading one logged-in answer as the truth. Retrieval is discretionary and memory shapes queries. Test logged out, more than once.

Frequently asked questions

If I block GPTBot, will I disappear from ChatGPT search?

No. OpenAI documents GPTBot as a training crawler and states that each crawler setting is independent. You can disallow GPTBot to opt out of training and still allow OAI-SearchBot to stay eligible for ChatGPT search answers. The reverse also holds: allowing GPTBot does nothing documented for search visibility. Configure the two agents separately in robots.txt.

Can ChatGPT still link to my site if I block OAI-SearchBot?

Possibly, but only in a limited way. OpenAI says sites opted out of OAI-SearchBot won't be shown in ChatGPT search answers, though they can still appear as navigational links. That means a plain link to your site, not a cited source supporting part of an answer. If you want to be cited in answers, OAI-SearchBot needs to be allowed and able to reach you.

Is there a way to submit my website to ChatGPT?

OpenAI doesn't document a submission form for ChatGPT search. Its stated route to eligibility is the two-part gate: allow OAI-SearchBot in robots.txt and make sure your host or CDN lets OpenAI's searchbot IPs through. After that, whether a page is retrieved for a given question is decided by ChatGPT, using queries it writes itself.

Why does ChatGPT describe my company with outdated facts?

Two common causes. When ChatGPT answers without searching, it relies on training data frozen at a cutoff, which as of October 2026 is February 2026 for the GPT-5.6 family and August 2025 for the Instant path. When it does search, it may hit stale or conflicting facts on your own site, or facts hidden behind JavaScript it can't read. Fix the second; the first only changes with a new model.

How can I tell if ChatGPT is sending me traffic?

OpenAI says ChatGPT adds utm_source=chatgpt.com to referral URLs, so filter your analytics on that parameter. Treat the result as a floor, not a total. Some clicks arrive untagged, and visits that never click through leave no trace. Referral numbers also tell you nothing about answers that mention you without a link.

Sources

  1. Searching the web with ChatGPT
  2. Overview of OpenAI Crawlers
  3. OpenAI
  4. The rise of the AI crawler - Vercel
  5. [2506.11097] C-SEO Bench: Does Conversational SEO Work?
  6. [2607.14035] Optimizing Visibility in Generative Engines: A Critical Survey of Generative Engine Optimization (2023-2026)

This page is AI-assisted. It was written from a verified evidence base and checked against our editorial policy. Engine behaviour changes often; facts are as of October 21, 2026.

Keep reading