Outline Technologies — SEO, AEO & GEO Agency
Back to Blog
AI VisibilityDiagnostic

Why Your Website Is Not Showing Up in ChatGPT

Most sites are not invisible because the writing is weak. They are invisible because they fail one of six checks, and four of those checks take an afternoon. Here is each cause, the exact test that proves it, and how long the fix takes to show up.

Abd Shanti 15 min readPublished August 19, 2026
In This Guide
The short answerThe four ways into ChatGPTHow to test without fooling yourselfCause 1: you are blocked at the doorCause 2: you are not in the index it searchesCause 3: indexed and never retrievedCause 4: the page needs JavaScript to speakCause 5: nothing on the page can be liftedCause 6: nothing outside your site agreesThe order to check them inHow long each fix takes to showWhen every check passes and you are still absent

The Short Answer

If ChatGPT never mentions your site, the cause is almost always mechanical rather than editorial. A model can only name a page it can reach, retrieve and quote, and there are six places that chain breaks. Four of them you can test in an afternoon with a browser and a terminal. The other two take longer because they are not really about your website at all.

The order matters more than the effort. We have watched teams spend a quarter rewriting content while a single line in robots.txt kept every crawler out, and the rewrite changed nothing because nothing could read it. Work through the six causes in the order below. Each one blocks the ones under it, so a pass on check one is what makes check five worth doing at all.

The one sentence version

Being absent from ChatGPT is usually a retrieval problem wearing a content problem's clothes. Fix access first, indexation second, and only then argue about the writing.

The Four Ways Into ChatGPT

People talk about ChatGPT as if it were one system reading one index. It is four separate paths, each with its own crawler, its own rules and its own failure mode. A site can be wide open on one and bolted shut on the other three, which is exactly why the symptom looks so confusing from the outside.

Path one: training memory

GPTBot collects public pages that feed model training. This is what the model knows before it looks anything up, and it is the path behind every answer that arrives instantly with no sources attached. It is also the slowest path by a wide margin. It moves on the model's refresh schedule rather than yours, there is no button that speeds it up, and a brand that launched this quarter simply will not be in it yet.

Path two: the ChatGPT search index

OAI-SearchBot fetches pages to build the index behind ChatGPT search. This is the one most people have never heard of, and it is the one that decides whether you can be surfaced when the model actually goes looking. It obeys robots.txt, and OpenAI publishes an address file so you can confirm a visit was genuine rather than somebody wearing the name.

Path three: a third party index

Bing is the primary documented third party source behind ChatGPT search. If Bing has never indexed a page, the live search path cannot surface it, no matter how comfortable that page is on Google. This is the single most common blind spot in the whole diagnosis, because most teams have spent ten years never once opening Bing Webmaster Tools. Independent researchers have also reported Google results appearing on some paid tiers, so treat retrieval as plural rather than assuming one supplier forever.

Path four: a live fetch

ChatGPT-User pulls a page in the moment, because somebody pasted a link or the model decided to open a result mid answer. It is exempt from robots.txt because a person asked for it, and in a real server log it usually produces more traffic than every other AI agent combined. If you have ever seen a burst of fetches on one article and no visitors to match, this is what that was.

AgentWhat it feedsObeys robots.txtVerify against
GPTBotModel trainingYesopenai.com/gptbot.json
OAI-SearchBotThe ChatGPT search indexYesopenai.com/searchbot.json
ChatGPT-UserA live fetch a person asked forExempt, user actionopenai.com/chatgpt-user.json
OAI-AdsBotAd landing page checksExempt, user submittedopenai.com/adsbot.json

Blocking GPTBot but allowing OAI-SearchBot is a legitimate position. It means you are happy to be found and cited today but not used for training. Blocking both, which is what a lot of sites do without realising it, means you have opted out of the whole system. The complete AI crawler list covers every other operator with the same treatment.

How to Test Without Fooling Yourself

Most people decide they are invisible after asking one question in their own account, and that test is worthless. Three things poison it, and all three are easy to remove.

Use a session with no memory and no history

Chat history and saved memory make the model repeat things back to you that a stranger would never see. If you have discussed your company in that account before, you are not testing what ChatGPT knows. You are testing what it remembers about you specifically. Open a fresh session, turn memory off, and ask as though you had never met.

Ask the category question, not your name

Asking whether ChatGPT has heard of your brand almost always produces something, because the question hands it the answer. The question that counts is the one a buyer would type: the best tool for a job, five options for a small team, the cheapest way to solve a problem. Your name only means anything when it arrives without you having said it first.

Run it twice, browsing on and browsing off

