gaash.ai

AI Engines · 10 min read · September 24, 2026 · , gaash.ai

What ChatGPT can read on a medical practice's site, and what it cannot

ChatGPT can draw on your practice's own pages in two ways: through its model's training and, with search on, through what OpenAI's crawlers fetch. OAI-SearchBot builds the index behind ChatGPT search, and ChatGPT-User fetches a page when a user asks about it. Neither can log in to a patient portal or fill in a booking form, so the facts patients ask about belong on public pages, in plain HTML.

Where does ChatGPT's picture of a practice come from?

From two sources that age differently. The first is training: text collected before the model's knowledge cutoff, which for a practice can mean the address before the move, the physician who retired, the hours from two winters ago. A model answering from memory has no way to notice that any of it has changed.

The second is retrieval. When ChatGPT searches the web, it answers from pages its search finds for the question. OpenAI's crawler documentation names the tokens that do the fetching: OAI-SearchBot indexes pages for ChatGPT search, the feature that began as SearchGPT, and ChatGPT-User fetches a page when a user asks about it. This is the route a practice can influence quickly, because it reads your pages as they were when last fetched rather than as they were when a model was trained.

The two routes meet on your own pages. Whatever you correct there is what the next fetch finds and, if you allow training crawlers, text a later model may learn from. Fixing the page is the one step that helps on both.

OpenAI's crawlers, and the decision each one asks of a practice

Each token has one job, and robots.txt is read token by token: under RFC 9309, a group of rules addressed to one crawler does not bind another. So each AI crawler token is its own decision, and the table sets out what each one means for a practice.

OpenAI's four user agents, what OpenAI documents about each, and what it means for a practice's robots.txt.
TokenWhat OpenAI documentsWhat it means for a practice
OAI-SearchBotIndexes pages for ChatGPT search. A site that disallows it is not shown in ChatGPT search answers, though it can still appear as a navigational link, and a change to its rule takes about 24 hours.Allow it on the public site if you want the practice to be able to appear in those answers. This is the one to check first.
ChatGPT-UserFetches a page when a ChatGPT user asks about it. OpenAI says robots.txt rules may not apply to it, because a person asked.The fetch a patient sets off by pasting your new patients page into ChatGPT. Nothing on the public site needs hiding from it.
GPTBotCollects training data. Disallowing it does not remove a site from ChatGPT search answers.A separate decision about training, with no effect on search answers either way. Make it on purpose and write it in its own group.
OAI-AdsBotVisits only pages submitted as ads.Relevant only if the practice submits a page as an ad; nothing on the public site changes for it.

The mistake to look for can run either way. A rule for GPTBot may have been added in the belief that it kept the practice out of ChatGPT, which it does not do. Or a blanket rule for every bot, written to settle a privacy worry, may shut out OAI-SearchBot along with everything else. Read the file, or run the crawler access check, which reads it for all nineteen tokens and reports OAI-SearchBot, GPTBot and ChatGPT-User among them.

robots.txt is not a privacy control. It is a public file asking crawlers to stay out of certain paths, and anyone can read it. Nothing about a patient belongs on a page that a robots rule is protecting; patient information belongs behind the portal's login, which no crawler gets past in the first place.

What a crawler can reach on a practice's site, and what it cannot

A crawler receives what the server sends a visitor who has no account, no saved session and, usually, no scripts running. On a practice site that sorts the pages into three kinds: public pages in HTML, which it reads; everything behind the portal's login, which it never sees; and anything that appears only after a script runs or a file opens, which it may never see. The table goes part by part.

The parts of a practice's site, whether a crawler fetching pages can read each one, and what to do about it.
Part of the siteCan a fetcher read it?What to do
Public pages in HTML: services, new patients, insurance, offices, cliniciansYes, when nothing stands in front of themKeep the facts patients ask about here, in text
The patient portal: messages, results, intake forms, anything after a loginNo. A fetcher without an account gets the login pageNothing to change inside it. State publicly what a patient asks before signing in: how to register, what the portal is for, who to call
An online booking widget loaded by scriptUsually not; the slots and visit types appear only after the script runsWrite the booking policy in text beside it: visit types, how far ahead, the number to call
An insurance list or fee schedule in a PDFIt is a separate file, and whether a given fetcher opens it is not something to count onPut the list on an HTML page and keep the PDF as the printable copy
Hours or an announcement inside an imageThere is no text to readWrite the hours as text; keep the image if you like it
A map embed with no address beside itThe map is a frame loaded from another sitePut the address next to it in text, in the practice's fixed form
A security challenge in front of the whole siteNo. The fetcher receives the challenge, not the siteAllow the answer-side tokens in the bot settings of your host or security service

The audit measured the general version of three of those rows, and of the robots.txt decision above. Of the 9,483 sites in our audit (40 trades, 90 metros, late August to early September 2026), 7.2% sat behind bot protection that served our crawler a challenge page instead of the site, and 3.2% disallowed AI crawlers in robots.txt on purpose. 3.0% rendered their content only in JavaScript, and 2.1% kept real content such as a price list in a PDF. Each is a figure for every trade together, with no medical-practice breakdown.

