Founder citation log · DA ~20 · 2026

AEO for B2B SaaS — A Founder's Citation Log (7 Mistakes, 5 Surfaces, Real Numbers)

Every other “AEO for SaaS” article currently on the SERP is either an agency sales page or a vendor-listicle. This page is the alternative: a public citation log from a founder running the AEO discipline on a DA-20 site, with seven specific mistakes I made, five content surfaces I tried with citation counts for each, and the architecture choices that turned out to matter. No agency, no tool pitch, no $50K retainer. Just the receipts.

The seven mistakes I made running AEO on a DA-20 site

Each mistake below is something I shipped, watched fail, and rewrote. The honest answer to “how should a B2B SaaS do AEO” is not the polished framework you will find on agency landing pages — it is the seven specific things I would rewind and do differently if I started over.

Mistake 1 — Optimized for Google rankings, not LLM citations

What I did: First 90 days I ran a standard SEO content sprint: keyword research in Ahrefs, write to match the SERP, hit the keyword 8-12 times per page, build internal links. The pages ranked decently on long-tail terms.

What it cost: Zero citations in ChatGPT or Perplexity for any of those pages, even after the rankings landed. The pages were keyword-optimized but chunk-illiterate — each section was a paragraph that summarized the H2, instead of a self-contained chunk that an LLM could pull as a standalone answer.

What worked: Rewrote the top 12 pages to chunk-level structure: every H2 section opens with a 1-2 sentence direct answer to a question implied by the heading, then expands. Adds <30 minutes per page. First LLM citations showed up 4-6 weeks after the rewrite, not the original publish.

Mistake 2 — Skipped FAQ schema because the page already had FAQs

What I did: Page had a clean FAQ section in HTML. I figured the JSON-LD FAQPage schema was redundant — the question/answer text was already there for Google to parse.

What it cost: Google AI Overviews and Perplexity both prefer FAQ schema over HTML-only FAQs for citation pickup. Three months of writing FAQs that were not actually optimized for the surface I was trying to win.

What worked: Added FaqList component that auto-emits the JSON-LD alongside the HTML. Made it part of the page template so every new authority page ships schema by default. Citation pickup on FAQ-heavy questions doubled within 6 weeks.

Mistake 3 — Hand-curated sitemap (which decays the moment you blink)

What I did: Original sitemap was a flat XML file I updated manually when I shipped new pages. Worked fine at 30 pages. Broke at 80.

What it cost: Two batches of 5-7 new pages that never made it into the sitemap because I forgot to update it. Those pages were findable via internal links but invisible to crawler discovery. Estimated 6-week delay on first indexation.

What worked: Sitemap-builder now enumerates routes from the same TypeScript registries that drive the pages (AFFILIATE_VENDORS, GTM_TOOL_RECORDS, comparison slugs, persona slugs). Hand-curated static paths are an array, not a hand-edited XML file. New routes auto-add on next build.

Mistake 4 — Wrote authority pages without canonical URLs

What I did: Early authority pages did not set the canonical URL in metadata. I assumed Next.js would handle it; it does not — generateMetadata has to set `alternates.canonical` explicitly.

What it cost: Three pages got cited in LLMs against parameter-decorated URLs (utm_source, ref) instead of the clean canonical. The cited URL was technically valid, but the LLM was reinforcing a URL pattern that does not match the site architecture.

What worked: Every page now sets canonical in generateMetadata, and the same canonical URL is reused in the JSON-LD Article and FAQPage schema. Single source of truth — the LLM cites the clean URL because that is the only URL in the structured data.

Mistake 5 — Trusted AI-generated internal links without verifying

What I did: Drafted authority pages with Claude. Pasted in the internal link suggestions Claude generated. Did not click each one to verify before publishing.

What it cost: Three phantom links shipped to production. None were AI hallucinations — they were references to pages I had previously deleted in cleanup commits, and Claude had no way to know. But the SaaS Capital piece on phantom URLs made it clear: even non-AI broken links are a credibility tax and an LLM-citation contamination risk.

