SIGNALS
AEO Guide · Diagnostics

How to Check If AI Can Read Your Website

TL;DR

Before any AI engine can cite your website, three things have to be true: its crawler can reach the page, the content renders as readable HTML rather than script-dependent content, and the engine can extract a clean, self-contained answer from it. You can check all three yourself. The most common silent failure is a page whose content only appears after JavaScript runs, or a robots.txt that blocks the AI crawlers — both of which make a perfectly good page invisible to AI with no error anyone notices.

Why "readable to AI" is a separate question from "looks fine to me"

A page can look perfect in your browser and be unreadable to an AI engine, because your browser runs JavaScript, applies styles, and renders the full experience — and an AI crawler often does not. What the engine sees can be a stripped-down version, or an empty shell if the real content loads only after scripts execute. So "my site looks great" tells you nothing about whether AI can read it. You have to check what the crawler sees, not what you see.

There are three gates a page passes before it can be cited: reachability, readability, and extractability. A failure at any one makes the page invisible, and each is checkable.

Check 1 — Can the AI crawlers reach your pages?

The AI crawlers reach your pages only if robots.txt lets them, so look at yoursite.com/robots.txt first and confirm it does not block the agents that make a page eligible to be cited: OAI-SearchBot (ChatGPT), Claude-SearchBot (Claude), PerplexityBot (Perplexity), and Googlebot, which is what crawls for Google Search and therefore for AI Overviews and AI Mode as well. A common, costly mistake: a site blocks ClaudeBot to keep its content out of AI training and accidentally blocks the search and fetch crawlers too, making itself uncitable. Google-Extended belongs in a different category and is covered in the table below, because it is not a crawler at all. Also check that a security layer (a firewall or bot-blocking rule) isn't silently blocking these agents; that produces zero visibility with no visible error. Robots.txt is a statement of permission rather than proof of access, so treat it as the first half of this check: which agent does what is set out in the table below, and whether each one actually arrived is settled in your server logs.

Which AI crawler user agents should you allow, and what does each one control?

Each engine runs more than one user agent and they control different things, so allowing the AI crawlers is several decisions rather than one. OpenAI and Anthropic both split theirs three ways: one agent collects training data, one builds the search index that makes a page eligible to be cited, and one fires only when a person pastes a URL and asks for it to be read. The settings are independent, so blocking the training agent leaves the search agent free to index you, and blocking the search agent is the one that takes you out of the answers (OpenAI’s overview of its crawlers, read 2 October 2026).

AI crawler user agents, what each one does, and what blocking it actually costs
User agentRun byWhat it doesWhat blocking it costs you
GPTBotOpenAICollects training data for the foundation modelsNothing in ChatGPT’s search answers
OAI-SearchBotOpenAIBuilds the search index ChatGPT retrieves and cites fromEligibility to be cited in ChatGPT
ChatGPT-UserOpenAIFetches one page when a person asks ChatGPT to read that URLThe ability for a person to show ChatGPT your page
ClaudeBotAnthropicCollects training dataNothing in Claude’s search answers
Claude-SearchBotAnthropicIndexes pages for Claude’s search answersEligibility to be cited in Claude
Claude-UserAnthropicFetches a page a person asked Claude to readThe same user-initiated read
PerplexityBotPerplexityIndexes pages for Perplexity’s answersEligibility to be cited in Perplexity
Perplexity-UserPerplexityFetches a page on a user’s requestThe user-initiated read
GooglebotGoogleCrawls for Google Search, which is also what makes a page eligible for AI Overviews and AI ModeEverything in Google, the AI surfaces included
Google-ExtendedGoogleA robots.txt control rather than a crawler: it governs whether already-crawled content may be used to train and ground GeminiNothing in Google Search or its AI surfaces

The last row is the one that trips people up, in both directions. Google-Extended has no HTTP user agent of its own and will never appear in a server log, because the fetching is done by Google’s existing crawlers and the token only governs what may be done with the content afterwards (Google’s documentation on its common crawlers, read 2 October 2026). Disallowing it does not reduce crawling, change indexing or affect ranking, and it does not keep a page out of AI Overviews or AI Mode, which are features inside Search rather than separate products. Eligibility there follows from being indexed and snippet-eligible, and the controls that limit it are nosnippet, data-nosnippet, max-snippet and noindex. So a robots.txt that disallows Google-Extended and nothing else has blocked no AI crawler, and a site hoping to be cited has gained nothing by allowing it.

How do you confirm from your server logs that the AI crawlers are reaching you?

Server logs are the only record that shows whether the AI crawlers actually arrived, because robots.txt states a permission and a log states a fact. Search the access log for the agent strings in the table above and read three things off every hit: which agent, which URLs it asked for, and the status code it got back. A 200 means the page was served. A 403 or a 429 means something in front of the site refused it, which is the failure a robots.txt check cannot see and is usually a firewall or bot-management rule rather than anything you wrote.

The more useful finding is an agent that is absent altogether. A search agent that has never requested a page cannot have indexed one, and no amount of on-page work changes that until the request succeeds. Give the window enough length to mean something, because these agents crawl unevenly: a week of logs is a weak signal on a small site and a month is a better one.

Accidental blocking is also more common than most site owners assume. Ahrefs measured robots.txt across roughly 140 million websites and found GPTBot the most blocked AI bot at 5.89% of sites (Ahrefs, AI bot block rates across ~140 million websites, read 2 October 2026). Block rates diverge sharply by sample, with large publishers far above the long tail, so the number that decides anything for you is the one in your own log rather than any headline figure.

