Original data · 14 Oct 2026

We checked 60 SaaS & AI tool sites: how many let AI crawlers read them

On 14 Oct 2026 we requested 60 public homepages of well-known AI products and AI-featured SaaS, using the same checks as our free crawler tool. 59 responded. 46 were usable HTML. 1 of 56 (1.8%) with a readable robots.txt disallowed GPTBot. OAI-SearchBot was disallowed on 1 of 56 (1.8%) and PerplexityBot on 1 of 56 (1.8%). Both are Poe, whose request ended at https://poe.com/login?redirect_url=%2F (HTTP 403). 1 of 46 (2.2%) usable homepages had fewer than 50 visible words in the raw HTML.

Short version: readable robots.txt files: GPTBot disallowed on 1 of 56 (1.8%), ClaudeBot on 2 of 56 (3.6%), Google-Extended on 0 of 56 (0%), OAI-SearchBot on 1 of 56 (1.8%), PerplexityBot on 1 of 56 (1.8%). Usable homepages: 1 of 46 (2.2%) under 50 visible words, 2 of 46 (4.3%) under 150, and 29 of 46 (63%) with no price-like text in the HTML. The single search-crawler disallow is described under findings. These counts are from this run only.

How many homepages disallow each crawler

Denominator for every bar in this section: 56 homepages whose robots.txt we could apply (HTTP 200 text, or no robots file so crawlers are allowed by default). 3 responded but the robots file could not be used. 1 homepage fetches failed, so those hosts were not scored here. A disallow is a robots.txt rule for the final homepage path. It is not a firewall test.

Search and user-triggered crawlers

OAI-SearchBot1 of 56 (1.8%)
PerplexityBot1 of 56 (1.8%)
ChatGPT-User1 of 56 (1.8%)

Training crawlers and training opt-out tokens

Google-Extended and Applebot-Extended are training opt-out tokens. A disallow there does not, by itself, block ordinary Google or Apple search crawling. GPTBot, ClaudeBot, CCBot and Bytespider are training crawlers in our checker.

GPTBot1 of 56 (1.8%)
ClaudeBot2 of 56 (3.6%)
Google-Extended0 of 56 (0%)
Applebot-Extended2 of 56 (3.6%)
CCBot2 of 56 (3.6%)
Bytespider4 of 56 (7.1%)
CrawlerRole in our checkerDisallowed
GPTBotTraining or training opt-out1 of 56 (1.8%)
OAI-SearchBotSearch or user-triggered1 of 56 (1.8%)
ChatGPT-UserSearch or user-triggered1 of 56 (1.8%)
ClaudeBotTraining or training opt-out2 of 56 (3.6%)
PerplexityBotSearch or user-triggered1 of 56 (1.8%)
Google-ExtendedTraining or training opt-out0 of 56 (0%)
Applebot-ExtendedTraining or training opt-out2 of 56 (3.6%)
CCBotTraining or training opt-out2 of 56 (3.6%)
BytespiderTraining or training opt-out4 of 56 (7.1%)

ChatGPT-User is the user-triggered fetch agent. OpenAI says it may ignore robots.txt. Claude-SearchBot was not part of this run; the checker this study reused does not score that token.

What was in the raw HTML

Usable homepages: 46 of 60. A page counts as usable when the homepage returned HTTP 200–399, looked like HTML, and was not classified as a bot challenge. 10 responses were classified as bot challenges. 3 other fetched pages returned HTTP 400 or higher. 0 returned a non-HTML body. JavaScript was not executed.

Under 50 visible words1 of 46 (2.2%)
Under 150 visible words2 of 46 (4.3%)
No visible price on the homepage29 of 46 (63%)
JSON-LD Organization, Product, or SoftwareApplication28 of 46 (60.9%)
Plain-text /llms.txt33 of 59 (55.9%)
Usable /sitemap.xml47 of 59 (79.7%)

