<?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: Watson Foglift</title>
    <description>The latest articles on DEV Community by Watson Foglift (@watsonfoglift).</description>
    <link>https://dev.to/watsonfoglift</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3828417%2F49060996-1e84-4fbe-8e59-af5e06f3f7ae.png</url>
      <title>DEV Community: Watson Foglift</title>
      <link>https://dev.to/watsonfoglift</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/watsonfoglift"/>
    <language>en</language>
    <item>
      <title>5 AI Crawlers Launched in 2024–2025 That Most robots.txt Guides Still Miss</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Tue, 21 Apr 2026 16:07:05 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/5-ai-crawlers-launched-in-2024-2025-that-most-robotstxt-guides-still-miss-3f1p</link>
      <guid>https://dev.to/watsonfoglift/5-ai-crawlers-launched-in-2024-2025-that-most-robotstxt-guides-still-miss-3f1p</guid>
      <description>&lt;p&gt;Most "AI crawler robots.txt guides" you can find today were written for the 2023 lineup: GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot. They are all still correct. They are also all incomplete.&lt;/p&gt;

&lt;p&gt;Between June 2024 and late 2025, five more user-agents quietly entered circulation that most of those guides do not mention. If you maintain a site's robots.txt — especially a content site or docs domain — three of the five will surprise you, and two of them will not do what you think &lt;code&gt;Disallow&lt;/code&gt; does.&lt;/p&gt;

&lt;p&gt;This post is the reference table I wish I had had six months ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five that belong in your robots.txt
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Crawler&lt;/th&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;User-Agent&lt;/th&gt;
&lt;th&gt;Launched&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Applebot-Extended&lt;/td&gt;
&lt;td&gt;Apple&lt;/td&gt;
&lt;td&gt;Apple Intelligence training opt-out signal&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Applebot-Extended&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jun 2024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta-ExternalAgent&lt;/td&gt;
&lt;td&gt;Meta&lt;/td&gt;
&lt;td&gt;Llama / Meta AI training&lt;/td&gt;
&lt;td&gt;&lt;code&gt;meta-externalagent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jul 2024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta-ExternalFetcher&lt;/td&gt;
&lt;td&gt;Meta&lt;/td&gt;
&lt;td&gt;Meta AI user-requested fetches&lt;/td&gt;
&lt;td&gt;&lt;code&gt;meta-externalfetcher&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DuckAssistBot&lt;/td&gt;
&lt;td&gt;DuckDuckGo&lt;/td&gt;
&lt;td&gt;DuckAssist cited answers (on-demand, non-training)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DuckAssistBot/1.2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CCBot&lt;/td&gt;
&lt;td&gt;Common Crawl&lt;/td&gt;
&lt;td&gt;Open dataset that feeds The Pile, RedPajama, C4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CCBot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ongoing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CCBot is not new — it has crawled the web since 2008 — but it is back on this list because Common Crawl now runs it on dedicated IP ranges with reverse-DNS verification, and because the downstream story (The Pile, RedPajama, C4) is the part most guides skip.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three of them behave in ways that break the "just add Disallow" habit
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;Applebot-Extended&lt;/code&gt; is an opt-out signal, not a crawler
&lt;/h3&gt;

&lt;p&gt;Applebot-Extended does not fetch pages. It has no independent crawl footprint. The actual crawling is done by regular &lt;code&gt;Applebot&lt;/code&gt;, the same bot that has indexed content for Siri and Spotlight for years.&lt;/p&gt;

&lt;p&gt;What &lt;code&gt;Applebot-Extended&lt;/code&gt; does is tell Apple whether it is allowed to use the content Applebot already fetched to &lt;em&gt;train Apple Intelligence foundation models&lt;/em&gt;. It is a training-use opt-out, not a fetch-blocker.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blocking &lt;code&gt;Applebot-Extended&lt;/code&gt; leaves you fully indexable for Siri, Spotlight, and Apple search.&lt;/li&gt;
&lt;li&gt;Blocking only &lt;code&gt;Applebot&lt;/code&gt; blocks you from Apple search too.&lt;/li&gt;
&lt;li&gt;If you want Siri discovery but not Apple Intelligence training, you want the extended block specifically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Roughly 6–7% of high-traffic sites block it today. The list skews heavily toward news: The New York Times, The Financial Times, The Atlantic, Vox Media, Condé Nast are all on the record as blocking it.&lt;/p&gt;

&lt;p&gt;Source: Apple Support articles 119829 and 120320.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;Meta-ExternalFetcher&lt;/code&gt; can ignore robots.txt on user-supplied URLs
&lt;/h3&gt;

&lt;p&gt;This is the sharp edge of the post.&lt;/p&gt;

&lt;p&gt;Meta's docs are explicit: &lt;code&gt;facebookexternalhit&lt;/code&gt; and &lt;code&gt;meta-externalfetcher&lt;/code&gt; may ignore robots.txt when a user explicitly hands Meta AI a URL as context. Same carve-out ChatGPT-User and Perplexity-User apply. The intent is "the user asked the assistant to look at this specific page, so the assistant fetches it."&lt;/p&gt;

&lt;p&gt;The implication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your threat model is "no Meta AI surface ever fetches this page," &lt;code&gt;robots.txt&lt;/code&gt; alone is not enough.&lt;/li&gt;
&lt;li&gt;You need a firewall rule or user-agent block at the edge.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Disallow: /&lt;/code&gt; under &lt;code&gt;User-agent: meta-externalfetcher&lt;/code&gt; stops batch crawls, but a user pasting the URL into Meta AI can still trigger a fetch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Source: Meta for Developers, crawler documentation (updated 2024–2026).&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;code&gt;CCBot&lt;/code&gt; blocks propagate slowly — and partially
&lt;/h3&gt;

&lt;p&gt;This is the subtle one.&lt;/p&gt;

&lt;p&gt;Common Crawl publishes snapshots on a roughly quarterly cadence. Blocking CCBot today removes you from &lt;em&gt;future&lt;/em&gt; snapshots. It does nothing about the snapshots you are already in.&lt;/p&gt;

&lt;p&gt;The reason that matters: Common Crawl is the upstream source for derivative training datasets like The Pile, RedPajama, and C4. Those datasets are distributed, mirrored, and baked into models that already shipped. A block is a forward-looking decision; the historical footprint lives on for years.&lt;/p&gt;

&lt;p&gt;If you are trying to scrub a specific page out of training data, blocking CCBot is a start, not a solution.&lt;/p&gt;

&lt;p&gt;Source: commoncrawl.org/ccbot.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually goes in robots.txt
&lt;/h2&gt;

&lt;p&gt;For most content sites, the sane 2026 default is "allow all AI crawlers, no training opt-out." Foglift's own telemetry across customer sites says blocking correlates with fewer AI citations, not more.&lt;/p&gt;

&lt;p&gt;But if you specifically want to be quotable in AI answers while opting out of training, the minimal block list looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="c"&gt;# Training opt-outs
&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;GPTBot&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Google&lt;/span&gt;-&lt;span class="n"&gt;Extended&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Applebot&lt;/span&gt;-&lt;span class="n"&gt;Extended&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;meta&lt;/span&gt;-&lt;span class="n"&gt;externalagent&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;CCBot&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;cohere&lt;/span&gt;-&lt;span class="n"&gt;ai&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Bytespider&lt;/span&gt;
&lt;span class="n"&gt;Disallow&lt;/span&gt;: /

&lt;span class="c"&gt;# Allow search/retrieval bots (needed to appear in AI answers)
&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;OAI&lt;/span&gt;-&lt;span class="n"&gt;SearchBot&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;ChatGPT&lt;/span&gt;-&lt;span class="n"&gt;User&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Claude&lt;/span&gt;-&lt;span class="n"&gt;SearchBot&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Claude&lt;/span&gt;-&lt;span class="n"&gt;User&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;PerplexityBot&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;Perplexity&lt;/span&gt;-&lt;span class="n"&gt;User&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /

&lt;span class="n"&gt;User&lt;/span&gt;-&lt;span class="n"&gt;agent&lt;/span&gt;: &lt;span class="n"&gt;DuckAssistBot&lt;/span&gt;
&lt;span class="n"&gt;Allow&lt;/span&gt;: /
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three notes on that block:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;anthropic-ai&lt;/code&gt; and &lt;code&gt;Claude-Web&lt;/code&gt; are deprecated. If your existing robots.txt references them, nothing breaks, but they are no-ops. Anthropic's current lineup is &lt;code&gt;ClaudeBot&lt;/code&gt; (training), &lt;code&gt;Claude-SearchBot&lt;/code&gt; (search), &lt;code&gt;Claude-User&lt;/code&gt; (user-triggered browsing).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Meta-ExternalFetcher&lt;/code&gt; is deliberately not on the block list above. See the carve-out above — a user-supplied URL can override it anyway, so blocking mostly adds noise without adding protection. If you want true denial, do it at the firewall.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DuckAssistBot&lt;/code&gt; is on-demand and non-training. Leaving it allowed costs nothing and makes your content eligible for DuckAssist citations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to verify blocks actually worked
&lt;/h2&gt;

&lt;p&gt;Two sanity checks that take under five minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;curl -A "Meta-ExternalAgent" https://yoursite.com/robots.txt&lt;/code&gt; and read the response Meta-ExternalAgent would parse. Same trick for each user-agent you care about.&lt;/li&gt;
&lt;li&gt;Look at server logs for the exact user-agent strings above over the last 30 days. If you never saw &lt;code&gt;DuckAssistBot&lt;/code&gt; in logs, your "Disallow DuckAssistBot" line is theoretical — you can't verify it's doing anything without sample traffic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The second check is the one teams skip. A robots.txt rule you cannot observe being respected is not a security control; it is an honor-system pledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the guides are stale
&lt;/h2&gt;

&lt;p&gt;The reason most robots.txt guides stop at GPTBot is that the 2023 cohort was easy: four crawlers, four training companies, one clean mental model ("block the bot named after the LLM"). The 2024–2025 cohort broke that mental model on three different axes at once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apple&lt;/strong&gt;: the opt-out signal is a pseudo-user-agent that does not crawl.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meta&lt;/strong&gt;: there are two user-agents and robots.txt only applies to one of them reliably.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DuckDuckGo / Common Crawl&lt;/strong&gt;: on-demand-only and "already baked in" respectively — neither fits "training bot" or "search bot" cleanly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your robots.txt was last touched in 2023, these are the five rows to add.&lt;/p&gt;




&lt;p&gt;For a longer write-up with Anthropic's three-crawler split, the complete table of 17 AI crawlers, and a recommended config for publishers vs. SaaS docs vs. e-commerce, we keep the live reference at &lt;a href="https://foglift.io/blog/robots-txt-ai-crawlers" rel="noopener noreferrer"&gt;foglift.io/blog/robots-txt-ai-crawlers&lt;/a&gt;. It's updated whenever a new user-agent lands.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Every CLI Command in Our Own Blog Post Was Fabricated. Here's How We Caught Them.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Mon, 20 Apr 2026 15:08:36 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/every-cli-command-in-our-own-blog-post-was-fabricated-heres-how-we-caught-them-45ga</link>
      <guid>https://dev.to/watsonfoglift/every-cli-command-in-our-own-blog-post-was-fabricated-heres-how-we-caught-them-45ga</guid>
      <description>&lt;p&gt;Last week I ran every shell command from one of our own blog posts against our CLI. Three of them didn't exist. One referenced an npm package that had never been published. The JSON-LD FAQ schema on the page confidently told AI search engines how to install and authenticate with a subsystem that wasn't real.&lt;/p&gt;

&lt;p&gt;The post had been live for weeks. Nobody had noticed, because nobody had actually tried to copy-paste the commands.&lt;/p&gt;

&lt;p&gt;This is a short write-up of how we caught it, what was fake versus real, and why the fix had to include editing the structured-data schema — not just the rendered prose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The post
&lt;/h2&gt;

&lt;p&gt;The page in question is a ~3,500-word tutorial titled &lt;em&gt;"API-First AI Monitoring"&lt;/em&gt; on our site. It was written by an AI content agent, like most of our programmatic content, and had been lightly reviewed by a human (me) before shipping.&lt;/p&gt;

&lt;p&gt;The tutorial had a section called "CLI and MCP Connector for Developer Workflows." Under it were two code blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Quick Start&lt;/strong&gt; block showing &lt;code&gt;npx foglift auth&lt;/code&gt;, &lt;code&gt;npx foglift geo https://example.com&lt;/code&gt;, &lt;code&gt;npx foglift audit --depth=deep --wait&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;CI/CD Integration&lt;/strong&gt; block showing how to wire the same CLI into a GitHub Actions job.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below that was a subsection titled &lt;strong&gt;MCP Connector&lt;/strong&gt;, describing how to install &lt;code&gt;@foglift/mcp-server&lt;/code&gt; from npm and register it with Claude Desktop.&lt;/p&gt;

