<?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: Aaron Stalberg</title>
    <description>The latest articles on DEV Community by Aaron Stalberg (@aaronstalberg).</description>
    <link>https://dev.to/aaronstalberg</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%2F4138024%2F9112321d-3ed0-43c7-bdce-e272d15d977a.jpg</url>
      <title>DEV Community: Aaron Stalberg</title>
      <link>https://dev.to/aaronstalberg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aaronstalberg"/>
    <language>en</language>
    <item>
      <title>Why “just fix the website” does not fix AI visibility</title>
      <dc:creator>Aaron Stalberg</dc:creator>
      <pubDate>Fri, 30 Oct 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/aaronstalberg/why-just-fix-the-website-does-not-fix-ai-visibility-4j1k</link>
      <guid>https://dev.to/aaronstalberg/why-just-fix-the-website-does-not-fix-ai-visibility-4j1k</guid>
      <description>&lt;p&gt;The most common advice about AI visibility is to fix your own website. Get the structured data right, state what you do, publish good content. All of that is correct, and none of it is enough on its own.&lt;/p&gt;

&lt;p&gt;I measured 37 sites for how often assistants named them in their own category. The results did not line up with anything I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did not predict it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Domain authority.&lt;/strong&gt; Some of the highest-authority sites in the set were named rarely. Two of the lowest were named consistently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traffic.&lt;/strong&gt; Organic visibility and AI visibility came apart repeatedly. Sites with a fraction of the traffic were quoted more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Site quality.&lt;/strong&gt; Fast, well-designed, technically excellent, and sometimes invisible. One of the best-built sites in the set was absent from every answer I checked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content volume.&lt;/strong&gt; Hundreds of blog posts did not beat one page that answered a narrow question completely.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did
&lt;/h2&gt;

&lt;p&gt;The distinction that held up was not how good the site was. It was how &lt;em&gt;Describable&lt;/em&gt; the company was, and how consistently that description appeared in places the site did not control.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A single unambiguous entity.&lt;/strong&gt; The models could resolve the company to one thing. Where a name was shared, or a brand was ambiguous, the company got dropped rather than guessed at.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independent corroboration.&lt;/strong&gt; Third-party sources that said the same thing as the site. This mattered more than the site itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Being quotable.&lt;/strong&gt; A specific, dated, attributable claim. Vague positioning gave a model nothing to lift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owning one narrow question.&lt;/strong&gt; The sites that were named most were often not the biggest. They were the definitive answer to something specific.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The pattern is that AI visibility is largely a property of your reputation &lt;em&gt;Elsewhere&lt;/em&gt;, what other sources say about you and whether they agree. Your site is where you make that easy to verify, not where you create it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why the usual advice stops short
&lt;/h2&gt;

&lt;p&gt;Website advice is popular because it is actionable and entirely within your control. That is also its limitation. Most of what determines whether an assistant names you happens off your domain, in sources you do not own and often cannot edit.&lt;/p&gt;

&lt;p&gt;Which means the work splits into three kinds, and only the first is familiar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;On your site.&lt;/strong&gt; State plainly what you do, to whom, and where. Make the entity unambiguous. Publish things worth citing. Necessary, and the easy part.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Off your site, fixable.&lt;/strong&gt; Directories and profiles that are wrong, inconsistent or missing. Tedious, high-yield, and almost nobody does it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Off your site, not yours.&lt;/strong&gt; Trade press, archives, review sites. Requires asking someone else, and often the only route to correcting a wrong answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The caveat
&lt;/h2&gt;

&lt;p&gt;37 sites is a small sample, chosen rather than randomly sampled, and measured at one moment. I would not dress it up as research. But the direction was consistent enough that I stopped expecting site quality to predict anything, and started looking at consistency and corroboration instead.&lt;/p&gt;

&lt;p&gt;If you only fix your website, you will have done the part that was never the bottleneck.&lt;/p&gt;

</description>
      <category>search</category>
      <category>llm</category>
      <category>ai</category>
      <category>seo</category>
    </item>
    <item>
      <title>Mentioned is not the same as cited</title>
      <dc:creator>Aaron Stalberg</dc:creator>
      <pubDate>Fri, 23 Oct 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/aaronstalberg/mentioned-is-not-the-same-as-cited-41e0</link>
      <guid>https://dev.to/aaronstalberg/mentioned-is-not-the-same-as-cited-41e0</guid>
      <description>&lt;p&gt;Most people measuring AI visibility count mentions. Their name appeared, the number went up, the report looks healthy. It is the wrong metric, and the gap between the two is where the work actually is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two outcomes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mentioned&lt;/strong&gt; means an assistant lists you among several options. You were in the answer. Someone reading it saw your name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cited&lt;/strong&gt; means the assistant used your page as a source. You are the reason the answer says what it says.&lt;/p&gt;

