Why Isn't My Site Showing Up in ChatGPT? A Diagnostic Checklist
A concrete, checkable list of the reasons ChatGPT skips a site, and how to tell which one is yours in about a minute.
Example readiness readout
ChatGPTnot named
Perplexitynamed
Gemininot named
Claudenot named
Illustrative only. Your real readout comes from a free scan.
You already asked ChatGPT why it doesn't mention your site. It gave you a tidy list of best practices.
Here is the problem with that answer: ChatGPT cannot open your live page and check it.
It does not know your H1. It cannot see your schema. It is guessing from general rules, not from your actual HTML.
So you got advice, not a diagnosis. This post gives you the diagnosis: a checklist of the specific reasons an engine skips a page, and how to tell which one is yours.
The old way leaves you guessing
The old way is to read a blog post, nod along, and change three things you hope are the cause.
You cannot see what an engine sees, so you are optimizing blind. You ship a fix and wait. Nothing tells you if it landed.
The new way is to check. Point a scan at the page, see whether ChatGPT, Perplexity, Gemini, and Claude actually name it, and read back exactly which reason is blocking you.
Knowing the rules is not the same as knowing your page passes them. That gap is the whole game.
The checklist: why an engine skips a page
Most misses trace to one of these. Walk down the list and find yours.
1. The page is unreadable structure
Your content lives inside tabs, accordions, or a wall of JavaScript that renders after load. A human sees it fine. A model fetching the raw page may get an empty shell.
Check: view the page with scripts off. If the answer is gone, the engine may never see it either.
2. There is no direct answer on the page
The model wants a sentence it can lift. Your page has a mood, a story, and a buried point. It does not have "X costs $Y" or "the three options are A, B, and C" in plain text.
Engines quote pages that answer. They skip pages that circle.
3. There is no schema describing what the page is
Schema is the machine-readable label that tells an engine "this is a product, this is its price, this is the FAQ." Without it, the engine has to infer everything from prose.
No schema is not fatal, but it is a handicap, especially against a competitor who has it.
4. Crawlers are blocked
Your robots.txt, a firewall rule, or a bot-protection setting may be turning AI crawlers away at the door. If the fetcher gets a 403, nothing downstream matters.
Check: confirm the AI user-agents are allowed to fetch the page at all.
5. The content is thin
Two paragraphs and a contact form do not give an engine enough to work with. There is no substance to quote, compare, or trust.
6. The answer is buried under everything else
The page has the answer, but it arrives on line 80, after a hero image, a newsletter prompt, three testimonials, and a long preamble.
A model fetching the page reads top-down and weights what comes first. If your answer is below the fold of the raw HTML, it competes with noise for attention.
Move the direct answer up. Put the price, the comparison, or the definition in the first screen of text, not the last.
7. A stronger page already owns the answer
Sometimes nothing is broken on your side. A competitor simply published a clearer, better-structured answer, and the engine prefers it.
This one you cannot see from your own page. You have to look at who the engine names instead of you.
That is why a scan checks competitors too, not just your URL in isolation.
You cannot eyeball most of this
Read that list again. Items 1, 3, 4, and 6 are invisible from the rendered page in your browser.
You need to fetch the page the way a machine does, parse what comes back, and put your result next to your competitor's. That is a scan, not a read-through.
This is exactly the wedge: an engine can recite the rules, but it cannot audit your specific URL. A scan can.
Hard for engines to read
<p>We help businesses grow their
online presence with solutions
tailored to their needs.</p>
Machine-readable
{
"@type": "FAQPage",
"name": "How we help",
"description": "..."
}
Same page, made readable to engines.
Here is what the readout looks like in practice. You enter a URL. The scan fetches the page as a machine would, checks the structure and the schema, and asks the four engines whether they name you.
You get back a readiness score and a plain count: how many of ChatGPT, Perplexity, Gemini, and Claude returned your site, and which checklist items are failing. If a competitor was named instead, you see who.
That turns "ChatGPT doesn't like me" into "item 2 and item 3 are failing on this page, and here is the competitor it picked." Now you have something to fix.
The mechanism behind it is simple to say: scan to see what engines can read, fix the structure that is blocking them, watch as the engines and your content change, then re-scan to prove the gap closed. You can read the full method on the how it works page.
Why does the watch matter, and not just the one-time fix? Because two of the three things that decide your readiness are not yours to freeze.
Your own pages change as you publish and edit. The engines change too: they update models, adjust how they parse pages, and shift which signals they trust. A page that read fine in March can read poorly in June without you touching a line.
A one-time audit is a photograph. Readiness is a video. The checklist above is not something you pass once; it is something that drifts, which is why the loop re-checks rather than declaring you done.
The honest part: markup cannot save an empty page
Here is the damaging admission. If your page genuinely answers nothing, no amount of schema fixes that.
Structure makes a real answer legible to a machine. It cannot manufacture an answer that is not there. If item 2 and item 5 are your problem, you have a writing job before you have a markup job, and Citedon will tell you that rather than dress up thin content.
We also do not promise ChatGPT will cite you after a fix. Citations are probabilistic and the engines change their minds. What we promise is that you will know whether your page can be read, and that you will keep knowing as that shifts.
And if you are not on WordPress, the scan still works and the diagnosis is still yours, but the automated fix layer does not apply. You would apply the fixes by hand.
Where to start
Run down the checklist on your most important page first: the one you would want an engine to quote.
If you want the invisible items checked for you, scan the URL and read which of the four engines name it today. That is the fastest way to learn which reason is yours.
Alex is an AI engineer at Citedon, where they work on the scan engine that measures how readable a site is to ChatGPT, Perplexity, Gemini, and Claude, and on the fixes that make a site agent-ready and keep it that way as the models change. Alex writes about answer engine optimization, structured data, and the practical work of staying readable to AI engines.