<?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: Andres Rusic</title>
    <description>The latest articles on DEV Community by Andres Rusic (@marketingandai).</description>
    <link>https://dev.to/marketingandai</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%2F4160710%2F99c41e5f-e6a0-450d-b74c-a1d0397d9bb7.jpg</url>
      <title>DEV Community: Andres Rusic</title>
      <link>https://dev.to/marketingandai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marketingandai"/>
    <language>en</language>
    <item>
      <title>I asked Google AI Mode and Perplexity 232 local questions. Here's what they actually cite.</title>
      <dc:creator>Andres Rusic</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:52:07 +0000</pubDate>
      <link>https://dev.to/marketingandai/i-asked-google-ai-mode-and-perplexity-232-local-questions-heres-what-they-actually-cite-2en2</link>
      <guid>https://dev.to/marketingandai/i-asked-google-ai-mode-and-perplexity-232-local-questions-heres-what-they-actually-cite-2en2</guid>
      <description>&lt;p&gt;Last month I &lt;a href="https://dev.to/marketingandai/i-crawled-3014-houston-business-websites-to-see-what-ai-crawlers-actually-see-1fj7"&gt;crawled 3,014 Houston business websites&lt;/a&gt; to see what AI crawlers can actually read. That left a question the crawl data couldn't answer on its own: does any of it matter? Do AI search engines cite the sites that are easy to read, or something else entirely?&lt;/p&gt;

&lt;p&gt;So on October 30 I asked Google AI Mode and Perplexity the kind of questions customers type every day, like "Who is the best plumber in Katy, TX?" and "How much does AC repair cost in Sugar Land, TX?". That came to 232 questions across 15 industries and 8 Houston-area cities, with no brand names and no system prompt. Then I traced every source each answer cited and every business it recommended, and matched the cited websites back to the October crawl.&lt;/p&gt;

&lt;p&gt;The full report, charts and method are on our site: &lt;a href="https://marketingandai.com/research/houston-ai-citation-study/" rel="noopener noreferrer"&gt;Houston AI Citation Study&lt;/a&gt;. The data is free under CC BY 4.0 on &lt;a href="https://huggingface.co/datasets/Marketingandai/houston-ai-citation-study" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; and &lt;a href="https://www.kaggle.com/datasets/marketingandai/houston-ai-citation-study-october-2026" rel="noopener noreferrer"&gt;Kaggle&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two engines, two very different playbooks
&lt;/h2&gt;

&lt;p&gt;Here's where the citations came from when I asked who the best business in a city was:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;th&gt;Google AI Mode&lt;/th&gt;
&lt;th&gt;Perplexity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Business Profiles&lt;/td&gt;
&lt;td&gt;79%&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business websites&lt;/td&gt;
&lt;td&gt;5%&lt;/td&gt;
&lt;td&gt;49%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Directories, review and ranking sites&lt;/td&gt;
&lt;td&gt;9%&lt;/td&gt;
&lt;td&gt;45%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reddit and social media&lt;/td&gt;
&lt;td&gt;0.2%&lt;/td&gt;
&lt;td&gt;0.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;AI Mode leans almost entirely on Google Business Profiles. 95% of the businesses it recommended came with a profile card, and in 101 of 108 answers every single pick did. Those businesses had a median of 4.9 stars and 323 reviews.&lt;/p&gt;

&lt;p&gt;Perplexity works more like a researcher. It attaches sources to each pick, and the business's own website was one of them 38% of the time. The rest came from Yelp, Zocdoc, Best Lawyers, HAR.com and similar directories.&lt;/p&gt;

&lt;p&gt;The two rarely agree. They named the same top business for only 9 of 108 questions, and shared even one cited website on just a quarter of them. Reddit, for all the attention it gets in AI search conversations, showed up in 9 of 464 answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do AI-ready websites actually get cited more?
&lt;/h2&gt;