&lt;p&gt;The first is exposure. The second is influence. Only the second compounds, because a cited source tends to get cited again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the distinction survives
&lt;/h2&gt;

&lt;p&gt;Assistants assemble answers from a working set of sources. Once a page is in that set, it gets reused across questions in the same territory. A mention does not do that. A mention is an output; a citation is an input.&lt;/p&gt;

&lt;p&gt;This is why two companies with identical mention counts can have completely different trajectories. One is being read every time the category comes up. The other is being repeated from somebody else's page.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to tell which one you are
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Look for the sources, not the names.&lt;/strong&gt; Most assistants link what they used. If your domain appears in those links, you are a source. If it only appears in the prose, you are a mention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask the question you did not write.&lt;/strong&gt; Mention-tracking tends to use questions where you already do well. Ask the awkward adjacent one and watch what happens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check whether the answer changes when your page changes.&lt;/strong&gt; Edit something specific and re-ask. If the answer moves, you are a source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count how many of the cited pages are yours.&lt;/strong&gt; Zero is common, and it is the finding that matters.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;A page can be cited across a whole category while the company behind it is named only occasionally. That is a much stronger position than being named everywhere and cited nowhere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What moves you from mentioned to cited
&lt;/h2&gt;

&lt;p&gt;Being quotable. A model will not cite a page it cannot lift a clean sentence from.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;State facts with dates.&lt;/strong&gt; "In March we measured X across 37 sites" is citable. "We are passionate about results" is not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Own one narrow question completely.&lt;/strong&gt; The page that is the definitive answer to a specific problem gets cited for that problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Put a number on something.&lt;/strong&gt; Original data is the most cited content there is, because nobody else has it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the page current.&lt;/strong&gt; Dated and maintained beats dated and abandoned.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where this breaks down
&lt;/h2&gt;

&lt;p&gt;You cannot force a citation, and no tool can promise one. What you can do is make yourself the easiest correct answer to describe, and then check whether the description is being used. The checking is the part people skip.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>analytics</category>
      <category>llm</category>
      <category>seo</category>
    </item>
    <item>
      <title>How AI assistants choose which sources to believe</title>
      <dc:creator>Aaron Stalberg</dc:creator>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/aaronstalberg/how-ai-assistants-choose-which-sources-to-believe-13lk</link>
      <guid>https://dev.to/aaronstalberg/how-ai-assistants-choose-which-sources-to-believe-13lk</guid>
      <description>&lt;p&gt;When an assistant answers a question about a category, it does not go and read the internet. It reads a small set of things it has already decided are worth believing, and then writes a fluent answer from them. That set is assembled before anyone asks anything, and it is far narrower than most people assume.&lt;/p&gt;

&lt;p&gt;I have spent a long time watching which sources survive into the answer and which get dropped. The pattern is consistent enough to describe, and it is not mainly about authority.&lt;/p&gt;

&lt;h2&gt;
  
  
  The assistant is assembling: not ranking
&lt;/h2&gt;

&lt;p&gt;A search engine gives you ten candidates and lets you judge. An assistant gives you one answer and asks you to trust it. Those are different jobs, and they reward different things.&lt;/p&gt;

&lt;p&gt;Ranking rewards being popular and relevant. Assembling rewards being &lt;em&gt;Usable&lt;/em&gt;, clear enough that a model can lift a fact out of you and put it in a sentence without hedging. A page that is vague is useless to an assistant even if it ranks first, because there is nothing in it to quote.&lt;/p&gt;

&lt;p&gt;This is the single most common failure I see. A company ranks well, has traffic, has been in business for years, and is absent from AI answers because no page on the site states plainly what the company does and who for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What survives into an answer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured data that makes the entity unambiguous.&lt;/strong&gt; If a model cannot tell which company it is looking at, it will not risk naming one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent descriptions across independent places.&lt;/strong&gt; The same positioning on your site, your profiles and a directory reads as fact. Three slightly different versions read as uncertainty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dated, attributable writing.&lt;/strong&gt; Something that states a position and can be cited. Undated marketing copy is not citable, so it is not cited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third-party sources that already cover the subject.&lt;/strong&gt; Directories, trade press and review sites carry more weight than your own blog, because they are not yours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pages that answer one question clearly.&lt;/strong&gt; Narrow and complete beats broad and thin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does not
&lt;/h2&gt;