Bar widths are each row's own percentage. The llms.txt and sitemap.xml rows use the 59 homepages that responded, not the 46 usable HTML pages. The other rows use usable HTML pages.

FindingCountDenominator
Fewer than 50 visible words1 of 46 (2.2%)Usable HTML homepages
Fewer than 150 visible words2 of 46 (4.3%)Usable HTML homepages
No H1 in the raw HTML5 of 46 (10.9%)Usable HTML homepages
No price-like text in the visible HTML29 of 46 (63%)Usable HTML homepages. A separate pricing URL was not fetched.
Price only in JSON-LD or a meta tag5 of 46 (10.9%)Usable HTML homepages
JSON-LD Organization27 of 46 (58.7%)Usable HTML homepages
JSON-LD Product1 of 46 (2.2%)Usable HTML homepages
JSON-LD SoftwareApplication14 of 46 (30.4%)Usable HTML homepages
Organization, Product, or SoftwareApplication28 of 46 (60.9%)Usable HTML homepages
Any parsed JSON-LD type33 of 46 (71.7%)Usable HTML homepages
Plain-text /llms.txt (HTTP 200)33 of 59 (55.9%)Homepages that responded, including challenges
Usable /sitemap.xml47 of 59 (79.7%)Homepages that responded. Only /sitemap.xml was fetched.

Of the 29 usable homepages with no price-like text in the visible HTML, 23 linked to a URL containing “pricing”, and 10 had the substring “pricing” in the /sitemap.xml body we fetched. We did not open those pricing URLs.

52 of 56 (92.9%) homepages with a readable robots.txt listed at least one Sitemap: URL. We only downloaded /sitemap.xml, so a sitemap that lives only at another path is not counted as a usable sitemap above.

What we observed on individual sites

These sentences use the measured fields only. Named products were flagged as widely known in the sample file before the crawl. Every other product is in the table and the CSV.

Methodology

The 60 homepages

ProductCategoryURL we requested
OpenAIAssistanthttps://openai.com
AnthropicAssistanthttps://www.anthropic.com
Google GeminiAssistanthttps://gemini.google.com
PerplexitySearchhttps://www.perplexity.ai
xAIAssistanthttps://x.ai
Microsoft CopilotAssistanthttps://copilot.microsoft.com
GitHub CopilotCodinghttps://github.com/features/copilot
Meta AIAssistanthttps://ai.meta.com
DeepSeekAssistanthttps://www.deepseek.com
Mistral AIAssistanthttps://mistral.ai
CohereAssistanthttps://cohere.com
Hugging FacePlatformhttps://huggingface.co
MidjourneyImagehttps://www.midjourney.com
Stability AIImagehttps://stability.ai
RunwayVideohttps://runwayml.com
Leonardo.AiImagehttps://leonardo.ai
IdeogramImagehttps://ideogram.ai
Adobe FireflyImagehttps://www.adobe.com/products/firefly.html
CanvaDesignhttps://www.canva.com
PhotoroomImagehttps://www.photoroom.com
KreaImagehttps://www.krea.ai
Luma AIVideohttps://lumalabs.ai
PikaVideohttps://pika.art
Kling AIVideohttps://klingai.com
ElevenLabsAudiohttps://elevenlabs.io
SunoAudiohttps://suno.com
UdioAudiohttps://www.udio.com
SynthesiaVideohttps://www.synthesia.io
HeyGenVideohttps://www.heygen.com
DescriptAudiohttps://www.descript.com
MurfAudiohttps://murf.ai
SpeechifyAudiohttps://speechify.com
JasperWritinghttps://www.jasper.ai
Copy.aiWritinghttps://www.copy.ai
WritesonicWritinghttps://writesonic.com
GrammarlyWritinghttps://www.grammarly.com
QuillBotWritinghttps://quillbot.com
WordtuneWritinghttps://www.wordtune.com
DeepLWritinghttps://www.deepl.com
NotionWorkspacehttps://www.notion.com
GammaWorkspacehttps://gamma.app
Beautiful.aiWorkspacehttps://www.beautiful.ai
CursorCodinghttps://cursor.com
ReplitCodinghttps://replit.com
v0Codinghttps://v0.dev
Bolt.newCodinghttps://bolt.new
LovableCodinghttps://lovable.dev
WindsurfCodinghttps://windsurf.com
Otter.aiMeetingshttps://otter.ai
Fireflies.aiMeetingshttps://fireflies.ai
KrispMeetingshttps://krisp.ai
Character.AIAssistanthttps://character.ai
PoeAssistanthttps://poe.com
ChatbaseAgentshttps://www.chatbase.co
IntercomAgentshttps://www.intercom.com
GleanSearchhttps://www.glean.com
WriterWritinghttps://writer.com
HarveyAssistanthttps://www.harvey.ai
ZapierAutomationhttps://zapier.com
n8nAutomationhttps://n8n.io