&lt;p&gt;This was the question I cared about most. The October crawl checked four basics: AI search crawlers allowed in robots.txt, at least 120 words readable without JavaScript, business schema, and a single H1.&lt;/p&gt;

&lt;p&gt;I looked at it two ways. First, in time order. Of the 1,580 sites from the crawl in the industries I asked about, the ones that passed all four checks on October 2 were cited by October 30 at 5.9%, against 1.4% for everyone else. After controlling for industry and link authority, that's an odds ratio of 4.6 (95% CI 2.3 to 9.2).&lt;/p&gt;

&lt;p&gt;Second, cited versus not cited. The 603 local business homepages the engines cited passed all four checks 65% of the time. The 1,531 sites that weren't cited passed 32% of the time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Cited&lt;/th&gt;
&lt;th&gt;Not cited&lt;/th&gt;
&lt;th&gt;Adjusted odds ratio&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;All four basics&lt;/td&gt;
&lt;td&gt;65%&lt;/td&gt;
&lt;td&gt;32%&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;120+ words without JavaScript&lt;/td&gt;
&lt;td&gt;97%&lt;/td&gt;
&lt;td&gt;82%&lt;/td&gt;
&lt;td&gt;5.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business schema&lt;/td&gt;
&lt;td&gt;81%&lt;/td&gt;
&lt;td&gt;56%&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FAQ schema&lt;/td&gt;
&lt;td&gt;46%&lt;/td&gt;
&lt;td&gt;17%&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Question-style subheadings&lt;/td&gt;
&lt;td&gt;68%&lt;/td&gt;
&lt;td&gt;35%&lt;/td&gt;
&lt;td&gt;2.8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What surprised me is that link authority doesn't explain it. Using Common Crawl's web graph, the cited sites were, if anything, less linked-to than the rest, and the gap held at every authority level.&lt;/p&gt;

&lt;p&gt;I want to be careful here: this is a strong association, not proof of cause. Ahrefs ran a controlled test this year and found that adding schema to pages that were already being cited didn't raise their citations. My data covers a different situation, local sites the engines may never have seen before, but businesses that fix the basics usually fix other things too.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few other findings worth knowing
&lt;/h2&gt;

&lt;p&gt;City pages matter. For "best ___ in [city]" questions, 80% of the business pages that got cited had the city in the URL or page title.&lt;/p&gt;

&lt;p&gt;Booking pages count. On price questions, 22% of AI Mode's citations went to booking pages on Square, Tekmetric or Vetstoria that list public prices.&lt;/p&gt;

&lt;p&gt;Ranking yourself doesn't help. When a business's own "Best plumbers in Katy" post was cited, Perplexity recommended that business 47% of the time, about the same as businesses whose other pages were cited (45%).&lt;/p&gt;

&lt;p&gt;The answers move. I asked Perplexity every question a second time, about 10 minutes later. The sources overlapped 98.5% and the top pick held 82% of the time, but only 69% of the businesses it named stayed the same. A single check isn't a measurement.&lt;/p&gt;

&lt;p&gt;City names trip it up. 9 of 58 answers about Pasadena, Texas cited businesses in Pasadena, California.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;I collected the answers with a short Python script: Perplexity's Sonar API at default settings, and Google AI Mode through SerpApi with the search located in Houston. All 696 answers came in within about 30 minutes.&lt;/p&gt;

&lt;p&gt;Every cited domain was classified as a business site, directory, Google profile, booking page and so on. I used hand-coded lists for roughly 640 domains, plus the crawl data and the address and phone details in each site's schema for the rest. None were left unclassified.&lt;/p&gt;

&lt;p&gt;Recommendations came from AI Mode's profile cards and from the business names in Perplexity's answers, matched to the numbered citations next to them. I checked 55 at random by hand. 53 names were right, and I fixed the matching bugs that turned up.&lt;/p&gt;

