<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: gaash.ai</title>
    <description>The latest articles on DEV Community by gaash.ai (@gaash-ai).</description>
    <link>https://dev.to/gaash-ai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4137399%2Fcdef98d4-e092-493d-97cc-58738d0ed6ee.png</url>
      <title>DEV Community: gaash.ai</title>
      <link>https://dev.to/gaash-ai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gaash-ai"/>
    <language>en</language>
    <item>
      <title>What 9,483 small business websites actually serve to an AI crawler</title>
      <dc:creator>gaash.ai</dc:creator>
      <pubDate>Sun, 25 Oct 2026 11:21:35 +0000</pubDate>
      <link>https://dev.to/gaash-ai/what-9483-small-business-websites-actually-serve-to-an-ai-crawler-1d74</link>
      <guid>https://dev.to/gaash-ai/what-9483-small-business-websites-actually-serve-to-an-ai-crawler-1d74</guid>
      <description>&lt;p&gt;Over two weeks I pointed a crawler at 11,060 small business websites with JavaScript off, a self-identifying user agent and three pages per site, and stored what came back. This is what the schema, the robots files and the served HTML look like across 9,483 sites that responded, and why an assistant reading them has so little to work with.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtrnv18nytkwl94e97az.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtrnv18nytkwl94e97az.png" alt="What 9,483 small business websites serve to an AI crawler" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I did this because gaash.ai sells one thing, measuring whether AI assistants&lt;br&gt;
recommend a business, and I wanted to know how much of the problem is the&lt;br&gt;
assistants and how much is the websites. The answer is mostly the websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two thirds have nothing an assistant can quote.&lt;/strong&gt; 61.5% of the sites have no&lt;br&gt;
question and answer content of any kind: no FAQ section, no FAQPage schema,&lt;br&gt;
nothing shaped like the thing a buyer asks. Assistants lift answers from pages&lt;br&gt;
that already contain answers. A homepage that says "Quality service since 1998"&lt;br&gt;
gives them nothing to lift. Oddly, about half the sites (50.7%) do have at least&lt;br&gt;
one heading phrased as a question. They just don't answer it in a way a machine&lt;br&gt;
can isolate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reviews exist, but not where a machine looks.&lt;/strong&gt; 64.7% of sites show no review&lt;br&gt;
signal a crawler can read: no rating markup and no review quoted in the page&lt;br&gt;
text. Only 8.9% carry rating schema. Most of these businesses have dozens of&lt;br&gt;
Google reviews. The assistant reading their site does not know that, because&lt;br&gt;
the site does not say so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The business can't be pinned down.&lt;/strong&gt; 43.1% are inconsistent about who and&lt;br&gt;
where they are. 36.9% publish more than one phone number across their own three&lt;br&gt;
main pages. 34.1% have no postal address a machine can parse anywhere. An&lt;br&gt;
assistant deciding whether to name "Smith Plumbing" wants one name, one number&lt;br&gt;
and one address, repeated. It often gets three of each.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured data is mostly present and mostly useless.&lt;/strong&gt; Only 17.8% have no&lt;br&gt;
schema.org markup at all, which surprised me. But look at what the other 82%&lt;br&gt;
have: WebSite, WebPage, BreadcrumbList, SearchAction, ImageObject. The page&lt;br&gt;
builder put it there. It describes the website, not the business. LocalBusiness&lt;br&gt;
appears on roughly a quarter of sites. A further 13.7% have business schema&lt;br&gt;
that is missing the fields that would make it usable.&lt;/p&gt;

&lt;p&gt;The no-schema rate is not evenly spread. Real estate agents (33.6%),&lt;br&gt;
photographers (32.7%), tax advisors (31.0%) and wedding planners (30.1%) are&lt;br&gt;
the worst. Carpenters (15.8%) and moving companies (16.1%) are the best of the&lt;br&gt;
trades with a hundred or more sites in the sample. Markets barely differ: the&lt;br&gt;
EU (20.5%) and UAE (20.0%) are a little worse than the US (17.5%) and Canada&lt;br&gt;
(17.2%).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardly anyone blocks AI on purpose.&lt;/strong&gt; 3.2% disallow AI crawlers in&lt;br&gt;
robots.txt. 7.2% sit behind bot protection that served my crawler a challenge&lt;br&gt;
page instead of the site, which blocks assistants just as well without anyone&lt;br&gt;
deciding to. 3.0% render their content only in JavaScript, so a crawler that&lt;br&gt;
does not execute scripts sees an empty page. 2.1% keep their real content (the&lt;br&gt;
price list, the service menu) in a PDF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pages are not thin.&lt;/strong&gt; Median homepage: 880 words. Only 3.9% are under&lt;br&gt;
150 words. The problem is not that these sites say too little. It is that what&lt;br&gt;
they say is not in a form a machine can attribute, quote or verify.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;llms.txt is nowhere.&lt;/strong&gt; 63.6% have no /llms.txt. I include this last because I&lt;br&gt;
am not sure it matters yet; it is a proposed convention, not a standard the&lt;br&gt;
assistants have committed to. But it costs an hour and it is a clean signal of&lt;br&gt;
whether anyone has thought about machine readers at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do assistants actually name these businesses?
&lt;/h3&gt;