&lt;p&gt;All of this reads plausibly. All of it is wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was actually broken
&lt;/h2&gt;

&lt;p&gt;Our real CLI is published on npm as &lt;code&gt;foglift-scan&lt;/code&gt;, not &lt;code&gt;foglift&lt;/code&gt;. The binary is &lt;code&gt;foglift&lt;/code&gt;. The subcommands are &lt;code&gt;scan&lt;/code&gt;, &lt;code&gt;scan batch&lt;/code&gt;, &lt;code&gt;scan ai-check&lt;/code&gt;, &lt;code&gt;scan results&lt;/code&gt;, &lt;code&gt;scan sentiment&lt;/code&gt;, &lt;code&gt;scan usage&lt;/code&gt;, &lt;code&gt;scan history&lt;/code&gt;, &lt;code&gt;scan prompts&lt;/code&gt;, &lt;code&gt;scan models&lt;/code&gt; — structured as &lt;code&gt;foglift scan &amp;lt;subcommand&amp;gt;&lt;/code&gt;, never as bare &lt;code&gt;foglift &amp;lt;subcommand&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Concretely:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Post claimed&lt;/th&gt;
&lt;th&gt;Reality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npx foglift auth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No such subcommand. Auth is via &lt;code&gt;FOGLIFT_API_KEY&lt;/code&gt; env var.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npx foglift geo &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No such subcommand. The actual scan command is &lt;code&gt;foglift scan &amp;lt;url&amp;gt;&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npx foglift audit --depth=deep --wait&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No &lt;code&gt;audit&lt;/code&gt; subcommand. No &lt;code&gt;--depth&lt;/code&gt; or &lt;code&gt;--wait&lt;/code&gt; flags exist anywhere in the CLI.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;npm install -g @foglift/mcp-server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The package does not exist on npm. 404.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The fabrications share a pattern: they're plausible commands that a tool &lt;em&gt;like ours&lt;/em&gt; would have, written in the idiom of well-known CLIs (&lt;code&gt;gh auth&lt;/code&gt;, &lt;code&gt;vercel deploy --prod&lt;/code&gt;, &lt;code&gt;stripe listen --forward-to&lt;/code&gt;). They read like the AI had seen a lot of CLI documentation in training and was reasoning from prior structure rather than from the actual &lt;code&gt;--help&lt;/code&gt; output.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we caught it
&lt;/h2&gt;

&lt;p&gt;Our dogfooding protocol says: every session, actually &lt;em&gt;run&lt;/em&gt; the CLI against foglift.io and check whether the in-product recommendations line up with our own content. One week the agent running that protocol decided to also copy-paste the commands from the tutorial into a terminal, just to verify they worked.&lt;/p&gt;

&lt;p&gt;The very first command — &lt;code&gt;npx foglift auth&lt;/code&gt; — exited with &lt;code&gt;unknown command&lt;/code&gt;. Five minutes later we had a list of six fabrications on that one page.&lt;/p&gt;

&lt;p&gt;Copy-paste-and-run is the cheapest test I know of for AI-generated technical content. It catches the class of errors that linters, type checkers, grammar tools, and even human reviewers routinely miss: the commands &lt;em&gt;read correctly&lt;/em&gt;, so unless you execute them, you don't see the problem.&lt;/p&gt;

&lt;p&gt;This is the same class of failure that shows up in &lt;a href="https://aclanthology.org/2023.emnlp-main.968/" rel="noopener noreferrer"&gt;ACL 2023 research on hallucination in code generation&lt;/a&gt; — the Codex/GPT failures on package-name completion found that models fabricate module references at rates between 5% and 22% depending on domain specificity, and the fabrications are structurally indistinguishable from real references without external grounding.&lt;/p&gt;

&lt;p&gt;For a tool whose entire pitch is "make your content trustworthy to AI search engines," having fake CLI commands on our own pages is a brand-damage problem, not just a correctness problem. We ship the fix the same day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part most people miss: the schema has to be fixed too
&lt;/h2&gt;

&lt;p&gt;Modern technical blog posts are not just prose. They ship with embedded JSON-LD — specifically &lt;code&gt;FAQPage&lt;/code&gt;, &lt;code&gt;HowTo&lt;/code&gt;, and &lt;code&gt;Article&lt;/code&gt; schemas — that AI search engines ingest directly and re-serve as answers.&lt;/p&gt;

&lt;p&gt;Our tutorial's &lt;code&gt;FAQPage&lt;/code&gt; schema contained a question like "Does Foglift have a CLI?" with an &lt;code&gt;acceptedAnswer.text&lt;/code&gt; that said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Yes. Install the Foglift CLI with &lt;code&gt;npm install -g @foglift/cli&lt;/code&gt;. Authenticate with &lt;code&gt;foglift auth&lt;/code&gt;. Run &lt;code&gt;foglift audit &amp;lt;url&amp;gt;&lt;/code&gt; to audit a site..."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When we fixed the rendered HTML but left the JSON-LD alone, we'd have left the AI-search-facing copy still poisoned. That's the surface the engines actually eat. AI crawlers (PerplexityBot, OAI-SearchBot, GPTBot, ClaudeBot, GoogleExtended) parse structured data preferentially over rendered body text for entity grounding — there's public documentation from &lt;a href="https://developers.google.com/search/docs/appearance/structured-data/sd-policies" rel="noopener noreferrer"&gt;Google's structured-data team&lt;/a&gt; and multiple citation-pattern studies from &lt;a href="https://otterly.ai/" rel="noopener noreferrer"&gt;Otterly.AI's 2025 analysis&lt;/a&gt; confirming this behavior.&lt;/p&gt;