&lt;p&gt;The website checks ran on the same crawler as the October study, so cited and non-cited sites were measured the same way. The statistics are logistic regressions with industry fixed effects, with bootstrapped confidence intervals.&lt;/p&gt;

&lt;p&gt;The limits are real: one day, one metro, two engines, and API results rather than what a signed-in person sees. ChatGPT and Google's AI Overviews weren't part of this round.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do with this
&lt;/h2&gt;

&lt;p&gt;If you run a local business, the takeaways are unglamorous but clear. Keep your Google Business Profile complete and keep reviews coming in, because that's what AI Mode reads. Then make sure your website gives Perplexity something to cite: real text in the HTML, LocalBusiness schema, one H1, question-style headings backed by FAQ schema, a page for each city you serve, and prices people can see.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I run Marketing &amp;amp; AI, a Houston SEO and AEO agency. SEO agencies were one of the 15 industries, and we weren't cited in a single answer either.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>datascience</category>
    </item>
    <item>
      <title>I crawled 3,014 Houston business websites to see what AI crawlers actually see</title>
      <dc:creator>Andres Rusic</dc:creator>
      <pubDate>Sun, 04 Oct 2026 01:47:54 +0000</pubDate>
      <link>https://dev.to/marketingandai/i-crawled-3014-houston-business-websites-to-see-what-ai-crawlers-actually-see-1fj7</link>
      <guid>https://dev.to/marketingandai/i-crawled-3014-houston-business-websites-to-see-what-ai-crawlers-actually-see-1fj7</guid>
      <description>&lt;p&gt;Everyone keeps asking me if they should block ChatGPT from their website. So I went and looked at what businesses in Houston are actually doing, and the answer surprised me: almost nobody is blocking AI. Their sites just aren't built in a way AI can read.&lt;/p&gt;

&lt;p&gt;Here's what I did and what I found. The full dataset is public if you want to poke at it [links at the bottom].&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;I pulled every business in the Houston metro that lists a website in OpenStreetMap, deduped by domain, and ended up with 3,014 sites. Anything sharing a domain across 3 or more locations got treated as a chain, which left 2,474 independents.&lt;/p&gt;

&lt;p&gt;For each site the crawler fetched three things, once: &lt;code&gt;robots.txt&lt;/code&gt;, &lt;code&gt;llms.txt&lt;/code&gt;, and the homepage. It identified itself with its own user agent and skipped any site whose robots.txt told it to stay out. It runs on a Cloudflare Worker with &lt;code&gt;HTMLRewriter&lt;/code&gt;, which streams the HTML so attribute order doesn't matter and a heavy page doesn't blow up memory [I cap it at 1.5 MB].&lt;/p&gt;