Check 2 — Does your content render without JavaScript?

Content that renders only with JavaScript is the most common silent failure. To test it: open one of your key pages, view the page source (right-click → "View Page Source", which shows the raw HTML before scripts run), and search for a sentence you know is on the page. If the text is there, the engine can likely read it. If the source is nearly empty and the content only appears in the rendered view, your page is JavaScript-dependent — and an AI crawler may see an empty shell. You can also disable JavaScript in your browser and reload: if the content vanishes, so does it for the engine.

This matters more for AI than it does for Google, because most AI crawlers do not run JavaScript at all. A joint study by Vercel and MERJ covering more than 500 million GPTBot fetches found no evidence of JavaScript execution, and the same held for Anthropic's ClaudeBot, Perplexity's PerplexityBot, Meta's agent and ByteDance's crawler. The detail that misleads people is that these crawlers do fetch the files: ChatGPT's agents requested JavaScript on 11.50% of requests and Claude's on 23.84%, without ever executing them (Vercel and MERJ, “The rise of the AI crawler”, read 2 October 2026). So a log full of JavaScript requests is not evidence that a page was rendered. Googlebot is the exception among the major crawlers in rendering JavaScript, which is how a client-rendered page can appear in Google Search and be absent from every AI answer at the same time.

Check 3 — Can the engine extract a clean answer?

Reachable and readable get you considered; extractable gets you cited. Engines prefer content they can lift as a self-contained unit: a direct answer near the top of a section, under a clear heading, backed by specific facts. Check whether your important pages open with the answer or bury it under paragraphs of preamble, whether headings are real questions or vague labels, and whether claims are specific and verifiable rather than vague superlatives. A page that makes the engine hunt for the answer is far less likely to be cited than one that hands it over cleanly. (The AI citation checklist breaks the extractable structure down signal by signal.)

Check 4 — Ask the engines directly

The most direct test: ask each engine to read your page. In ChatGPT, Perplexity, or Claude, paste your URL and ask "what does this page say about [topic]?" If the engine can summarize it accurately, it can read and extract it. If it returns nothing, a generic guess, or an error, that's a reachability or rendering problem worth running down. Do this across engines — because they read differently, a page readable to one may fail on another.

What to fix if AI can't read your site

Each fix maps to the check that failed, so work from whichever of the four told you the site is unreadable. A reachability failure means correcting robots.txt or a firewall rule. A readability failure means server-side or static rendering so content is in the HTML, not script-dependent. An extractability failure means restructuring pages — direct answers up top, question-based headings, specific facts. These are the technical floor of AI visibility; clearing them doesn't guarantee citation, but failing them guarantees its absence. (For how the engines weigh what they can read, see how AI engines choose sources.)

Frequently asked questions

How do I know if ChatGPT can read my website?

Paste your URL into ChatGPT and ask it to summarize the page. If it returns an accurate summary, it can read and extract your content; if it returns nothing or a vague guess, you likely have a reachability or JavaScript-rendering problem. Also confirm GPTBot isn't blocked in your robots.txt.

Why can't AI read my website even though it looks fine in my browser?

Because your browser runs JavaScript and the AI crawler may not. If your content only appears after scripts execute, the crawler can see an empty shell even though the page looks perfect to you. Check the raw page source for your content, not the rendered view.

What is robots.txt and how does it affect AI?

It's a file at yoursite.com/robots.txt that tells crawlers what they can access. If it blocks the search agents (OAI-SearchBot, Claude-SearchBot, PerplexityBot) or Googlebot, those engines can't read or cite your pages. A common error is blocking a training crawler such as GPTBot or ClaudeBot and accidentally blocking the search crawler too. Google-Extended is a different kind of entry: it controls whether crawled content may train and ground Gemini, and disallowing it blocks no crawler and does not affect AI Overviews or AI Mode.

Does blocking Google-Extended stop my pages appearing in AI Overviews?

No. Google-Extended is a robots.txt control over whether already-crawled content may be used to train and ground Gemini, and it is not a crawler, so it has no user agent of its own and never appears in a server log. Disallowing it does not reduce crawling, change indexing or affect ranking, and it does not remove a page from AI Overviews or AI Mode, which are features inside Google Search. Eligibility for those follows from being indexed and snippet-eligible, and the controls that limit them are nosnippet, data-nosnippet, max-snippet and noindex.

How do I test if my page content is JavaScript-dependent?

View the raw page source (right-click → View Page Source) and search for text you know is on the page, or disable JavaScript and reload. If the content is missing from the source or vanishes without JavaScript, it's script-dependent and may be invisible to AI crawlers.

Does my website need to be readable by all four AI engines separately?

Effectively yes — the engines read differently and from different indexes, so a page readable to one can fail on another. Test across ChatGPT, Perplexity, Claude, and Google's AI rather than assuming one result covers all.

How do I get a full read of where my site stands?

A free, PULSE-powered assessment checks your visibility across all four engines and surfaces where you're being missed, query by query — a fuller picture than a single page-read test.

Related guides

The Assessment

Get a full read across all four engines.

A free, PULSE-powered visibility assessment shows where AI can and can't see you across ChatGPT, Google AI Overview, Perplexity, and Claude — query by query.

Request a free visibility assessment →
SIGNALS · A BlackSig Systems company