&lt;p&gt;So the fix was three coordinated edits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Rewrote the two code blocks against &lt;code&gt;foglift-scan&lt;/code&gt; with real subcommands (&lt;code&gt;foglift scan &amp;lt;url&amp;gt;&lt;/code&gt;, &lt;code&gt;foglift scan ai-check --prompt "..." --domain foglift.io&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;li&gt;Removed the "MCP Connector" subsection and the heading "CLI and MCP Connector for Developer Workflows" since no MCP server ships.&lt;/li&gt;
&lt;li&gt;Updated the &lt;code&gt;acceptedAnswer.text&lt;/code&gt; in the &lt;code&gt;FAQPage&lt;/code&gt; JSON-LD so both the rendered FAQ and the structured-data mirror tell the same true story.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then we deployed, waited for the CDN cache to refresh, and re-grepped the live HTML for any residual fabrications. Zero matches across &lt;code&gt;@foglift|foglift auth|foglift geo|foglift audit|mcp-server|--depth|--wait&lt;/code&gt;. Ten matches on the real names (&lt;code&gt;foglift-scan&lt;/code&gt;, &lt;code&gt;FOGLIFT_API_KEY&lt;/code&gt;, &lt;code&gt;--threshold=80&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: the copy-paste test also found two real CLI bugs
&lt;/h2&gt;

&lt;p&gt;Going through the post command-by-command surfaced two bugs in the CLI itself, not the content.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;foglift scan prompts list&lt;/code&gt; and &lt;code&gt;foglift scan prompts add&lt;/code&gt; fail with &lt;code&gt;Error: workspace_id parameter required&lt;/code&gt;, even with a valid &lt;code&gt;FOGLIFT_API_KEY&lt;/code&gt; exported. Other endpoints (&lt;code&gt;scan results&lt;/code&gt;, &lt;code&gt;scan sentiment&lt;/code&gt;, &lt;code&gt;scan history&lt;/code&gt;) auto-resolve the workspace from the key. The &lt;code&gt;prompts&lt;/code&gt; subcommand doesn't. That's a server-side resolver gap (fixed in the next release cycle — the API now auto-resolves workspace from the key, matching the other endpoints).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;foglift --version&lt;/code&gt; reports &lt;code&gt;1.0.0&lt;/code&gt; while the npm package metadata says &lt;code&gt;1.0.1&lt;/code&gt;. Cosmetic, low priority — but the kind of thing that undermines trust in a "we're the honest-evidence source" pitch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Neither bug would have been caught by unit tests because both subcommands exist and parse correctly; they just fail at runtime against real credentials. The copy-paste-and-run test is what surfaced them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd change going forward
&lt;/h2&gt;

&lt;p&gt;Three things, in the order we're now adopting them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Every technical tutorial has to pass copy-paste-execute before merge.&lt;/strong&gt; Not "the build passes." Not "lint clean." Literally open a terminal, paste every command, see it succeed. This is how I verify PRs now for content pages with CLI content in them. Add a CI check that extracts fenced code blocks tagged &lt;code&gt;bash&lt;/code&gt; and runs them in a throwaway environment where it's safe to do so — I haven't built this yet but it's the next automation on the list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. JSON-LD has to pass the same truth test as the rendered HTML.&lt;/strong&gt; The structured data is where AI engines form their beliefs about your product, and it's the easiest thing to forget when you're editing. Any content edit touching a &lt;code&gt;HowTo&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;, or &lt;code&gt;Article&lt;/code&gt; block has to re-read the schema top-to-bottom. Better: move the structured data to be generated from the rendered content, so there's a single source of truth to audit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Be suspicious of AI-generated content that sounds confident about specific strings.&lt;/strong&gt; The commands in our tutorial were the most confident-sounding part of the post. Confidence plus specificity in AI-generated content is often a signal of fabrication, not accuracy — the model backfilled plausible-looking strings when it didn't actually have the facts. This pattern is reproducible enough that it shows up as a measurable signal in academic work (see &lt;a href="https://aclanthology.org/2022.acl-long.229/" rel="noopener noreferrer"&gt;Lin et al., "TruthfulQA", ACL 2022&lt;/a&gt; and multiple follow-ups).&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;If you run AI-generated technical content on a site — and you probably do, because everyone does now — you almost certainly have fabricated commands, fake package names, or hallucinated API parameters somewhere in your content. The rendered prose will look fine. The schema will look fine. The build will pass. The readers who notice will mostly just close the tab instead of filing a bug.&lt;/p&gt;

&lt;p&gt;The fix is boring: copy-paste the commands, run them, fix what breaks, and check the JSON-LD. But nobody is doing this, and AI search engines are ingesting the fabrications in the meantime.&lt;/p&gt;

&lt;p&gt;We fixed ours in an afternoon. There's a good chance you can fix yours in one too.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We run &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;Foglift&lt;/a&gt; — a GEO/AEO platform that audits sites for how AI search engines will interpret them. The CLI is &lt;code&gt;npm install -g foglift-scan&lt;/code&gt; and runs &lt;code&gt;foglift scan &amp;lt;url&amp;gt;&lt;/code&gt; against your site. (We checked.)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cli</category>
      <category>testing</category>
    </item>
    <item>
      <title>We scored 3 GEO/AEO platforms (including ourselves). Here's the AEO and security gap.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Sun, 19 Apr 2026 14:04:22 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/we-scored-3-geoaeo-platforms-including-ourselves-heres-the-aeo-and-security-gap-40el</link>
      <guid>https://dev.to/watsonfoglift/we-scored-3-geoaeo-platforms-including-ourselves-heres-the-aeo-and-security-gap-40el</guid>
      <description>&lt;p&gt;If you sell AI-search-optimization tools, your own website is the demo. Can ChatGPT cite you? Does Perplexity pick up your structured data? Is your homepage itself a credible example of what you're asking customers to buy?&lt;/p&gt;

&lt;p&gt;I run demand gen for Foglift, a GEO/AEO platform, and we scan foglift.io with our own audit every week. This week I pointed it at two competitors too, for the first time. The delta was bigger than I expected, so I'm publishing the numbers.&lt;/p&gt;

&lt;p&gt;You can reproduce all of them in about 30 seconds with one &lt;code&gt;curl&lt;/code&gt; command.&lt;/p&gt;

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

&lt;p&gt;Foglift ships a public REST endpoint for its audit. It runs an 8-dimension AEO check plus SEO, GEO, security, performance, and accessibility, computed from response headers and the rendered HTML. No auth for a basic scan, no crawling tricks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://foglift.io/api/v1/scan?url=https://foglift.io"&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://foglift.io/api/v1/scan?url=https://peec.ai"&lt;/span&gt;    | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://foglift.io/api/v1/scan?url=https://otterly.ai"&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Scores run 0-100. Higher is better.&lt;/p&gt;

&lt;h2&gt;
  
  
  The results (2026-04-19)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;foglift.io&lt;/th&gt;
&lt;th&gt;peec.ai&lt;/th&gt;
&lt;th&gt;otterly.ai&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Overall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;95&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AEO&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;td&gt;71&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GEO&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accessibility&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;79&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things jumped out when I dug into the &lt;code&gt;topIssues&lt;/code&gt; arrays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;peec.ai has no FAQ schema, no Article schema, no HowTo schema&lt;/strong&gt; — just a bare WebSite block. That's why AEO collapses to 41. Their landing page also ships 198 images with zero alt text (100% of the images on the page), which is why accessibility drops to 75.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;otterly.ai has no meta description&lt;/strong&gt; on the homepage and ships 15 render-blocking scripts. That's the performance 57. AEO is a respectable 71, better than peec, but they're still missing several schema types you'd expect from a tool in this category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Both competitors are missing critical security headers.&lt;/strong&gt; peec has no Content-Security-Policy (security 35). otterly has no Strict-Transport-Security (security 40). These are one-line fixes in almost any hosting stack. We shipped them both on day one.&lt;/p&gt;

&lt;p&gt;Our own weak spot is performance. 79 isn't great. We ship 14 external scripts on the homepage and one of them render-blocks. That's next on my list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the AEO delta matters
&lt;/h2&gt;

&lt;p&gt;In March I published &lt;a href="https://foglift.io/blog/ai-search-readiness-study-2026" rel="noopener noreferrer"&gt;a 240-site AI-search-readiness study&lt;/a&gt;. Median AEO across those 240 sites was &lt;strong&gt;46&lt;/strong&gt;. Only 10% scored 80 or higher.&lt;/p&gt;

&lt;p&gt;So in this three-tool sample:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;foglift.io (88) sits in the top decile.&lt;/li&gt;
&lt;li&gt;otterly.ai (71) beats the median but isn't elite.&lt;/li&gt;
&lt;li&gt;peec.ai (41) is &lt;strong&gt;below&lt;/strong&gt; the median of a random 240-site sample, despite selling AI-search optimization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the part I wasn't expecting. The tools that show up in "best GEO platforms" listicles haven't applied their own playbook to their own landing pages. If you're evaluating any of us, the cheapest piece of due diligence you can do is scan the vendor's own domain. Whatever it scores there is a rough ceiling on how seriously they take the discipline they're selling.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to audit your own site in 30 seconds
&lt;/h2&gt;

&lt;p&gt;Pick any domain. This works for B2B SaaS, ecommerce, content sites — anything with a public HTML response.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://foglift.io/api/v1/scan?url=https://your-site.com"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="s1"&gt;'{scores, topIssues}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interesting signal is usually &lt;strong&gt;which single dimension is dragging your overall down&lt;/strong&gt;. For peec that's AEO (-47 compared with foglift's 88). For otterly it's performance (-22). For most sites I've scanned it's AEO, because most sites still ship no structured data beyond the basic WebSite block.&lt;/p&gt;

&lt;p&gt;If you want the dimension-level breakdown — which of the 8 AEO signals you're missing, which pages have the lowest scores, which competitors AI engines actually cite for your target queries — that's what the full platform does. The one-shot REST call is enough to spot where the gap is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable conclusion
&lt;/h2&gt;

&lt;p&gt;Running this benchmark was useful for me because it made the competitive story concrete. "Our AEO is higher than peec's" is a marketing claim. "Our AEO is 88 versus their 41, here's the command to check, here are the missing schema types" is a reproducible claim.&lt;/p&gt;

&lt;p&gt;If you're in the GEO/AEO space as a builder or a buyer, I'd encourage you to run that same curl against every vendor in your shortlist. Thirty seconds per domain. If a tool's own site isn't in the top quartile for the discipline they're selling, ask them why.&lt;/p&gt;

&lt;p&gt;I'd be genuinely curious to see numbers from anyone else who runs this. Post scores in the comments, mine included. If foglift.io ever drops below 88 on AEO, I'd want to know first.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Links: &lt;a href="https://foglift.io/blog/ai-search-readiness-study-2026" rel="noopener noreferrer"&gt;240-site AI-search-readiness study&lt;/a&gt; · &lt;a href="https://foglift.io/docs" rel="noopener noreferrer"&gt;Foglift docs&lt;/a&gt; · &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;Foglift&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Audit Your Site's AI Search Visibility in 30 Minutes (with a Free CLI)</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Sat, 18 Apr 2026 11:13:22 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/how-to-audit-your-sites-ai-search-visibility-in-30-minutes-with-a-free-cli-3khm</link>
      <guid>https://dev.to/watsonfoglift/how-to-audit-your-sites-ai-search-visibility-in-30-minutes-with-a-free-cli-3khm</guid>
      <description>&lt;p&gt;Your site probably ranks fine on Google. How does it look when ChatGPT or Perplexity read it?&lt;/p&gt;

&lt;p&gt;Different question. Different answer. Google ranks pages. LLMs extract and cite passages, and the signals they care about (schema richness, FAQ coverage, heading clarity, entity disambiguation) aren't on the average SEO checklist.&lt;/p&gt;

&lt;p&gt;We built a CLI to audit that. This post is a 30-minute walkthrough: install it, scan your site, scan some competitors, and wire a quality gate into CI. All the data below is from scans I ran while writing this post.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "AI search visibility" actually measures
&lt;/h2&gt;

&lt;p&gt;When you audit a page for traditional SEO, you're optimizing for one thing: will Google rank this URL for a query. The inputs are Core Web Vitals, backlinks, keyword targeting, crawlability.&lt;/p&gt;

&lt;p&gt;AI search is a different extraction problem. An LLM-powered answer engine (ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini) wants to pull a specific passage out of your page and cite it, often alongside 3-5 other sources. The signals that matter there are different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured data richness&lt;/strong&gt; (JSON-LD, not microdata)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FAQ coverage&lt;/strong&gt; with FAQPage schema&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heading clarity&lt;/strong&gt; — can the model segment your page into answerable chunks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entity identity&lt;/strong&gt; — can it disambiguate your brand from noise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content depth and authority&lt;/strong&gt; — citations, data, original research&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citation formatting&lt;/strong&gt; — do you make it easy to quote you&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topical authority&lt;/strong&gt; — is your site a source the model has seen cited elsewhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI crawler access&lt;/strong&gt; — is GPTBot, ClaudeBot, PerplexityBot actually allowed in your robots.txt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The usual name for optimizing these signals is &lt;strong&gt;AEO&lt;/strong&gt; (Answer Engine Optimization) or &lt;strong&gt;GEO&lt;/strong&gt; (Generative Engine Optimization). The CLI we'll use scores both, plus traditional SEO on the side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; foglift-scan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No account needed for the basic scan command. Everything in the first half of this post runs without authentication.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Scan your own site
&lt;/h2&gt;

&lt;p&gt;Point it at a URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift scan https://foglift.io
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a color-graded scorecard in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  foglift scan results for foglift.io

  Overall    ██████████  96/100  A
  SEO        ██████████  100/100  A
  GEO        ██████████  100/100  A
  AEO        █████████░  88/100  B
  Perf       █████████░  89/100  B
  Security   ██████████  100/100  A
  A11y       ██████████  100/100  A

  Top Issues:
  ⚠ 14 external scripts (Performance)
  ⚠ 1 render-blocking scripts (Performance)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The seven rows are the axes. SEO is the classic bundle. GEO is "is this site structurally readable by a generative engine." AEO is "is this specific page extractable by an answer engine." Perf, Security, A11y are what they sound like.&lt;/p&gt;

&lt;p&gt;The B on AEO here is honest: we still ship 14 external scripts on the homepage and one of them is render-blocking. That's an active todo, not a bragging number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add --json for anything scriptable
&lt;/h2&gt;

&lt;p&gt;If you want to pipe results to &lt;code&gt;jq&lt;/code&gt;, log them to a dashboard, or post them to a Slack channel, use &lt;code&gt;--json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift scan https://foglift.io &lt;span class="nt"&gt;--json&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"overall"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;96&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"seo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"geo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"aeo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"performance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;89&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"security"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"accessibility"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full JSON payload includes every issue, its category, severity, and a one-line description. That's the entire audit as structured data, which is the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  The spicy part: scan the SEO giants
&lt;/h2&gt;

&lt;p&gt;Here's where it gets interesting. I ran the same command against the three biggest names in the SEO tooling space:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift scan https://ahrefs.com &lt;span class="nt"&gt;--json&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
foglift scan https://moz.com &lt;span class="nt"&gt;--json&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
foglift scan https://semrush.com &lt;span class="nt"&gt;--json&lt;/span&gt; | jq &lt;span class="s1"&gt;'.scores'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The numbers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site&lt;/th&gt;
&lt;th&gt;Overall&lt;/th&gt;
&lt;th&gt;SEO&lt;/th&gt;
&lt;th&gt;GEO&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;AEO&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ahrefs.com&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;54&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;moz.com&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;65&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;semrush.com&lt;/td&gt;
&lt;td&gt;78&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;52&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are the companies that literally sell the tools everyone uses to rank on Google. Their SEO scores are a flawless 100. Their AEO scores are 52 to 65.&lt;/p&gt;

&lt;p&gt;Two things to pull out of that.&lt;/p&gt;

&lt;p&gt;First, SEO 100 and AEO 54 on the same page is not a contradiction. It's the whole thesis: the signals that win Google are not the signals that get you extracted into a ChatGPT answer. A site can be a textbook SEO execution and still be opaque to an LLM that's trying to pull a citation.&lt;/p&gt;

&lt;p&gt;Second, if Ahrefs and Semrush haven't retrofitted their marketing site for this yet, the gap is probably everywhere. In the 240-scan audit we ran earlier this year, the median AEO score was 46, and only 10% of sites scored above 80. The tooling giants aren't outliers on the low side. They're roughly average.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interpreting your top issues
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;topIssues&lt;/code&gt; block in the JSON is where your actual todo list lives. A typical output for a site that scores in the 50s on AEO looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"topIssues"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GEO"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"No FAQ section"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Add FAQPage schema for AI extraction."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"severity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"warning"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AEO"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Missing Article schema"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"LLMs cite more reliably when Article JSON-LD is present."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AEO"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Low heading density"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Break long sections with H2/H3 to improve extractability."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each issue is a concrete edit. "No FAQ section" means add FAQPage JSON-LD on a page where users actually ask questions. "Missing Article schema" means wrap blog posts in Article JSON-LD with author, datePublished, dateModified. "Low heading density" means the model can't segment your page into citable answers, so break it into named sections.&lt;/p&gt;

&lt;p&gt;The issues are deliberately concrete because the fixes are concrete. There's no "improve your E-E-A-T" mush in there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scan competitors as a batch
&lt;/h2&gt;

&lt;p&gt;If you're auditing a landscape and not just one URL, batch mode runs up to 10 scans in one call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift scan batch &lt;span class="se"&gt;\&lt;/span&gt;
  https://foglift.io &lt;span class="se"&gt;\&lt;/span&gt;
  https://ahrefs.com &lt;span class="se"&gt;\&lt;/span&gt;
  https://moz.com &lt;span class="se"&gt;\&lt;/span&gt;
  https://semrush.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; competitors.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Batch mode is the one thing in this post that requires an API key. It's free to generate one.)&lt;/p&gt;

&lt;p&gt;Pipe it through &lt;code&gt;jq&lt;/code&gt; to get a sortable table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.[] | [.url, .scores.aeo, .scores.overall] | @tsv'&lt;/span&gt; competitors.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have a leaderboard. If you're on the wrong end of the leaderboard, you have a reason to care about the top issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wire it into CI (the real payoff)
&lt;/h2&gt;

&lt;p&gt;The scorecard is interesting once. What makes it useful is making regressions visible.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;foglift scan&lt;/code&gt; has a &lt;code&gt;--threshold=N&lt;/code&gt; flag that exits 1 if the overall score drops below N. That's all you need for a CI gate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# .github/workflows/ai-audit.yml&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AI Search Audit&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;audit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Foglift CLI&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm install -g foglift-scan&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Audit production URL&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;foglift scan https://example.com --threshold=85&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a PR ships changes that drop the production score below 85, the job fails. Same pattern as Lighthouse CI, same pattern as &lt;code&gt;eslint --max-warnings 0&lt;/code&gt;, same pattern as any other quality gate you're already running.&lt;/p&gt;

&lt;p&gt;For local dev, I run this as part of a pre-release check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;foglift scan https://staging.example.com &lt;span class="nt"&gt;--threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;80 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"AI audit passed"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"AI audit failed — check issues before shipping"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;exit &lt;/span&gt;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What to do with the results
&lt;/h2&gt;

&lt;p&gt;Three realistic next steps, in order of leverage:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Add FAQPage schema to your 10 most-trafficked content pages.&lt;/strong&gt; This usually moves AEO the most for the least effort. Write actual questions, answer them in 40-80 words each, wrap in JSON-LD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make sure GPTBot, ClaudeBot, PerplexityBot, and Google-Extended are allowed in robots.txt.&lt;/strong&gt; A surprising number of sites accidentally block them, then wonder why they're not cited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Article schema to every blog post&lt;/strong&gt; with author, datePublished, and dateModified. Freshness signals matter more for answer engines than they do for Google, because LLMs are trying to avoid citing stale answers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After you ship those, rerun the scan. The delta is the point: you want a line on a graph that trends up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap
&lt;/h2&gt;

&lt;p&gt;The CLI is open, the scans are free, and the gate is a single flag. If you work on a site and the AEO number comes back under 70, you now have a ranked list of things to fix and a way to stop it from regressing.&lt;/p&gt;

&lt;p&gt;If you want to go deeper, &lt;code&gt;foglift scan ai-check&lt;/code&gt; runs your URL against a set of target prompts across ChatGPT, Perplexity, Claude, and Gemini and shows you which ones actually cite you today. That's the ground-truth measurement — the scorecard above is the leading indicator, the ai-check is the lagging one. Both useful, neither redundant.&lt;/p&gt;

&lt;p&gt;The 30 minutes is: install, scan your site, scan two competitors, read the top issues, wire the threshold into CI. That's a full first loop. The second loop is shipping one of the fixes and watching the number move.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;CLI source and docs at &lt;a href="https://foglift.io/developers" rel="noopener noreferrer"&gt;foglift.io/developers&lt;/a&gt;. All scores in this post were captured on 2026-04-18 and will drift.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>llm</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>We Shipped 127 Programmatic Landing Pages. We Deleted 122 of Them Three Weeks Later. Here's What the Data Told Us.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Fri, 17 Apr 2026 11:11:08 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/we-shipped-127-programmatic-landing-pages-we-deleted-122-of-them-three-weeks-later-heres-what-i6b</link>
      <guid>https://dev.to/watsonfoglift/we-shipped-127-programmatic-landing-pages-we-deleted-122-of-them-three-weeks-later-heres-what-i6b</guid>
      <description>&lt;p&gt;In early March I shipped 127 vertical landing pages on our SaaS site. &lt;code&gt;/for/plumbing&lt;/code&gt;, &lt;code&gt;/for/funeral-home&lt;/code&gt;, &lt;code&gt;/for/ice-cream-shops&lt;/code&gt; — one for every industry an agent could invent. The argument for it was the argument every programmatic SEO post makes: cast a wide net, own the long tail, ship faster than competitors.&lt;/p&gt;

&lt;p&gt;On March 25 I deleted 122 of those pages in a single commit. Kept five: agencies, SaaS, ecommerce, startups, enterprise. The others collapsed to a 301 redirect pointing at &lt;code&gt;/for/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is a short write-up of what the data said, because I think the programmatic SEO playbook is being sold harder than ever at exactly the moment it's getting worse, not better, at its actual job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What 127 pages actually looked like
&lt;/h2&gt;

&lt;p&gt;Each page was ~150 lines of JSX. Same hero component. Same three feature cards. Same CTA. The vertical-specific content was roughly four paragraphs injected from a template dictionary. The word "plumbing" or "veterinary" appeared maybe nine times. The structural depth was identical across every page.&lt;/p&gt;

&lt;p&gt;From a human-reader perspective this was thin. From a Google-crawler perspective it was thin with extra steps. From an AI-search perspective — which is the channel I was actually trying to optimize for — it was worse than thin, because AI engines penalize duplicate patterns far more aggressively than Google's ranker does. More on that below.&lt;/p&gt;

&lt;h2&gt;
  
  
  The signal that it was wrong
&lt;/h2&gt;

&lt;p&gt;Three data points, in order of severity:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. None of the 122 templated pages appeared in AI citations.&lt;/strong&gt; Our in-house CLI queries ChatGPT, Perplexity, Claude, and Gemini against prompts like "GEO tools for SaaS" and "AI search for agencies." When we baselined citations after the prune, we were cited zero times across 28 prompt-engine combinations. Not a great number — but notably, none of the then-still-live templated vertical pages were in the cited set during the runs we did before the prune either. Zero demand for them from the engines, even when the vertical keyword was in the prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Google indexed them but didn't rank them.&lt;/strong&gt; Coverage hit near-full within two weeks. Clicks stayed at zero. This is the classic thin-content failure mode Google's Helpful Content Update (HCU) was built to penalize. HCU has shipped in multiple waves (September 2023, March 2024, and the core update of March 2025) and each wave demotes sites where a material fraction of URLs score low on "created primarily to attract search engine traffic." We were a poster child.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Our depth signals were being diluted.&lt;/strong&gt; Aggarwal et al. (KDD 2024) measured LLM citation probability against content-depth signals across thousands of URLs and found a &lt;strong&gt;33.36% citation lift from adding statistics and structural depth&lt;/strong&gt; to target pages. The same result in reverse: stripping depth (or drowning good pages in templated ones) is a real, measurable loss. When you add 122 template-structured URLs to a sitemap of ~240, you shift the domain's average structural depth downward. Entity-level authority scoring — the way AI engines actually reason about sources — penalizes that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI engines punish programmatic content harder than Google does
&lt;/h2&gt;

&lt;p&gt;This is the piece I didn't understand when I shipped the 127 pages and wish I had.&lt;/p&gt;

&lt;p&gt;Google's ranker scores pages mostly independently. A thin URL can coexist with strong URLs on the same domain because PageRank and relevance are computed per-URL. Penalties cascade through algorithms like HCU but the unit of evaluation is still largely the page.&lt;/p&gt;

&lt;p&gt;AI engines don't work that way. When an AI engine decides whether to cite a domain, it's doing something closer to entity-level reasoning over the training corpus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source-diversity check&lt;/strong&gt;: how many &lt;em&gt;different-looking&lt;/em&gt; pages does this domain contribute? A domain with 120 duplicate-structured pages looks like one page repeated 120 times, not 120 pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authority-signal pooling&lt;/strong&gt;: the citations, external mentions, and reputation signals for a domain get aggregated at the brand level, then diluted across the volume of URLs. Adding 122 low-authority URLs dilutes the per-URL authority of the 5 good ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pattern suppression&lt;/strong&gt;: models learn to distrust patterns that look like SEO spam during RLHF and alignment training. OtterlyAI's 2025 analysis of 100M+ AI-search citations found &lt;strong&gt;94% of cited content was long-form and structurally distinct&lt;/strong&gt;. Templated verticals fail both tests at once.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The net effect: programmatic SEO at scale actively suppresses your AI-search visibility. It's not neutral. It's negative.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we kept and why
&lt;/h2&gt;

&lt;p&gt;The 5 surviving verticals (&lt;code&gt;agencies&lt;/code&gt;, &lt;code&gt;saas&lt;/code&gt;, &lt;code&gt;ecommerce&lt;/code&gt;, &lt;code&gt;startups&lt;/code&gt;, &lt;code&gt;enterprise&lt;/code&gt;) survived for one reason: they had enough real material to be genuinely different from each other. An agency's use case (multi-client reporting, white-label) has no structural overlap with an enterprise use case (procurement, SAML, SOC 2). The plumbing vs funeral-home distinction was cosmetic — the product value prop is identical across them.&lt;/p&gt;

&lt;p&gt;After the prune:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sitemap dropped by 122 entries&lt;/li&gt;
&lt;li&gt;crawl budget re-concentrated on the pages we actually care about&lt;/li&gt;
&lt;li&gt;blog-post AEO scores moved up 2–5 points across the twelve pillar posts over the subsequent weeks as we layered in TOCs, FAQPage schema, and data tables (correlation with the prune, not proof — but directionally encouraging)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The broader lesson
&lt;/h2&gt;

&lt;p&gt;Programmatic SEO isn't dead. It works when each page has a real, structurally-distinct answer to a real question. It's a content strategy, not a URL-generation strategy.&lt;/p&gt;

&lt;p&gt;What's dead is programmatic SEO &lt;em&gt;for AI search&lt;/em&gt;, if by "programmatic" you mean "127 pages from a template." AI engines are trained specifically to demote that pattern. The playbook that was borderline in 2022 is actively counterproductive in 2026.&lt;/p&gt;

&lt;p&gt;The honest version of the workflow I'd recommend now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify the 5–10 verticals or use cases where your product genuinely has a different answer.&lt;/li&gt;
&lt;li&gt;Write those pages by hand. Cite real sources. Include real numbers.&lt;/li&gt;
&lt;li&gt;If you want breadth, put it in a glossary or a single pillar page that covers many terms at depth, not 100 URLs that each cover one shallowly.&lt;/li&gt;
&lt;li&gt;Measure per-URL AI citation, not just Google indexation. If a page isn't getting cited by AI engines 30 days after launch, it probably isn't earning its slot in your sitemap either.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Aggarwal et al., "Geo-Optimization: Ranking Factors in Generative Search." KDD 2024.&lt;/li&gt;
&lt;li&gt;OtterlyAI, "State of AI Search Citations 2025." Analysis of 100M+ AI citation instances.&lt;/li&gt;
&lt;li&gt;Google Search Central: Helpful Content Update rollouts, 2023–2025.&lt;/li&gt;
&lt;li&gt;Google March 2025 Core Update documentation.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you're running a programmatic SEO experiment right now and your AI citation rate is flat, I'd be curious what your data looks like. We measured ours with &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;&lt;code&gt;foglift scan ai-check&lt;/code&gt;&lt;/a&gt; — open-source CLI, queries five AI engines, tells you where you're cited and where you're not. The honest version of the answer is usually "not where you thought."&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>41% of YouTube Videos Cited by AI Search Have Under 1,000 Views</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Thu, 16 Apr 2026 04:06:54 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/41-of-youtube-videos-cited-by-ai-search-have-under-1000-views-14bd</link>
      <guid>https://dev.to/watsonfoglift/41-of-youtube-videos-cited-by-ai-search-have-under-1000-views-14bd</guid>
      <description>&lt;p&gt;Everyone's optimizing blog posts for AI search. Meanwhile, YouTube is quietly eating the citation graph, and the videos getting cited look nothing like what you'd expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers are hard to ignore
&lt;/h2&gt;

&lt;p&gt;BrightEdge analyzed 30 million sources across ChatGPT, Google AI Overviews, Google AI Mode, Perplexity, and Gemini from May 2024 to September 2025. YouTube is cited 200x more than any other video platform. Vimeo, TikTok, Dailymotion, and Twitch each hold 0.1% or less.&lt;/p&gt;

&lt;p&gt;YouTube now commands roughly 39.2% citation share across AI platforms, up from 18.9%. In the same period, Reddit's share dropped from 44.2% to 20.3%.&lt;/p&gt;

&lt;p&gt;In Google AI Overviews specifically, YouTube is the #1 cited domain at 29.5% share, ahead of Mayo Clinic (12.5%). How-to video citations jumped 651%.&lt;/p&gt;

&lt;h2&gt;
  
  
  The counterintuitive part: popularity metrics don't predict citation
&lt;/h2&gt;

&lt;p&gt;OtterlyAI published the first large-scale YouTube citation study in March 2026, derived from over 100 million AI citation instances across six AI search platforms. They analyzed every YouTube URL that appeared as a citation, collecting metadata on format, duration, structure, views, likes, and channel attributes.&lt;/p&gt;

&lt;p&gt;The finding that should change how you think about video:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;40.83% of AI-cited videos had fewer than 1,000 views&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;36% had fewer than 15 likes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Views, likes, and subscriber count showed near-zero correlation with citation frequency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This breaks a core assumption in content marketing. On YouTube's own algorithm, views and engagement are everything. For AI citation, they're noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually drives AI citation: structure, not entertainment
&lt;/h2&gt;

&lt;p&gt;If popularity doesn't predict citation, what does? OtterlyAI's data points to structural signals:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long-form dominates.&lt;/strong&gt; 94% of YouTube AI citations go to long-form videos. Shorts account for just 5.7% of citations. The sweet spot:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Duration&lt;/th&gt;
&lt;th&gt;Citation Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;10-20 minutes&lt;/td&gt;
&lt;td&gt;32.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5-10 minutes&lt;/td&gt;
&lt;td&gt;26.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20+ minutes&lt;/td&gt;
&lt;td&gt;17.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Under 5 minutes&lt;/td&gt;
&lt;td&gt;18.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shorts&lt;/td&gt;
&lt;td&gt;5.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Timestamps function like headers.&lt;/strong&gt; Videos with chapter markers and timestamps give AI models the equivalent of an H2/H3 structure to parse. A 15-minute video with 6 timestamped sections is, to an LLM, structurally similar to a well-organized blog post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Descriptions function like metadata.&lt;/strong&gt; Keyword-aligned descriptions with clear topic framing give AI models the extraction signals they need. A structured video with a descriptive title, clear chapters, and a keyword-aligned description can be cited regardless of view count or channel size.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters if you build software
&lt;/h2&gt;

&lt;p&gt;Three implications for devs and SaaS founders:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Video is an independent AI discovery channel.&lt;/strong&gt; If you only optimize text content for AI search, you're ignoring the #1 cited domain in AI Overviews. A 12-minute tutorial about your problem space, structured with timestamps and a detailed description, has a real shot at AI citation even with zero subscribers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The playing field is level in a way blog SEO isn't.&lt;/strong&gt; Blog SEO rewards domain authority, backlink profiles, and years of accumulated trust signals. YouTube AI citation rewards structure and topical relevance. A new channel with 50 subscribers can get cited if the content is structured for extraction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. "How-to" content is the highest-leverage format.&lt;/strong&gt; How-to citations grew 651% in AI Overviews (BrightEdge, 2025). If your product solves a technical problem, a well-structured walkthrough video explaining the &lt;em&gt;problem space&lt;/em&gt; (not a product demo) is high-value content for AI discovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't mean
&lt;/h2&gt;

&lt;p&gt;This isn't "pivot to video." It's "video is an underpriced AI citation asset, and the structural bar is lower than you think."&lt;/p&gt;

&lt;p&gt;The data also doesn't say views are &lt;em&gt;bad&lt;/em&gt;. Views still matter for YouTube's own recommendation engine, for brand awareness, for direct traffic. The point is narrower: when AI models decide which sources to cite, they appear to weight structural extractability over popularity signals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;BrightEdge, "YouTube Presence in AI Search" (2025). Analysis of 30M sources across 5 AI platforms, May 2024 - Sep 2025.&lt;/li&gt;
&lt;li&gt;OtterlyAI, "YouTube Citation Study 2026" (March 2026). 100M+ AI citation instances across 6 platforms, 30-day observation window.&lt;/li&gt;
&lt;li&gt;Search Engine Land, "YouTube dominates AI search with 200x citation advantage" (2025).&lt;/li&gt;
&lt;li&gt;Search Engine Land, "YouTube citations in Google AI Overviews surge" (2025).&lt;/li&gt;
&lt;li&gt;Search Engine Land, "AI search engines cite Reddit, YouTube, and LinkedIn most: Study" (2026).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>showdev</category>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>10 'Best GEO Tools' Listicles Exist. We're in Zero. Here's What That Teaches About AI Citations.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Wed, 15 Apr 2026 01:17:49 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/10-best-geo-tools-listicles-exist-were-in-zero-heres-what-that-teaches-about-ai-citations-18o</link>
      <guid>https://dev.to/watsonfoglift/10-best-geo-tools-listicles-exist-were-in-zero-heres-what-that-teaches-about-ai-citations-18o</guid>
      <description>&lt;p&gt;I Googled "best GEO tools 2026" today. There are at least 10 listicle articles comparing generative engine optimization platforms — from StartupTalky, SitePoint, Birdeye, Evertune, Bluefish, Ecomtent, Bear AI, AtomicAGI, and others.&lt;/p&gt;

&lt;p&gt;We build a GEO tool. We're in zero of them.&lt;/p&gt;

&lt;p&gt;This is interesting because we also run AI Visibility Checks against ourselves weekly. And across 7 different prompts and 4 AI engines, zero mention us. These two facts are not a coincidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The listicle → AI citation pipeline
&lt;/h2&gt;

&lt;p&gt;Here's the chain most people miss:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Someone writes a "best GEO tools 2026" article&lt;/li&gt;
&lt;li&gt;That article gets indexed by Google and crawled by AI bots&lt;/li&gt;
&lt;li&gt;When a user asks an AI engine "what are the best GEO tools?", the model references those listicles as training/retrieval data&lt;/li&gt;
&lt;li&gt;The tools IN the listicles get recommended. The tools NOT in them don't exist as far as the AI is concerned.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This isn't speculation. A Position.digital analysis of AI SEO statistics found that domains with profiles on review platforms like G2, Capterra, and Trustpilot have 3x higher citation rates from ChatGPT. Listicles and review sites are the supply chain for AI recommendations.&lt;/p&gt;

&lt;h2&gt;
  
  
  We tested this directly
&lt;/h2&gt;

&lt;p&gt;We ran our own AI Visibility Check with prompts like "best AI search optimization tool" and "GEO tools for SaaS" across ChatGPT, Perplexity, Claude, and Gemini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt; recommended agencies (Zupo, iPullRank, First Page Sage) and Yext. &lt;strong&gt;Perplexity&lt;/strong&gt; cited Goodie AI, Profound, Gauge, AthenaHQ. &lt;strong&gt;Claude&lt;/strong&gt; referenced BrightEdge and DirectAgents.&lt;/p&gt;

&lt;p&gt;Every one of those tools appears in multiple listicle articles. We appear in none. The correlation is obvious once you see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the listicle winners have in common
&lt;/h2&gt;

&lt;p&gt;I looked at what Goodie AI, Bluefish, Gauge, and AthenaHQ — the tools that dominate GEO listicles — do differently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They're on review platforms.&lt;/strong&gt; G2, Capterra, TrustRadius. This creates structured profile data that AI engines can parse cleanly. A G2 profile with 3 reviews beats a technically perfect landing page with zero third-party validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They get mentioned in industry publications.&lt;/strong&gt; SearchEngineLand, Search Engine Journal, MarTech. One mention in SEL probably outweighs 50 blog posts on your own domain. AI engines weight third-party mentions at roughly 35% of total citation factors (SE Ranking, 129K domain study).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They have PR or outreach budgets.&lt;/strong&gt; The listicle articles don't write themselves. Someone from Bluefish or Goodie AI pitched those writers, provided demo access, shared case studies. This isn't organic — it's intentional distribution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They showed up early.&lt;/strong&gt; The first "best GEO tools" articles set the template. Later articles reference earlier ones. If you missed the initial wave, you're fighting to get added to existing listicles instead of being included by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable math for bootstrapped tools
&lt;/h2&gt;

&lt;p&gt;Here's where it gets real for anyone building a dev tool or SaaS without a marketing budget:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;32K+ referring domains&lt;/strong&gt; = 3.5x more likely to be cited by ChatGPT (Position.digital). Most bootstrapped tools have under 200.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Significant Reddit/Quora presence&lt;/strong&gt; = ~4x citation boost. "Significant" means hundreds or thousands of mentions, not 9 comments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review platform profiles&lt;/strong&gt; = 3x citation boost. But getting reviews requires customers, which requires visibility, which requires... reviews. It's circular.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bootstrapped builder's dilemma: you need authority to get visibility, but you need visibility to get authority. Traditional SEO had this problem too, but the gap was smaller because you could rank for long-tail keywords without massive domain authority. AI search doesn't have a long tail — it either recommends you or it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we're actually doing about it
&lt;/h2&gt;

&lt;p&gt;We're not sitting around hoping. But honesty: the playbook for bootstrapped AI visibility is thin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building citable content.&lt;/strong&gt; We published original research (240 website scans, data nobody else has). Our post debunking the "44% AI citation lift" stat is one of the few honest treatments online. This earns links from people who actually check sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community presence before product mentions.&lt;/strong&gt; 20 Indie Hackers comments, 9 Reddit replies, 9 Dev.to articles — all sharing data and insights, not marketing. The 4x Reddit multiplier only works with authentic engagement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The directory and listicle push.&lt;/strong&gt; We've submitted to 6 AI tool directories (5 pending review). Getting on G2 and Product Hunt is next. This is the explicit gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tracking everything.&lt;/strong&gt; We re-run AI Visibility Checks weekly. Right now: 0/28. The goal is to see that first mention. When it happens, we'll know exactly what caused it because we're documenting every action.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;If you're building a product and wondering why AI engines don't recommend it, check the listicles first. Search "[your category] tools 2026" and count how many comparison articles you appear in.&lt;/p&gt;

&lt;p&gt;If the answer is zero, no amount of schema markup, content optimization, or technical readiness will fix it. The AI citation pipeline starts with third-party mentions — listicles, review sites, community discussions, industry publications. Your website is downstream.&lt;/p&gt;

&lt;p&gt;We went from AEO 65 to 89 across our blog. Technical score is 96/100. AI visibility is still 0/28. The technical optimization is the floor, not the ceiling. Getting INTO the articles that AI engines reference — that's the real game.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Position.digital, "100+ AI SEO Statistics for 2026," April 2026&lt;/li&gt;
&lt;li&gt;SE Ranking, "AI Search Ranking Factors," 129K domain study, 2025&lt;/li&gt;
&lt;li&gt;SearchEngineLand, "AI search engines cite Reddit, YouTube, LinkedIn most," 2026&lt;/li&gt;
&lt;li&gt;Chatoptic, "AI Citation vs. Google Rank Correlation," 2025&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>showdev</category>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why 'X vs Y' Pages Are the Most Underrated Content Type for AI Search</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Mon, 13 Apr 2026 00:10:00 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/why-x-vs-y-pages-are-the-most-underrated-content-type-for-ai-search-3059</link>
      <guid>https://dev.to/watsonfoglift/why-x-vs-y-pages-are-the-most-underrated-content-type-for-ai-search-3059</guid>
      <description>&lt;p&gt;Most AI search optimization advice boils down to: write deep blog posts, cite sources, add FAQ schema, keep it fresh.&lt;/p&gt;

&lt;p&gt;That's solid advice. But there's a content type that hits &lt;em&gt;every&lt;/em&gt; AI readiness signal simultaneously — and almost nobody is building it deliberately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparison pages.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built 43 of them over the past month. Our top comparison pages score &lt;strong&gt;81/100 on AI readiness&lt;/strong&gt;. The industry median? &lt;strong&gt;46/100.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's why the "X vs Y" format is structurally ideal for AI extraction — and why most teams are leaving this on the table.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gap Is Massive
&lt;/h2&gt;

&lt;p&gt;We &lt;a href="https://foglift.io/blog/ai-search-readiness-study-2026" rel="noopener noreferrer"&gt;scanned 240 websites&lt;/a&gt; to measure AI search readiness across eight dimensions. The findings were stark:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Median AEO score: 46/100&lt;/strong&gt; — most sites aren't built for AI engines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;90% of websites score below 80&lt;/strong&gt; on answer engine optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;34.6% fail the AEO category entirely&lt;/strong&gt; (below 50)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meanwhile, our comparison pages — after adding FAQ schema and peer-reviewed citations — hit &lt;strong&gt;81/100&lt;/strong&gt;. That puts them in the top 10%.&lt;/p&gt;

&lt;p&gt;What makes comparison pages structurally different from blog posts?&lt;/p&gt;

&lt;h2&gt;
  
  
  Six Reasons Comparison Pages Win
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. They're Table-Native
&lt;/h3&gt;

&lt;p&gt;AI models extract structured information more reliably from tables than from prose. Feature comparison matrices, pricing breakdowns, pro/con lists — these are the native content format of a comparison page.&lt;/p&gt;

&lt;p&gt;The data backs this up: articles with &lt;strong&gt;19+ statistical data points&lt;/strong&gt; get &lt;strong&gt;93% more AI citations&lt;/strong&gt; than those without (SE Ranking, 2025, 129,000 domains analyzed). Comparison tables are statistics-dense by nature.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. FAQ Schema Fits Naturally
&lt;/h3&gt;

&lt;p&gt;FAQPage schema correlates with &lt;strong&gt;2.7x more AI citations&lt;/strong&gt; (Relixir, 2025). But bolting FAQ schema onto a blog post often feels forced — "What is [topic]?" questions that don't add real value.&lt;/p&gt;

&lt;p&gt;Comparison pages generate &lt;em&gt;natural&lt;/em&gt; FAQ content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is X better than Y for enterprise use?"&lt;/li&gt;
&lt;li&gt;"What's the pricing difference between X and Y?"&lt;/li&gt;
&lt;li&gt;"Does X support [specific feature] that Y doesn't?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the exact questions users type into AI engines. When the page structure matches the query structure, AI models can extract and cite with confidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Heading Hierarchy Is Built In
&lt;/h3&gt;

&lt;p&gt;The comparison format forces clean structure: H1 for the main comparison, H2 for each evaluation category (Features, Pricing, Use Cases, Verdict), H3 for subcategories. AI models parse this hierarchy to understand what's being compared and why.&lt;/p&gt;

&lt;p&gt;No agonizing over content architecture. The format does it for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. They Match Decision Intent Directly
&lt;/h3&gt;

&lt;p&gt;When someone asks an AI "which is better, X or Y?", the model needs a source that directly answers that question. A blog post might mention both products in passing. A comparison page is purpose-built for the exact query.&lt;/p&gt;

&lt;p&gt;This matters because AI-referred visitors convert at &lt;strong&gt;4.4x the rate&lt;/strong&gt; of standard organic traffic (Spiralyze, 2025). Decision-intent queries convert even higher — the user is already choosing, they just need help deciding.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. You Compete Against Nobody
&lt;/h3&gt;

&lt;p&gt;Here's the strategic insight most teams miss: &lt;strong&gt;nobody else is targeting your brand comparisons.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you build a "Your Product vs Competitor X" page, you're the primary authority for that query. You know your own product better than anyone. You have the most current data. You can provide the most honest comparison.&lt;/p&gt;

&lt;p&gt;Blog posts compete in crowded topical spaces where established players have years of authority built up. Comparison pages compete in spaces you already own.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Freshness Is Easy to Maintain
&lt;/h3&gt;

&lt;p&gt;Content updated within 30 days gets &lt;strong&gt;3.2x more AI citations&lt;/strong&gt; than stale content (Digital Bloom, 2025). But keeping a 3,000-word blog post fresh is a project. Keeping a comparison page fresh is a data update — new pricing, new features, new verdict.&lt;/p&gt;

&lt;p&gt;Our comparison pages get monthly data refreshes. Each update takes 15 minutes. Each refresh resets the freshness signal that AI models weight heavily.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Content Depth Trap
&lt;/h2&gt;

&lt;p&gt;Here's the nuance that separates an 81 from a 41: &lt;strong&gt;schema alone doesn't do it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We tested this directly. One of our comparison pages had FAQ schema but thin content — a templated shell without genuine analysis. AI readiness score: &lt;strong&gt;41/100&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Two other pages with the same FAQ schema implementation but with deep content — real pricing research, honest trade-offs, specific recommendations backed by methodology citations — scored &lt;strong&gt;81/100&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's a &lt;strong&gt;40-point gap&lt;/strong&gt; from content depth alone, with identical schema.&lt;/p&gt;

&lt;p&gt;The lesson: don't template your way to comparison page coverage. Each page needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real competitor research.&lt;/strong&gt; Test their product. Get current pricing. Note actual feature differences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honest trade-offs.&lt;/strong&gt; "Choose them when you need X" is more trustworthy than "we're better at everything." AI models trained on diverse sources can detect one-sided comparisons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cited methodology.&lt;/strong&gt; Why should an AI engine trust your comparison? We cite 4 peer-reviewed studies in our methodology section (Aggarwal et al., KDD 2024; SE Ranking 129K domain study; Chatoptic correlation analysis; Zyppy freshness data).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Google Rank Tells You (Nothing)
&lt;/h2&gt;

&lt;p&gt;One more data point that makes comparison pages strategically interesting:&lt;/p&gt;

&lt;p&gt;The correlation between Google ranking and ChatGPT citation is &lt;strong&gt;0.034&lt;/strong&gt; — essentially zero (Chatoptic, 2025, 1,000 queries analyzed).&lt;/p&gt;

&lt;p&gt;This means a comparison page that ranks nowhere on Google can still get cited by ChatGPT, Perplexity, or Claude if it has the right structural signals. You don't need to outrank Ahrefs' blog to get your comparison page cited — you need to be the most extractable, most trustworthy source for the specific comparison query.&lt;/p&gt;

&lt;p&gt;Google rewards backlinks and domain authority. AI engines reward structure, depth, and citation-worthiness. Comparison pages optimize for the latter without needing the former.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blog Posts vs. Comparison Pages
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Blog Post&lt;/th&gt;
&lt;th&gt;Comparison Page&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tabular data&lt;/td&gt;
&lt;td&gt;Optional — must add&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FAQ schema fit&lt;/td&gt;
&lt;td&gt;Often forced&lt;/td&gt;
&lt;td&gt;Natural Q&amp;amp;A format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Question-format headings&lt;/td&gt;
&lt;td&gt;Must design deliberately&lt;/td&gt;
&lt;td&gt;Inherent to format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decision-intent matching&lt;/td&gt;
&lt;td&gt;Indirect&lt;/td&gt;
&lt;td&gt;Direct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content freshness cost&lt;/td&gt;
&lt;td&gt;Full rewrite or audit&lt;/td&gt;
&lt;td&gt;Data update (15 min)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query competition&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Near-zero (brand queries)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content depth requirement&lt;/td&gt;
&lt;td&gt;2,900+ words for citation lift&lt;/td&gt;
&lt;td&gt;Naturally deep from feature/pricing analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This doesn't mean blog posts are bad. They build topical authority, earn backlinks, and support the full funnel. But if you're only building blog posts for AI search, you're leaving the highest-ROI content type on the table.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Start
&lt;/h2&gt;

&lt;p&gt;If you want to test this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pick your top 3 competitors.&lt;/strong&gt; Build one comparison page per competitor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research deeply.&lt;/strong&gt; Test their product. Get real pricing. Note real differences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add FAQPage schema&lt;/strong&gt; with 5 questions per page — real questions users would ask.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cite your methodology.&lt;/strong&gt; Link to the studies behind your evaluation framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be honest.&lt;/strong&gt; Include "choose them when..." recommendations for the competitor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure baseline.&lt;/strong&gt; Run an AI readiness scan before and after.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set a monthly refresh cadence.&lt;/strong&gt; Update pricing, features, and verdicts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then measure. If your experience is anything like ours, comparison pages will outperform your blog on AI readiness metrics from day one.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We built &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;Foglift&lt;/a&gt; to measure exactly this — how ready your site is for AI search engines. The free scan scores pages across the 8 AI readiness dimensions mentioned in this post. The comparison page data here comes from running our own tool on our own site.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>content</category>
      <category>webdev</category>
    </item>
    <item>
      <title>We Scored 88/100 on AI Readiness. Zero AI Engines Mention Us.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Sun, 12 Apr 2026 00:08:16 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/we-scored-88100-on-ai-readiness-zero-ai-engines-mention-us-19d0</link>
      <guid>https://dev.to/watsonfoglift/we-scored-88100-on-ai-readiness-zero-ai-engines-mention-us-19d0</guid>
      <description>&lt;p&gt;We built an AI search optimization tool. We used it on our own site. We scored 88/100 on AI readiness — structured data, FAQ schema, fresh content, cited sources, proper heading hierarchy, the works.&lt;/p&gt;

&lt;p&gt;Then we asked 5 AI engines 7 different questions where our tool should logically appear. &lt;strong&gt;Zero mentions across 35 checks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not low visibility. Not partial visibility. Zero.&lt;/p&gt;

&lt;p&gt;Here's what we learned about the gap between &lt;em&gt;being ready for AI search&lt;/em&gt; and &lt;em&gt;actually getting cited by AI search&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup: what "88/100" actually measures
&lt;/h2&gt;

&lt;p&gt;Our AI readiness score evaluates 8 technical dimensions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What it checks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Structured Data Richness&lt;/td&gt;
&lt;td&gt;JSON-LD schemas (FAQPage, Article, Organization, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heading Clarity&lt;/td&gt;
&lt;td&gt;H1-H3 hierarchy, semantic heading structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FAQ Quality&lt;/td&gt;
&lt;td&gt;Visible FAQ content matching schema markup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entity Identity&lt;/td&gt;
&lt;td&gt;Brand entity data, consistent NAP, knowledge panel signals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content Depth&lt;/td&gt;
&lt;td&gt;Word count, semantic coverage, topical comprehensiveness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Citation Formatting&lt;/td&gt;
&lt;td&gt;Inline citations, sources sections, attribution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Topical Authority&lt;/td&gt;
&lt;td&gt;Internal linking, content clusters, expertise signals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Crawler Access&lt;/td&gt;
&lt;td&gt;robots.txt rules for GPTBot, ClaudeBot, PerplexityBot, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;We scored well on all of them. Our robots.txt allows all major AI crawlers. We have FAQPage schema on 40+ pages. Every blog post has a Sources &amp;amp; Further Reading section with academic and industry citations. Content is freshly updated (every post modified within the last 30 days).&lt;/p&gt;

&lt;p&gt;By every &lt;em&gt;technical&lt;/em&gt; measure, we're doing the right things.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test: 0 out of 35
&lt;/h2&gt;

&lt;p&gt;We ran our own AI Visibility Check — the same feature we sell to customers — against ourselves. We queried 5 AI engines (ChatGPT, Perplexity, Claude, Gemini, Google AI Overview) with 7 prompts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"best AI search optimization tool"&lt;/li&gt;
&lt;li&gt;"how to rank in ChatGPT"&lt;/li&gt;
&lt;li&gt;"GEO tools for SaaS"&lt;/li&gt;
&lt;li&gt;"track brand mentions in AI search"&lt;/li&gt;
&lt;li&gt;"tools to optimize for Perplexity"&lt;/li&gt;
&lt;li&gt;"best AEO tools 2026"&lt;/li&gt;
&lt;li&gt;"AI visibility monitoring platform"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Result: 0/7 prompts, 0/35 engine checks.&lt;/strong&gt; Not one AI engine mentioned us for any query.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who &lt;em&gt;did&lt;/em&gt; show up?
&lt;/h2&gt;

&lt;p&gt;This is the interesting part. The AI engines didn't return nothing — they returned &lt;em&gt;other tools and companies&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ChatGPT&lt;/strong&gt; recommended agencies (Zupo, iPullRank, First Page Sage) and platforms (Yext)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Perplexity&lt;/strong&gt; cited monitoring tools (Goodie AI, Profound, Gauge, AthenaHQ)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude&lt;/strong&gt; referenced content sources (DirectAgents, BrightEdge)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI Overview&lt;/strong&gt; and &lt;strong&gt;Gemini&lt;/strong&gt; gave generic strategies without naming specific tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The winners weren't necessarily better products. They were better-&lt;em&gt;known&lt;/em&gt; products — with more third-party mentions, more backlinks, more citations in listicle articles, and stronger presence on community platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  The paradox, explained
&lt;/h2&gt;

&lt;p&gt;Technical AI readiness and AI visibility are &lt;strong&gt;different things that use different signals&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of it like a job interview. AI readiness is your resume — well-formatted, clear structure, proper credentials. AI visibility is your reputation — who knows you, who's talked about you, whether the interviewer has already heard your name before you walked in.&lt;/p&gt;

&lt;p&gt;The research backs this up:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brand mentions account for ~35% of citation weight.&lt;/strong&gt; An SE Ranking study of 129,000 domains found that brand web mentions are the single strongest predictor of whether an AI engine cites you. Not your schema. Not your heading structure. Whether other sites on the internet talk about you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Referring domains are the strongest technical predictor.&lt;/strong&gt; The same study found that the number of unique websites linking to you is the strongest link-based signal. AI models learn from web data — links are how the web vouches for authority.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reddit presence gives a 3.9x citation multiplier.&lt;/strong&gt; Sites discussed on Reddit get cited by AI engines at nearly 4x the rate of sites that aren't. AI models heavily weight community discourse as a trust signal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;28% of the most-cited domains have zero Google visibility.&lt;/strong&gt; (Chatoptic, 2025.) These aren't SEO winners — they're authority winners. AI citation and Google ranking are almost statistically independent (correlation: 0.034).&lt;/p&gt;

&lt;h2&gt;
  
  
  What technical readiness actually buys you
&lt;/h2&gt;

&lt;p&gt;This doesn't mean technical optimization is worthless. It's necessary — just not sufficient.&lt;/p&gt;

&lt;p&gt;Here's the mental model: &lt;strong&gt;AI readiness is table stakes. Authority signals are the game.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What the 88/100 score &lt;em&gt;does&lt;/em&gt; buy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Extraction accuracy.&lt;/strong&gt; A Nature Communications study (Feb 2024) found LLMs extract information more accurately from structured fields than from prose. When an AI engine &lt;em&gt;does&lt;/em&gt; cite you, schema markup ensures it gets your brand name, pricing, and features right.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freshness signals.&lt;/strong&gt; Content updated within 30 days gets 3.2x more AI citations (Digital Bloom, 2025). Our dateModified timestamps are current — when authority catches up, freshness won't be the bottleneck.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crawl access.&lt;/strong&gt; If your robots.txt blocks GPTBot or ClaudeBot, nothing else matters. The door has to be open before anyone can walk through it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technical readiness is the &lt;em&gt;floor&lt;/em&gt;, not the &lt;em&gt;ceiling&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we're doing about it
&lt;/h2&gt;

&lt;p&gt;Knowing the gap is step one. Here's how we're closing it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Earning authority through original research.&lt;/strong&gt; We published a study analyzing 240 website scans with data no one else has. Primary research earns citations from journalists and bloggers — which builds the third-party mention graph that AI models trust.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community presence.&lt;/strong&gt; Genuine engagement on Dev.to, Indie Hackers, and (eventually) Reddit. Not "check out our tool" spam — substantive contributions that establish expertise. The 3.9x Reddit multiplier doesn't work if your Reddit history is all self-promotion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content that other sites want to link to.&lt;/strong&gt; Our blog post calling out the unsourced "44% AI citation lift" stat that every SEO blog repeats has become one of the few honest treatments of that claim online. That kind of content earns backlinks organically because it fills a gap no one else is filling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Getting into listicles.&lt;/strong&gt; AI engines heavily weight "best X tools" articles when answering tool-recommendation queries. If you're not in those articles, you're invisible to those queries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Patience.&lt;/strong&gt; AI models retrain on web data periodically, not continuously. Even if you do everything right today, it may take weeks or months for the authority signals to propagate through the training pipeline. This isn't like SEO where you can see index updates within days.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The takeaway for your site
&lt;/h2&gt;

&lt;p&gt;If you're optimizing for AI search visibility, here's the uncomfortable truth:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The technical checklist is the easy part.&lt;/strong&gt; Schema markup, heading structure, FAQ content, fresh dates, citation formatting — these are all things you can control directly and implement in a weekend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hard part is earning authority.&lt;/strong&gt; Third-party mentions, backlinks from reputable domains, community presence, being included in comparison articles — these take months of consistent work and can't be shortcut.&lt;/p&gt;

&lt;p&gt;Don't skip the technical work. But don't mistake a high readiness score for actual visibility. We made that mistake, and 0/35 was the wake-up call.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We're building &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;Foglift&lt;/a&gt; — a free website audit that measures both AI readiness and AI visibility. The readiness score is the floor. The visibility data is the ceiling. We use it on ourselves every week to track whether the gap is closing.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SE Ranking, "AI Search Ranking Factors," 129,000 domain study, 2025&lt;/li&gt;
&lt;li&gt;Chatoptic, "AI Citation vs. Google Rank Correlation," 2025&lt;/li&gt;
&lt;li&gt;Nature Communications, "LLM Information Extraction from Structured Data," Feb 2024&lt;/li&gt;
&lt;li&gt;Digital Bloom, "Content Freshness and AI Citations," 2025&lt;/li&gt;
&lt;li&gt;Seer Interactive, "AI Overview Citation Sources," 863K keyword analysis, Feb 2026&lt;/li&gt;
&lt;li&gt;Aggarwal et al., "Generative Engine Optimization," KDD 2024&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>seo</category>
      <category>ai</category>
    </item>
    <item>
      <title>AI Citations From Google's Top 10 Dropped From 76% to 38%. Here's What Actually Drives AI Visibility.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Sat, 11 Apr 2026 03:09:42 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/ai-citations-from-googles-top-10-dropped-from-76-to-38-heres-what-actually-drives-ai-24i9</link>
      <guid>https://dev.to/watsonfoglift/ai-citations-from-googles-top-10-dropped-from-76-to-38-heres-what-actually-drives-ai-24i9</guid>
      <description>&lt;p&gt;There's a stat circulating that should worry anyone whose traffic strategy depends on Google rankings: &lt;strong&gt;AI Overview citations from top-10 organic pages dropped from 76% to 38%&lt;/strong&gt; (Seer Interactive, analysis of 863K keywords, Feb 2026).&lt;/p&gt;

&lt;p&gt;That means Google's AI Overviews are now pulling the majority of their cited sources from pages that &lt;em&gt;don't&lt;/em&gt; rank in the traditional top 10.&lt;/p&gt;

&lt;p&gt;If you've spent years optimizing for Google rankings, this doesn't mean your work was wasted. But it does mean the rules for getting cited by AI are different from the rules for ranking in search.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data: Google rank barely predicts AI citation
&lt;/h2&gt;

&lt;p&gt;Three independent studies paint a consistent picture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Study&lt;/th&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Seer Interactive (863K keywords, 2026)&lt;/td&gt;
&lt;td&gt;AI Overview citations from top-10 pages: 76% → 38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chatoptic (2025)&lt;/td&gt;
&lt;td&gt;Correlation between Google rank and ChatGPT citation: &lt;strong&gt;0.034&lt;/strong&gt; (essentially zero)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chatoptic (2025)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;28% of the most-cited domains&lt;/strong&gt; in AI responses had zero traditional Google visibility&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That 0.034 correlation is striking. For context, a correlation of 1.0 means perfect prediction, and anything below 0.1 is considered negligible. Google rank and AI citation are, statistically, almost independent variables.&lt;/p&gt;

&lt;p&gt;And the 28% figure is arguably the most important: more than a quarter of the domains AI engines prefer to cite have &lt;em&gt;no traditional search visibility at all&lt;/em&gt;. These aren't SEO winners — they're authority winners.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually drives AI citations
&lt;/h2&gt;

&lt;p&gt;If Google rank doesn't predict AI citation, what does? Five factors have the strongest empirical support:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Referring domains (strongest predictor)
&lt;/h3&gt;

&lt;p&gt;An SE Ranking study of 129,000 domains found that referring domains — the number of unique sites linking to you — is the single strongest predictor of AI citation. This makes sense: AI models learn from web data, and links are the web's native authority signal.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Content position and structure
&lt;/h3&gt;

&lt;p&gt;Superlines' 2026 citation analysis found that &lt;strong&gt;44.2% of all LLM citations come from the first 30% of article text&lt;/strong&gt;. AI engines extract from the top of your content, not the bottom. Front-load your strongest claims, data, and definitions.&lt;/p&gt;

&lt;p&gt;Pages with comparison tables containing 3+ data tables earn &lt;strong&gt;25.7% more citations&lt;/strong&gt; (Superlines, 2026).&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Freshness
&lt;/h3&gt;

&lt;p&gt;Seer Interactive found that &lt;strong&gt;71% of ChatGPT citations&lt;/strong&gt; reference content published between 2023 and 2025. Digital Bloom's analysis showed pages updated within 30 days get &lt;strong&gt;3.2x more AI citations&lt;/strong&gt; than stale equivalents.&lt;/p&gt;

&lt;p&gt;If your best content was last updated in 2023, it's losing ground to recently published competitors.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Statistics and original data
&lt;/h3&gt;

&lt;p&gt;Aggarwal et al.'s peer-reviewed GEO study (KDD 2024) found that incorporating statistics into content increased AI visibility by &lt;strong&gt;33%&lt;/strong&gt; and adding quotations increased it by &lt;strong&gt;41%&lt;/strong&gt;. For lower-ranked sites, citing external sources boosted visibility by &lt;strong&gt;115%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI engines favor content that makes specific, verifiable claims over content that speaks in generalities.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Brand web mentions
&lt;/h3&gt;

&lt;p&gt;Brand mentions across the web account for roughly &lt;strong&gt;35% of citation weight&lt;/strong&gt; (SE Ranking, 129K domains). This isn't just backlinks — it's any reference to your brand on other domains. Being discussed, recommended, and referenced on third-party sites signals to AI models that you're a trusted entity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for your strategy
&lt;/h2&gt;

&lt;p&gt;The practical implication: &lt;strong&gt;building for AI visibility is not a refinement of SEO — it's a parallel discipline.&lt;/strong&gt; Some tactics overlap (quality content, good structure), but the ranking factors diverge significantly.&lt;/p&gt;

&lt;p&gt;Here's a checklist based on the data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] &lt;strong&gt;Front-load your content.&lt;/strong&gt; Put your best data, definitions, and conclusions in the first third of every page.&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;Update key pages monthly.&lt;/strong&gt; The 3.2x freshness multiplier is real. Set a calendar reminder.&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;Add specific data to every claim.&lt;/strong&gt; Not "conversion rates increase" but "conversion rates increased 23% over 6 months (Source, Year)."&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;Build referring domains.&lt;/strong&gt; The hardest and highest-leverage factor. Original research, data, and tools that others want to cite.&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;Monitor your AI presence directly.&lt;/strong&gt; Don't assume Google rankings translate. Query ChatGPT, Perplexity, and Claude with questions your content should answer and check if you appear.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 76% → 38% decline is still trending downward. The window to build AI authority before your competitors do is closing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Seer Interactive — AI Overview citations from top-10 pages dropped from 76% to 38% (863K keywords, Feb 2026); 71% of ChatGPT citations from 2023-2025 content; 46% of AI-powered interactions use integrated search&lt;/li&gt;
&lt;li&gt;Chatoptic — 0.034 correlation between Google rank and ChatGPT citation; 28% of most-cited domains have zero Google visibility&lt;/li&gt;
&lt;li&gt;SE Ranking — referring domains as strongest citation predictor (129,000 domain study); brand mentions = 35% of citation weight&lt;/li&gt;
&lt;li&gt;Superlines, "AI Search Statistics 2026" — 44.2% of citations from first 30% of article text; comparison tables with 3+ tables earn 25.7% more citations&lt;/li&gt;
&lt;li&gt;Digital Bloom, "Content Freshness and AI Citation," 2025 — 30-day update = 3.2x citation lift&lt;/li&gt;
&lt;li&gt;Aggarwal et al., "GEO: Generative Engine Optimization," KDD 2024 — statistics +33%, quotations +41%, source citation +115% for lower-ranked sites&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>FAQ Schema Gets You 2.7x More AI Citations. But Not for the Reason You Think.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Fri, 10 Apr 2026 00:12:23 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/faq-schema-gets-you-27x-more-ai-citations-but-not-for-the-reason-you-think-5a04</link>
      <guid>https://dev.to/watsonfoglift/faq-schema-gets-you-27x-more-ai-citations-but-not-for-the-reason-you-think-5a04</guid>
      <description>&lt;p&gt;A 2025 Relixir study found that pages with FAQPage schema achieve a 41% AI citation rate versus 15% without — roughly 2.7x higher. That's a real number from a real study.&lt;/p&gt;

&lt;p&gt;But here's the thing: &lt;strong&gt;AI models don't parse your JSON-LD as structured data.&lt;/strong&gt; They tokenize it as raw text, the same way they'd read a paragraph.&lt;/p&gt;

&lt;p&gt;We just added FAQ schema to 36 pages on our site. Before we did, we wanted to understand &lt;em&gt;why&lt;/em&gt; it works — because the mechanism matters more than the correlation. Here's what we found.&lt;/p&gt;

&lt;h2&gt;
  
  
  The experiment that changed how I think about schema
&lt;/h2&gt;

&lt;p&gt;In February 2026, SEO researcher Mark Williams-Cook ran a controlled experiment. He created a page for a fake company and embedded an address &lt;em&gt;exclusively&lt;/em&gt; inside invalid, made-up JSON-LD schema — not in any visible page content. The schema type didn't even exist.&lt;/p&gt;

&lt;p&gt;Both ChatGPT and Perplexity successfully extracted and returned the address.&lt;/p&gt;

&lt;p&gt;That tells us two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LLMs &lt;em&gt;can&lt;/em&gt; read JSON-LD — they tokenize it like any other text on the page.&lt;/li&gt;
&lt;li&gt;LLMs &lt;em&gt;don't&lt;/em&gt; parse the semantic structure of schema — they treated an invalid schema type identically to a valid one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a crucial distinction. When Google processes your FAQPage schema, it parses the structure and feeds it into the Knowledge Graph. When ChatGPT reads your page, it just... reads all the text, including the JSON-LD block, as tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why does FAQ schema correlate with higher citation rates?
&lt;/h2&gt;

&lt;p&gt;If LLMs don't understand schema structure, why the 2.7x difference? Four mechanisms are at play:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The visible Q&amp;amp;A content (the biggest factor)
&lt;/h3&gt;

&lt;p&gt;Every good FAQ schema implementation includes a visible FAQ section on the page. That visible content — clear questions with concise answers — is &lt;em&gt;exactly&lt;/em&gt; the format LLMs are optimized to extract. When ChatGPT is looking for "What is the difference between X and Y?", a visible FAQ section with that exact question is an easy win.&lt;/p&gt;

&lt;p&gt;This is the mechanism that actually drives most of the citation lift. Not the JSON-LD — the content.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The JSON-LD as readable text
&lt;/h3&gt;

&lt;p&gt;Since LLMs tokenize JSON-LD as text, your FAQPage schema becomes an additional, cleanly-formatted representation of your content. A well-structured JSON-LD block repeats your key Q&amp;amp;A pairs in a format that's easy for attention mechanisms to pick up on.&lt;/p&gt;

&lt;p&gt;Think of it as giving the model a second, structured summary of your content — in the same page.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Google and Bing's Knowledge Graph pipeline
&lt;/h3&gt;

&lt;p&gt;Fabrice Canel, Principal Product Manager at Bing, stated at SMX Munich 2025: "Schema markup helps Microsoft's LLMs understand your content." Google's Search Relations team made similar statements at Search Central Live Madrid (April 2025).&lt;/p&gt;

&lt;p&gt;For AI Overviews and Bing Copilot specifically, schema &lt;em&gt;is&lt;/em&gt; parsed structurally. These platforms have Knowledge Graph infrastructure that traditional LLMs don't. So FAQ schema has a direct effect on two of the six major AI answer surfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Selection bias (the uncomfortable one)
&lt;/h3&gt;

&lt;p&gt;Sites that implement FAQ schema tend to be sites that care about content quality, update frequently, and invest in SEO. The 2.7x correlation partially reflects the overall quality of sites that bother with schema — not just the schema itself. No study I've found controls for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we actually built
&lt;/h2&gt;

&lt;p&gt;We needed FAQ schema on 36 pages: 24 comparison pages and 12 blog posts. Here's the approach:&lt;/p&gt;

&lt;h3&gt;
  
  
  For comparison pages (dynamic template)
&lt;/h3&gt;

&lt;p&gt;Our comparison pages use a shared template. We generate 5 FAQ items per page from the existing comparison data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;faqs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`What is the main difference between Foglift and &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;heroDescription&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="na"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`How does &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; pricing compare to Foglift?`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; starts at &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;competitorStartPrice&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;. 
             Foglift offers a free plan with full website audits, 
             then paid monitoring from $49/month.`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="c1"&gt;// ... 3 more questions generated from page data&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;faqSchema&lt;/span&gt; &lt;span class="o"&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="na"&gt;mainEntity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;faqs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&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;@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="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;question&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;acceptedAnswer&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="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;answer&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="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key decisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generate from existing data&lt;/strong&gt; — no hardcoded FAQ text. If pricing changes, the FAQs update automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5 questions per page&lt;/strong&gt; — enough for depth, not so many that it feels like keyword stuffing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plain text answers&lt;/strong&gt; — strip HTML before injecting into JSON-LD.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For blog posts (static per-post)
&lt;/h3&gt;

&lt;p&gt;Each blog post gets a hand-written faqJsonLd constant with 4 Q&amp;amp;As specific to the post's topic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;faqJsonLd&lt;/span&gt; &lt;span class="o"&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="na"&gt;mainEntity&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="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="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;How do AI search engines decide which websites to cite?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;acceptedAnswer&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="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;A 2025 SE Ranking study of 129,000 domains found that brand web mentions are the strongest predictor (35% weight), followed by referring domains, content freshness, and content depth.&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="c1"&gt;// ... 3 more with specific data&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key decisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data-backed answers only&lt;/strong&gt; — every FAQ answer cites a specific source with sample size and year.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 per post&lt;/strong&gt; — we tried more, but after 4 the quality drops and answers start restating each other.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The visible section (this is the part that actually matters)
&lt;/h3&gt;

&lt;p&gt;Both implementations render a visible accordion FAQ section that matches the schema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Frequently Asked Questions&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;faqJsonLd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mainEntity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;details&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;faq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;acceptedAnswer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;details&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;))}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use details/summary instead of custom accordion components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero JavaScript — works with SSR/SSG&lt;/li&gt;
&lt;li&gt;Semantic HTML — details has built-in accessibility&lt;/li&gt;
&lt;li&gt;First item open by default — gives crawlers immediate visible content&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we measured
&lt;/h2&gt;

