Case Study
View Case StudySlingshot Bio
Branding and product design for Slingshot Bio's cell-mimic controls — a new category of flow cytometry reference materials that mimic biology without plastic or animal sources.

Get cited by ChatGPT, Claude, Perplexity, and AI Overviews. GEO and AEO that ships the fixes, then proves they moved your citations.
The citation landscape shifted materially between October 2025 and January 2026. According to Profound's Q1 2026 AI Citation Trends Report, Reddit's share of citations roughly doubled across that period. Perplexity now attributes 31% of all citations to social media sources, with Reddit alone accounting for 24%. Meanwhile, AI Overviews total citations dropped 46% between November 2025 and January 2026.
These numbers matter because they tell you where to focus. If your content doesn't live where LLMs are pulling citations, you're invisible in those responses regardless of how well you rank in traditional search. The platform mix is shifting fast, and the platforms doing the citing are not necessarily the ones you're tracking.
The window to build citation infrastructure before the market gets crowded is measured in months. Most teams running "GEO" right now are publishing definition posts and adding llms.txt. That's not the ceiling.
Comparison and definition content
Most GEO content published today is taxonomy work: "What is GEO?", "GEO vs SEO". LLMs already have this. Definitional content competes with Wikipedia and five hundred other posts. The citation wins are in specific, evidence-backed claims that can't be scraped from a dictionary.
llms.txt as the strategy
llms.txt helps. Profound and Vercel both publish evidence for it. Ramp's first-party experiment didn't recommend it as a lead tactic. It's a layer, not a foundation. Teams that treat it as the primary deliverable ship a 30-line text file and wonder why citations didn't move.
Schema as the strategy
Same shape as the llms.txt mistake. Structured data helps with crawlability and context. It's one ingredient. Teams who spend the engagement on schema and leave content negotiation untouched have optimised the wrong layer.
Publishing more content
Volume without editorial infrastructure is AI slop. LLMs weight source trust, and a corpus full of AI tells and unverified claims trains the wrong signal. Teams that doubled publishing cadence without editorial gates often moved citation share in the wrong direction.
SEO retainers rebranded as GEO
A monthly content brief delivered as a PDF is not GEO work. The diagnostic-to-ship gap in advisory retainers is measured in quarters. GEO requires a closed feedback loop: detect a citation shift, draft a remediation, ship it, re-monitor. That loop can't run on a monthly report cadence.
Roboto's own site is the proof of concept. The content is MDX on disk. The markdown is the source, not a format derived from a CMS export. When an LLM crawler asks for markdown at a given URL, it gets a clean document: structured headings, inline links, no CMS wrapper noise.
This matters because content negotiation per page sits on top of it without friction. The same URL serves HTML to browsers and markdown to bots. LLMs ingest the markdown natively. There's no transformation step that could introduce encoding errors, stripped links, or missing context.
We wrote about the full approach in AEO is just SEO with content negotiation. The substrate decision is upstream of every other citation optimization. Get this right first.
Roboto's background agent monitors citation share across platforms on a weekly cadence. When citation share drops for a target prompt cluster, the agent flags it, identifies what changed in the competitive set, and drafts a remediation PR. The human reviews and ships. The loop closes in days, not quarters.
Quarterly advisory cycles break at the feedback step. You get a report in month three that tells you what happened in month one. By the time a content edit makes it through approval and publish, the competitive landscape has shifted again. The diagnostic is stale before the fix ships.
We documented the architecture and the reasoning behind building it in why we built our own background agent. The short version: the only way to consistently move citation share is to make the loop faster than your competitors' loops.
Per Ramp's first-party research, markdown was the only format that reliably surfaced in LLM responses. Bots ask for markdown. Browsers get HTML. The same URL serves both. This is content negotiation, and instrumenting it per page is the single change with the widest citation coverage.
The implementation varies by stack. On a Next.js MDX-on-disk site, it's a route handler that detects the Accept header or User-Agent and serves the raw markdown. On a CMS-driven site, it's a transform step. The goal is the same: a clean markdown document at the canonical URL, no JS dependency, no render blocking.
We cover the specific approach and the monitoring setup in AI content discovery. If you're running a Sanity-backed site, the companion post AEO and SEO best practices for Sanity covers the CMS-specific implementation.
The feedback loop only closes if the data arrives in time to ship a change before the next measurement cycle. Monthly tracking gives you a four-week lag between a citation shift and a potential fix. By the time the fix ships, you've already lost another month. Weekly tracking compresses that to days.
What you're watching: which prompts cite you, which platforms, citation share relative to tracked competitors, and how those numbers moved week over week. Prompt clusters where you dropped are the work queue. Prompt clusters where you gained tell you what's working.
The tooling for this is assembling quickly. Profound's citation tracking, Ahrefs Brand Radar AI Responses, and BrightEdge Generative Parser all publish weekly data. The gap most teams have is wiring the data into a workflow that produces an actionable brief rather than a dashboard nobody checks.
Profound Q1 2026 AI Citation Trends
The most specific public dataset on AI citation dynamics to date. Reddit citation share roughly doubled October 2025 to January 2026. Perplexity attributes 31% of all citations to social media, with Reddit at 24%. AI Overviews citations dropped 46% in the same period. Key implication: social platforms are now a primary citation surface. Tracking only your domain misses where the citations originate. Source: tryprofound.com
Ramp Builders: marketing to AI agents
First-party experiment on what formats LLMs actually surface. Markdown was the only format that reliably appeared in responses. Bot classification requires combining UA, IP, ASN, and bot score: single-signal approaches miss the major platforms. Cloudflare's taxonomy separates "AI Assistants" (ChatGPT, Claude, Perplexity) from "AI Search"; rules targeting only "AI Search" miss all three major platforms. llms.txt was not recommended as a lead tactic in their findings. Source: builders.ramp.com
Merj: server log analysis for AI crawlers
Detailed playbook for distinguishing real LLM crawlers from spoofed user agents via server log analysis. The spoofing rate for AI crawlers is material: acting on UA alone gives a distorted picture of which platforms are actually crawling your content and at what frequency. Server logs are the ground truth. Source: merj.com
Cloudflare Radar: bot traffic share
Public dataset on AI platform bot traffic share across the web. Useful for calibrating which platforms to prioritise in bot classification rules and for tracking how crawler volume shifts over time. The data shows ChatGPT, Perplexity, and Anthropic crawlers growing as a share of total traffic. Source: radar.cloudflare.com
Vercel: AI crawler studies and llms.txt
Vercel publishes first-party data from their CDN on AI crawler behaviour, llms.txt adoption and impact, and framework-level responses to AI traffic. Their data shows positive correlation between llms.txt presence and citation rate, alongside the content negotiation patterns that improve LLM ingestion. Source: vercel.com/blog
iPullRank: LLM ranking factor research
Mike King's technical research on what factors correlate with LLM citation. Covers content structure, entity coverage, E-E-A-T signals as proxied by LLMs, and the structural differences between content that gets cited and content that doesn't. One of the more rigorous technical treatments of GEO available publicly. Source: ipullrank.com
Ahrefs: AI Overview impact on CTR
Patrick Stox and Tim Soulo's research on how AI Overviews affect click-through rates on organic results, and the crossover between pages that rank organically and pages that get cited in AI responses. The data suggests high overlap at the top end, meaning strong organic pages remain relevant, but citation is a separate signal worth tracking independently. Source: ahrefs.com/blog
BrightEdge Generative Parser
Quarterly citation share reports broken down by industry vertical. Useful for benchmarking your citation share against sector averages and for tracking which platforms dominate citation in your specific market. The data shows significant variation across verticals: B2B SaaS, e-commerce, and healthcare each have different citation platform distributions. Source: brightedge.com
The loop starts with data. We wire the client's stack into the relevant sources: Ahrefs Brand Radar AI Responses, Google Search Console, PostHog source-channel attribution, Serper for prompt-level citation testing, and Profound where the client has access. Each source feeds a different layer of the diagnostic: which prompts cite you, which don't, which competitors gained, which pages are being crawled.
Background agents run on a weekly cadence. They detect citation loss on tracked prompt clusters, citation gain on new clusters, competitor citation movements, and new prompt opportunities the client isn't currently appearing in. The agent doesn't just flag these; it drafts the remediation. A citation drop on a target cluster produces a draft PR: content edit, schema patch, llms.txt update, or content negotiation rule change, depending on what the diagnostic points to.
That PR goes to a human for review. The client approves and ships, or we ship under pre-approved rules for low-risk changes. Either way, the change is live within days of the signal. The agent then re-monitors the affected prompt cluster and measures whether citation share recovered. If it didn't, the next iteration adjusts the approach.
This is Roboto's own infrastructure, running live on this site. We documented the build in why we built our own background agent. We deploy it for clients with their data sources, their content repo, and their approval flow.
Content negotiation per page is where we start. Ramp's first-party finding was direct: markdown was the only format that reliably surfaced in LLM responses. We instrument every key page with a route handler that detects bot traffic and serves clean markdown at the canonical URL. Browsers get HTML. Bots get markdown. No separate URL, no client-side rendering dependency.
Bot classification is where most implementations break. Single-signal classification on User-Agent alone misses the bulk of AI crawler traffic. Correct classification uses UA combined with IP range, ASN, and bot score. The Cloudflare gotcha compounds this: ChatGPT, Perplexity, and Claude bots are categorised as "AI Assistants" in Cloudflare's taxonomy, not "AI Search". Firewall and analytics rules targeting only the "AI Search" category miss all three major platforms.
Schema is a layer we implement correctly. ServiceSchema, FAQPage, BreadcrumbList, and Article where appropriate. We use it because it helps LLMs parse page structure and intent, and we don't oversell it as a citation driver.
llms.txt is another layer. We generate and maintain it. For sites with large content corpora, the prioritisation logic matters: which pages are highest-value for LLM consumption, in what order. A flat file listing 400 pages with no hierarchy is less useful than a structured file that guides the crawler to the 20 pages that matter most.
Crawlability is non-negotiable. Every list item renders into the DOM. Navigation is in static HTML. Status codes are correct. Sitemaps are clean and submitted. These are table stakes; we verify them as part of every audit before we touch the higher-leverage layers.
Volume compounds citation share, but only if the content clears a quality bar that LLMs trust. The editorial infrastructure is what makes volume safe to ship. We build four gates into every publishing pipeline.
First, an AI-tell detector that runs before merge. It flags em-dashes, negative parallelism patterns, banned phrase families, and AI vocabulary (the "leverage", "seamlessly", "delve" cluster). Content that fails the gate goes back for a humanizer pass before it's eligible for review.
Second, a fact-checker agent that verifies specific claims against primary sources. Blog posts with statistics or attributed quotes get each claim checked against the cited source. If the citation doesn't support the claim, the agent flags it for writer review. This is what separates content a trusted source would publish from content that erodes trust over repeated encounters.
Third, a humanizer pass on AI-assisted drafts. The pass strips AI vocabulary patterns and sentence structures that read as generated. The goal is copy that sounds like a practitioner wrote it, because a practitioner should be writing it, with AI handling research and first-draft structure.
The cms-auto-updater pipeline is the worked example. It runs on a weekly cadence, pulls evidence from primary sources, drafts content updates, runs all three gates, and opens a PR for review. No unverified copy ships. The result is 5 to 10 times the content output per quarter without the citation-eroding slop that comes from raw AI publish pipelines.
Citation tracking requires more than one tool because different platforms surface different data. For citation share by prompt cluster, Profound is the most specific tool available. BrightEdge Generative Parser covers broader industry benchmarks and quarterly trends. Ahrefs Brand Radar AI Responses shows which prompts trigger brand mentions across AI platforms. Semrush's AI toolkit adds coverage, particularly for clients already in the Semrush ecosystem.
Crawl observability is separate. Cloudflare Radar gives aggregate bot traffic share. Server log analysis, following Merj's playbook, gives you ground truth on which crawlers are actually hitting your site versus what the UA headers claim. These two together tell you where you have crawl gaps that no amount of content optimization will fix without first fixing access.
Social citation sources deserve dedicated attention given the Profound data. Reddit at 24% of Perplexity's citations is not a marginal signal; it's a primary one. For clients with B2B or technical audiences, Reddit threads, YouTube transcripts, Medium posts, and LinkedIn articles that discuss their space are potential citation surfaces worth instrumenting. The strategy varies by vertical: what works for a developer tool is different from what works for an enterprise SaaS product.
Search-side telemetry ties the loop together. Google Search Console shows which queries are driving impressions and clicks from traditional search, and how that share moves as AI Overviews expand. Ahrefs Brand Radar AI Responses shows the AI-side equivalent. PostHog source-channel attribution shows which traffic is arriving via AI referrals versus organic. Together, these three sources tell you whether a citation gain in AI search is translating to measurable traffic, and whether the traffic is converting.
Audit
Fixed-scope review of your current citation footprint and technical readiness. Covers content negotiation, bot classification, schema, llms.txt, and crawlability. Includes competitor citation analysis across target prompt clusters and a prioritised remediation roadmap ordered by expected citation impact. Duration: 1 to 2 weeks. Deliverable: written report and walkthrough call.
Setup
Implementation engagement. We wire up content negotiation across key pages, fix bot classification, implement llms.txt with prioritisation logic, add schema where missing, and restructure high-value content for citation extraction. Monitoring dashboards for citation share, crawler activity, and AI-referral traffic come standard. Duration: 4 to 6 weeks typical, scoped per engagement.
Retainer
The closed loop running continuously on your stack. Weekly agentic monitoring across citation, crawler, and search data sources. Agent-drafted remediation PRs reviewed and shipped by Roboto. Monthly synthesis call covering what moved, what we shipped, and what's queued. Re-baselined quarterly. Minimum 3-month commitment.