&lt;p&gt;Ad spend, domain authority on its own, meta descriptions, and the clever line on your homepage that does not actually say what you sell. None of these give a model a fact it can use.&lt;/p&gt;

&lt;p&gt;Backlinks matter less than people expect here, and for a structural reason. A model is not scoring links. It is trying to be accurate, and accuracy comes from being easy to describe correctly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A useful test: cover your logo and read your homepage. If you cannot tell what the company sells, to whom, from that page alone, a model cannot either.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why the same facts appear in different answers
&lt;/h2&gt;

&lt;p&gt;Ask two assistants the same question and you will often get different companies named. That is not randomness. They are reading overlapping but different sets of sources, weighting them differently, and assembling at different moments.&lt;/p&gt;

&lt;p&gt;It also means an answer is not fixed. When a source changes, an answer built on it can change, which is the useful part, because it means the position is influenceable. It is also the frustrating part, since it will not hold still while you measure it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The limits of this
&lt;/h2&gt;

&lt;p&gt;Nobody outside the labs knows the exact weights, and they change. What I can describe is the pattern across many observations: clear, consistent, citable, independently corroborated sources appear far more often than popular ones that are vague. That is enough to act on, even without the mechanism.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>search</category>
    </item>
    <item>
      <title>The model that decides and never clicks</title>
      <dc:creator>Aaron Stalberg</dc:creator>
      <pubDate>Thu, 24 Sep 2026 14:55:48 +0000</pubDate>
      <link>https://dev.to/aaronstalberg/the-model-that-decides-and-never-clicks-4b2n</link>
      <guid>https://dev.to/aaronstalberg/the-model-that-decides-and-never-clicks-4b2n</guid>
      <description>&lt;p&gt;Most browser automation hands the model the page and hopes. I run it the other way round, and it holds up better in production.&lt;/p&gt;

&lt;p&gt;The model never touches the page. It receives a text description of the state and returns a judgement. Three answer types only: a probability, a choice from a list I supply, or a score between 0 and 1. Separate code performs the action.&lt;/p&gt;

&lt;p&gt;Why that beats an open-ended agent loop:&lt;/p&gt;

&lt;p&gt;Every decision is loggable, because the answer is one of a closed set rather than a paragraph of reasoning.&lt;/p&gt;

&lt;p&gt;The action layer is testable on its own. Whether a click landed is a question about the harness, and you can test that with no model in the loop at all.&lt;/p&gt;

&lt;p&gt;The blast radius is small. A model that can only choose from a list cannot invent a step.&lt;/p&gt;

&lt;p&gt;The failure mode is the part worth knowing. A decision model is exactly as good as the options you hand it. I once asked one to find the reply control on a webmail page. The state described the page accurately, the model answered confidently, and the answer was useless, because the control had never been in the option set.&lt;/p&gt;

&lt;p&gt;The fix is to stop asking open questions and start enumerating. Walk the page, tag every clickable element, hand over the numbered list. On that page there were 33 candidates. Given the list, the same model picked the right one at a stated confidence of 1.00.&lt;/p&gt;

&lt;p&gt;A second use worth more than I expected: turning a repeated judgement into a rubric. Any call a person makes over and over can usually be broken into closed questions, and then it stops being an opinion and becomes a measurement.&lt;/p&gt;

&lt;p&gt;The honest limitation. The model has no memory between calls, so everything it needs must be in the state you send. It also cannot tell you that your option set is incomplete. That failure is silent, and it looks like a model problem when it is a design problem.&lt;/p&gt;

&lt;p&gt;I build these systems for a living, so I have an interest in the approach. The reason I settled on it is narrow. It is the only arrangement where I can read the logs afterwards and say what was decided, by what, from which options, and whether it worked.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at *&lt;/em&gt;&lt;a href="https://aaronstalberg.com/writing/the-model-that-decides-and-never-clicks.html" rel="noopener noreferrer"&gt;aaronstalberg.com&lt;/a&gt;*&lt;em&gt;. If this one was useful, the rest of the series is here:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aaronstalberg.com/writing/mentioned-is-not-cited.html" rel="noopener noreferrer"&gt;Mentioned is not the same as cited&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aaronstalberg.com/writing/how-ai-assistants-choose-sources.html" rel="noopener noreferrer"&gt;How AI assistants choose which sources to believe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aaronstalberg.com/writing/why-fixing-your-website-is-not-enough.html" rel="noopener noreferrer"&gt;Why "just fix the website" does not fix AI visibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aaronstalberg.com/writing.html" rel="noopener noreferrer"&gt;All writing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