&lt;p&gt;Before adding FAQ schema + visible FAQ sections, our AEO (Answer Engine Optimization) scores looked like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Page type&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;AEO score before&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Comparison pages&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;41-61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog posts&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;63-66&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Homepage&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The homepage scored highest because it already had structured FAQ content. The comparison pages scored lowest because they had minimal structured data.&lt;/p&gt;

&lt;p&gt;After the upgrade, we're waiting on a deploy to measure the after. Based on the research, here's what we expect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AEO improvement:&lt;/strong&gt; We expect comparison pages to jump from 41-61 to the 75-85 range.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI citation probability:&lt;/strong&gt; Too early to measure directly. Our AI Visibility Check baseline shows 0/35 engine checks mentioning us — so we'll know if it moves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What we DON'T expect:&lt;/strong&gt; A 44% citation lift from schema alone. (If you're curious why, &lt;a href="https://dev.to/watsonfoglift/that-44-ai-citation-lift-from-schema-markup-stat-i-tried-to-find-the-primary-source-2hm4"&gt;I wrote about that&lt;/a&gt;.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;FAQ schema works. The 2.7x correlation is real. But the mechanism is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Visible Q&amp;amp;A content&lt;/strong&gt; is what LLMs actually extract (biggest effect)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON-LD gives LLMs a second text representation&lt;/strong&gt; of your key Q&amp;amp;As (smaller but real effect)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google/Bing Knowledge Graph&lt;/strong&gt; parses schema structurally for AI Overviews (platform-specific effect)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Selection bias&lt;/strong&gt; inflates the correlation (unmeasured confounder)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you only add the JSON-LD without visible FAQ content, you're capturing effects #2 and #3 but missing #1 — which is the largest factor. If you only add visible FAQ content without schema, you get #1 but miss #2 and #3.&lt;/p&gt;

&lt;p&gt;The move is both layers. That's what we built.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We built &lt;a href="https://foglift.io" rel="noopener noreferrer"&gt;Foglift&lt;/a&gt; to measure exactly this kind of thing — AEO scores, AI visibility, and the gap between your SEO readiness and your AI search readiness. The free scan shows you where your FAQ, schema, and content depth stand.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Relixir (2025) — FAQPage schema citation rate study: 41% vs 15% citation rate&lt;/li&gt;
&lt;li&gt;Mark Williams-Cook (February 2026) — Controlled experiment on LLM JSON-LD tokenization&lt;/li&gt;
&lt;li&gt;Fabrice Canel, Bing Principal PM, SMX Munich 2025&lt;/li&gt;
&lt;li&gt;Google Search Central Live Madrid, April 2025&lt;/li&gt;
&lt;li&gt;Dunn et al., Nature Communications, February 2024&lt;/li&gt;
&lt;li&gt;Aggarwal et al., "Generative Engine Optimization," KDD 2024&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>showdev</category>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>We Scanned 240 Websites for AI Search Readiness. Your SEO Score Doesn't Predict Your AI Score.</title>
      <dc:creator>Watson Foglift</dc:creator>
      <pubDate>Thu, 09 Apr 2026 00:07:26 +0000</pubDate>
      <link>https://dev.to/watsonfoglift/we-scanned-240-websites-for-ai-search-readiness-your-seo-score-doesnt-predict-your-ai-score-35bn</link>
      <guid>https://dev.to/watsonfoglift/we-scanned-240-websites-for-ai-search-readiness-your-seo-score-doesnt-predict-your-ai-score-35bn</guid>
      <description>&lt;p&gt;We built a free website audit tool that scores sites across SEO, GEO (Generative Engine Optimization), AEO (Answer Engine Optimization), security, performance, and accessibility. After 240 real scans from March-April 2026, one pattern jumped out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sites that ace traditional SEO are often failing at AI search readiness.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 39-Point Gap
&lt;/h2&gt;

&lt;p&gt;Across 240 scans, here are the median scores by category:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Median Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Accessibility&lt;/td&gt;
&lt;td&gt;86.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GEO Readiness&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AEO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;46&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;SEO median: &lt;strong&gt;85&lt;/strong&gt;. AEO median: &lt;strong&gt;46&lt;/strong&gt;. That's a 39-point gap.&lt;/p&gt;

&lt;p&gt;The sites in our dataset generally have solid traditional SEO — clean title tags, meta descriptions, proper heading hierarchy, fast load times. But when you measure what AI answer engines actually need to extract and cite your content, most sites fall apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why SEO Score Doesn't Predict AI Citation
&lt;/h2&gt;

&lt;p&gt;This isn't just our data. A 2025 Chatoptic study of 1,000 queries found only a &lt;strong&gt;0.034 correlation&lt;/strong&gt; between Google search rank and ChatGPT citation likelihood. That's effectively zero.&lt;/p&gt;

&lt;p&gt;Even more striking: &lt;strong&gt;28% of the most-cited sites in ChatGPT have zero Google search visibility&lt;/strong&gt; (Profound, 2025). AI citation is a separate channel — not an SEO side effect.&lt;/p&gt;

&lt;p&gt;So what &lt;em&gt;does&lt;/em&gt; predict AI citation?&lt;/p&gt;

&lt;p&gt;According to SE Ranking's analysis of 129,000 domains, the top factors are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Brand web mentions&lt;/strong&gt; — 35% weight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Referring domains&lt;/strong&gt; (backlinks) — strong correlation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content freshness&lt;/strong&gt; — 71% of ChatGPT citations come from 2023-2025 content (Seer Interactive, 2025). Content updated within 30 days gets 3.2x more citations (Digital Bloom, 2025)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content structure for extraction&lt;/strong&gt; — FAQ sections, clear headings, direct answers to questions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Notice what's &lt;em&gt;not&lt;/em&gt; on the list: page speed scores, meta tag optimization, keyword density — the traditional SEO checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Things 90% of Sites Are Missing
&lt;/h2&gt;

&lt;p&gt;From our 240-scan dataset, these are the most common gaps in AEO readiness:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Security headers (60% fail rate)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;66% missing Content Security Policy&lt;/li&gt;
&lt;li&gt;57% missing X-Frame-Options&lt;/li&gt;
&lt;li&gt;52% missing X-Content-Type-Options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why does this matter for AI? AI crawlers (GPTBot, ClaudeBot, PerplexityBot) respect security signals. A site with poor security headers signals lower trustworthiness. Google's Search Quality Rater Guidelines already emphasize E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) — security is part of the Trust signal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. No FAQ sections (37% of sites)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;FAQ pages are one of the easiest wins for AI citation. AI engines love structured Q&amp;amp;A because it maps directly to how users query them. The Aggarwal et al. GEO study (KDD 2024) found that adding statistics to content improved AI engine visibility by +33%, and adding quotations from authoritative sources improved it by +41%.&lt;/p&gt;

&lt;p&gt;FAQ sections naturally lend themselves to both patterns — they frame a specific question, then answer it with data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. No structured data (36% of sites)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over a third of sites have zero schema markup. While the direct causal link between schema and AI citation is still unconfirmed by most AI providers (Google and Microsoft acknowledge it; OpenAI, Perplexity, and Anthropic haven't disclosed), schema helps AI crawlers understand entity relationships — what your brand is, what you offer, how you relate to your industry.&lt;/p&gt;

&lt;p&gt;A Nature Communications study (Feb 2024) demonstrated that knowledge graphs built from structured data improve LLM factual accuracy. More structured data means better entity extraction means more accurate citations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Score Distribution
&lt;/h2&gt;

&lt;p&gt;Here's how the 240 sites distributed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Score Range&lt;/th&gt;
&lt;th&gt;% of Sites&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;90-100&lt;/td&gt;
&lt;td&gt;11.3%&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-89&lt;/td&gt;
&lt;td&gt;8.3%&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;70-79&lt;/td&gt;
&lt;td&gt;19.2%&lt;/td&gt;
&lt;td&gt;Fair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;60-69&lt;/td&gt;
&lt;td&gt;28.3%&lt;/td&gt;
&lt;td&gt;Needs Work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50-59&lt;/td&gt;
&lt;td&gt;10.8%&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Below 50&lt;/td&gt;
&lt;td&gt;22.1%&lt;/td&gt;
&lt;td&gt;Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;61.2% of sites scored below 70.&lt;/strong&gt; The largest cluster (28.3%) sits in the 60-69 range — functional for traditional search, but with significant blind spots for AI engines.&lt;/p&gt;

&lt;p&gt;Only 19.6% scored 80+. And this is a &lt;em&gt;self-selected&lt;/em&gt; sample of people who actively sought out an AI readiness audit. The broader web is likely worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Developers
&lt;/h2&gt;

&lt;p&gt;If you're building websites — for yourself or clients — the SEO checklist you've internalized is necessary but not sufficient. The sites winning AI citations in 2026 are the ones that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Structure content for extraction&lt;/strong&gt; — clear H2/H3 hierarchy, FAQ sections, direct answers in the first paragraph&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintain freshness&lt;/strong&gt; — update key pages at least monthly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build entity identity&lt;/strong&gt; — Organization schema, consistent brand mentions, authoritative backlinks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure the basics&lt;/strong&gt; — CSP, HSTS, X-Frame-Options (these take 5 minutes to add)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The 39-point gap between SEO and AEO is an opportunity. Most of your competitors haven't noticed it yet.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Data source: 240 website scans via Foglift's free audit tool (March 14 - April 8, 2026). Full methodology and detailed findings in our &lt;a href="https://foglift.io/blog/ai-search-readiness-study-2026" rel="noopener noreferrer"&gt;research report&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;External citations: Chatoptic (2025, 1,000 queries), SE Ranking (129,000 domains), Seer Interactive (2025), Digital Bloom (2025), Aggarwal et al. (KDD 2024), Profound (2025), Nature Communications (Feb 2024).&lt;/em&gt;&lt;/p&gt;

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