Why your site is not showing up in ChatGPT

In my experience it comes down to four causes, and the first one is a single line in a file you can read in about thirty seconds.

When someone tells me ChatGPT never mentions their site, the cause is usually one of four things. Check them in this order, because the early ones are cheap to rule out and the later ones take weeks. The numbers below come from my census of the Tranco top 5,000. For an answer about your own domain, the free checker reports what an AI crawler receives from your robots.txt and your homepage.

1. Your robots.txt blocks OAI-SearchBot

OpenAI runs more than one crawler and they do different jobs. GPTBot collects pages for model training. OAI-SearchBot fetches pages so ChatGPT Search can cite them in an answer. A block on OAI-SearchBot removes you from ChatGPT citations completely, and no amount of content work will get you back while that line is in place. A block on GPTBot leaves your citation eligibility alone, because GPTBot only feeds training.

This distinction gets missed constantly. In my crawl of the Tranco top 5,000 on 2026-09-07, 2,771 sites served a robots.txt. Of those, 535 (19.31%) block GPTBot and 241 (8.7%) block OAI-SearchBot. 238 sites block GPTBot and OAI-SearchBot together, while 297 block GPTBot on its own. Close to half of the sites that opted out of OpenAI training also removed themselves from ChatGPT's answers.

The census covers three AI search crawlers. Alongside OAI-SearchBot, PerplexityBot is blocked by 241 sites (8.7%) and Claude-SearchBot by 250 (9.02%). Counting all three, 296 sites block at least one AI search crawler while still allowing Googlebot. A robots.txt file records what a site blocks without recording why, so these counts say nothing about intent. Leaving Googlebot allowed while blocking an AI search crawler reads to me like an oversight, which is my inference and not a census finding.

Open https://yourdomain.com/robots.txt and look for those names. The accidental version usually looks like this, written by someone who listed every OpenAI user agent they could find:

User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: OAI-SearchBot
Disallow: /

A grouped block like that applies the Disallow to all three names. If you want the training opt-out and you also want to stay eligible for citations, split the groups apart:

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

An empty "Disallow:" line does the same job as "Allow: /". Either form works. If you have no robots.txt at all, or the file returns an empty 200, crawling is allowed and this is not your problem.

While you are in the file, check Google-Extended. It controls whether your pages are used for Gemini model training, and it has no effect on Google Search or on AI Overviews. Googlebot governs both of those. I regularly see people block Google-Extended believing they have opted out of AI Overviews, which is not what happens. 459 sites (16.56%) block Google-Extended. There is a per-crawler breakdown on the crawler reference pages, and a longer argument about the training opt-out in should I block GPTBot.

Check this first: load your robots.txt and search it for OAI-SearchBot. If that name sits in a group with a Disallow, you have your answer, and nothing else on this page matters until it is fixed.

2. Your homepage is empty without JavaScript

AI search crawlers fetch HTML, and for planning purposes you should assume they do not run your JavaScript. If your page ships an empty div and builds the content client side, the crawler receives a shell with a nav bar and a footer around it.

On 2026-08-31 I fetched homepages across Tranco ranks of roughly 10,000 to 10,700, once each, without executing any JavaScript. 900 were attempted and 607 came back. Of those, 481 (79.2%) had readable text. 97 (16.0%) returned under 250 characters, which I count as invisible. Another 29 (4.8%) came back thin, under 800 characters. About one in six of the homepages I could fetch is blank to anything that does not execute scripts.

From the same pull, 58.0% had no JSON-LD structured data and 26.4% had no meta description. A page can still be cited without either of them, and having both makes it easier for an engine to work out what the page is about.

Testing this takes a minute. Turn off JavaScript and reload your homepage, or use view-source and look for your body copy in the raw HTML. If the words are missing from the source, server-side rendering or prerendering is the repair. Does ChatGPT see my website covers the diagnosis in more detail.

3. The page does not answer the question being asked

ChatGPT cites pages that contain a usable answer to the specific question in front of it. A page organised as a pitch, with the substance held back until someone fills in a form, gives the model nothing to quote. On sites that are technically fine, this is usually what I end up pointing at. I have no census behind that ranking. It is an impression from the sites people bring me.

Write the answer inside the first hundred words, in plain sentences that include the specifics. If the page is about pricing, put a number on it. If it is a how-to, put the steps in the HTML where they can be read. Pages that hedge get passed over for pages that commit to something. How to rank in AI search covers the content side properly.

4. The engine does not know your site yet

If the site is new, or has almost no inbound links, there may be nothing to fix. AI search engines lean heavily on existing search indexes and on links they can follow, so a page nobody links to is hard to discover. Get indexed in classic search first, then earn mentions on pages that already get crawled often. There is no submission form for ChatGPT and no way to pay for inclusion.

Where llms.txt fits

llms.txt is an emerging optional convention, a markdown file at /llms.txt that points an AI system at your important pages. No major AI search engine has confirmed it is used as a ranking or citation input, and it is not required in order to be cited today, so adding one will not repair a robots.txt block or a blank homepage. Adoption is real and still small: on 2026-09-06 I found a valid llms.txt on 373 sites, 7.46% of the 4,999 domains checked. If you want one, the llms.txt generator and validator will build and check it.

Where the limits are

Eligibility is the part that sits with you. The crawler has to be allowed in, and the HTML it receives has to carry text that answers a question someone actually asks. Past that point the engine decides, and it changes without notice. There is no ranking dial and no support queue for any of this, so anyone promising you placement in ChatGPT answers is selling something they cannot deliver.

The full crawler census sits on the data page, with the named list on who blocks AI search. The rest of the guides cover the constructive version, starting with how to show up in ChatGPT. To test a domain, run the checker and it will tell you which of the four causes applies.