&lt;p&gt;Four checks made up what I call the "AI-ready basics":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;robots.txt lets the AI &lt;strong&gt;search&lt;/strong&gt; crawlers in (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot, plus Googlebot and Bingbot since they feed AI Overviews and Copilot)&lt;/li&gt;
&lt;li&gt;at least 120 words of readable text in the raw HTML, before any JavaScript runs&lt;/li&gt;
&lt;li&gt;some kind of business schema in JSON-LD (LocalBusiness, Organization, etc)&lt;/li&gt;
&lt;li&gt;exactly one H1&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The results (independents)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;31%&lt;/strong&gt; pass all four&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;45%&lt;/strong&gt; have no business schema at all&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;27%&lt;/strong&gt; have no H1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;19%&lt;/strong&gt; show under 120 words before JavaScript runs (restaurants: 33%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;30%&lt;/strong&gt; already serve an &lt;code&gt;llms.txt&lt;/code&gt;, and several are clearly plugin-generated [one literally says "Generated by Rank Math SEO"]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chains weren't any better: 29% pass all four.&lt;/p&gt;

&lt;h2&gt;
  
  
  The robots.txt part, and where I was wrong
&lt;/h2&gt;

&lt;p&gt;Only 1.6% of independents block an AI search crawler in robots.txt. I evaluated rules per crawler token for the homepage path using RFC 9309 longest-match, so a site that blocks &lt;code&gt;/search&lt;/code&gt; but not &lt;code&gt;/&lt;/code&gt; doesn't count as blocked. Training-only tokens (GPTBot, ClaudeBot, Google-Extended, CCBot) are reported separately, since blocking those opts you out of training, not out of answers.&lt;/p&gt;

&lt;p&gt;A commenter on LinkedIn pointed out that robots.txt isn't the whole story: a site can allow a bot in the file and still block it at the firewall. Fair point, so I tested it. I took 400 random sites that allow AI crawlers in robots.txt and fetched each homepage with a normal browser user agent and then with each crawler's user agent:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;User agent&lt;/th&gt;
&lt;th&gt;Blocked anyway&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPTBot&lt;/td&gt;
&lt;td&gt;9.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ClaudeBot&lt;/td&gt;
&lt;td&gt;10.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OAI-SearchBot&lt;/td&gt;
&lt;td&gt;3.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PerplexityBot&lt;/td&gt;
&lt;td&gt;3.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude-SearchBot&lt;/td&gt;
&lt;td&gt;2.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most of those are hard 403s from bot protection, which lines up with the "block AI bots" toggles CDNs ship. Counting both layers, effective AI search blocking is about 5%, not 1.6%. Caveat: I sent the user agents from my own network, not the crawlers' IP ranges, so a firewall that only blocks impostors would make these numbers a bit high. Server logs are the only way to know for sure on a given site.&lt;/p&gt;

&lt;h2&gt;
  
  
  The JavaScript part is the one that actually matters
&lt;/h2&gt;

&lt;p&gt;GPTBot, ClaudeBot and PerplexityBot mostly read raw HTML and don't execute JavaScript. So a homepage that renders its content client-side looks close to empty to them. I counted words inside &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;li&lt;/code&gt;, &lt;code&gt;h1&lt;/code&gt; to &lt;code&gt;h6&lt;/code&gt;, &lt;code&gt;td&lt;/code&gt; and &lt;code&gt;dd&lt;/code&gt; in the raw HTML; under 120 means there's basically nothing for an AI answer to quote.&lt;/p&gt;

&lt;p&gt;If you build sites, the cheap fixes are boring and that's the point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;render the main copy on the server or pre-render it (Astro, Next SSG, whatever you like)&lt;/li&gt;
&lt;li&gt;ship a LocalBusiness JSON-LD block with the exact name, address, phone and hours&lt;/li&gt;
&lt;li&gt;check robots.txt &lt;strong&gt;and&lt;/strong&gt; your CDN's bot settings, separately&lt;/li&gt;
&lt;li&gt;one H1, and subheads written as the questions customers actually ask&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data
&lt;/h2&gt;

&lt;p&gt;Everything's CC BY 4.0, aggregate only, no individual business named:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Report and method: &lt;a href="https://marketingandai.com/research/houston-ai-visibility-index/" rel="noopener noreferrer"&gt;https://marketingandai.com/research/houston-ai-visibility-index/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hugging Face: &lt;a href="https://huggingface.co/datasets/Marketingandai/houston-ai-visibility-index" rel="noopener noreferrer"&gt;https://huggingface.co/datasets/Marketingandai/houston-ai-visibility-index&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kaggle: &lt;a href="https://www.kaggle.com/datasets/marketingandai/houston-ai-visibility-index-october-2026" rel="noopener noreferrer"&gt;https://www.kaggle.com/datasets/marketingandai/houston-ai-visibility-index-october-2026&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to check a single site the same way, the scanner is free: &lt;a href="https://marketingandai.com/free-tools/ai-search-visibility/" rel="noopener noreferrer"&gt;https://marketingandai.com/free-tools/ai-search-visibility/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious if anyone's seen different numbers in their own city. I'd bet the JavaScript one is worse in places with more agency-built SPAs.&lt;/p&gt;

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