&lt;p&gt;I also asked. For 9,240 of the businesses I put one buyer question from their&lt;br&gt;
market and trade to Claude with web retrieval on ("Who are the best&lt;br&gt;
electricians in Brampton?" and the like) and checked whether the business was&lt;br&gt;
named. 14.9% were. Among the 5,928 questions where the assistant answered with&lt;br&gt;
a clearly differentiated list rather than a hedge, 17.7%.&lt;/p&gt;

&lt;p&gt;Treat that as a directional number, not a rate. It is one question per&lt;br&gt;
business, one assistant, one day. The full question panel I use for paying&lt;br&gt;
clients is ten to twelve questions; this was a tenth of that, run at scale. A&lt;br&gt;
proper study would run the panel. What I can say is that the businesses that&lt;br&gt;
were named were, on inspection, the ones whose sites had the answer-shaped&lt;br&gt;
content and the consistent identity described above, and that is the whole&lt;br&gt;
reason I keep measuring this.&lt;/p&gt;

&lt;p&gt;One more thing from those 9,240 answers that I did not expect. Of every name&lt;br&gt;
the assistant gave, 0.6% were directories or aggregators (Yelp, Angi and the&lt;br&gt;
rest). 99.4% were actual businesses. Google's first page for these questions is&lt;br&gt;
mostly aggregators. The assistant's answer is mostly not. If you are a small&lt;br&gt;
business that has spent ten years failing to outrank Yelp, that is a&lt;br&gt;
different game, and it is being decided by what your own site serves.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to do with this
&lt;/h3&gt;

&lt;p&gt;If you run one of these sites, the order that follows from the data is: put&lt;br&gt;
your name, address and phone in one form and repeat it exactly on every page;&lt;br&gt;
mark up the business, not the website, with LocalBusiness or the specific type&lt;br&gt;
and fill in the address, phone, opening hours and area served; put your&lt;br&gt;
reviews on the page as text and as AggregateRating; write the five questions&lt;br&gt;
your customers ask on the phone, as headings, with real answers under them.&lt;br&gt;
Then check what a crawler actually receives, because 7% of you are behind a&lt;br&gt;
bot wall you did not know was there.&lt;/p&gt;

&lt;p&gt;If you want to check what your own site serves, the free visibility check at&lt;br&gt;
gaash.ai does exactly the fetch described here and sends back the result within&lt;br&gt;
48 hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method
&lt;/h3&gt;

&lt;p&gt;Crawler user agent &lt;code&gt;gaash-audit/1.0 (+https://gaash.ai/methodology)&lt;/code&gt;, no&lt;br&gt;
JavaScript execution, following redirects, fetching &lt;code&gt;/&lt;/code&gt;, the contact page and&lt;br&gt;
the about page where linked from the homepage, plus &lt;code&gt;/robots.txt&lt;/code&gt; and&lt;br&gt;
&lt;code&gt;/llms.txt&lt;/code&gt;. Schema detection covers JSON-LD and microdata. "NAP inconsistent"&lt;br&gt;
means more than one distinct phone number across the fetched pages or no&lt;br&gt;
parseable postal address. The probe used Claude (Opus) with retrieval enabled,&lt;br&gt;
one question per business, drawn from a panel built per metro and trade. Sample&lt;br&gt;
drawn from businesses discovered per metro and trade, not from a random frame;&lt;br&gt;
percentages describe this sample. Full methodology at &lt;a href="https://gaash.ai/methodology" rel="noopener noreferrer"&gt;gaash.ai/methodology&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://gaash.ai/insights/articles/what-9483-small-business-websites-serve-to-an-ai-crawler" rel="noopener noreferrer"&gt;gaash.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>data</category>
    </item>
  </channel>
</rss>
