Why Isn’t My SaaS Showing Up in ChatGPT? A Diagnostic Walkthrough

Five causes produce the same symptom. A ten-prompt diagnostic set, a way to read the results, and the causes in the order worth checking.

If your SaaS company does not appear when someone asks ChatGPT about your category, the cause is almost always one of five things, and in the audits we run the most common by a wide margin is that a crawler was blocked years ago by somebody who has since left. The reason this is worth diagnosing rather than guessing at is that all five causes produce an identical symptom, which is your absence, so the symptom itself tells you nothing about which one you have.

That is the whole problem with this question. You cannot see the retrieval pipeline, you get no error message, and there is no equivalent of a rankings report to check. What you get is a confident answer about your category that names three competitors and not you.

This walkthrough gives you a prompt set you can run in twenty minutes, a way to read the results, and the five causes in the order they are worth checking. None of it needs a tool or a budget.

The five causes, ranked by how often we find them

CauseWhat is happeningHow often we find itTime to fix
BlockedA crawler is disallowed, often unintentionally and often years agoMost commonMinutes, then days to take effect
EmptyReachable, but the content only exists after JavaScript runsCommonWeeks, and it is engineering work
AmbiguousYour name does not resolve to a distinct thing in the worldCommon, and usually undiagnosedMonths
UnquotablePresent and retrieved, but no passage answers anything standaloneLess common than soldWeeks
UnmentionedNo third party discusses you, so nothing corroborates youCommon for newer companiesQuarters
Check them in this order. The first two are cheap and the last is slow, so finding out early which one you have decides where the money goes.

The expensive mistake is starting at the bottom. Content rewriting is what most agencies sell, so it is what most companies buy first. It fixes the fourth cause. If you have the first, you can rewrite every page on your site and change nothing at all, because nothing is being fetched.

First, get a baseline you can trust

Before diagnosing anything, establish what is actually happening, because most people asking this question have checked once, seen a bad answer, and drawn a conclusion from a single sample.

Two causes stack to make one check unreliable. The set of documents retrieved changes as the index changes, and the model samples probabilistically when it writes. Published research measuring one model across sampling temperatures found the number of distinct outputs for identical inputs rising by several hundred percent between its most and least deterministic settings. So a single run is an anecdote.

The fix is unexciting. Run a fixed set of questions, run it twice on different days, and write down what you get. Below is the set we start every audit with. Replace the bracketed parts with your own category and product, keep the structure, and do not improvise new questions between runs or the two runs stop being comparable.

#PromptWhat it actually tests
1What are the best tools for [the job your product does]?Unaided category presence. The hardest and most valuable one
2What is the best [your category] software for [your customer type]?Whether you show up when the buyer is qualified
3Compare the leading [your category] tools and explain the trade-offsWhether you make a shortlist rather than a single answer
4What should I look for when choosing [your category] software?Whether your framing shapes the criteria, even unnamed
5What is [your company name]?Entity resolution. If this fails, everything upstream fails
6Who are [your company name]’s main competitors?Which set the engine believes you belong to
7How much does [your company name] cost?Whether stale or invented pricing is circulating
8What are the downsides of using [your company name]?Which criticisms have stuck to your name
9Is [your company name] better than [your closest competitor]?Head to head framing, and who gets the benefit of it
10[A specific technical question your product solves]Whether your documentation is being used at all
Ten prompts, run twice on different days, across every engine your buyers use. Record which names appear and in what order.

Run all ten in at least ChatGPT, Perplexity, Claude and Google’s AI Mode. That part is not optional, because each maintains its own corpus and being absent from one while present in another is itself a diagnostic result rather than an inconsistency.

Ten prompts, four engines, two runs

That is eighty individual runs to do this properly, and the recording is more tedious than the asking. We run exactly this set as a free AI visibility check and send back the raw answers rather than a score, so the baseline is yours to keep whether or not you ever work with us.

Reading what comes back

The pattern across prompts 1 to 4 versus prompt 5 tells you most of what you need. Here is how the combinations map onto causes.

Reading your prompt-set results to identify the cause If asking what your company is returns nothing or the wrong company, you are either blocked, rendering client side, or ambiguous, and you should check server logs first. If it describes you correctly but category questions never name you, you are either unquotable or unmentioned. If category questions name you but with wrong details, you have a stale representation problem. Prompt 5: “What is [your company]?” start here, not with the category questions Nothing, or the wrong company it does not know you exist Correct, but vague it knows you, barely Correct and detailed it knows you well Cause 1, 2 or 3 blocked, empty or ambiguous Go to your server logs before you touch any content Cause 4 or 5 unquotable or unmentioned Check prompts 1 to 4 absent there too means cause 5 Not a visibility problem check prompts 7 and 8 instead You have a representation problem stale facts, wrong price, old positioning If results differ sharply between engines, the cause is corpus presence, not content quality. The same content cannot be well written for one engine and badly written for another.