This is the diagnostic that tells you which of the four paths is broken. With browsing off you are reading training memory. With browsing on you are reading live retrieval. If you appear with browsing on and vanish with it off, you are reachable but not yet learned, which is normal and fixes itself with time. If you vanish both ways, your problem is access or indexation and it starts at cause one. Run each version three times, because a single answer is a sample of one and these systems are not deterministic.

Cause 1: You Are Blocked at the Door

This is the most common cause and the most embarrassing one, because it is usually nobody's decision. A robots.txt rule copied from a template, a firewall rule added during a bot attack, a security plugin with a tick box called block AI scrapers, or a CDN default nobody reviewed.

The CDN default that caught thousands of sites

Cloudflare now blocks AI crawlers by default on new sites and has introduced a pay per crawl model built on HTTP 402. That is a defensible product decision and a disaster for anyone who wanted AI visibility and never opened the dashboard. If your site was set up recently and you have never explicitly allowed the OpenAI agents, assume you are blocked until you have proof otherwise.

The test

Run your domain through the AI Crawler Checker. It parses your live robots.txt the way a crawler does and tells you which agents are allowed, which are refused, and what your overall access score is. Then do the second half by hand, because robots.txt is only one of the two doors: fetch a page while identifying as an AI agent and look at the status code you get back. A 200 means you are open. A 403 or a challenge page means something above robots.txt is stopping the request, and that something is your firewall or your CDN.

The fix

Name the agents you want by hand rather than trusting a wildcard. A wildcard allow is fine until the day a security tool writes a more specific rule underneath it, and then you are refusing traffic you thought you had approved. The AI robots.txt generator writes the file with the agents grouped by what they actually do, so you can allow search and refuse training if that is the position you want. After you deploy it, fetch the file from a network that is not yours. Edge caches routinely serve the old copy for hours after the origin is correct, and a fix you cannot see from outside is not a fix yet.

Cause 2: You Are Not in the Index It Searches

You can be fully open to every crawler and still be unreachable, because being crawled and being indexed are two different events. This is where the Bing blind spot lives. Ten years of Google habits mean most teams have a Search Console account they check weekly and a Bing Webmaster Tools account they have never created, and the live search path behind ChatGPT leans on the index they are ignoring.

The test

Two minutes of work. Run a site query for your domain on Bing and count what comes back, then compare that number to the same query on Google. A site with four hundred pages on Google and eleven on Bing has found its problem. Then create a Bing Webmaster Tools property if you do not have one, submit your sitemap, and read the index coverage report rather than guessing from the site query, which is only ever an approximation.

The fix

Verify the property, submit the sitemap, and then turn on IndexNow so you stop waiting to be discovered. IndexNow is a small protocol with an outsized effect: you host a key file, and every time a page changes you post the URL and the participating engines come and look. On the properties we run it is wired into the deploy itself, so the last step of shipping is announcing what shipped. The gap between publishing and being fetched drops from weeks to hours, and it costs nothing but the twenty minutes it takes to set up.

One warning while you are in there. If Bing shows your pages as indexed and you still cannot be found for anything, look for the difference between a page being in an index and a page being eligible to be served from it. We have seen a domain sit in that state for two months, fully indexed, zero impressions, with a spotless dashboard the whole time. Automated resubmission did nothing because nothing was broken in the way the tools measure broken. What resolved it was a support ticket describing the exact date the impressions went to zero and asking for a human review. That is a rare failure mode, but it is invisible from every report you have, so it is worth knowing it exists before you rebuild a working site.

Cause 3: Indexed and Never Retrieved

Now the harder one. Your page is open, it is indexed, and it is still never in an answer. This is not a bug. It is the system working exactly as designed and deciding you are not one of the sources worth pulling.

When a model searches, it does not read the whole index. It pulls a handful of results for a rewritten version of the question and works from those. If you sit outside that handful, you are as absent as a site that was never crawled. The uncomfortable part is that the handful is small, so being on the second page of a search nobody scrolls is functionally the same as not existing.

The test

Stop searching your brand name and start searching the question. Take the exact phrasing a customer would use, run it on Bing, and write down the first ten results. If you are not among them, you have your answer, and no amount of schema will change it. Do this for five questions rather than one, because the pattern across five is a finding while a single miss is noise.

The fix

Two moves, and the first one is uncomfortable. Pick questions you can actually win. A four page consultancy competing for a query owned by three encyclopaedias and a government portal is not going to be retrieved this year, and choosing a narrower question is not a retreat, it is the only path that ends in a citation. The second move is to be the most specific answer available for the question you chose. Retrieval favours pages that visibly contain the answer rather than pages that discuss the topic, which is the same discipline covered in the 2026 technical SEO checklist and the reason answer first structure keeps coming up.

