Check what your robots.txt says about OAI-SearchBot
Open your own robots.txt in a browser, at your domain followed by /robots.txt. You're looking for two things: a Disallow under OAI-SearchBot, and a blanket Disallow under User-agent: *. Either one takes you out. OpenAI's wording is flat: sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers, though can still appear as navigational links.
Add the block OpenAI publishes as its own example in its crawler troubleshooting article: User-agent: OAI-SearchBot on one line, Allow: / on the next. A group addressed to that bot by name takes precedence over your User-agent: * group, so a blanket disallow stops applying to it. Deploy the file and leave it alone.
Then wait about a day before you judge anything. OpenAI's crawler documentation gives exactly one interval, and this is it: it can take ~24 hours from a site's robots.txt update for our systems to adjust. Crawl frequency, recrawl cadence and time to first citation are published nowhere, so don't let anyone sell you a timeline.
Prove OAI-SearchBot actually reached your pages
Grep your access logs for the string OAI-SearchBot. Requests for robots.txt carry an extra marker in the user agent, the words robots.txt sitting between the version number and the URL, so you can separate those from real page requests even when your logs don't record paths. Zero page hits means you're blocked, not unranked, and those are different problems with different fixes.
If you do see hits, read the status codes, because each layer fails with its own signature. A 403 Forbidden is your web protection or bot mitigation. A 429 Too Many Requests is rate limiting, and OpenAI names that code specifically. A 200 that hands back a challenge page instead of your content is a CAPTCHA or JavaScript check, which is the third layer and the one that looks healthiest in a status report.
Allowlist by user agent first, at the WAF and at the CDN. If your security stack demands IP ranges, OpenAI publishes them at openai.com/searchbot.json, and warns in the same article against relying solely on short-term IP observations from logs. Make the user agent the primary rule and the IP file a backstop.
Clear the block in Cloudflare
In the Cloudflare dashboard, open AI Crawl Control, then the Security tab, then the Crawlers tab. The table carries a Requests column showing allowed against unsuccessful and a Robots.txt violations column. Find the OpenAI search crawler, go to the Action column, and select Allow. Cloudflare's own instructions are the reference.
Then audit the rules you already have, because that panel doesn't repeal them. Cloudflare reclassified bots by behavior on July 1, 2026 into Search, Agent and Training, and blocking Training does not block OAI-SearchBot while blocking Search does. The older AI Search category is retained for backward compatibility, its documented example is OAI-SearchBot itself, and rules written against it still fire.
Two limits before you close the tab. On the free plan, AI Crawl Control identifies crawlers by user agent string only, and paid plans add Bot Management detection. And OpenAI states that OAI-AdsBot is officially verified and allowlisted by Cloudflare while making no such claim for OAI-SearchBot, so don't assume a verified-bot list already covers your search access.
Three moves that don't do what publishers think
Blocking GPTBot is a training decision and nothing else. OpenAI's crawler doc says a webmaster can allow OAI-SearchBot in order to appear in search results while disallowing GPTBot. If you disallowed GPTBot to keep your work out of model training, that choice costs you nothing in ChatGPT search, and a guide telling you it killed your AI visibility is wrong.
ChatGPT-User in your logs proves nothing. OpenAI says it outright: ChatGPT-User is not used to determine whether content may appear in Search, and it tells you to use OAI-SearchBot in robots.txt for managing search opt outs. That agent fires when a person asks ChatGPT to go look at a page. Allowing only ChatGPT-User fixes nothing.
Don't ship a noindex tag while you're in there. Per the Publisher FAQs, if OpenAI gets the URL of a disallowed page from a third-party search provider or by crawling your other pages, it may still surface just the link and page title in ChatGPT Atlas. noindex suppresses even that fallback. Note the trap in their own wording: in order for our crawler to read a meta tag, it must be allowed to crawl the relevant page.
Measure ChatGPT referrals with utm_source=chatgpt.com
There's no Search Console for this. No URL inspection, no index status, no submission tool, no coverage report, and no support queue for a site that isn't being cited. Your analytics is the whole feedback loop, so wire it up before you start changing pages or you'll have nothing to compare against.
OpenAI's Publisher FAQs give you one hook: ChatGPT automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs. Build a GA4 segment on that source today, or filter your server logs on the same string. It's the only publisher-visible proof that a citation turned into a visit.
It only fires when somebody clicks. A citation that gets read and not clicked is invisible to you, and OpenAI publishes no impression count, no citation report and no rank position anywhere. Treat the referral number as a floor, never as a measure of how often you're quoted.
Selling products: the one submission path that exists
On Shopify or Etsy, you're already done. The merchant page says it plainly: if you sell through Shopify or Etsy, your catalog is already integrated, and no additional setup or application is required. Don't pay anybody to submit a feed you already have.
Everywhere else, chatgpt.com/merchants is an application, not an upload. OpenAI's commerce docs say onboarding product feeds is currently available to approved partners, and the page tells applicants they're on the waitlist. Required on the form: first name, last name, work title, LinkedIn, work email, company, headquarter country, your merchant website, primary product categories, what you're interested in, and your unique SKU count. Only two things are optional: the product-feed-readiness checkbox and the free-text box at the end.
A feed is not a prerequisite for being cited. OpenAI answers this in its own FAQ, asked as whether you need a product feed if ChatGPT already crawls your site: no, but feeds give you greater control over how your products appear. Shopping in ChatGPT is live for users in the U.S., so outside that, the crawler work above is the whole job.
When the crawl is clean and you're still not cited
You've reached the end of the documented surface, and there's nothing to appeal to. No reconsideration request, no support path, no ranking factors to work against. The complete public statement sits under Make your website available in search results, and it ends with placement is not guaranteed. Anyone selling you a ChatGPT ranking package is charging for a checklist that doesn't exist.
Being cited wrongly is the one thing with a real form. Go to OpenAI's Report Content form and pick ChatGPT search under Which product or feature does this relate to. Required: first name, last name, email address, country of ordinary residence, that product choice, a reason, a description under What content are you reporting, and a yes or no under Tell us if you believe the content or activity is illegal. Your link goes in Add URL, the screenshot and Additional information fields are optional, and a Turnstile check means you're sending it by hand.
The reason list has no accuracy option, because the form is built for policy violations and illegal content, so Spam, fraud & deception is the nearest fit for a misquote. The lighter route is in the product: thumbs-down on the response, or the menu on a product card. None of this makes ChatGPT quote you. It makes you eligible to be quoted, and eligibility is a precondition, not a result.