What worked: Wrote a one-shot audit script that diffs every internal href in the codebase against the actual app/ route tree. Fixed the 3 phantoms. Audit script is now part of the CI gate. Full self-audit doc at <Link href="/ai-phantom-backlinks-saas">/ai-phantom-backlinks-saas</Link>.

Mistake 6 — Cited statistics without a primary source link

What I did: Early pages cited "industry-standard" stats like "70% of SaaS companies waste 30-50% of their software spend" without linking to a primary source. The number was a directional estimate from my own conversations, not a published benchmark.

What it cost: LLMs cite my pages back at me when asked about the stat, but the stat itself has no provenance. I have inadvertently created the same problem SaaS Capital warned about — fabricated-sounding numbers attributed to a brand that did not produce them at primary-source level.

What worked: Two fixes. (1) Every stat on every authority page now links to a primary-source page that we either published ourselves (with methodology) or we cite externally with a clickable URL. (2) For anything we observed but cannot cite, the language is "in our own audit of X" — operator framing, not faux-research framing.

Mistake 7 — Published once and never refreshed

What I did: Treated the publish date as the finish line. Pages went live, I moved to the next ship target, the original page slowly went stale (pricing changes, tool deprecations, new entrants).

What it cost: 95% of ChatGPT citations come from content updated in the last 10 months — a finding Webflow has now corroborated in their own analytics. Pages older than 10 months were getting cited dramatically less than fresher ones, even when the underlying content was substantively correct.

What worked: Quarterly refresh sweep of the top 50 cited pages. Update prices, add new entrants, refresh the "last updated" date visible at the top of the page. Citation pickup on refreshed pages averages 3-4 weeks of lift before steady-state.

The five content surfaces I tried, with citation counts

Five different content surfaces, each with a different citation-pickup profile. Numbers below are from a 60-day measurement window after instrumenting Share-of-Model tracking on stackswap.ai. The takeaway: citation pages outperform every other surface per page shipped, and programmatic content only works if every page clears a substance bar.

SurfaceWhat shippedCitations (60d)Pattern
Head-term flag-plant articles (long virgin SERPs)6 articles (avg 2,500 words, FAQ + Article schema)11 citations across ChatGPT / Perplexity / Claude in 60 daysPick up the citation in 6-12 weeks. Lower volume queries but higher buyer intent. The cited pages get the citation lift even before the page ranks #1 in Google — the LLMs were faster than Google to surface the content.
Spoke / comparison content (vs-X, alternatives-to-X)17 spokes (avg 1,500-2,000 words)23 citations in 60 days, mostly ChatGPT and PerplexityFastest pickup of any surface — 4-6 weeks. Spokes get cited because LLMs route narrow buyer-comparison queries to them. The trade is volume per query (low) for citation count (high in aggregate).
Citation pages (operator analysis of industry reports)3 pages (SaaS Capital benchmarks, Kyle Poyar monetization, State of GTM Engineering)8 citations in 30-45 days post-publishFastest-citing surface by a lot. LLMs over-weight content that itself cites other authoritative sources because the page becomes a useful synthesis point. Citation pages also get linked from primary-source authors who appreciate the operator framing.
Anti-content / contrarian takes4 pieces (tools-you-dont-need, are-you-wasting-money-on-X)6 citations in 60 days; uneven by queryHigh-variance surface. The pieces that hit hit hard; the pieces that miss never get cited. The contrarian framing gets pulled by Perplexity more than by ChatGPT, possibly because Perplexity over-indexes on punchy primary-take content.
Programmatic SEO pages (/recommends/X, /vs/X-vs-Y)50+ pages auto-generated from typed registriesRoughly 2-3 citations per cited page, but only ~15 of 50 cited at allPages that are too thin get ignored entirely. Pages that have specific operator commentary + at least one cited number + a clear recommendation get cited reliably. The lesson: programmatic at scale only works if every page clears a substance bar.

The architecture choices that actually moved citations