Cause 4: The Page Needs JavaScript Before It Says Anything

A page can be open, indexed and still arrive empty. Load it in a browser and it is perfect. Fetch it the way a machine does and it is an empty container with a script tag where the words should be. Every check you run by habit is run by a browser, which is why this failure survives so long undetected.

The reason it matters more for AI than for search is patience. A large search crawler will often come back and render the page in a later pass. A live fetcher has a person sitting in front of a spinning cursor and will not run your application to find out what it says. If your words only exist after your JavaScript runs, the fetcher that arrives on behalf of a real user takes the empty version and moves on.

The two number test

Fetch the raw HTML of a page and count the words in it. Then render the same URL in a headless browser and count the words again. If the first number is a fraction of the second, the difference is precisely what machines cannot read. On a healthy page the two numbers are within a rounding error of each other. Run it on your three most valuable pages before you assume your framework is handling it, because most frameworks can do this correctly and are frequently configured not to.

The fix

Serve the words in the document. Static generation, server rendering, or a prerender layer in front of the app all get you there, and which one you pick matters far less than the outcome. This is not an argument against JavaScript. Interactive parts of a page can stay interactive. The rule is only that the sentences a model would quote have to arrive in the response rather than after it.

Cause 5: Nothing on the Page Can Be Lifted

You pass every technical check, you rank respectably, and you are still not quoted. At this point the problem is that the page contains no sentence a model can take away and stand behind.

A model composing an answer is looking for something it can lift cleanly and defend if challenged. Hedged prose, three qualifiers per claim and a conclusion that only arrives in paragraph nine are all easy to read and impossible to quote. The pages that get cited tend to answer their own question early, in a sentence that survives being removed from its surroundings.

The first hundred words decide

Read the opening of your page as a stranger rather than as the person who wrote it. If the answer to the question in the title is not in there, you have written an introduction and not an answer. Move the conclusion to the top. Nobody has ever left a page because it told them what they came for too quickly.

Write claims that survive being quoted

Not quotable

Our platform can help businesses of all sizes improve their visibility across a range of AI powered surfaces through a comprehensive suite of optimisation services.

Quotable

An AI visibility audit takes two weeks, covers ChatGPT, Perplexity and Google AI Overviews, and ends with a ranked list of the pages blocking your citations.

The second version is shorter, more specific and far riskier, which is exactly why it gets used. It contains a duration, a scope and an outcome. One claim per sentence, numbers instead of adjectives, and your own name where a pronoun would be, since a quoted sentence carries whatever name is inside it and none of the ones around it.

Cause 6: Nothing Outside Your Site Agrees With You

The last cause is the one you cannot fix on your own server, and for a lot of brands it is the real one. A model asked to recommend something is making a small bet on your behalf. One source saying you are good is a claim. Several independent sources saying the same thing is a fact it can repeat without much risk.

This is why comparison posts, category roundups, directories, forum threads and review platforms matter more than their traffic ever suggests. Those pages get pulled constantly because they answer the shape of question people actually ask, and a brand that appears on several of them is a brand the model has seen corroborated in more than one place.

The test

Search your category on Bing and Google without your brand name anywhere in the query, then write down every company named on the first two pages. That list is roughly what a model has to work with when somebody asks about your category. If you are not on it, you now know why you are not in the answer, and you also know exactly which pages you need to be on.

The fix

Earn mentions on pages you do not own. Get into the roundups that already rank, keep your directory listings consistent down to the punctuation of your company name, answer questions in the communities where your buyers actually are, and make sure the description of what you do is the same sentence everywhere. Models resolve identity by agreement, so two versions of your own story do more damage than one thin version. That work is slower than everything above it and it compounds, which is the argument for starting it in parallel rather than last.

The Order to Check Them In

Work down this table. Anything marked as blocking makes the checks below it meaningless until it passes, which is why the cheap ones come first.

CheckTimeBlockingProof it passed
Crawler access10 minutesYes200 response to an AI agent from outside your network
Bing indexation15 minutesYesIndex coverage report shows your key pages
Rendering10 minutesYesRaw word count matches rendered word count
Retrieval position20 minutesNoYou appear in the top ten for five real questions
Quotable contentPer pageNoThe answer is in the first hundred words
Outside corroborationMonthsNoYour name appears on pages you do not own

How Long Each Fix Takes to Show

The most common reason a team gives up is that they expected the wrong timeline. These are the windows we plan around. They assume the fix is real and deployed, not staged.

