<?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: Robin</title>
    <description>The latest articles on DEV Community by Robin (@robin_geo).</description>
    <link>https://dev.to/robin_geo</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%2F4178822%2Ff6073c7b-cb18-4da3-842c-ecaee8bc9b7b.png</url>
      <title>DEV Community: Robin</title>
      <link>https://dev.to/robin_geo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robin_geo"/>
    <language>en</language>
    <item>
      <title>Which blogging platforms let AI search bots read your posts? (robots.txt and raw HTML, checked 31 Oct 2026)</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Mon, 02 Nov 2026 11:23:51 +0000</pubDate>
      <link>https://dev.to/robin_geo/which-blogging-platforms-let-ai-search-bots-read-your-posts-robotstxt-and-raw-html-checked-31-5e4</link>
      <guid>https://dev.to/robin_geo/which-blogging-platforms-let-ai-search-bots-read-your-posts-robotstxt-and-raw-html-checked-31-5e4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; in my check, dev.to, Substack and Gumroad allow GPTBot, OAI-SearchBot, PerplexityBot and Google-Extended in robots.txt. Medium disallows GPTBot but allows the others. Indie Hackers disallows all four for the whole site. On dev.to the full post text is also in the raw HTML, so a crawler that does not run JavaScript still gets the article.&lt;/p&gt;

&lt;p&gt;Small sample: one day, one machine, plain &lt;code&gt;curl&lt;/code&gt; with a browser user agent, no bot user agents spoofed. Part of the run was interrupted, so anything I could not finish is left out.&lt;/p&gt;