Per-site results

Allow and Block are robots.txt outcomes for the final path. Words are visible words in the raw HTML. “Price in HTML” is price-like visible text on that homepage. The CSV has the rule text and the rest of the crawlers.

ProductCategoryHTTPGPTBotOAI-SearchBotPerplexityBotClaudeBotGoogle-ExtendedWordsPrice in HTMLJSON-LDllms.txt
OpenAIAssistant403AllowAllowAllowAllowAllowHTTP 403——No
AnthropicAssistant200AllowAllowAllowAllowAllow696NoNoneNo
Google GeminiAssistantFailed—————The host did not respond.———
PerplexitySearch403AllowAllowAllowAllowAllowBot challenge——No
xAIAssistant403AllowAllowAllowAllowAllowBot challenge——No
Microsoft CopilotAssistant200AllowAllowAllowAllowAllow1051NoWebPage, Organization, ImageObjectNo
GitHub CopilotCoding200AllowAllowAllowAllowAllow843YesNoneYes
Meta AIAssistant200AllowAllowAllowAllowAllow9NoWebPage, Organization, Brand, Corporation, ImageObject, WebSiteNo
DeepSeekAssistant200AllowAllowAllowAllowAllow222NoNoneNo
Mistral AIAssistant200AllowAllowAllowAllowAllow832NoOrganization, PostalAddress, Person, WebPage, ContactPoint, WebSiteYes
CohereAssistant200AllowAllowAllowAllowAllow1187NoOrganizationYes
Hugging FacePlatform200AllowAllowAllowAllowAllow667YesNoneNo
MidjourneyImage403—————Bot challenge——No
Stability AIImage200AllowAllowAllowAllowAllow919YesWebSiteNo
RunwayVideo200AllowAllowAllowAllowAllow100NoOrganization, Person, ContactPoint, SoftwareApplication, WebSiteYes
Leonardo.AiImage403AllowAllowAllowAllowAllowBot challenge——No
IdeogramImage403AllowAllowAllowAllowAllowBot challenge——Yes
Adobe FireflyImage200AllowAllowAllowAllowAllow1852NoNoneYes
CanvaDesign403BlockAllowAllowBlockAllowHTTP 403——No
PhotoroomImage200AllowAllowAllowAllowAllow1197NoNoneYes
KreaImage200AllowAllowAllowAllowAllow1515YesOrganization, ImageObject, WebSite, SoftwareApplication, Offer, BreadcrumbList, ListItemYes
Luma AIVideo200AllowAllowAllowAllowAllow523Structured onlySoftwareApplication, Offer, Organization, VideoObject, ItemList, ListItem, PostalAddress, QuantitativeValue, ContactPoint, WebSiteYes
PikaVideo200AllowAllowAllowAllowAllow916NoOrganization, WebSiteYes
Kling AIVideo200AllowAllowAllowAllowAllow993NoOrganization, ImageObject, WebSite, WebPage, SoftwareApplication, ItemList, ListItem, BreadcrumbListYes
ElevenLabsAudio200AllowAllowAllowAllowAllow1532YesOrganization, ImageObject, PostalAddress, Person, WebSite, Brand, WebPage, BreadcrumbList, ListItem, SoftwareApplication, PropertyValue, OfferYes
SunoAudio200AllowAllowAllowAllowAllow1067Structured onlyWebSite, Organization, PostalAddress, SoftwareApplication, Offer, FAQPage, Question, AnswerYes
UdioAudio200AllowAllowAllowAllowAllowBot challenge——No
SynthesiaVideo200AllowAllowAllowAllowAllow2818YesNoneYes
HeyGenVideo200AllowAllowAllowAllowAllow2139YesFAQPage, Question, AnswerYes
DescriptAudio200AllowAllowAllowAllowAllow1750NoBreadcrumbList, ListItem, Organization, FAQPage, Question, AnswerYes
MurfAudio200AllowAllowAllowAllowAllow1760NoWebPage, WebSite, Corporation, Person, ContactPoint, ThingYes
SpeechifyAudio200AllowAllowAllowAllowAllow2974NoNoneYes
JasperWriting200AllowAllowAllowAllowAllow2501Structured onlyOrganization, ImageObject, ContactPoint, Thing, WebSite, FAQPage, Question, Answer, SoftwareApplication, Offer, AggregateRatingYes
Copy.aiWriting200AllowAllowAllowAllowAllow1245YesNoneNo
WritesonicWriting200AllowAllowAllowAllowAllow2372YesOrganization, PostalAddress, ContactPoint, WebSite, SoftwareApplication, AggregateRatingYes
GrammarlyWriting200AllowAllowAllowAllowAllow1226YesNoneNo
QuillBotWriting403—————Bot challenge——No
WordtuneWriting200AllowAllowAllowAllowAllow1160NoNoneNo
DeepLWriting200AllowAllowAllowAllowAllow1272NoOrganization, ImageObject, Place, QuantitativeValue, ContactPoint, WebSite, ItemList, ListItem, WebApplication, Action, EntryPoint, OfferNo
NotionWorkspace200AllowAllowAllowAllowAllow444Structured onlyOrganization, WebSite, SoftwareApplication, OfferYes
GammaWorkspace403—————HTTP 403——Yes
Beautiful.aiWorkspace200AllowAllowAllowAllowAllow1380NoOrganization, ImageObject, Person, ContactPoint, Review, Rating, Service, AdministrativeArea, OfferCatalog, Offer, FAQPage, QuestionNo
CursorCoding200AllowAllowAllowAllowAllow2869NoOrganization, ImageObject, ContactPoint, WebSiteYes
ReplitCoding200AllowAllowAllowAllowAllow1339YesNoneYes
v0Coding200AllowAllowAllowAllowAllow413NoOrganization, WebApplicationNo
Bolt.newCoding200AllowAllowAllowAllowAllow509YesWebApplication, Organization, AggregateOfferNo
LovableCoding403AllowAllowAllowAllowAllowBot challenge——Yes
WindsurfCoding200AllowAllowAllowAllowAllow2010YesSoftwareApplicationYes
Otter.aiMeetings200AllowAllowAllowAllowAllow1334YesNoneNo
Fireflies.aiMeetings200AllowAllowAllowAllowAllow1016NoOrganization, ContactPoint, PostalAddressYes
KrispMeetings200AllowAllowAllowAllowAllow1970NoOrganization, Offer, WebSite, WebPage, SoftwareApplication, AggregateRatingYes
Character.AIAssistant403AllowAllowAllowAllowAllowBot challenge——No
PoeAssistant403AllowBlockBlockBlockAllowBot challenge——No
ChatbaseAgents200AllowAllowAllowAllowAllow1809NoOrganization, Person, ContactPoint, WebSite, SoftwareApplication, Offer, AggregateRating, WebPage, SpeakableSpecification, HowTo, HowToStepYes
IntercomAgents200AllowAllowAllowAllowAllow218Structured onlyWebSite, Organization, ImageObject, WebPage, Product, SoftwareApplication, Offer, UnitPriceSpecification, QuantitativeValue, ItemList, ListItem, BreadcrumbListYes
GleanSearch200AllowAllowAllowAllowAllow891NoCorporation, Person, PostalAddressNo
WriterWriting200AllowAllowAllowAllowAllow868NoWebPage, ReadAction, ImageObject, BreadcrumbList, ListItem, WebSite, SearchAction, EntryPoint, PropertyValueSpecification, Organization, QuantitativeValueYes
HarveyAssistant200AllowAllowAllowAllowAllow1622YesCorporation, ImageObject, PostalAddress, WebSite, Certification, ContactPoint, WebPage, ItemList, ListItemNo
ZapierAutomation200AllowAllowAllowAllowAllow1830YesOrganization, ImageObject, PostalAddress, Person, WebSite, WebPage, SoftwareApplication, CreativeWorkYes
n8nAutomation200AllowAllowAllowAllowAllow1274YesOrganizationYes