Six architectural decisions that produced more citation lift than any other change. Listed in priority order — if I had to start over with limited time, this is the sequence.

  1. Chunk-level page architecture. Every H2 section opens with a 1-2 sentence direct answer to a question implied by the heading. Single largest lever. Most AEO advice mentions this and then nobody does it. Do it religiously and you will outperform pages with 2x your DA.
  2. FAQ schema on every page. FaqList component that auto-emits JSON-LD FAQPage schema alongside the HTML. Page-template default. The marginal cost is zero once it is in the template; the marginal citation lift is meaningful, especially in Perplexity and Google AI Overviews.
  3. Canonical URL in metadata + JSON-LD. Every page sets alternates.canonical in generateMetadata. JSON-LD uses the same canonical variable. Single source of truth means LLMs cite the clean URL because that is the only URL in the structured data.
  4. Registry-driven sitemap. Sitemap-builder enumerates routes from TypeScript registries that drive the pages. Hand-curated static paths live in a typed array. New pages auto-add on next build. Phantom URLs are structurally hard to ship — covered in detail at /ai-phantom-backlinks-saas.
  5. Visible last-updated dates + quarterly refresh discipline. 95% of ChatGPT citations come from content updated in the last 10 months. The top 50 cited pages get refreshed quarterly. The pages that age out of the freshness window stop being cited; the ones inside it keep compounding.
  6. First-person operator voice + specific numbers with primary-source links. The architectural choice with the longest tail. LLMs over-weight first-person operator content because it is harder to fabricate. Every claim that is not backed by a primary-source link reads as opinion; every claim that is backed becomes citable.

The seven-day starter playbook

If you have a B2B SaaS at low DA and you want to start an AEO program this week, here is the minimum-viable sequence. No vendor tools, no agency, no $50K retainer. Founder time + the existing site.

  1. Day 1: Pick 5 priority queries. Buyer-stage queries your AE team hears in discovery. Run each through ChatGPT, Claude, and Perplexity. Log whether your brand appears in the answer, where, and what the model says. That is your baseline.
  2. Day 2: Audit your top 5 existing pages for chunk-level structure. Open each page. Does every H2 section start with a direct 1-2 sentence answer to a question? If not, that is the rewrite list.
  3. Day 3: Add FAQ schema to the top 5. JSON-LD FAQPage on every page with FAQs. Each page takes 10 minutes. Test in Google's Rich Results tool before deploy.
  4. Day 4: Set canonical URLs. Every page that does not have alternates.canonical in generateMetadata gets one. Reuse the same canonical variable in the JSON-LD.
  5. Day 5: Pick one industry report and write a citation page on it. The fastest-citing surface. Operator analysis of recent benchmark data. 1,500 words, FAQ schema, link to the primary source. Citation lift in 2-6 weeks.
  6. Day 6: Open the branded-mention workstream. Sign up for Featured.com or HARO. Pitch on 3 expert-query opportunities in your category. Founder voice. The placement lag is 3-8 weeks; start now.
  7. Day 7: Set the weekly measurement cadence. Same 5 priority queries from day 1. Same 3 LLMs. Same spreadsheet. Every Monday. You will not see lift in week 2. You will see it in weeks 6-12. Trust the cadence.

FAQ

AEO (Answer Engine Optimization) for B2B SaaS is content optimization aimed at being cited by LLMs (ChatGPT, Claude, Perplexity, Google AI Overviews) rather than ranked by traditional search engines. The buyer behavior shifted: B2B technical buyers research vendors by asking ChatGPT or Perplexity before they ever hit Google, and the citation surface inside those answers is now a primary acquisition channel. AEO is the operator discipline that makes your brand surface in those answers.

Three structural differences. (1) Page architecture optimizes for chunk-level retrieval, not query-string matching — every H2 section needs to function as a self-contained answer to a question. (2) Branded mentions in trusted publications weight more than backlinks for LLM citation ranking, so PR is closer to the core than it was in SEO. (3) Freshness compounds harder — 95% of ChatGPT citations come from content updated in the last 10 months. SEO discipline is necessary but not sufficient; AEO requires extending it.