Start with whether the engine knows you exist. Everything else is downstream of that answer.

Cause one, you are blocked at the door

Open your own robots.txt in a browser. Not the one in your repository, the one your live domain actually serves, because a content delivery network or security layer can inject rules that never existed in your codebase. We have found blocks nobody at the company knew about, added by a person who left two years earlier.

The file works per user agent, following the convention originally documented at robotstxt.org and later standardised. The detail that catches companies out is that one provider runs several agents doing unrelated jobs. OpenAI documents four, and only one of them governs whether you can appear in ChatGPT’s search results.

So the question is not whether you block AI crawlers. It is which ones. Blocking the training crawler while remaining fully retrievable is a supported configuration, and it is the one most companies actually want once the distinction is explained to them. Blocking the search agent removes you from the product your buyers are using.

Then read your server access logs for the last thirty days and count requests by user agent. This is the only check in this article that reports what actually happened rather than what should happen. Three outcomes and each means something different.

  • Zero requests. Nothing is reaching you. Either robots.txt is turning them away or something upstream is, and no content work matters until this changes.
  • Requests returning 403 or 429. Worse than a block, because it looks like access is allowed. A firewall or rate limiter is refusing them, which is common when bot protection is set aggressively.
  • Healthy requests returning 200. You are being fetched and still not cited, which rules out causes one and two and sends you down the list.

If that came back at zero, stop here.

Zero retrieval agent hits over thirty days means nothing downstream matters yet, and it also means your fix is probably one line long. This is the single most common finding in the audits we run and the cheapest one to resolve.

Not sure how to read your log output, or do not have access to it? Send us the domain and we will check it for you.

Cause two, they arrive and find an empty room

A crawler fetching your page gets whatever the server returns before any JavaScript executes. If your content is assembled in the browser, some pipelines see an empty shell with a loading spinner. Google renders JavaScript. It is unwise to assume every retrieval system does, and most of them publish nothing about it either way.

Test it in thirty seconds. Disable JavaScript in your browser and load your most important page. What remains is roughly the pessimistic case. If the page is blank, you have found something worth engineering time, and Bing’s webmaster guidelines are a reasonable statement of the baseline expectations, since they cover crawlability and rendering in terms that apply well beyond Bing.

While you are there, check your response headers rather than only your HTML. An X-Robots-Tag carrying noindex is invisible in the page source and instructs compliant systems to leave the page out entirely. It is a rare problem and a devastating one, and it takes one command to rule out.

Cause three, your name does not resolve to a thing

This is the cause almost nobody diagnoses, and prompt 5 is the test for it. Ask what your company is. If the answer describes a different company, hedges, or blends you with something else, retrieval is not your problem. Identity is.

The pattern is worst for companies named after a common noun, named similarly to a larger firm in another sector, or recently renamed. A system that cannot tell which thing your name refers to will not confidently attach a recommendation to it, because the risk of being wrong is high and hedging is cheap.

What helps is boring consistency. State the same facts about yourself in the same way on your own site, in your structured data, and in every third-party profile you control. Point your structured data at authoritative records of your entity where they exist. Almost nobody does this last part, which is what makes it available to you.

Cause four, retrieved but not quotable

You are fetched, indexed and understood, and still nothing gets lifted. Usually this means no single passage on your site answers a question on its own.

Test one page by hand. Take the paragraph that should win, read it with nothing above or below it, and ask whether it still answers anything. If it depends on the heading, on the previous paragraph, or on a phrase like as we saw above, it is not extractable. That is not a writing-quality judgement. Well-written prose fails this test constantly, because good prose builds on itself and retrieval reads fragments out of order.

The fix is narrow. Put the subject, the number and the claim inside the same sentence. Say the thing rather than referring back to it.

Cause five, nobody else talks about you

Answer engines hedge when a claim rests on a single source, and that single source being you makes it worse rather than better. Your own site asserting that you are the leading option in your category carries almost no weight. Third-party corroboration does.

This is the slowest cause to fix and the one with no shortcut. It means being present in the places that discuss your category, having reviews on the platforms buyers consult, and publishing data or frameworks that other people have a reason to cite. Where a public reference record for your company would help, the relevant bar is a notability standard written to be independent of what you say about yourself, which is a useful and slightly uncomfortable mirror to hold up.

Newer companies should expect this cause and plan around it rather than treating it as a failure. There is no configuration change that makes the internet have been discussing you for three years.