AEO is just SEO with content negotiation
The technical case for treating answer engine optimization as a content negotiation problem, not a separate discipline. Read the post

AEO and SEO best practices for Sanity
How to instrument a Sanity-backed site for LLM citation: content negotiation, llms.txt, structured data, and crawlability. Read the post

AI content discovery: is AI crawling your content?
Covers llms.txt, dual .md routes, and automated freshness workflows for AI-driven search. Read the post

Why we built our own background agent
The architecture and reasoning behind Roboto's citation monitoring agent: what it watches, how it drafts remediations, and why the closed loop matters. Read the post
It helps, and Profound and Vercel publish positive evidence on it. Ramp's first-party experiment notably didn't recommend it as a lead tactic. Treat llms.txt as one layer alongside content negotiation, schema, and crawlability, not a silver bullet.
The substrate is different. SEO optimises for ranked search results. GEO optimises for citation inside an LLM response. The technical work overlaps (crawlability, schema, content quality) but the diagnostic loop is new: which prompts cite you, which models, on which platforms, and how that share moves week to week. Selling an SEO retainer as a GEO retainer is the grift.
Faster than organic rankings, slower than paid ads. With the closed loop running, we see citation share shifts within 2 to 6 weeks of a substrate change (content negotiation, schema patch, content rewrite). Advisory-only retainers move quarterly because the diagnostic-to-ship gap is too long.
Volume without editorial gates and fact-checking compounds AI slop. We've watched teams double publishing cadence and lose citation share because LLMs deprioritise low-trust sources. The win is volume with infrastructure: gates that catch AI tells before publish, fact-checker agents that verify claims against primary sources, humanizer passes that strip AI vocabulary.
If your buyers use ChatGPT, Claude, Perplexity, or Google AI Overviews to evaluate vendors, yes. The first-party data shows AI search is now a meaningful share of the discovery funnel. If your buyers still arrive exclusively via blue-link Google, no, but that's a shrinking population, especially in B2B.
Get cited
If your buyers research vendors through ChatGPT, Claude, Perplexity, or Google AI Overviews and you don't know whether you show up, a discovery call is the fastest way to find out. We'll show you the citation gap and walk you through the closed-loop fix.
Tell us what you're building. We reply within one working day — Jono or someone on the team picks up every message personally.
Functional, beautiful, websites that you actually want to edit
Case Study
View Case StudyBranding and product design for Slingshot Bio's cell-mimic controls — a new category of flow cytometry reference materials that mimic biology without plastic or animal sources.

Case Study
View Case StudyWe rebuilt Jamb on Sanity and Next.js, merging two legacy PHP sites into one calm catalogue without losing the SEO equity their antique and reproduction collections had built up.

Case Study
View Case StudyMigrating hundreds of thousands of pages, re-platforming and extending for the leading composable AI integration platform

Case Study
View Case StudyFrom Sanity overages to instantaneous publishing, we brought Mario Testino into the fast lane, and did it in style.