On a practice site the challenge page is the row to test for, because it can arrive without anyone choosing it: security settings meant to protect the portal's login, or a host's default bot protection, can end up covering the public pages too. Scripts are the other quiet loss. Google renders JavaScript as a separate, deferred step, as its JavaScript documentation explains, and OpenAI's crawler documentation describes no such step for its crawlers. Text a patient needs goes in the HTML.

What a practice page has to carry for ChatGPT search

The facts a patient asks about, in text, on a public page, each where a patient would look for it. Which facts those are is set out in what patients ask before choosing a practice. This section is about the form they have to take for a crawler.

  • In the HTML. Open the page with scripts turned off; the words you still see are the words a fetcher receives.
  • On a public URL of its own. A page reachable only from inside the portal, or only through a search box on your site, is a page a crawler has no link to.
  • Linked from pages that are themselves linked: the new patients page one click from the homepage, each office page from the footer, each clinician's page from the office where they practice. Internal linking is how a crawler that starts at your homepage finds the rest.
  • Named and placed. The page title and first paragraph say which practice, which office and which town, so that any passage quoted from the page carries the practice's name with it.
  • Dated where the fact changes. "Accepting new patients as of [month]" gives a reader a date to judge the sentence by; an undated line gives none.
  • Repeated in markup: Physician or MedicalClinic JSON-LD with the same name, address, telephone and hours as the text, and isAcceptingNewPatients where it is true. The markup restates the page and says nothing the page does not.

None of this is a ChatGPT-only format. It is what any fetcher needs, which is why the same pages serve Claude, Gemini and Perplexity as well. We know of no file, form or markup that submits a medical practice to ChatGPT's answers, and OpenAI's crawler documentation describes none; be wary of anyone who sells one.

How to check what ChatGPT gets from your site

  1. Open /robots.txt on your domain and look for groups naming OAI-SearchBot, ChatGPT-User or GPTBot. If none of them is named, OAI-SearchBot and GPTBot follow the * group.
  2. Fetch a page the way the search crawler would and read the HTTP status code: curl -sL -A "OAI-SearchBot" -o page.html -w "%{http_code}" https://www.example.com/new-patients. A 403, a 429 or a 503 means the fetch was stopped before it reached your content. A 200 is not proof on its own, because some challenge pages return one, so open the saved page.html and check that it is your page. A security service that checks whether a visitor is the crawler it claims to be may treat your test differently from the real one; its settings or logs settle it.
  3. View the source of the new patients page, the insurance page and one office page with scripts disabled. If the words patients ask about are not in what you see, they are not in what a fetcher receives.
  4. Sign out of everything and open your public pages in a private window. If any of them redirects to the portal's login or shows a challenge, a crawler meets the same thing.
  5. Ask ChatGPT, with search on, three of your patients' questions, three times each, and open the sources linked in the answers. If your pages never appear among them and other practices' pages do, the comparison to make is between their pages and yours.
  6. Paste the address of your new patients page into ChatGPT and ask what it says about accepting new patients. That fetch is ChatGPT-User's; if the reply cannot see the page, or gets it wrong, the page is where to look.

These checks settle access and form. Whether ChatGPT then names your practice for a patient's question is something only a measurement across runs can show, and the panel that does it is in measuring a practice's AI visibility. For the facts themselves, page by page, start from the overview for medical practices.

Common questions

Does blocking GPTBot keep our practice's information out of ChatGPT?

It keeps your public pages out of what GPTBot collects for training, and does nothing about ChatGPT search: OpenAI's documentation says disallowing GPTBot does not remove a site from search answers. Patient information is a different matter. It should never be on public pages at all, and the portal's login keeps it from every crawler, whatever robots.txt says.

Our online booking comes from a third-party widget. Is that a problem?

For patients it may work well. For a fetcher that runs no scripts, the slots and visit types inside it are not there. Keep the widget and write beside it, in plain text, the visit types you book online, how far ahead, whether new patients can book that way, and the number to call instead. That text is what a crawler receives.

Can we ask OpenAI to correct what ChatGPT says about our practice?

We know of no route for a business to edit an answer directly. What you can change is what the answer draws on: your own pages first, then the listings and directories that repeat your facts. When a wrong fact persists, trace it to the page that states it; how to do that is in when AI gets facts about your business wrong.

Does allowing OpenAI's crawlers change anything for Google or Gemini?

No. Robots rules are read per token, and a group for OAI-SearchBot binds no other crawler. Google's crawlers are separate: Google's documentation says Googlebot feeds Search and the Google-Extended token controls Gemini training and grounding, with no effect on Search. Each operator's tokens are a decision of their own.

Sources

The reachability figures come from our audit below and cover every trade in it. What each OpenAI and Google token does is from its operator's documentation, and the way robots.txt groups are read is from RFC 9309.

Sources: our audit of 9,483 small-business sites, with its method · OpenAI, crawler documentation · RFC 9309, Robots Exclusion Protocol · Google, JavaScript SEO basics · Google, common crawlers

All articles