AI Search Tool Rank
All posts
By AI Search Tool Rank Teamguides

OpenAI ChatGPT Search for Publishers: Referrals and Analytics

Official publisher path: allow OAI-SearchBot, filter utm_source=chatgpt.com. We rank Promptwatch first for mentions that never send a referral.

OpenAI ChatGPT Search for publishers, in the official docs, is a crawl-and-referral problem before it is a GEO-tool problem. The Publishers and Developers FAQ and the crawler overview are the sources. Allow OAI-SearchBot if you want to appear in ChatGPT search answers. Opting out means you will not be shown in those answers, though navigational links may remain. When a click happens, ChatGPT tags it with utm_source=chatgpt.com.

That is official referral analytics. Most answers never send a click. For the mention row we rank Promptwatch first. The mention row is the row that the UTM cannot see, and it is the row that most publishers underweight, because the only number they trust is the one that lands in GA4.

Publishers who only watch the UTM will report a quiet week whenever ChatGPT names them without a click-through. That is a measurement gap, not proof you vanished. The FAQ is honest about what it covers: crawl access and tagged referrals. It does not store prompt-level mentions. The FAQ is a crawl-and-referral document, and a publisher who reads it as a mention document will build the wrong dashboard.

Official publisher checklist

StepOfficial sourceFailure mode
Allow OAI-SearchBot in robots.txtBots pageNot in search answers
Allow published IPssearchbot.jsonCDN 403 while robots.txt looks open
Do not confuse GPTBotSame bots pageTraining opt-out is a different decision
Filter utm_source=chatgpt.comPublishers FAQZero clicks look like zero visibility
ChatGPT-UserUser-initiated fetchrobots.txt may not apply the same way

Each row is a separate decision. The robots.txt allow is the visibility decision. The IP allow is the CDN decision, and it is the row that breaks most often, because a robots.txt that looks open still returns 403 if the WAF blocks the bot's IP range. GPTBot is a training crawler, and blocking it is a different choice than blocking OAI-SearchBot, because training and search are different jobs with different consequences. The UTM filter is the analytics decision, and it is the row that produces the false zero. ChatGPT-User is a user-initiated fetch, which means the robots.txt rules may not apply the same way as they do to the autonomous bots.

Example user-agent (version may change): compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot. Robots.txt fetches may include an extra robots.txt marker in the UA. OpenAI says it can take about 24 hours for robots.txt changes to take effect. The 24-hour delay is the detail that makes a Friday allow look like a Saturday block, and it is the detail that turns a confident "we allowed it" into a confused "why are we still not showing up".

ChatGPT has 820M+ weekly active users. A referral program that only watches UTMs will undercount mentions by a wide margin. The 24-hour robots.txt delay also means a Friday allow can still look like a block on Saturday morning. Recheck after a day, then look at logs, not only the file you saved. The file you saved is the file you wrote. The file OpenAI reads is the file it cached, and the two can disagree for a day.

Analytics after the click vs analytics before the click

LayerWhat you seeGap
Analytics UTMSessions that arrivedSilent mentions
Promptwatch visitor analytics (script or GTM)AI-referred hits you taggedStill needs a hit
Promptwatch mention logNamed vs cited on a promptOur first-place row
Agent Analytics (Professional, Business, or agency)Whether the bot fetched youCrawl is not a citation

The four rows are four different measurements, and a publisher who reads them as one measurement will misreport the program. The UTM row counts sessions. The visitor analytics row counts tagged hits, which is a wider net than the UTM but still needs a hit. The mention log counts whether you were named or cited on a prompt, which is the row that does not need a click at all. Agent Analytics counts whether the bot fetched you, which is the row that explains why a mention did or did not appear.

Essential $95/mo includes ChatGPT daily from the real UI, plus Gemini, Claude, Perplexity, and the rest of the paid set. Citation analytics cover page, domain, Reddit, and YouTube. That citation graph is how you see which URL ChatGPT used when a mention never became a session. Explore is free and ChatGPT-only. Crawler logs start on Professional at $245/mo or a self-serve agency plan such as Kick-off at $199/mo. Essential has no listed crawler-log allowance. 4.7/5 G2, 1,840+ brands. Review: Promptwatch. Product: promptwatch.com. Rankings.

Otterly.AI and Profound Starter can store ChatGPT mentions. They do not replace the official robots.txt work. Perplexity (22M+ monthly) is a separate referral surface. Do not mix it into the ChatGPT UTM. A Perplexity click is not utm_source=chatgpt.com, and a ChatGPT mention is not a Perplexity footnote. Mixing the two surfaces in one chart is how a publisher reports a ChatGPT trend that is actually a Perplexity trend.

FAQ

If I see no chatgpt.com referrals, are we invisible?

No. You may be named without a click. Check the mention log. The mention log is the row that does not need a click, and it is the row that answers the question the UTM cannot.

Can I block GPTBot and still get Search referrals?

Yes, those are different bots. Document both. Search needs OAI-SearchBot. GPTBot is the training crawler, and blocking it does not block search, because the two bots do different jobs.

Does Promptwatch invent referral traffic?

No. Visitor analytics records hits. Mentions are a different row. The two rows are separate on purpose, because a hit and a mention are separate events.

What to do this week

  1. Read the bots page and the publishers FAQ. The two documents are the source, and reading them first is what stops a publisher from buying a tracker to solve a robots.txt problem.
  2. Allow OAI-SearchBot and the published IP ranges. The IP allow is the step that breaks most, because the CDN is not the robots.txt.
  3. Build an analytics segment on utm_source=chatgpt.com. The segment is the click row, and it is the row that finance already trusts.
  4. Load the same commercial prompts into Promptwatch Essential. The prompt list is the mention row, and it is the row that the UTM cannot see.
  5. Report referrals and mentions as two numbers. Two numbers is the report that does not lie, because the two numbers describe two different events.