Get recommended by ChatGPT: 3 technical checks we tested
Short answer: Nobody can make ChatGPT name your site, so no check can promise that you will be recommended by ChatGPT. What you can control is the technical basis, and three checks cover it: robots.txt lets OpenAI's search bot in, the main text is in the HTML without JavaScript, and the page is reachable for the bot with status 200 and no block at the firewall or CDN. Passing them removes the technical obstacles we know of. Only the log of a real ChatGPT-User visit shows that the page was fetched, and nothing shows that you will be recommended.
Test status (4 November 2026): This article describes a test that has not been run yet. The method is fixed below; we will add the results after the run (planned for 5 November 2026). Until then, nothing here claims a result.
What nobody can promise: being recommended by ChatGPT
Start with the limit, because it shapes everything else. Whether ChatGPT names a site in an answer is ChatGPT's decision. OpenAI documents its crawlers and what each robots.txt setting does. That page does not describe how ChatGPT decides which sites to name, and we found no source that proves an effect of any technical setting on recommendations. So the honest status is: not proven, and not promised here.
Two more limits belong in the same paragraph:
- There is no public count of mentions. We know of no public figure for how often ChatGPT names a given site. Mention trackers send a fixed list of questions to AI assistants and record whether a brand shows up, and SEOgrinder does not measure mentions either. It checks the technical basis: can AI systems reach and read the page? We have no number for how often ChatGPT recommends sites, and we will not make one up.
- Readable is not the same as recommended. A page that ChatGPT can read can still be ignored, and a page it cannot read gives the bot nothing to quote. Readability is the one part you control, and that is the only reason these checks matter.
This is why the headline says "technical checks" and not "how to be recommended". If you want to track mentions in a second step, our article on the AI visibility checker explains the difference between mention tracking and a readiness check and shows a manual question list.
The three OpenAI user agents in one table
OpenAI uses several user agents, and each setting in robots.txt is independent of the others. Its documentation gives the example that a site can allow OAI-SearchBot to appear in search results while disallowing GPTBot to signal that crawled content should not be used for training. So "block ChatGPT" is not one decision but three. The source is OpenAI's page on its bots.
| User agent | What OpenAI says it is for | If your robots.txt blocks it |
|---|---|---|
| OAI-SearchBot | Surfaces websites in the search features of ChatGPT | The site is not shown in ChatGPT search answers, but can still appear as a navigational link. OpenAI recommends allowing it |
| GPTBot | Crawls content that may be used to train generative AI foundation models | Signals that the content should not be used for training |
| ChatGPT-User | May visit a page when a user asks ChatGPT or a Custom GPT a question. Not used to crawl the web automatically | OpenAI writes that robots.txt rules may not apply, because a person started the request. It is not used to decide whether content appears in Search |
OpenAI also lists OAI-AdsBot. It only visits pages that were submitted as ads in ChatGPT, so it does not matter for the checks below.
Check 1: robots.txt lets OAI-SearchBot in
OpenAI says that sites that opted out of OAI-SearchBot will not be shown in ChatGPT search answers, and recommends allowing it in robots.txt. Allowing it is a precondition for those answers. It is not a guarantee of anything.
- No group of its own is fine, if
*allows it. If no group names OAI-SearchBot, the*group applies to it. Write a line for it anyway, so that the decision is visible to the next person who edits the file. - GPTBot and ChatGPT-User are separate decisions. Allowing search does not force you to allow training. For ChatGPT-User, OpenAI says robots.txt rules may not apply at all.
- Changes take time. For search results, OpenAI says it can take about 24 hours after a robots.txt update until its systems adjust. If you test an hour after the change, you test the old state.
A minimal file that keeps the three decisions apart:
# Search in ChatGPT: allow
User-agent: OAI-SearchBot
Allow: /
# Training: your own decision (this example refuses it)
User-agent: GPTBot
Disallow: /
# Fetches on a user's request: robots.txt rules may not apply
User-agent: ChatGPT-User
Allow: /
A frequent way to fail this check is a bot's own group. According to RFC 9309, a crawler uses the group that matches its name, and if it has its own group, the * group does not apply to it:
User-agent: *
Disallow: /private/
User-agent: OAI-SearchBot
Allow: /
Here /private/ is open for OAI-SearchBot, because its own group replaced the * group. Repeat Disallow: /private/ inside the group, or put several User-agent lines above one shared set of rules. Our article on robots.txt for AI crawlers shows both patterns in full.
The same specification covers a file that does not load. If robots.txt answers with a client error in the 400 range, a crawler may access any resource. If it is unreachable because of a server or network error, such as a 500 status, the crawler must assume complete disallow. A robots.txt that sometimes fails is therefore not neutral.
Our own file is an example, not a recommendation. The robots.txt of seogrinder.com has one shared group with * and nine AI user agents, including OAI-SearchBot, GPTBot and ChatGPT-User. It allows everything except /api/. Allowing training is the owner's decision for this site. You may decide differently.
Check 2: the main text is in the HTML without JavaScript
A bot can be allowed and still find nothing to read, if your text only appears after a script has run. One measurement is from Vercel and MERJ, published in December 2024 as The rise of the AI crawler. Its finding: none of the three OpenAI crawlers in the study (OAI-SearchBot, ChatGPT-User and GPTBot) rendered JavaScript. Google's crawler, which Gemini uses, and AppleBot did.
Read that result with care. It is a snapshot from 2024, and we know of no newer measurement that we could cite. Crawlers change, so treat it as a warning and not as a law. It also says what a bot reads, not whether a page is named in an answer.
The check itself takes a minute and needs no tool. Ask your server for the page without running any script, and look for your headline:
curl -sL https://www.example.com/your-page | grep -i -A2 "<h1"
If the output shows your real headline, it is in the delivered HTML. If it shows an empty shell with a div and a script tag, or no headline, a bot that skips scripts sees the same. Repeat it with a sentence from your first paragraph. Text that appears only inside a script element does not count. Our article on AI crawlers and JavaScript has two more one-minute tests and the fix: render the page on the server or generate it ahead of time.
Check 3: the bot can reach the page
This is the check people skip, because robots.txt looks like the whole story. It is not. A file can say "allowed" while a firewall, a CDN's bot protection or the host answers the bot with an error. Then the permission exists, but the page does not arrive.
- The status is 200. A bot that receives an error page or a redirect loop cannot read your text. OpenAI's page does not say how its bots treat individual status codes; that a bot needs a normal answer to read text is plain HTTP logic, not an OpenAI statement.
- Nothing in front of the server turns the bot away. For OAI-SearchBot, OpenAI recommends allowing requests from its published IP ranges. Each bot has its own list on the documentation page, for example
searchbot.jsonfor OAI-SearchBot. - Your server log shows the user agent. For ChatGPT-User, OpenAI gives the full string
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot. For OAI-SearchBot and GPTBot it notes that version numbers may change, so search for the name, not the version. For those two, OpenAI also says that when it fetches robots.txt, it may add arobots.txtmarker to the user agent, so you can tell those requests apart.
You can use the bot's name with curl and read the status code:
curl -sS -o /dev/null -w "%{http_code}\n" -A "OAI-SearchBot" https://www.example.com/your-page
This shows how your server reacts to the name, not to OpenAI's real addresses. Many protection rules turn away fake bot names and let real bots through by IP address, which is intended. So a 403 here is a reason to look at your rules, not proof that the real bot is blocked, and a 200 does not prove that it gets through. The log is the real evidence. Anyone can write "GPTBot" in a header, so compare suspicious visits with the published IP ranges.
Our test: what we will do on 5 November 2026
The headline promises a test. This section is where it will be documented, and until the run is done it describes only the method. We build SEOgrinder, so the test object is our own site, and we write down the steps and the possible outcomes before the run.
Test object: seogrinder.com and this article, https://seogrinder.com/en/blog/get-recommended-by-chatgpt. The test is planned for 5 November 2026 and has four steps:
- Read
https://seogrinder.com/robots.txtand save it. Note how OAI-SearchBot, GPTBot and ChatGPT-User are treated. - Search the raw HTML of this article for its H1, without JavaScript, with the curl command from Check 2.
- Ask ChatGPT to open the address of this article and to quote its H1 word for word. Write down the model shown and the time. The question is fixed in advance: "Open https://seogrinder.com/en/blog/get-recommended-by-chatgpt and quote its H1 exactly."
- Search our server log for
ChatGPT-Useraround the time of step 3, and compare the source IP address with OpenAI's published listchatgpt-user.json. A visit from an address that is not on that list does not count.
What we document: the time of the request, the model shown, a screenshot of the answer, the saved robots.txt and the log line with time, path, status, user agent and source IP address. We will not add values that we did not record.
How we will read the outcomes, fixed before the run:
- ChatGPT quotes the H1 correctly and the log shows ChatGPT-User with status 200 at that time: this shows that ChatGPT could read the page.
- ChatGPT answers, but the log shows no request from ChatGPT-User at that time: we cannot tell where the answer came from. OpenAI says ChatGPT-User may visit a page when a user asks a question; it does not say that every answer involves a visit. That is why the log is part of the test.
- ChatGPT cannot open the page: we report the message and what we changed. That would be a result too.
What a pass would and would not show. It would show that ChatGPT can read this page on one day, with one question, from one account. It would not show that ChatGPT will recommend the page, and not how often it reads pages. One run is one data point.
Result: follows after the run. We enter it once step 4 is done. This section will be updated then; until then, no result exists.
How SEOgrinder helps with the three checks
SEOgrinder is free and needs no account. Enter an address, start the analysis and open the report. Three places matter here:
- AI readiness tab, "Checks for AI agents": the point "Steer AI bots" shows how many AI crawlers have an explicit rule, how many are allowed and how many are blocked, and names the blocked ones. "Rules for bot behaviour" covers robots.txt itself. This is Check 1.
- Tasks tab, "The page is only assembled in the browser": the finding appears for pages that need JavaScript to show their content, because many AI crawlers do not run it. This is Check 2.
- Tasks tab, "Server may turn away allowed AI crawlers": SEOgrinder tests how the server answers four fixed bot names (GPTBot, ClaudeBot, OAI-SearchBot and PerplexityBot), only those that robots.txt allows, and compares it with a browser. ChatGPT-User is not among them. It uses only the name, which is the limit described in Check 3.
Press Copy agent prompt at a point to get an instruction for your coding assistant, and press Check again after a change. Reports stay in the cache for up to 24 hours, and the button forces a fresh run a few times per hour. SEOgrinder does not read your server log. The report fetches your page under the name SEOgrinder; only the delivery test tries four bot names (including OAI-SearchBot), marked as a test and not a real crawler. It does not measure whether ChatGPT names your brand.
Common mistakes
- Blocking GPTBot to leave ChatGPT search. GPTBot is about training. Search uses OAI-SearchBot, and each setting is independent.
- Adding a group for one bot and losing the shared rules. Its own group replaces the
*group. - Allowing in robots.txt and turning the bot away at the firewall. Check the log, not only the file.
- Testing too early. After a robots.txt change, OpenAI says about 24 hours.
- Building the text in the browser only. The 2024 snapshot says OpenAI's bots did not run scripts.
- Reading a pass as a recommendation. A pass removes the technical obstacles we know of and says nothing about whether ChatGPT will name you.
FAQ
Can I make ChatGPT recommend my site?
No. Nobody can force a mention, and no technical setting is proven to cause one. You can remove blockers so that ChatGPT can read your pages. Whether it names them is its decision.
Does blocking GPTBot remove me from ChatGPT?
No. GPTBot signals that content should not be used for training. Search uses OAI-SearchBot, a separate setting.
Do robots.txt rules stop ChatGPT-User?
OpenAI writes that robots.txt rules may not apply to ChatGPT-User, because a user started the request. It is not used to crawl the web automatically, and it is not used to decide whether content appears in Search.
Does SEOgrinder show whether ChatGPT names my site?
No. It checks the technical basis: whether AI systems can reach and read the page.
Your next step
Open your robots.txt and look for OAI-SearchBot. Run the curl command from Check 2 on your most important page and see whether the headline is in the HTML. Then run the free scan in SEOgrinder, open the AI readiness tab and the Tasks tab, and fix what is open. Come back after 5 November 2026 for the documented result of our own test.