Who lets AI assistants read them
Machine access on 64 well-known websites across eight niches. Can the crawlers behind ChatGPT, Claude and Perplexity fetch the pages, what does robots.txt tell them, and how much is there to read without JavaScript?
The headline · 18 September 2026
33 of 64
sites served their home page to all three named crawler probes from our network.
- All three served 33
- Some 4
- None 27
Each cell is a dated response to our probe, not a verified vendor visit or an observed citation.
The study
in five figures.
Of 64 sites measured on 18 September 2026, from Vercatus's network. Measured, not endorsed.
- 33
- served all three crawler probes their home page
- 27
- refuse or challenge all three: a 403, 401 or bot interstitial
- 4
- let some AI crawlers in and not others
- 17
- publish an llms.txt
- 9
- keep over half the deep page behind JavaScript
Who lets them in,
by niche.
Eight names in each niche, chosen for recognition, not for size: sites a general reader has used. Each niche has its own reason the question matters.
Home pages served to GPTBot, ClaudeBot and PerplexityBot
- All three served
- Some
- None
News and media
Their business is being the source; an assistant that cannot read them quotes someone else.
3 of 8 serve all threeE-commerce and retail
Product and buying questions are the ones assistants answer from whichever site states the facts plainly.
3 of 8 serve all threeSoftware and SaaS
Comparison and pricing questions decide the shortlist before a sales call.
7 of 8 serve all threeTravel and hospitality
Trip planning moved into the assistant early; the answer names two or three booking sources.
1 of 8 serve all threeBanking and payments
Regulated, cautious about bots, and asked about constantly: fees, limits, how to.
6 of 8 serve all threeConsumer brands and automotive
Spec, price and comparison questions about products people already know by name.
3 of 8 serve all threeHealth
The questions people ask assistants most, and the sources assistants are most careful about.
6 of 8 serve all threeEducation and reference
Reference sites are the raw material of AI answers; the question is on whose terms.
4 of 8 serve all three
Site by site,
every response.
The home page and one deep page, requested with each identity from Vercatus's network. The robots column is what robots.txt says to the AI training and search tokens, whatever the server then does.
- serveda 200 with the page's content
- refuseda 401, 403 or 451
- challengea bot-management interstitial instead of the page
Swipe a table sideways for the other crawlers; the site name stays in view.
News and media
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| served | served | served | served | served | served | GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Applebot-Extended | no | 8% of words | |
| challenge | challenge | refused 403 | refused 403 | refused 403 | refused 403 | GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Applebot-Extended | no | 0% of words | |
| served | served | served | served | refused 403 | refused 403 | ClaudeBot, PerplexityBot, CCBot, Applebot-Extended | no | 0% of words | |
| challenge | challenge | challenge | challenge | challenge | challenge | Applebot-Extended | no | 0% of words | |
| challengedeep served | challengedeep served | challengedeep served | challengedeep served | challengedeep served | challengedeep served | GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Applebot-Extended | no | 0% of words | |
| served | served | 470 | served | 470 | served | GPTBot, OAI-SearchBot, ClaudeBot, CCBot, Applebot-Extended | no | 0% of words | |
| served | served | serveddeep 402 | served | served | served | ClaudeBot, Google-Extended, CCBot, Applebot-Extended | no | 33% of words | |
| serveddeep challenge | served | serveddeep challenge | served | served | serveddeep challenge | ClaudeBot, PerplexityBot, CCBot | no | 17% of words |
E-commerce and retail
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| served | served | served | served | served | served | GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot | no | – | |
| served | served | served | served | served | served | no AI token disallowed | no | – | |
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words | |
| challengedeep 200 | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | no | 0% of words | |
| challenge | 429 | challenge | challengedeep served | challenge | challenge | no AI token disallowed | no | 0% of words | |
| refused 403deep 418 | no reply | no reply | no reply | no reply | no reply | GPTBot, ClaudeBot, PerplexityBot, CCBot, Applebot-Extended | no | 99% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 0% of words | |
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words |
Software and SaaS
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| served | challenge | served | served | served | served | no AI token disallowed | yes | 25% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 100% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 30% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 58% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 0% of words | |
| served | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | yes | 20% of words | |
| served | served | served | served | served | served | GPTBot, ClaudeBot, Google-Extended, CCBot | no | 4% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | 85% of words |
Travel and hospitality
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| challengedeep served | challengedeep served | served | challengedeep served | challengedeep served | challengedeep served | no AI token disallowed | no | 14% of words | |
| served | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words | |
| 429deep served | 429deep served | 429deep served | 429deep served | 429deep served | 429deep served | no AI token disallowed | yes | – | |
| served | served | served | served | served | served | no AI token disallowed | no | 100% of words | |
| challenge | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | yes | 16% of words | |
| refused 403deep served | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 12% of words | |
| challenge | challenge | challenge | served | challenge | challenge | GPTBot, ClaudeBot, Google-Extended, CCBot, Applebot-Extended | no | 0% of words | |
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 9% of words |
Banking and payments
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| challenge | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | no | 14% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | – | |
| served | served | served | served | served | served | no AI token disallowed | yes | 11% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 1% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | 18% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | – | |
| served | served | served | served | served | served | no AI token disallowed | yes | 41% of words | |
| challenge | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | yes | 17% of words |
Consumer brands and automotive
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| serveddeep refused 403 | served | served | served | served | served | no AI token disallowed | no | 68% of words | |
| served | refused 403 | served | served | served | served | no AI token disallowed | yes | 0% of words | |
| served | refused 403deep served | refused 403deep served | refused 403deep served | refused 403deep served | refused 403deep served | no AI token disallowed | no | 0% of words | |
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words | |
| served | no reply | no reply | no reply | no reply | no reply | no AI token disallowed | no | 0% of words | |
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | 21% of words | |
| challenge | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | yes | 18% of words |
Health
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words | |
| serveddeep 404 | challenge | serveddeep 404 | serveddeep 404 | serveddeep 404 | serveddeep 404 | GPTBot, ClaudeBot, CCBot | no | 15% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | 13% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 0% of words | |
| served | served | served | served | served | served | GPTBot, ClaudeBot, CCBot, Applebot-Extended | no | 35% of words | |
| served | served | served | served | served | served | CCBot | no | – | |
| served | served | served | served | served | served | no AI token disallowed | no | 7% of words | |
| refused 403 | serveddeep 404 | refused 403 | refused 403 | refused 403 | refused 403 | no AI token disallowed | no | 0% of words |
Education and reference
| Site | Plain HTTP client | Googlebot | GPTBot | OAI-SearchBot | ClaudeBot | PerplexityBot | robots.txt, AI tokens | llms.txt | Needs JavaScript |
|---|---|---|---|---|---|---|---|---|---|
| serveddeep 404 | refused 403 | serveddeep 404 | serveddeep 404 | refused 403 | serveddeep 404 | no AI token disallowed | no | 0% of words | |
| served | served | served | served | served | served | no AI token disallowed | yes | 56% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | – | |
| served | served | served | served | served | served | no AI token disallowed | no | 100% of words | |
| challenge | challenge | refused 403 | challenge | refused 403 | refused 403 | no AI token disallowed | no | 32% of words | |
| served | served | served | served | served | served | no AI token disallowed | no | 0% of words | |
| challenge | challenge | challenge | challenge | challenge | challenge | no AI token disallowed | no | 59% of words | |
| challenge | challenge | refused 403deep challenge | challenge | refused 403deep challenge | refused 403deep challenge | no AI token disallowed | no | – |
What was measured,
and what was not.
One day, two pages, one network: a snapshot, not a ranking. Read the methodology
Pages. Two per site: the home page and one deep page chosen from the site's own sitemap or navigation (an article, a product, a help page). Both are public and linked from the site.
Identities. Each page was requested 6 ways: as a plain HTTP client with no browser, and with the published user-agent strings of Googlebot, GPTBot, OAI-SearchBot, ClaudeBot and PerplexityBot. Requests came from Vercatus's own network and carried Vercatus's signed identity, so a site that verifies crawler IP ranges will see a non-Google, non-OpenAI client presenting that string. A refusal establishes what our probe received from this origin. It does not establish what a verified vendor request receives; address verification and other security conditions can change the response.
Purposes. GPTBot and ClaudeBot are training crawlers; OAI-SearchBot and PerplexityBot serve search-related purposes. Our three-probe headline therefore combines different purposes. It is not a search-visibility score. Use the per-identity rows and the crawler-purpose guide for a policy decision.
robots.txt. Read once per site and evaluated for GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Applebot-Extended. "Disallowed" means the token is named and disallowed on the paths measured; "unlisted" means the file says nothing about it.
llms.txt. Whether /llms.txt returns a text document.
Needs JavaScript. The deep page loaded in a browser with scripts disabled and enabled, from the same client; the share of words present only after scripts ran. The difference identifies content absent from the initial response under this test. It does not establish how every assistant, browser agent or vendor renders the page.
Not measured. Whether any assistant actually cites these sites, how their content answers questions, or anything behind a login. Sites change their rules often; the date is on every figure.
Icons. The small icon beside each name is the site's own favicon, shown the way a browser tab shows it, to identify the measured site. It implies no relationship with Vercatus.
Corrections. If you run one of these sites and the observation is wrong or out of date, write to hello@vercatus.com and we will re-measure and note the change here.
Every observation,
in a file.
The observations the tables are drawn from: one row per site, 64 rows, measured 18 September 2026. Nothing is counted differently for the download.
CSV, one row per site
The verdict per site; what each of the 6 identities received for both pages, with the HTTP status; what robots.txt says to each of the 7 AI tokens; llms.txt; the JavaScript-only share of the deep page.
Download the CSVJSON, with the method
Every row as above, plus the method and the headline counts, for anyone re-running or re-charting the study.
Open the JSON
- Using it
- Quote, chart or republish these figures with attribution to Vercatus and a link to this page. Please carry the measurement date with the figure: sites change their rules often, and every number here is a reading from one day.
- Interpreting a row
- First identify the request origin, crawler token, page and observation date. Compare its HTTP response with its robots policy separately. A disagreement is a diagnostic lead, not evidence that an assistant cited or rejected that site. Follow the refusal diagnostic workflow and research publication checklist.
- Citing it
- Vercatus, Who lets AI assistants read them: Machine access on 64 well-known websites across eight niches, measured 18 September 2026. https://vercatus.com/research/who-lets-ai-read-them/
Start with what AI can read on your own domain.
Crawler access is where AI visibility starts. Create your account and see what Vercatus already reads on your domain; a plan adds Answer Share on your topics, the reasons behind it, and the plays to move it.
Cancel any time · Data stored in the EU