Homepage fetch failed (1): Google Gemini (The host did not respond.).

Limitations

A practical fix checklist

  1. Decide training and search separately. In this sample, GPTBot was disallowed on 1 of 56 (1.8%) readable robots files. OAI-SearchBot was disallowed on 1 of 56 (1.8%) and PerplexityBot on 1 of 56 (1.8%); The single search-crawler disallow is described under findings. If you want answer-time crawlers to read the site, allow OAI-SearchBot and PerplexityBot on the public pages. A GPTBot, ClaudeBot, CCBot, Bytespider, Google-Extended or Applebot-Extended disallow is a training choice, not the same switch.
  2. Put the description in the first HTML. 1 of 46 (2.2%) usable homepages were under 50 visible words, and 2 of 46 (4.3%) were under 150. 5 of 46 (10.9%) had no H1. Server-render or pre-render the homepage, or at least ship a text H1 and a paragraph that says what the product is.
  3. Put prices in HTML on the page that states them. 29 of 46 (63%) usable homepages had no price-like visible text. Check the pricing URL itself with the free checker. Keep the plan names and numbers in the HTML, not only in a script.
  4. Add JSON-LD that matches the visible page. 28 of 46 (60.9%) usable homepages had Organization, Product, or SoftwareApplication. 27 of 46 (58.7%) had Organization, 1 of 46 (2.2%) had Product, and 14 of 46 (30.4%) had SoftwareApplication. A useful block names the product and includes an Offer when you publish a price.
  5. Publish a real sitemap. 47 of 59 (79.7%) responding homepages had a usable /sitemap.xml. 52 of 56 (92.9%) readable robots files listed a Sitemap URL. Either path is fine; an HTML page at /sitemap.xml does not count.
  6. llms.txt is optional. 33 of 59 (55.9%) responding homepages served a plain-text file. It is cheap to add and it is not, by itself, evidence an assistant reads it. See what we can actually say about llms.txt.
  7. Look past robots.txt. 10 responses in this run were bot challenges. If a firewall challenges every non-browser agent, a permissive robots.txt does not make the page readable.

Check your own URL

The free AI crawler & raw-HTML checker runs these same checks on any public page, including a pricing URL. No sign-up.

The free mini report asks Perplexity 3 buyer questions and emails a short PDF: whether you were mentioned, who was named instead, and which pages were cited. The AI Visibility Report is a $49 PDF generated by our software: Perplexity and Grok on 10 buyer questions, plus the technical check and a rule-based action list.

Raw data

More guides

Independent study; not affiliated with the products measured or with OpenAI, Anthropic, Google, Perplexity, Apple, Common Crawl or ByteDance. Product names are trademarks of their owners. Counts describe this list on this date.