If you want to know why ChatGPT cites some websites and ignores yours, the short answer is this: ChatGPT search SEO starts with access. ChatGPT can only show and link to your pages in its search answers if OpenAI’s search crawler, OAI-SearchBot, is allowed to reach them. After that, the work looks a lot like good traditional SEO. You need indexable pages, clear answers and content worth quoting.
In this guide I cover what OpenAI’s own documentation says about how ChatGPT search finds and cites websites. I also show how to control its crawlers in robots.txt, how to track the traffic it sends in GA4, and the practical steps I’d take now. I stick to what OpenAI has published. Where OpenAI says nothing, I say so instead of guessing.
What ChatGPT Search Is and When It Uses the Web
ChatGPT search lets ChatGPT pull in current information from the web. It answers with links to the sources it used. It decides by itself when a question needs fresh information, such as news, prices, opening hours or recent product details. Users can also ask it to search directly. I looked at what GPT-5 meant for ChatGPT search when it launched in August. For where the feature started, see my report on the ChatGPT search launch.
When it searches, the answer usually includes inline citations next to the claims they support. There’s also a Sources view that lists every page it used. That citation link is what you are competing for. It’s a referral click from a person who has already read a summary of your content and wants more.
OpenAI says ChatGPT search draws on third-party search providers as well as content its own systems have crawled. It doesn’t publish the full list of providers or how results are weighted. So there is no official “ChatGPT ranking algorithm” to optimise for. In my view, anyone selling you a list of ChatGPT ranking factors is guessing.
OpenAI’s Three Bots: OAI-SearchBot vs GPTBot vs ChatGPT-User
OpenAI runs separate user agents (bot names) for separate jobs. You control each one on its own in robots.txt. Mixing them up is an easy mistake. If you block “OpenAI” as a whole, you can remove yourself from ChatGPT search by accident. I see this more often than you’d think.
| User agent | What it does | What blocking it means |
|---|---|---|
OAI-SearchBot |
Crawls the web so pages can be surfaced and linked in ChatGPT search answers | Your pages will not be shown in ChatGPT search answers, though they may still appear as plain navigational links |
GPTBot |
Crawls content that may be used to train OpenAI’s generative AI foundation models | Signals that your content should not be used for training. It does not remove you from ChatGPT search |
ChatGPT-User |
Visits a page when a ChatGPT user or a custom GPT asks it to, for example to read a specific URL | Not used for automatic crawling and not used to decide whether you appear in search |
OAI-SearchBot Decides Search Visibility
OAI-SearchBot is the one that matters for ChatGPT search SEO. OpenAI’s guidance for publishers is direct. Any public website can appear in ChatGPT search. The way to make sure you are eligible is to not block OAI-SearchBot.
OpenAI also notes that robots.txt changes can take around 24 hours to show in search. If you have just unblocked the bot, give it a day before you start testing.
GPTBot Is About Training, Not Search
GPTBot gathers content that may help train future models. Many publishers block it for business or legal reasons, and that’s a fair choice. The key point is that blocking GPTBot and allowing OAI-SearchBot are separate decisions. You can opt out of training and still be eligible for search citations.
ChatGPT-User Is a Visitor, Not a Crawler
ChatGPT-User shows up in your logs when someone in ChatGPT asks it to open a page. It also shows up when a custom GPT fetches something for a user. It doesn’t crawl automatically. These visits are triggered by a person, so don’t treat them as a sign that you are being indexed for search.
robots.txt Controls for ChatGPT Search
Most sites don’t need special rules at all. If your robots.txt has no rules for OpenAI’s agents and allows general crawling, OAI-SearchBot can already reach you. The problems come from blanket blocks. These get added by a security plugin, a CDN bot-management setting or a well-meaning developer.
Here is a common setup. It lets you appear in ChatGPT search, opt out of model training, and keep private areas closed to everyone.
# Allow ChatGPT search to crawl public pages
User-agent: OAI-SearchBot
Disallow: /account/
Disallow: /checkout/
Allow: /
# Opt out of model training
User-agent: GPTBot
Disallow: /
# Everyone else
User-agent: *
Disallow: /account/
Disallow: /checkout/
Sitemap: https://www.example.com/sitemap.xml
Two details are worth knowing. First, a crawler follows the most specific group that names it. So once you add an OAI-SearchBot group, it ignores the * group. Repeat any private-area rules inside it, as above. Second, if you want to stay out of ChatGPT search completely, swap the OAI-SearchBot group for Disallow: /.
Check Your Firewall and CDN as Well
robots.txt is only half the picture. Some CDNs and security tools block AI crawlers at the network level. That returns errors to OAI-SearchBot even when robots.txt allows it. If you use bot management, check its settings for OpenAI’s agents.
OpenAI publishes the IP ranges each bot uses as JSON files, linked from its crawler overview. Use them to allow the real bot and to spot fakes in your server logs. Anyone can fake a user-agent string.
Being Crawlable and Indexable
Allowing the bot is the start. The page also has to be something it can read and is allowed to show.
Blocked Pages Can Still Show Up as Bare Links
OpenAI’s publisher FAQ explains a detail that mirrors how Google works. Say a page is blocked in robots.txt, but its URL is found elsewhere and looks relevant. ChatGPT may still show the link and page title, without any content from the page.
To keep a page out completely, use a noindex robots meta tag. Leave the page crawlable so the tag can be seen. A page blocked in robots.txt can’t have its noindex read. The full wording is in OpenAI’s publishers and developers FAQ.
Make the Main Content Readable in the HTML
OpenAI doesn’t say if OAI-SearchBot runs JavaScript. The safe approach is to put the main text, headings, prices and key facts in the server-rendered HTML (the HTML your server sends first). Don’t rely on scripts to load them later. My quick test: if a page shows a loading spinner with JavaScript turned off, assume a crawler may see very little.
The rest is standard technical housekeeping:
- Return a 200 status for live pages and proper 301s for moved ones.
- Keep an up-to-date XML sitemap and list it in robots.txt.
- Don’t hide answer content behind logins, pop-ups or cookie walls that cover the page text.
- Use clear titles and descriptive headings so the page’s topic is obvious.
Don’t Ignore the Other Search Engines
ChatGPT search also uses third-party search providers. So your visibility in established engines can feed into it. OpenAI doesn’t say which providers it uses for which searches. A sensible safeguard is to make sure your important pages are indexed in both Google and Bing. If you have never checked Bing, our guide to setting up Bing Webmaster Tools walks you through it.
How Citations and Links Appear in ChatGPT Answers
When ChatGPT search uses your page, the link can appear in a few places:
- Inline citations: small source links next to the sentence they support, usually showing the site name.
- The Sources panel: a list of every page used for the answer, opened from the sources button under the response.
- Navigational links: when someone is clearly looking for a specific site or brand, ChatGPT may simply link to it.
- Rich results: for some searches, such as products, ChatGPT shows visual cards with links instead of plain citations.
Citations attach to specific claims. That has a practical result. Pages that state facts clearly, in sentences that make sense on their own, are easier to cite. Pages where the answer is buried in the fourth paragraph of a story are harder. This isn’t a secret ranking factor. It’s simply how credit works when a system quotes or sums up a passage.
What OpenAI’s Publisher Guidance Really Says
OpenAI’s published guidance for websites is short. Boiled down, it says:
- Any public website can appear in ChatGPT search.
- To be eligible, don’t block OAI-SearchBot.
- To keep a page out of results, use noindex and let the crawler read it.
- To opt out of model training, disallow GPTBot. This is separate from search.
- ChatGPT adds a UTM parameter to referral links so you can measure the traffic.
That’s it. OpenAI hasn’t published a quality-rater framework, a structured data requirement for articles, or any list of signals that boost citations. OpenAI does have content partnerships with some news publishers. But there’s no application process an ordinary business can use to get better treatment in answers.
Its publisher FAQ also covers ChatGPT Atlas, OpenAI’s browser. It notes that Atlas uses ARIA roles and labels (accessibility code that describes page parts) to understand pages. If you haven’t read up on it, our explainer on what ChatGPT Atlas means for website owners covers the details.
Tracking ChatGPT Search Traffic in GA4
OpenAI says ChatGPT automatically adds utm_source=chatgpt.com to referral URLs. So clicks from ChatGPT search citations can be measured, instead of disappearing into “direct”.
Find ChatGPT Sessions in Standard Reports
- In GA4, open Reports, then Acquisition, then Traffic acquisition.
- Change the primary dimension to Session source / medium.
- Type
chatgptinto the search box above the table. - Note the medium that appears. With only a source parameter set, GA4 may show it as
(not set)or as referral, so check both rows. - Add a secondary dimension of Landing page to see which pages ChatGPT sends people to.
Build a Reusable AI Traffic View
For ongoing reports, create an exploration or a custom channel group. Match session source with a regular expression such as chatgpt.com|openai.com. You can extend the pattern later as you find other AI assistants in your data.
Keep your expectations realistic. Some visits will still arrive without the parameter. For example, someone might copy a link into a new tab or share it in another app. I treat the tagged number as a minimum, not the full total.
Check Server Logs Too
GA4 only sees people. Your server logs show the bots. Filter for OAI-SearchBot to confirm crawling. Compare request IPs with OpenAI’s published ranges. Look for 403, 404 or 5xx responses on pages you want cited. Search Console won’t help here, because it only reports Google data.
Product Results and Shopping in ChatGPT Search
ChatGPT search also shows product results for shopping searches. These appear as visual product cards with images, prices, review summaries and links to retailers. OpenAI has said these product results are chosen independently and are not ads.
Product information comes from structured data supplied by third parties, such as prices and product descriptions, along with reviews. In practice, the basics of ecommerce SEO matter here too. You need accurate prices, consistent product names, clear specifications and complete product structured data that matches what shoppers see on the page.
OpenAI has also launched Instant Checkout for some merchants. In late November, it added a shopping research feature that builds buyer’s guides. Merchants can apply through OpenAI’s merchant page to share product feeds. For how product picks work in that newer flow, see our breakdown of ChatGPT shopping research.
Practical Steps for ChatGPT Search SEO
Here is the order I work in for a typical business site.
1. Check Access First
Open yoursite.com/robots.txt. Look for groups naming OAI-SearchBot, GPTBot or ChatGPT-User, and for broad Disallow: / rules under *. Then check your CDN and security plugin for AI bot blocking. Fixing an accidental block is the biggest single win you can get.
2. Decide Your Training Policy Separately
Choose whether to allow GPTBot based on your business view of model training. Write the decision down. That way a future developer won’t “tidy up” robots.txt and block search by mistake.
3. Confirm Crawling in Your Logs
After a day or two, search your logs for OAI-SearchBot requests from OpenAI’s published IP ranges. If you see none, or see errors, go back to your firewall rules.
4. Make Key Pages Easy to Cite
Take your most important service, product and guide pages. Check that each one:
- Answers its main question near the top in plain language.
- States facts such as prices, locations, dates and specifications clearly in text, not only in images.
- Uses headings that match the questions people really ask.
- Shows who wrote it or who the business is, with clear contact details.
- Has a visible last-updated date if the information changes.
For example, a plumber’s “boiler repair” page could open with the areas covered, typical call-out times and how pricing works. That gives ChatGPT a clean passage to cite. A page that opens with three paragraphs about the company’s history does not.
5. Set Up Tracking
Build the GA4 view described above and add a monthly check to your reports. Watch which landing pages earn ChatGPT visits, and if those visitors convert.
6. Test With Real Prompts
Ask ChatGPT the questions your customers ask, with search turned on. Note which sources it cites. Try a few ways of wording each question, because answers vary. This won’t give you a rank. But it shows which competitors and page types ChatGPT tends to pull from for your topics.
Common Mistakes to Avoid
- Blocking all OpenAI bots with one rule. This removes you from search, not just from training.
- Using robots.txt to hide sensitive pages. The URL can still appear as a bare link. Use noindex or a login instead.
- Chasing made-up ranking factors. OpenAI hasn’t published any. Spend the time on access, clarity and accuracy.
- Judging success on one test prompt. Answers vary between sessions and users, so look for patterns over time.
Conclusion
ChatGPT search SEO is less mysterious than it looks. Allow OAI-SearchBot. Treat GPTBot as a separate training decision. Make sure your pages are readable and indexable, and write content that answers questions clearly enough to be cited. Then measure the results with the utm_source=chatgpt.com parameter in GA4 and your server logs.
My advice for ChatGPT search SEO is to check robots.txt and your CDN settings today. An accidental block is the one problem that stops everything else from working. If you run an online shop, follow up by reviewing your product structured data, so the facts ChatGPT sees match your pages.



