How to Get Cited by ChatGPT
ChatGPT cites sources it can reach, parse and trust. Most sites fail the first of those three, not the third. Before worrying about authority or structured data, check whether GPTBot can actually get a clean copy of your page.
Why does ChatGPT cite some sites and not others?
Three things have to go right, in order. Reach: an AI crawler has to be allowed in, both by robots.txt and by whatever bot-management rule your CDN runs. Parse: the content has to exist in the HTML a crawler actually receives, not only after JavaScript executes — Vercel and MERJ’s analysis of over 500 million GPTBot fetches found zero evidence of it executing JavaScript, and GPTBot isn’t unusual among AI crawlers in that respect. Trust: once a page is readable, structured data, dated claims and clear sourcing make it easier for a model to lift a fact and attribute it correctly.
Most sites that never get cited fail at reach or parse. That’s the boring, fixable layer, and it’s also the one nobody checks, because a page can look completely normal in a browser while a crawler sees something else entirely.
Can GPTBot reach your site?
Two separate questions get conflated here, and our audit engine checks them separately for exactly that reason. The first is what robots.txt says. The second is what the server does, regardless of what robots.txt says.
Our ai-crawlers check runs both. It reads robots.txt against a list of named AI crawlers — GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and others — and flags any that are disallowed from /. That part is a simple text-file check.
The second part is where real sites get caught out. The check also probes the live server directly with GPTBot’s, ClaudeBot’s and PerplexityBot’s real user agents — three of the eighteen named crawlers, chosen because they’re the ones a site owner is most likely to want in — and flags cases where a crawler is allowed by robots.txt but the server itself returns a 403 or a connection error anyway. That’s CDN or WAF bot-blocking — Cloudflare’s “block AI scrapers” toggle is the usual cause — and it’s invisible in robots.txt. A site owner opens their own robots.txt, sees GPTBot listed as allowed, and has no idea their edge network is quietly refusing every request from it. The check’s own finding names this precisely: an agent is “allowed by robots.txt but refused by the server,” which is a different failure than a Disallow rule and needs a different fix — the CDN’s dashboard, not a text file.
What makes a page quotable?
Reach gets a crawler in the door. What happens next depends on how the content is written. A model assembling an answer doesn’t quote your whole page — it lifts one passage.
Our geo-retrievability check measures this directly: it scans a page’s paragraphs for ones that are self-contained, complete statements of roughly 15 to 80 words — long enough to carry a real claim, short enough to survive being lifted out of context. A page written as one long wall of interdependent sentences, where paragraph three only makes sense after you’ve read paragraph one, supplies a model nothing it can quote cleanly. A page with fewer than three such passages gets flagged as having too few quotable statements to work with.
Does JavaScript get in the way?
Reach and quotability both assume the content is in the HTML at all. Our crawlability check compares the raw HTML a crawler receives against the fully rendered page a browser shows a person, and reports the ratio between them as a plain percentage. It only runs on the Deep Scan — a free run never fetches the rendered page to compare against, so this is one check the free tier can’t give you.
When raw HTML carries less than 30% of the rendered page’s text, the check raises it as critical: most of the page’s content requires JavaScript to appear, and “Crawlers that don’t run JS, which includes most AI crawlers, see almost nothing.” Between 30% and 70%, it’s flagged as a smaller but real gap. A page can read perfectly in a browser and still hand GPTBot an almost-empty document, because the browser ran the script that the crawler never did.
Does structured data help?
Once a page is reachable and quotable, structured data removes friction rather than adding proof. FAQPage schema is the clearest case: it marks a question and its answer as a distinct, machine-readable unit, so a model doesn’t have to infer where an answer starts and ends inside a paragraph. It doesn’t force a citation — nothing does — but it removes one layer of interpretation between your content and whatever a model decides to quote.
How do you check all of this on your own site?
Run the checks in order, because each one gates the next. If GPTBot is blocked, quotability and schema don’t matter — the crawler never got the page. If the page is reachable but JavaScript-dependent, the crawler got a near-empty document regardless of how well-written the missing content is. Only once reach and parse both pass is it worth tuning for quotability and structured data.
A free scan runs the reach checks — robots.txt against the named AI crawlers, and server-level bot blocking for the crawlers it probes directly — at no cost and with no signup. The JavaScript-dependency measurement, like the AI model probes, sits behind the paid Deep Scan: it runs the render step needed to compare raw HTML against what a browser actually shows, then goes on to test whether models recognise and recommend the business once reach and parse are confirmed clean.
Not sure where your site actually stands? Run the free scan to check crawler access first, add the Deep Scan to measure JavaScript dependency, try the robots.txt checker and RAG extractability scorer directly, or read the audit methodology for exactly what each check measures.
Frequently asked questions
Why does ChatGPT cite some sites and not others?
ChatGPT can only cite a page it can reach, parse and trust. Reach means an AI crawler isn't blocked by robots.txt or a CDN's bot filter. Parse means the content exists in the served HTML, not only after JavaScript runs. Trust is a mix of structured data, freshness and clear sourcing. Most sites fail at reach or parse, not trust.
Can GPTBot reach your site?
Check two things separately: what robots.txt allows, and what the server actually returns. A site can allow GPTBot in robots.txt while a CDN's bot-management rule 403s it anyway — the owner sees a clean robots.txt and has no idea the site is invisible to ChatGPT.
What makes a page quotable?
Short, self-contained passages of roughly 15-80 words that read as a complete statement on their own, without needing the surrounding paragraph for context. A model composing an answer lifts one of these, not a whole page.
Does structured data help?
FAQPage schema makes a Q&A directly quotable as a discrete unit. It doesn't guarantee a citation, but it removes one layer of interpretation between your content and the answer a model assembles.
How do I check whether ChatGPT can reach my site?
Run a free audit. It checks what robots.txt allows across the named AI crawlers, and probes the live server directly for GPTBot, ClaudeBot and PerplexityBot to catch CDN or WAF blocking that robots.txt alone can't show. JavaScript dependency is measured on the Deep Scan, which also runs the full render step.