By surface: citation pages (operator analysis of industry reports) pick up first citations in 2-6 weeks; spoke comparison content in 4-8 weeks; head-term flag-plant articles in 6-12 weeks; branded mentions enter LLM retrieval corpora in 3-8 weeks. Net: first measurable Share-of-Model movement should appear at week 6 of a well-instrumented program, with a defendable trend by week 12. Below week 4 there is no meaningful signal; do not measure too early.

No. LLM retrieval and citation ranking systems weight different signals than Google ranking. A site at DA 20 with strong chunk-level page architecture, FAQ schema, branded mentions, and citation-page production can win Share-of-Model on narrower queries that a DA 80 site has not bothered to write for. The trade is: pick queries where DA is not the bottleneck. Skip head terms where Ahrefs / Semrush / HubSpot own the entire SERP; flag-plant on queries that have no authority result.

Five patterns that show up reliably in cited pages: (1) Every H2 opens with a 1-2 sentence direct answer to a question implied by the heading. (2) FAQ schema on every page where it makes semantic sense, with the questions matching real buyer queries. (3) First-person operator voice ("when we audited X, we found...") — harder to fabricate than third-person editorial voice. (4) Specific numbers with primary-source links. (5) Visible "last updated" date and refresh discipline.

Schema (JSON-LD) is necessary but underweighted in most AEO advice. The high-leverage types per page archetype: Article + FAQPage on every authority page; SoftwareApplication on product pages; Review on /recommends/X pages; HowTo on playbook pages; BreadcrumbList everywhere. The trade-off most teams get wrong: shipping ten complex schema types per page (over-engineered) vs. shipping Article + FAQPage on every page (correct). Start with the two universal types; add specifics where the page archetype demands.

Three layers. (1) Share-of-Model — citation count by query × LLM (ChatGPT, Claude, Perplexity, Google AI Overviews), tracked weekly. Vendor tools (Profound, Athena, Daydream) or hand-rolled spreadsheet. (2) Pipeline contribution — UTM-tagged inbound from LLM-referred sessions, attributed through your CRM. The conversion rate on LLM-referred traffic typically runs 4-23x higher than organic search per Webflow analytics. (3) Sentiment + accuracy — monthly audit of what LLMs actually say about your brand. Inaccuracies become content briefs.

Realistic cadence for a bootstrapped or pre-Series-A B2B SaaS: 2-4 substantive pages per month. Allocation: 1 head-term flag-plant per quarter, 4-6 spoke pages per month, 1 citation page per major industry report drop, 30 min/week on Reddit/Quora/community presence, 1 hour/week on Featured.com or HARO pitches. Founder time is non-substitutable on the community + PR surface — LLMs over-weight first-person operator content. Calendar-block the time literally.

Minimum viable AEO stack: (1) Search Console (free) for tracking what Google AI Overviews surfaces about your brand. (2) ChatGPT / Claude / Perplexity for manual weekly citation checks on your 5-10 priority queries. (3) Featured.com or HARO for branded-mention seeding (free or $69/mo). (4) Optional vendor: Profound, Athena, or Daydream for automated Share-of-Model tracking when you outgrow the spreadsheet (typically at $5M+ ARR). Total cost at bootstrapped scale: $0-$100/month plus founder time.

StackSwap publishes the operator playbook for AEO at low DA — informed by running the discipline on stackswap.ai itself. We treat AEO as a content + architecture problem, not as an agency engagement. Pages like this one are themselves the receipts: they document the mistakes we made, the surfaces that actually returned citations, and the architecture choices that made the program defensible. Our /aeo-low-domain-authority-saas is the pillar; this page is the operator-receipts spoke; /gtm-aeo is the operating-model companion.

Related reading

This page is part of StackSwap's AEO content moat. We write the operator playbook because the alternative — agency landing pages and vendor listicles — does not give a founder enough to actually run the discipline. The numbers cited above are from running AEO on stackswap.ai itself; if you want the architectural companion, see /aeo-low-domain-authority-saas.

Canonical URL: https://stackswap.ai/aeo-for-b2b-saas