FixFirst signSettled
Unblocking the crawlers2 to 7 daysAbout 2 weeks
Bing indexation with IndexNow1 to 5 daysAbout 3 weeks
Live retrieval once indexedSame daySame day
Server rendering the contentNext crawlAbout 2 weeks
Rewriting pages to be quotable2 to 6 weeksAbout 3 months
Third party mentions4 to 12 weeks6 months and ongoing
Training memoryNext model refreshNot in your control

The row people find hardest to accept is the last one. Nothing you ship this month changes what the base model already believes. If a model states something outdated about you with total confidence and no browsing, the correction lands in the sources first and in the model much later. That is not a reason to skip the work. It is a reason to start it before you need it, and it is covered in full in the AI reputation management guide.

When Every Check Passes and You Are Still Absent

Sometimes you run all six, everything is clean, and the model still names somebody else. At that point the honest reading is that the machine is not malfunctioning. It has looked at the evidence available about your category and concluded that another company is the better answer to that question.

That is a positioning problem rather than a technical one, and it is fixable, just not with a tag. Either you become the obvious answer to the question you picked, or you pick a question where you already are. The second option is usually the faster one and almost nobody takes it, because narrowing feels like losing until the first citation arrives.

One thing worth knowing before you read your logs

Plenty of traffic wears an AI crawler name without belonging to one. On sites we monitor, a substantial share of requests claiming to be GPTBot or ClaudeBot were probing for config files and credentials, which is not what a real crawler does. Before you draw any conclusion from a user agent string, check the address against the published verification file for that agent. A name in a log is a claim, not an identity.

The Thirty Minute Version

If you only have one sitting, do these in this order and you will find the cause in most cases.

1Fetch your robots.txt from outside your network and read it line by line for OpenAI agents.
2Run the domain through the AI Crawler Checker and note the access score.
3Request a key page while identifying as an AI agent and confirm you get a 200, not a challenge.
4Run a site query for your domain on Bing and compare the count to Google.
5Create the Bing Webmaster Tools property, submit the sitemap, enable IndexNow.
6Fetch one page raw, count the words, render it, count again, compare the two numbers.
7Search five real customer questions on Bing and record whether you appear in the top ten.
8Read the first hundred words of your best page and ask whether the answer is in there.
9Search your category with no brand name and write down who does get named.

Nine steps, one afternoon, and at the end of it you will know whether you have an access problem, an indexation problem, a retrieval problem or a positioning problem. Those four need completely different budgets and completely different people, which is the entire reason it is worth finding out which one you have before anybody starts writing.

The Bottom Line

Invisibility in ChatGPT feels like a judgement on your content and it usually is not. It is a door that was never opened, an index nobody submitted to, or a page that says nothing until a script runs. Those three account for most cases we see and all three are cheap to fix once you know which one you have.

What is left after that is the slow work: being retrievable for questions you can win, writing sentences that survive being quoted, and getting other people to say the same thing about you. That part does not finish. It compounds, and the brands that started it early are the ones getting named today.

Frequently Asked Questions

Why is my website not showing up in ChatGPT?

Almost always because of one of six mechanical causes rather than the quality of your writing. In order of how often we find them: AI crawlers are blocked by robots.txt or a CDN default, the site is not in the Bing index that ChatGPT search leans on, the page needs JavaScript before it says anything, the page is indexed but never in the handful of results a model actually pulls, there is no sentence on the page worth quoting, or nothing outside your own domain corroborates what you claim. Check them in that order, because each one makes the ones under it pointless until it passes.

Does ChatGPT use Bing or Google?

Bing is the primary documented third party index behind ChatGPT search, and OpenAI also runs its own crawler, OAI-SearchBot, to build a search index of its own. Independent researchers have reported Google results appearing on some paid tiers as well, so the safest assumption is that retrieval is plural and can change. The practical consequence does not change either way: if Bing has never indexed a page, the live search path cannot surface it, no matter how well that page performs on Google.

How long does it take ChatGPT to find a new website?

Unblocking crawlers shows up in 2 to 7 days. Bing indexation with IndexNow enabled usually lands in 1 to 5 days and settles inside 3 weeks. Live retrieval works the same day a page is indexed. Training memory is the slow one, because it only changes when the model is refreshed and that schedule is not yours. So a new site can be quoted through the live search path within a week while the base model still has never heard of it.

Should I allow GPTBot if I do not want my content used for training?

No, and you do not have to choose all or nothing. GPTBot feeds model training and OAI-SearchBot feeds the ChatGPT search index, and both obey robots.txt, so you can refuse GPTBot and still allow OAI-SearchBot. That combination means you can be found and cited today without your pages being used for training. ChatGPT-User is a live fetch a person asked for and is exempt from robots.txt, which is why it keeps appearing in logs on sites that believe they blocked everything.