Telling a retrieval problem from a reputation problem

The five causes above all describe absence. There is a second family of problem that looks similar in a report and needs the opposite response, which is being present and described badly. Confusing the two wastes a quarter, so it is worth separating them explicitly.

A retrieval problem means the machine cannot get to you or cannot use what it finds. A reputation problem means it can do both and what it says is unflattering, outdated or wrong. Prompts 7 and 8 exist to catch the second kind, which is why they are in the set even though they feel uncomfortable to run.

SignalRetrieval problemReputation problem
Prompt 5 resultBlank, hedged or the wrong companyAccurate and specific
Prompt 8 resultGeneric downsides, or none offeredA consistent, specific criticism every time
Server logsZero hits, or 403sHealthy traffic, 200s
Across enginesPresent in some, absent in othersThe same story everywhere
What fixes itAccess, rendering, structurePublishing, correcting, third-party sources
Who owns itEngineeringMarketing and, sometimes, the product
The row that decides it fastest is the server log. Traffic arriving normally rules out most of the retrieval family in one command.

The uncomfortable version of this distinction is that a reputation problem is sometimes accurate. If every engine independently reports the same weakness, and your logs show healthy crawling, and your entity resolves cleanly, then the machines are not misinformed about you. They are summarising what the market has written down. That is a product and positioning conversation rather than a visibility project, and no amount of schema will touch it.

We would rather tell you that at the start of an engagement than four months into one.

What to do this week

  1. Read your live robots.txt. Note every AI agent named and whether it is allowed. Do not assume it matches your repository.
  2. Count AI agent hits in your logs over thirty days. Zero means stop here and fix that. A 403 rate means talk to whoever owns your firewall.
  3. Run the ten prompts across four engines, twice. Record which names appear. This is your baseline and you will want it later.
  4. Load your key page with JavaScript disabled. If it is blank, you have found the constraint.
  5. Read one paragraph out of context. If it needs its surroundings, you know what the content work actually is.

Whichever step fails first is where the budget belongs. Working them in order is the entire method, and the order matters more than the individual techniques.

Frequently asked questions

How long until ChatGPT picks up a fix?

Unblocking a crawler that was already trying to reach you can show up within days, because the fetching resumes immediately and the corpus updates from there. Entity and third-party work runs on months or quarters. Anyone quoting you a timeline before asking which of the five causes you have is guessing.

Why do I appear in Perplexity but not ChatGPT?

Because they are separate systems with separate crawlers and separate corpora. Divergence between engines points at corpus presence rather than content quality, since the same page cannot be well written for one and badly written for another. Check your robots.txt rules per agent, since a rule naming one company’s crawler does nothing about another’s.

Does adding schema markup fix this?

Not on its own, and not for causes one, two or five. Structured data helps a system that already reaches you understand what it is looking at, which is genuinely useful for the ambiguity cause. It cannot do anything for a page nobody is permitted to fetch.

ChatGPT says something wrong about my pricing. How do I correct it?

Not with a takedown, since there is nothing to take down. Publish the current figure somewhere unambiguous and easy to lift, make sure the page is fetchable, and remove or update the old pages carrying the stale number. Then re-run prompt 7 over several weeks. Stale facts decay slowly and they do decay.

Should I just block AI crawlers instead?

It is a legitimate choice, particularly given how little traffic these platforms return relative to what they fetch. Make it deliberately rather than by accident, and make it per agent, because training crawlers and search crawlers are separately controllable and blocking the wrong one costs you the visibility while protecting nothing.

Is this different for a small company?

The first four causes are identical and equally fixable at any size. The fifth is harder when you are new, and retrieval works on passages rather than whole sites, so one genuinely excellent answer to a narrow question can be quoted ahead of a much larger competitor whose answer is buried in a brochure.


For the model underneath this walkthrough, the complete guide to AEO sets out the five gates between your content and a citation, which the five causes here map onto directly.

Five causes, and you can rule out three of them before lunch.

Read the file, count the log hits, load the page without JavaScript. If those come back clean, your problem is entity resolution or corroboration, and that is worth a proper look.

Send us your domain for a free AI visibility check. You get the raw prompt-set answers, the log finding and a named binding constraint, and the honest outcome is sometimes that the fix takes you ten minutes and costs nothing.

Shaban Asif, founder of Uncited Brands

Founder, Uncited Brands

Shaban Asif

Shaban runs answer engine optimisation for B2B SaaS companies at Uncited Brands. He works the unglamorous end of the problem, mostly crawler access, retrieval diagnostics and measurement baselines, and publishes the tests that do not go his way alongside the ones that do.

Connect on LinkedIn