&lt;h2&gt;
  
  
  robots.txt, per host
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;host&lt;/th&gt;
&lt;th&gt;GPTBot&lt;/th&gt;
&lt;th&gt;OAI-SearchBot&lt;/th&gt;
&lt;th&gt;PerplexityBot&lt;/th&gt;
&lt;th&gt;Google-Extended&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;dev.to&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;aicitationnotes.substack.com&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;normbrytande.gumroad.com&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;td&gt;allowed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;medium.com&lt;/td&gt;
&lt;td&gt;disallowed (&lt;code&gt;/&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;allowed (&lt;code&gt;*&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;allowed (&lt;code&gt;*&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;allowed (&lt;code&gt;*&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;indiehackers.com&lt;/td&gt;
&lt;td&gt;disallowed (&lt;code&gt;/&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;disallowed (&lt;code&gt;/&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;disallowed (&lt;code&gt;/&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;disallowed (&lt;code&gt;/&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Allowed" means robots.txt does not forbid it. Whether a CDN or WAF blocks the real bots is not verified.&lt;/li&gt;
&lt;li&gt;GPTBot is OpenAI's training crawler. OAI-SearchBot is the one used for ChatGPT search. Medium only blocks the first.&lt;/li&gt;
&lt;li&gt;dev.to serves a &lt;code&gt;/llms.txt&lt;/code&gt; (200). It asks that AI-assisted articles set &lt;code&gt;ai_disclosure_level&lt;/code&gt; accurately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Is the article text in raw HTML?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; &lt;span class="nt"&gt;--compressed&lt;/span&gt; &lt;span class="nt"&gt;-A&lt;/span&gt; &lt;span class="s2"&gt;"&amp;lt;Chrome desktop UA&amp;gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$URL&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;dev.to: all 5 of my posts, full text present, 692 to 1,657 words each.&lt;/li&gt;
&lt;li&gt;Substack and Indie Hackers: full text present.&lt;/li&gt;
&lt;li&gt;Medium: 403 Cloudflare challenge on profile and all 6 posts. The RSS feed returned full content.&lt;/li&gt;
&lt;li&gt;Gumroad product pages: body text only inside an Inertia &lt;code&gt;data-page&lt;/code&gt; JSON attribute, plus &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;, meta description and Product JSON-LD.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Exact-title lookups
&lt;/h2&gt;

&lt;p&gt;With a web search tool (backend not disclosed, so not tied to any specific engine): all 5 of my dev.to posts were found by exact title. None of my 6 Medium posts were found, and for three cross-posted ones the dev.to copy came up instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the two dev.to posts Perplexity cited had in common
&lt;/h2&gt;

&lt;p&gt;For "How do I check if ChatGPT recommends my product?", Perplexity cited two dev.to posts by other authors, both with 0 reactions. One has the question as its title and answers in the first sentence. The other has a near-question title and answers within 3 short paragraphs, then lists numbered steps. My posts open with a story. Two examples are not proof, so the next test is one page with the question as H1 and the answer first.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>writing</category>
    </item>
    <item>
      <title>A reproducible way to log whether ChatGPT, Gemini and Perplexity cite you (with the CSV I use)</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Sat, 24 Oct 2026 20:25:57 +0000</pubDate>
      <link>https://dev.to/robin_geo/a-reproducible-way-to-log-whether-chatgpt-gemini-and-perplexity-cite-you-with-the-csv-i-use-2do8</link>
      <guid>https://dev.to/robin_geo/a-reproducible-way-to-log-whether-chatgpt-gemini-and-perplexity-cite-you-with-the-csv-i-use-2do8</guid>
      <description>&lt;p&gt;Small detail that made me write this: when I asked Perplexity "How do I check if ChatGPT recommends my product?" on 24 Oct 2026, 2 of its 10 sources were dev.to posts. Not mine, other authors. So if you write about this topic here, you are on a platform that actually gets pulled into answers.&lt;/p&gt;

&lt;p&gt;Here is the method I use to check that week over week, without a paid tool. It is boring on purpose. Boring is reproducible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why bother logging at all
&lt;/h2&gt;

&lt;p&gt;I ran 8 fixed buyer questions on ChatGPT, Gemini and Perplexity on 17 Oct and 24 Oct. Two things stood out in the data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The engines barely share sources. In week 1, ChatGPT and Gemini overlapped on only 3 domains.&lt;/li&gt;
&lt;li&gt;Gemini's source list mostly turned over in one week. Only a handful of URLs repeated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the answers move that much, a single check tells you very little. You need the same questions, asked the same way, logged the same way, repeatedly.&lt;/p&gt;

&lt;p&gt;(And yes, for transparency: my own stuff appeared in 0 of 40 answers across both weeks. The method works fine for measuring zero.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: freeze your questions
&lt;/h2&gt;

&lt;p&gt;Write 8 to 20 questions a buyer would type, without your brand name in them. All three engines recommended testing somewhere between 10 and 50 prompts, so pick a number you will actually keep up.&lt;/p&gt;

&lt;p&gt;Then freeze them. Put them in a file, give each an ID, and never reword. Mine look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Q1 | How do I check if ChatGPT recommends my product?
Q3 | What tools can I use to see if AI assistants cite my site?
Q8 | What are cheap or free tools to monitor my brand's visibility in AI answers?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you change the wording in week 3, you cannot compare week 3 to week 1. That is the whole game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: control the session
&lt;/h2&gt;

&lt;p&gt;Record the session state as data, because it changes the answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatGPT: I use it logged out, web search at default.&lt;/li&gt;
&lt;li&gt;Gemini: signed in to the same account every week (signed-in answers may be personalised, so note it).&lt;/li&gt;
&lt;li&gt;Perplexity: logged-out use was blocked for me on all 8 questions in week 1 ("Sign up and repeat your request."), so I now use a free account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perplexity's own answer to Q1 recommended running each prompt 3 times in a clean session, on different days. Gemini said 3 to 5 runs in a temporary chat the week before. I currently do one run per question per engine, which is the weak point of my setup. If you have the time, do 3 and record the run number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: log with a fixed schema
&lt;/h2&gt;

&lt;p&gt;This is the header of my &lt;code&gt;log.csv&lt;/code&gt;, plus a &lt;code&gt;run&lt;/code&gt; column I recommend adding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;date,engine,question_id,run,web_search_or_sources_shown,cited_urls,brands_tools_named,our_presence,note
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few rules that saved me later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One row per answer.&lt;/strong&gt; 3 engines x 8 questions = 24 rows per week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy cited URLs exactly.&lt;/strong&gt; Answer text can be summarized, but URLs are your real dataset. They are what lets you spot that dev.to showed up, or that 10 different small sites made up one source list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log the engine config in the row&lt;/strong&gt; ("logged out, web search default on").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log blocked runs as rows.&lt;/strong&gt; My week 1 Perplexity rows say &lt;code&gt;blocked&lt;/code&gt;. Missing data you documented is still data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate "named" from "cited".&lt;/strong&gt; A brand can be mentioned without a link, or linked without being recommended. Perplexity's Q1 answer suggested tracking whether you are named, your position, accuracy, competitors and cited URLs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep the raw answer for each row in its own text file (&lt;code&gt;raw/2026-10-24/perplexity-Q1.txt&lt;/code&gt;). The CSV is for counting, the raw file is for rereading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: compute two simple numbers
&lt;/h2&gt;

&lt;p&gt;You do not need a dashboard. Two numbers per week are enough:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Presence rate:&lt;/strong&gt; answers that name or cite you / total answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source overlap:&lt;/strong&gt; domains that appear in this week's list and last week's list, per engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The second one is underrated. It tells you how stable the "slot" you are trying to win actually is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 (optional): the GA4 side
&lt;/h2&gt;

&lt;p&gt;Logging answers tells you if you are cited. It does not tell you if anyone clicks. On the two GA4 questions, all three engines gave essentially the same answer both weeks: use GA4's AI Assistant channel, check session source/medium, and build a custom channel group above Referral with a regex. Perplexity's version of the filter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chatgpt\.com|chat\.openai\.com|openai\.com|perplexity\.ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two caveats the engines themselves gave: some AI visits land as Direct, and Perplexity traffic can still show up under Referral even with the AI Assistant channel. I do not have my own GA4 numbers to share here, so treat this as the consensus answer, not my results.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the engines will not tell you
&lt;/h2&gt;

&lt;p&gt;Every engine now recommends a manual spreadsheet, alongside tools like Otterly, Peec, Profound and the HubSpot AI Search Grader. The method is not a secret. What the free advice skips is discipline: frozen wording, controlled sessions, exact URLs, week-over-week comparison.&lt;/p&gt;

&lt;p&gt;I am on week 2 of doing this in public. If you run the same kind of log, I would genuinely like to compare overlap numbers in the comments.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>analytics</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>206 Sign-in Starts, 0 Signups: How to Check Whether AI Visitors Actually Convert</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Thu, 15 Oct 2026 09:00:23 +0000</pubDate>
      <link>https://dev.to/robin_geo/206-sign-in-starts-0-signups-how-to-check-whether-ai-visitors-actually-convert-4m6i</link>
      <guid>https://dev.to/robin_geo/206-sign-in-starts-0-signups-how-to-check-whether-ai-visitors-actually-convert-4m6i</guid>
      <description>&lt;p&gt;&lt;em&gt;A six-step check for ChatGPT and other AI-assistant traffic, built from the numbers founders shared under my last post.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A founder who commented on my last post had a funnel that looked broken. Over seven days their analytics showed 206 sign-in starts and 0 completed signups. Numbers like that send you straight into the auth code.&lt;/p&gt;

&lt;p&gt;The code was fine. Of 205 clicks on the Google sign-in button in four days, about 190 came from Germany. Each one was a different visitor. Many reported browser and OS pairs that don't exist in practice, like Safari on Linux. Once the founder excluded that traffic, 7-day visitors dropped from 358 to roughly 85, and sign-in starts dropped from 206 to 1. That single remaining start was their own test.&lt;/p&gt;

&lt;p&gt;Nothing in the funnel was broken. The visitors weren't real, and any conversion rate calculated that week would have had a fake denominator.&lt;/p&gt;

&lt;p&gt;My last post argued that AI referrals should be judged by what they turn into. Several readers answered with their own data, which was more useful than anything I wrote. Here it is as a method you can set up in an afternoon and leave running for a month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Remove traffic that isn't people
&lt;/h2&gt;

&lt;p&gt;Do this before you look at any source. If junk is in your totals, every rate you compute inherits it.&lt;/p&gt;

&lt;p&gt;What gave it away in the case above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One country suddenly owning one event. 190 of 205 clicks from a single country is a script, not a market.&lt;/li&gt;
&lt;li&gt;Every session is a new visitor, with no returns.&lt;/li&gt;
&lt;li&gt;Browser and OS pairs that don't ship. Apple doesn't make Safari for Linux, so "Safari on Linux" in your data is a user-agent string someone typed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exclude those, note what you excluded and why, and keep the before and after numbers.&lt;/p&gt;

&lt;p&gt;AI crawlers like GPTBot or PerplexityBot are a separate issue. They mostly don't run your analytics script, so count them in server logs as crawl, never as visitors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Tag AI sources by referrer and by utm_source
&lt;/h2&gt;

&lt;p&gt;Another founder shared a 30-day split from their product. AI-assistant visitors signed up at 33.7%. Google organic visitors signed up at 24.0%. That's a real gap, and the kind of number I hoped readers would find.&lt;/p&gt;

&lt;p&gt;The detail I'd pay more attention to: 877 of their 936 ChatGPT visits arrived with an empty referrer. They were only identifiable as ChatGPT because the links carried utm_source=chatgpt.com. Group by referrer alone and ChatGPT shrinks to 59 visits at most, with the other 877 sitting in Direct.&lt;/p&gt;

&lt;p&gt;So build your AI segment on both fields. In GA4, Plausible, PostHog or Fathom, save one filter where source, referrer or utm_source contains chatgpt, perplexity, gemini, copilot or claude. Then open five of those sessions and check that they look like people: a landing page, some time on site, an event. A value in the source column is a hint. It isn't proof.&lt;/p&gt;

&lt;p&gt;One gap you can't close here. Google counts clicks from AI Overviews and AI Mode inside the normal "Web" search type in Search Console, so they can't be pulled out. Log them as Google.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Pick one downstream action
&lt;/h2&gt;

&lt;p&gt;A third commenter gave me the cleanest test I've seen. Choose one action a visitor can take in their first session, such as an email capture, a preview open or a checkout start. Only one. Then watch it next to your AI referral count.&lt;/p&gt;

&lt;p&gt;If AI referrals rise and that action stays flat, your answer is no. Those visitors aren't doing anything yet, however good the traffic chart looks.&lt;/p&gt;

&lt;p&gt;The same commenter added a check I now run first: look at which page ChatGPT actually links to. It's often not the page you would pick. If the landing page doesn't make the next step obvious, a flat action count may be telling you about the page rather than the visitor.&lt;/p&gt;

&lt;p&gt;One action, not five: with small numbers, five metrics give you five chances to mistake noise for a win.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Compare against Google organic in the same window
&lt;/h2&gt;

&lt;p&gt;A conversion rate on its own says very little. 33.7% looks strong next to 24.0%. Next to 45% it would look ordinary.&lt;/p&gt;

&lt;p&gt;Google organic is the right baseline because it's the closest cousin of AI traffic: someone asked a question and clicked a result. Same date range, same action, same junk filters on both groups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Split by device before you call it an AI effect
&lt;/h2&gt;

&lt;p&gt;The founder with the 33.7% figure noticed that most of their ChatGPT visits came from phones. That matters. Phone and desktop visitors convert differently on most sites, and the direction depends on the product. If your Google traffic is mostly desktop and your ChatGPT traffic is mostly mobile, part of the gap might be the device and not the assistant.&lt;/p&gt;

&lt;p&gt;Cut the comparison into four cells: AI on phone, AI on desktop, Google on phone, Google on desktop. If AI still wins inside each device group, you have something worth acting on. If the gap disappears, you've saved yourself from rewriting your positioning around a phone effect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Run it for 30 days
&lt;/h2&gt;

&lt;p&gt;A week tells you very little. The 206/0 case shows how one bad week can take over a dashboard. Thirty days gives you enough rows to see whether the action moves with referrals, and time to change one thing (usually the landing page).&lt;/p&gt;

&lt;p&gt;While you wait, add a "How did you first hear about us?" field to signup or checkout, with ChatGPT, Perplexity, Gemini, Microsoft Copilot and Claude as separate options. Some AI visitors arrive with no referrer and no UTM at all, and asking is the only way to find them. Keep those answers in their own column. A customer saying "I found you on Perplexity" is real evidence, but it is weaker than a tracked session, and mixing the two inflates your total.&lt;/p&gt;

&lt;p&gt;My view after these comments: most small-site claims that AI traffic "converts amazingly" or "doesn't convert" were never checked. Both the fake-traffic case and the empty-referrer case would have produced a confident, wrong answer from uncleaned data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The kit I use for the 30 days
&lt;/h2&gt;

&lt;p&gt;I packaged my version of this routine as The AI Referral Ledger. It costs $19 and it's files only: no SaaS, no tracking script, no dashboard.&lt;/p&gt;

&lt;p&gt;You get an 11-page PDF guide, a ledger CSV and a markdown file with the copy-paste form field and a week-by-week checklist. The guide covers the source, referrer and utm_source filter, the five-session sanity check, why Search Console can't separate AI Overviews clicks, and what the vendor-documented bots say they do. Every AI-attributed row gets one label: confirmed (your analytics shows the AI session and the action), declared (the customer told you) or assisted (AI was part of the journey but not the last step you can see). The sheet has columns for landing page, the question the customer typed into the assistant, the action and its value, so you can see which pages lead anywhere. Week 1 takes about an hour, then about 30 minutes a week.&lt;/p&gt;

&lt;p&gt;What it doesn't do: it won't spot fake traffic for you, and it doesn't run the device split. Those are filters you set in your own analytics tool, as described above. It won't increase your AI traffic either. It records what is already happening, and your numbers may be small.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://normbrytande.gumroad.com/l/ai-referral-ledger" rel="noopener noreferrer"&gt;Get The AI Referral Ledger ($19)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not sure yet whether AI assistants mention you at all? Start with &lt;a href="https://normbrytande.gumroad.com/l/quwzbl" rel="noopener noreferrer"&gt;The 5-Prompt Citation Snapshot&lt;/a&gt;. It's free: a starter log for five fixed prompts across engines, with separate cells for "named" and "cited". If nobody names you, there's no referral traffic to measure yet.&lt;/p&gt;

&lt;p&gt;If you've run a split like the ones above, I'd like to see it. Did AI visitors still beat Google once you split by device?&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>ai</category>
      <category>startup</category>
      <category>marketing</category>
    </item>
    <item>
      <title>ChatGPT Is Sending You Visitors. Do They Buy?</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:00:21 +0000</pubDate>
      <link>https://dev.to/robin_geo/chatgpt-is-sending-you-visitors-do-they-buy-i73</link>
      <guid>https://dev.to/robin_geo/chatgpt-is-sending-you-visitors-do-they-buy-i73</guid>
      <description>&lt;p&gt;On Indie Hackers recently, an app founder mentioned that ChatGPT had become their third-largest organic traffic source, behind Google and Bing. A few years ago that sentence would have sounded odd. Now it's common enough that people mention it in passing.&lt;/p&gt;

&lt;p&gt;But my first question when I read it wasn't "how much traffic?" It was "do those people buy?"&lt;/p&gt;

&lt;p&gt;A visit is cheap. A sign-up costs the visitor some effort. A purchase costs them money. If you're a small team deciding where to spend your next month, only the last two really matter. So this post is about measuring AI referrals by what they turn into, not by how many there are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your AI numbers are probably too low
&lt;/h2&gt;

&lt;p&gt;Start with an uncomfortable fact: whatever your analytics says about AI traffic, the real number is likely higher.&lt;/p&gt;

&lt;p&gt;Referrers get lost. When someone taps a link inside a mobile app, the in-app browser often doesn't pass a referrer along, so the visit lands in "Direct" with no source attached. Desktop web versions of assistants tend to behave better than their apps, but you can't count on either.&lt;/p&gt;

&lt;p&gt;There has been some progress. On 1 October 2026, Roger Montti at Search Engine Journal reported that Google Gemini had started adding UTM parameters to outgoing links. Google hadn't documented it, so nobody outside Google knows exactly when the tags appear. The same article notes that ChatGPT already adds UTM parameters, but only to links in answers grounded in web sources, not to answers drawn from its training data.&lt;/p&gt;

&lt;p&gt;So some AI visits arrive tagged, some arrive with a referrer, and some arrive looking like someone typed your URL from memory. If you only count the first two groups, you undercount.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crawls are not customers
&lt;/h2&gt;

&lt;p&gt;The other trap runs in the opposite direction. Server logs full of AI bots can make you think you're being "discovered" a lot.&lt;/p&gt;

&lt;p&gt;On a Search Engine Journal podcast published 7 October 2026, Newfold Digital CEO Sachin Puri (Newfold owns Bluehost) shared numbers from a 90-day Bluehost analysis. Across Bluehost-hosted sites there were 83.4 million verified AI crawler requests per day. Roughly 90% were for model training, about 9% for search indexing and around 1% for live assistant fetching. For OpenAI specifically, Bluehost estimated one observable referral visit for every 5,350 verified HTML crawl requests.&lt;/p&gt;

&lt;p&gt;Puri was clear that this is not a conversion rate. It's one host's sample, and it can't see the customer who reads an AI answer and then phones you or walks in. Still, the gap tells you something useful: bot activity and human visits are separate measurements. Track them separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  A 30-day routine you can run in a spreadsheet
&lt;/h2&gt;

&lt;p&gt;You don't need a new analytics stack for this. You need a habit and one extra form field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Add a question.&lt;/strong&gt; Put "How did you first hear about us?" on your sign-up form or checkout. Make it a free-text field, or a dropdown with an "Other" box. Include ChatGPT, Gemini, Perplexity and Claude as options. People will tell you things your analytics can't see.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Keep three kinds of rows.&lt;/strong&gt; In one sheet, log events as they happen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI visit&lt;/strong&gt;: a session with an AI referrer or an AI UTM tag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign-up&lt;/strong&gt;: a new account, trial or email subscriber.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purchase&lt;/strong&gt;: money received.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each row gets a date, a source (ChatGPT, Gemini and so on) and an ID or email when you have one, so you can link a purchase back to a sign-up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Give every row one label.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confirmed&lt;/strong&gt;: your tools show the AI source directly. A referrer, a UTM tag, or a sign-up session you can trace to one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declared&lt;/strong&gt;: the customer told you. They picked "ChatGPT" in the form, or mentioned it in an email.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assisted&lt;/strong&gt;: AI played a part but wasn't the first touch. Someone found you on Google, then asked ChatGPT to compare you with a competitor, then bought.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't merge these. A confirmed sale and a declared sale are both real, but they're evidence of different strength, and you'll want to know the mix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Review weekly, decide at day 30.&lt;/strong&gt; Once a week, spend fifteen minutes filling gaps: match form answers to accounts, check "Direct" sign-ups for a declared source. At the end of the month, count sign-ups and purchases per source and per label. Compare AI sources with Google and Bing on the same terms.&lt;/p&gt;

&lt;p&gt;You might find that a small number of AI visitors convert unusually well. They often arrive having already been told what you do. Or you might find they bounce. Either way, you'll have a number to argue with instead of a feeling.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this won't tell you
&lt;/h2&gt;

&lt;p&gt;This method has real limits, and it's better to know them up front.&lt;/p&gt;

&lt;p&gt;Self-reported sources are fuzzy. People misremember, and they pick the first plausible option. A few dozen answers is not a statistically meaningful sample, so treat your month as a direction, not a verdict.&lt;/p&gt;

&lt;p&gt;Some influence stays invisible. If an assistant recommends you and the person searches your name on Google a day later, your analytics will credit Google. The form field catches some of this. It won't catch all of it.&lt;/p&gt;

&lt;p&gt;The tagging can change. Gemini's UTMs are undocumented, so they could change or disappear. Note the date tags first show up in your data, because any comparison across that date is comparing two different ways of measuring.&lt;/p&gt;

&lt;p&gt;And 30 days is short. Seasonality, a launch or one viral post can swamp everything. Run it again next month before you move budget around.&lt;/p&gt;

&lt;p&gt;I'll be running this on my own projects for the next few weeks. If you already track this: are your AI-referred visitors converting better or worse than your Google visitors, and how did you find out?&lt;/p&gt;




&lt;p&gt;Disclosure: I made a kit for this. &lt;a href="https://normbrytande.gumroad.com/l/ai-referral-ledger" rel="noopener noreferrer"&gt;The AI Referral Ledger&lt;/a&gt; ($19) is the spreadsheet version of this routine, and &lt;a href="https://normbrytande.gumroad.com/l/quwzbl" rel="noopener noreferrer"&gt;The 5-Prompt Citation Snapshot&lt;/a&gt; is a free way to check whether AI assistants mention you at all.&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>analytics</category>
      <category>ai</category>
      <category>startup</category>
    </item>
    <item>
      <title>One AI citation check is a sample: how much answers change between identical runs, and how to log so you can tell a real move</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Tue, 13 Oct 2026 08:58:35 +0000</pubDate>
      <link>https://dev.to/robin_geo/one-ai-citation-check-is-a-sample-how-much-answers-change-between-identical-runs-and-how-to-log-e1i</link>
      <guid>https://dev.to/robin_geo/one-ai-citation-check-is-a-sample-how-much-answers-change-between-identical-runs-and-how-to-log-e1i</guid>
      <description>&lt;p&gt;You ask ChatGPT a buyer question on Monday and your site is cited. On Thursday you ask the exact same question and it is gone. Did you lose something, or did you just roll the dice twice?&lt;/p&gt;

&lt;p&gt;Three studies published in the past week let us put rough numbers on that, and the short version: one check tells you very little.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the new data says about repeat runs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kingy AI Citation Index, Wave One&lt;/strong&gt; (Curtis Pyke, published 5 October 2026). The study asked OpenAI, Claude and Gemini the same 1,200 designed English questions twice through their official APIs, 7,200 completed answers in total. It compared cited domains between runs with Jaccard overlap (shared domains divided by all domains in either run).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same provider, two runs: 0.664 for OpenAI, 0.515 for Claude, 0.319 for Gemini.&lt;/li&gt;
&lt;li&gt;Different providers, same question: about 0.06 for every pair.&lt;/li&gt;
&lt;li&gt;Answers that had any native citation at all: OpenAI 71.6%, Claude 53.7%, Gemini 25.2%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So even asking the same API the same question in the same collection window, a third or more of the cited domain set typically changes, and on Gemini roughly two thirds. Caveats the author states: the panel was designed for the study, not sampled from real user demand; API results can differ from the consumer apps; two observations in one window cannot describe future behavior. Kingy.ai commissioned and funded it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is My Brand in AI, AI Answer Evidence Index round two&lt;/strong&gt; (Minel Gunesoglu, published 8 October 2026). Fifty price and cost questions went to five engines. The first ten were asked a second time on 7 October to Google AI Overviews, ChatGPT and Gemini. On questions where both answers cited a page, Google AI Overviews cited again 32 of the 51 pages from its first answers, ChatGPT 5 of 17, and Gemini 17 of 29. Single questions swung hard: one ChatGPT answer about local moving prices went from 5 of 6 figures found on its cited pages to 0 of 6. The study's own reading: "One answer is one draw." Caveats: ten repeated questions, English, New York location, and the author sells an AI visibility product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cloro AI Search Index&lt;/strong&gt; (freshness check dated 7 October 2026). This one is about a step before "am I cited": does the engine cite anything at all? On cloro's production monitoring corpus, Gemini attached a source to 68.2% of answers in the 30 days to 7 October. ChatGPT was 99.6% in July, 79.6% in the 30 days to 19 August and 97.6% in the 30 days to 7 October. Google AI Mode slid from 99.4% to 90.7% to 84.5%. cloro's own line: no single figure for those engines "survives long enough to plan around". cloro sells a search data API, and notes its own two methods disagree (Gemini 32.9% against 49.5% in the same July fortnight).&lt;/p&gt;

&lt;p&gt;So a missing citation can mean the engine gave no citations that time, or picked a different handful of sources from a pool that changes on every run, or genuinely stopped using you. One check cannot tell those apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  A logging routine that can tell a real move
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Freeze your prompts.&lt;/strong&gt; Pick five buyer questions written the way a customer would ask, without your brand name. Never edit the wording.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Run each prompt at least twice per engine per session, in fresh chats.&lt;/strong&gt; Two is the minimum; three is better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Log more than "cited yes or no".&lt;/strong&gt; One row per run, with these cells:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;date, engine, prompt id, run number&lt;/li&gt;
&lt;li&gt;answer had any citation (yes/no)&lt;/li&gt;
&lt;li&gt;named (your brand appears in the text)&lt;/li&gt;
&lt;li&gt;cited (your URL is in the sources)&lt;/li&gt;
&lt;li&gt;figures correct (if the answer states your price or a limit, is it right?)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The "any citation" cell is the one most people skip. If Gemini gave no sources at all, you did not lose a citation. There was none to win that time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Report rates, not single results.&lt;/strong&gt; "Cited in 4 of 10 ChatGPT runs this month" is a measurement. "Cited on Tuesday" is an anecdote.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Only call it a move when it holds.&lt;/strong&gt; My rule: a change counts when it shows up in at least two fresh runs in two separate sessions, and in the same direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Keep engines in separate columns.&lt;/strong&gt; Kingy found about 6% domain overlap between providers. A blended "AI score" averages things that barely share sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part citation logs cannot answer
&lt;/h2&gt;

&lt;p&gt;Even a perfect citation log only measures visibility, not whether anyone clicked.&lt;/p&gt;

&lt;p&gt;Bluehost's parent company Newfold Digital put a number on that gap. In a Search Engine Journal podcast recap (Loren Baker with CEO Sachin Puri, 7 October 2026), a 90 day Bluehost analysis counted 83.4 million verified AI crawler requests per day across its hosted sites: roughly 90% for model training, about 9% for search indexing, about 1% for live assistant fetching. For OpenAI, Bluehost estimated one observable referral visit per 5,350 verified HTML crawl requests, and Puri says that is not a conversion rate. His proposed framework is three separate measurements: visibility, accuracy, action.&lt;/p&gt;

&lt;p&gt;Attribution is getting slightly better. Search Engine Journal (Roger Montti, 1 October 2026) reported that Gemini has started adding UTM parameters to outgoing links; Google's John Mueller replied "Nice. I see it too." Google has not documented when the tags are added. A Reddit commenter quoted in the piece reported that the Gemini mobile app passes a referrer only around 9 percent of the time, which is a community report, not a measured figure.&lt;/p&gt;

&lt;p&gt;So the practical next step after a citation log:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your analytics, filter landings by referrer and by utm_source for the AI engines, and keep both views, because neither catches everything.&lt;/li&gt;
&lt;li&gt;Log AI visits, sign ups and sales as their own rows, separate from citations.&lt;/li&gt;
&lt;li&gt;Add a "How did you first hear about us?" field to your sign up or checkout, because some AI influenced visitors arrive as Direct and only their own answer tells you.&lt;/li&gt;
&lt;li&gt;Do not read crawler hits in your logs as discovery.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What this can't tell you
&lt;/h2&gt;

&lt;p&gt;None of these studies measured your niche. Kingy and Is My Brand in AI used APIs or scripted sessions, not a logged in person in the app. Every source above sells something related to AI visibility or hosting. Your own five prompts are a small sample too: 2 of 10 to 4 of 10 can be noise. The log does not make you cited. It makes you less likely to rewrite a good page because of one unlucky run.&lt;/p&gt;

&lt;h2&gt;
  
  
  A question for you
&lt;/h2&gt;

&lt;p&gt;If you already log AI citations: how many repeat runs do you do before you trust a change, and have you ever seen a citation shift line up with an actual change in referral visits? I have not found a clean match yet on small sites and would like to compare notes.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Two things I made for this (disclosure: these are my own products).&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The 5-Prompt Citation Snapshot&lt;/strong&gt; (free): a starter log for five frozen prompts across engines, with separate cells for named and cited. &lt;a href="https://normbrytande.gumroad.com/l/quwzbl" rel="noopener noreferrer"&gt;https://normbrytande.gumroad.com/l/quwzbl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI Referral Ledger&lt;/strong&gt; ($19): a 30 day, files only kit (11 page PDF, a ledger CSV, copy paste "How did you first hear about us?" field text and a weekly checklist) for checking whether AI engines actually send visits, sign ups or sales. Every AI attributed row gets one label (confirmed, declared or assisted), so a tracked click is never blended with a customer's memory. It also explains why Google AI Overviews clicks cannot be separated in Search Console. No SaaS, no tracking script, and no promise of more traffic: it shows what is already happening. &lt;a href="https://normbrytande.gumroad.com/l/ai-referral-ledger" rel="noopener noreferrer"&gt;https://normbrytande.gumroad.com/l/ai-referral-ledger&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>analytics</category>
      <category>startup</category>
    </item>
    <item>
      <title>Is ChatGPT citing your site? A 30 minute way to check (and what makes a page citable)</title>
      <dc:creator>Robin</dc:creator>
      <pubDate>Mon, 12 Oct 2026 08:49:21 +0000</pubDate>
      <link>https://dev.to/robin_geo/is-chatgpt-citing-your-site-a-30-minute-way-to-check-and-what-makes-a-page-citable-1p4k</link>
      <guid>https://dev.to/robin_geo/is-chatgpt-citing-your-site-a-30-minute-way-to-check-and-what-makes-a-page-citable-1p4k</guid>
      <description>&lt;p&gt;If you ship a small SaaS, you can treat "does ChatGPT cite us?" like any other measurement problem: fixed inputs, repeated runs, a simple log, and one change at a time. Here is what the October 2026 data says, a method, and the page level changes that make a page easier to cite.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data, briefly
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CueScout&lt;/strong&gt; (500 answers, 4,709 cited links, 50 software buying questions, 1 and 2 Oct): ChatGPT averaged 4.7 distinct pages and 3.7 searches per answer; 63% of cited pages were on the site of a brand the answer named; zero Reddit, YouTube or Wikipedia citations in 100 ChatGPT answers. Perplexity kept 73% of cited sites day to day vs 23% for ChatGPT. Vendor sells citation tracking. &lt;a href="https://cuescout.com/blog/which-sources-chatgpt-gemini-perplexity-cite" rel="noopener noreferrer"&gt;https://cuescout.com/blog/which-sources-chatgpt-gemini-perplexity-cite&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TheToolsVerse&lt;/strong&gt; (40 questions, ChatGPT, Gemini, AI Mode, 9 Oct): of 600 distinct cited pages, 556 (92.7%) were cited by one engine only and 2 (0.33%) by all three: a vendor pricing page and a vendor help article answering an "is it free" fact. Semrush affiliate promo content. &lt;a href="https://thetoolsverse.com/blog/ai-citation-overlap-chatgpt-gemini-ai-mode" rel="noopener noreferrer"&gt;https://thetoolsverse.com/blog/ai-citation-overlap-chatgpt-gemini-ai-mode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kingy AI Citation Index&lt;/strong&gt; (1,200 questions asked twice via API, 7,200 answers): cross provider cited domain Jaccard about 0.06; same provider two run overlap 0.664 (OpenAI), 0.515 (Claude), 0.319 (Gemini); native citations in 71.6%, 53.7% and 25.2% of answers. Funded by Kingy.ai; API may differ from consumer apps. &lt;a href="https://kingy.ai/research/kaci-wave-one-ai-citation-study/" rel="noopener noreferrer"&gt;https://kingy.ai/research/kaci-wave-one-ai-citation-study/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lead Rescue&lt;/strong&gt; (7,409 citations, 606 answers, 39 buyer questions, 8 brands): the brand asked about got 2% to 4% of citations; other companies' blogs and guides took 34% to 55%; ChatGPT pulled 24% from help docs, research, government and Wikipedia. Vendor sells citation tracking. &lt;a href="https://leadrescue.app/resources/research/page-types-ai-engines-cite" rel="noopener noreferrer"&gt;https://leadrescue.app/resources/research/page-types-ai-engines-cite&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is My Brand in AI&lt;/strong&gt; (50 price questions, 5 engines): median share of answer figures found on a cited page was 57% for ChatGPT, 82% AI Overviews, 71% Gemini, 92% Perplexity, 91% Claude API. Founder research for a visibility product. &lt;a href="https://ismybrandinai.com/do-the-numbers-in-ai-answers-have-sources" rel="noopener noreferrer"&gt;https://ismybrandinai.com/do-the-numbers-in-ai-answers-have-sources&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Takeaway: engines are independent systems with low overlap and high run to run variance. Measure per engine, repeat, and give them a plain owned page to quote.&lt;/p&gt;

&lt;h2&gt;
  
  
  The method (30 minutes)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Freeze 3 to 5 buyer questions.&lt;/strong&gt; Store them in a file. Exact strings, never edited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fresh chat per engine.&lt;/strong&gt; New session, memory off where possible, one paste per question, no follow ups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log you / competitor / nobody&lt;/strong&gt;, one cell per question per engine, plus a boolean for "answer had any citations". A CSV is enough:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;date,run,engine,question_id,outcome,had_citations,cited_urls
2026-10-12,1,chatgpt,q1,competitor,true,"https://rival.example/pricing"
2026-10-12,1,perplexity,q1,you,true,"https://yoursite.example/pricing"
2026-10-12,1,gemini,q1,nobody,false,""
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rerun twice before calling a move.&lt;/strong&gt; Given same provider overlap of 0.319 to 0.664 in Kingy's runs, one sample is noise. Require a pattern across at least three runs on different days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify one number.&lt;/strong&gt; For one price answer, open each cited URL and mark each figure found or not found.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What makes a page citable
&lt;/h2&gt;

&lt;p&gt;None of this guarantees a citation. These are the properties shared by the pages the studies above saw cited: vendor pricing pages, help articles, and narrow fact pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plain product, price and buyer statements.&lt;/strong&gt; Put a literal sentence near the top: "Acme Invoice is an invoicing tool for freelance designers. Plans start at $X per month. The free plan covers up to 3 clients." Render it as HTML text, not inside an image, a canvas, or a client side widget that only appears after JavaScript runs. If a fetcher cannot read the price in the initial HTML, it cannot quote it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One question per FAQ entry, answered in the first sentence.&lt;/strong&gt; "Is Acme free for teams under 5? Yes, up to 3 clients." Then the detail. Narrow "is it free" facts were the only pages all three engines cited in the TheToolsVerse sample.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema basics.&lt;/strong&gt; Structured data does not force a citation, but it makes facts unambiguous to parsers. Keep it consistent with the visible text:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SoftwareApplication&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Acme Invoice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;applicationCategory&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BusinessApplication&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;offers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Offer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;price&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;12.00&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;priceCurrency&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;EUR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/ld+json"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@context&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://schema.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;FAQPage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mainEntity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Question&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Is Acme Invoice free for small teams?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;acceptedAnswer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Answer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yes. The free plan covers up to 3 clients.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Crawlable and dated.&lt;/strong&gt; Server rendered or static HTML, a stable URL, a visible "last updated" date, and nothing blocking the page in robots.txt that you actually want read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Help docs count.&lt;/strong&gt; Lead Rescue saw ChatGPT draw 24% of citations from help docs and similar sources. A clear docs page answering a buyer question can do more than another homepage rewrite. Lead Rescue also found other companies' guides took the largest share, so a useful guest guide elsewhere is a reasonable second move.&lt;/p&gt;

&lt;p&gt;Ship one page, then rerun your frozen questions over two weeks and compare the log.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free sheet
&lt;/h2&gt;

&lt;p&gt;I made a free 5-prompt sheet for this: &lt;a href="https://normbrytande.gumroad.com/l/quwzbl" rel="noopener noreferrer"&gt;https://normbrytande.gumroad.com/l/quwzbl&lt;/a&gt; (and a 30-day version, The Money Prompt Lab, &lt;a href="https://normbrytande.gumroad.com/l/wfkslz" rel="noopener noreferrer"&gt;https://normbrytande.gumroad.com/l/wfkslz&lt;/a&gt;). Disclosure: I made both.&lt;/p&gt;

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