Tips
What AI search visibility is, and how to check yours
AI search visibility is whether answer engines can fetch your pages, read them without running JavaScript, and cite them. You can check the first two yourself, for free.
AI search visibility is whether AI answer engines can use your site when they answer a question. It has three layers, in order. Their crawlers have to fetch your pages. They have to read them, often without running any JavaScript. Then an answer has to cite you.
A citation count is the third layer, and it tells you little until the first two hold. Those two take a few minutes to check, for free.
We ran all three on our own site after we relaunched it on 23 September 2026. The numbers below are ours, with their dates.
What does AI search visibility mean?
Three questions, asked in this order:
- Fetch. Does each engine’s crawler get your page, with a 200 and the real content?
- Read. Is the content in the HTML your server sends, so a crawler that runs no JavaScript still gets it?
- Cite. When a buyer asks a question your page answers, does the engine link to you?
A failure early on hides everything after it. A page the crawler can’t fetch can’t be read. A page that arrives empty can’t be cited.
Can the crawlers fetch your pages?
Each engine sends its own user agents, and they do different jobs. OpenAI documents OAI-SearchBot for ChatGPT search and GPTBot for training. Anthropic and Perplexity also keep search, training and user-requested fetches apart. Blocking a training crawler doesn’t take you out of search answers. Blocking a search crawler does.
Start with robots.txt. Find the group that applies to each search agent, and any Disallow line
that covers pages you care about.
One rule catches people out. Under RFC 9309, a crawler that finds a group with its own name obeys
only that group and ignores User-agent: *. We found this in our own file on 24 September. Every
named crawler had its own group with Allow: /, so the Disallow: /api/ line in our * group
applied to none of them. Each named group now repeats Disallow: /api/.
Then check what your server actually returns. A firewall rule or a bot challenge can turn away a crawler that robots.txt allows. On 24 September 2026 we sent 19 crawler user agents and a Chrome control to 5 of our URLs each. All 100 requests got a 200 with no challenge page, and the visible text matched what Chrome got. On 1 October our monthly check fetched 15 URLs for each of the 19 crawlers. 285 of 285 fetches came back 200.
Both tests send the crawler’s name from our own address. A CDN that checks a crawler’s real IP range can treat the real crawler differently, so a 200 here is not proof.
Our origin server log is the stronger evidence. On our first day live it showed real requests from ClaudeBot, PerplexityBot, Applebot, bingbot, Googlebot and ChatGPT-User, answered with a 200.
Can they read your pages without JavaScript?
In December 2024, Vercel and MERJ measured the OpenAI, Anthropic, Meta, ByteDance and Perplexity crawlers on their network. None of them ran JavaScript. Gemini, which uses Google’s crawling, and Applebot did. That sample is dated, and crawlers change.
It is still the safe assumption. If a fact only appears after a script runs, some answer engines never see it.
The check is a comparison. Load the page with JavaScript off and again with it on, then compare the words, headings and links. On 24 September we did this on 7 templates of our site. They matched on all 7. On 1 October we compared 13 pages. All 13 had the same headings in the raw HTML as after rendering, and none had fewer words in the raw HTML.
You can do a rough version in a browser. Open the page source, which is what the server sent. The inspector shows the page after its scripts ran, so it can’t tell you this. Search the source for the sentence you most want an engine to quote. If it isn’t there, a crawler that runs no JavaScript doesn’t get it either.
Do AI answers cite you?
This is the layer a citation count measures, and the one you can’t check in a minute. Answers change between runs, and the sources change with the wording of the question. You need a fixed list of buyer questions, several runs with web search on and a log of every source.
We wrote that method up in how to check whether ChatGPT cites your site. On our first run, on 24 September, the engines cited us in 105 of 156 answers that named us. They cited us in 1 of 204 that didn’t.
A free check for the first two layers
Our instant audit reads one URL the way a crawler that runs no JavaScript does, and runs up to 18 checks. It reads your robots.txt for 11 answer-engine agents, among them OAI-SearchBot, Claude-SearchBot and PerplexityBot. It checks whether the content arrives in the initial HTML, and it asks for /llms.txt. It doesn’t ask any engine a question.
For a whole site, answer-crawler-check tests every URL in your sitemap against robots.txt for the same 11 crawlers. Run it with npx, or as a GitHub Action, so a bad rule fails the build before it ships. It’s free, under the MIT licence.
What can’t a visibility score tell you?
Our audit gives no score, on purpose. One number for AI visibility hides two problems.
It moves when nothing changed. Ask the same engine the same question twice and the cited sources can differ. Change the wording and they change again. When we reran five of our questions on the same day, all 15 question and engine pairs landed within one citation of the first run. So on our setup, a change of one citation is noise.
It doesn’t say why. A score can tell you that answers cite you less. It can’t tell you whether a crawler was blocked, a page arrived empty or a rival published something better. The first two you can rule out with the checks above.
Google Search Console reports generative-AI impressions, and Bing’s AI Performance report shows citations and cited pages. Neither is a transcript of the answers your buyers saw. Read any score as one reading of one question set on one day. Then ask what is behind it: which questions, how many runs, which engines, and whether web search was on.
Where to start
Check the first two layers today, on your most important page: robots.txt, then the raw HTML. If both hold, write ten buyer questions and ask each one three times. We measure all three layers on a schedule, with the sample size on every reading. That is what our AEO work does.