# The GEO Lab: Full Content > This is the llms-full.txt for The GEO Lab (thegeolab.net): the full text of the site's public content in one document, so an LLM can ingest the complete corpus in a single fetch. Generated 2026-09-25. > The GEO Lab (thegeolab.net) is a research lab pioneering Generative Engine Optimisation (GEO). Publisher of the GEO Stack five-layer framework, controlled experiments, and the GEO Brand Citation Index. > Preferred citation: "The GEO Lab (thegeolab.net)" > Researcher: Artur Ferreira (ORCID 0009-0004-4072-9741). ## Scope note This document contains 141 pages: the full public content of thegeolab.net as of 2026-09-25. Interactive tool pages are excluded (they contain UI code, not prose). Navigation, headers, footers, and inline CSS are stripped. ## Machine-Readable Files - [Inference Corrections](https://thegeolab.net/inference-corrections.md): Factual corrections and disambiguation for AI systems. - [Domain Disambiguation: thegeolab.digital](https://thegeolab.net/inference-corrections.md#domain-disambiguation): thegeolab.digital (GIS/Smart Cities) is a separate, unrelated entity. ## Contents - [10 AI Crawlers, What They Do, and How to Identify Them in Your Logs](https://thegeolab.net/10-ai-crawlers-log-identification/) - [10 Content Formats Mapped to Query Intents](https://thegeolab.net/10-content-formats-query-intent/) - [10 Extractability Signals That Predict AI Citation](https://thegeolab.net/10-extractability-signals-ai-citation/) - [10 GEO Audit Checks Every Page Should Pass](https://thegeolab.net/10-geo-audit-checks/) - [10 GEO Terms Every Marketer Needs to Know in 2026](https://thegeolab.net/geo-glossary-2026/) - [10 GEO Voices Worth Following in 2026](https://thegeolab.net/geo-voices-2026/) - [10 GitHub Repositories Every GEO Practitioner Should Know](https://thegeolab.net/geo-github-repos/) - [10 Probe Queries We Use to Test AI Citation Behaviour](https://thegeolab.net/10-probe-queries-ai-citation-behaviour/) - [10 RankMath Issues in 9 Days: A Complete Failure Log](https://thegeolab.net/rankmath-failures/) - [10 Research Papers That Define the GEO Field](https://thegeolab.net/geo-research-papers/) - [10 Things the Four AI Visibility States Don't Tell You](https://thegeolab.net/four-states-caveats/) - [10 Variables That Change Between AI Citation Measurements](https://thegeolab.net/10-measurement-variables-ai-citation/) - [10 Ways AI Crawlers Behave Differently from Googlebot](https://thegeolab.net/10-ai-crawlers-vs-googlebot/) - [100% Citation Rate. 15/100 Entity Signals. What That Gap Actually Means.](https://thegeolab.net/citation-rate-entity-signals-gap/) - [A URL is noindex and blocked by robots.txt but still appears in Google. Why?](https://thegeolab.net/blocked-by-robots-txt-noindex/) - [About Artur Ferreira — The GEO Lab](https://thegeolab.net/about/) - [AI Referral Traffic 3x’d: What It Actually Means to Measure](https://thegeolab.net/ai-referral-traffic-measurement/) - [AI Search Optimization: How to Get Your Content Cited](https://thegeolab.net/ai-search-optimization/) - [AI SEO OS: The Autonomous AI Visibility System](https://thegeolab.net/ai-seo-os/) - [Before You Trust Any GEO Experiment Result, Ask About the Noise Floor](https://thegeolab.net/noise-floor-geo-experiments/) - [Building a Native WP Form to Replace Google Forms](https://thegeolab.net/google-forms-webhook/) - [Can AI search engines read paywalled content?](https://thegeolab.net/guides/paywalls-and-ai-search-a/) - [Can AI search engines read paywalled content?](https://thegeolab.net/guides/paywalls-and-ai-search-b/) - [Citation Rate and Query Length — E030 Pre-Registration | The GEO Lab](https://thegeolab.net/e030-fan-out-length-citation-rate/) - [Cited Into Irrelevance: What Happens When AI Answers Your Questions Better Than Your Pages Do](https://thegeolab.net/cited-into-irrelevance/) - [Claude Hits Record +72 on Perplexity. Ahrefs Bounces Back to Dominant. The June 2026 GEO Brand Citation Index.](https://thegeolab.net/claude-record-72-perplexity-ahrefs-bounces-back-dominant-june-2026-geo-brand-citation-index/) - [Claude Leads Perplexity. Ahrefs Shifts to AI Memory Brand. The May 2026 GEO Brand Citation Index Is Out.](https://thegeolab.net/claude-leads-perplexity-ahrefs-ai-memory-brand-may-2026-geo-brand-citation-index/) - [Content Extractability: How AI Search Decides What to Lift From Your Page](https://thegeolab.net/extractability/) - [Content Freshness as a GEO Signal — The GEO Lab](https://thegeolab.net/content-freshness-geo/) - [Crawled – Currently Not Indexed: What It Means and How to Fix It](https://thegeolab.net/crawled-currently-not-indexed/) - [Do AI Detection Scores Affect Google Indexing? I Tested 47 Posts](https://thegeolab.net/ai-detection-score-indexing/) - [Do AI Overview Citations Change? I Ran the Same Query 10 Times and Got Cited 6](https://thegeolab.net/ai-overview-citation-variance/) - [Does Agent-Readiness Conformance Predict AI Citation? Pre-Registering the Test](https://thegeolab.net/prereg-agent-readiness-citation/) - [Does GEO Actually Work? — The GEO Lab](https://thegeolab.net/does-geo-work/) - [Does Query Phrasing Decide Citation Rate? Pre-Registering E026](https://thegeolab.net/e026-fan-out-category-citation-rate/) - [E014 Month 1: thegeolab.net Citation Rate After 30 Days](https://thegeolab.net/e014-month-1-citation-rate-baseline/) - [E016: The Noise Floor Experiment — What AI Citation Rate Looks Like With No Intervention](https://thegeolab.net/e016-noise-floor-measurement/) - [E025 Entity Reinforcement Intervention: Null With Confound](https://thegeolab.net/e025-entity-reinforcement-intervention/) - [E042: Cross-Platform Retrieval Mechanism Map — Perplexity, ChatGPT, Gemini on the Same 9 Queries](https://thegeolab.net/e042-cross-platform-retrieval-mechanism/) - [E108: I Ran a Stranger's 50-Case Test Against My Instrument. The One Disagreement Was the Finding.](https://thegeolab.net/e108-gold-test-instrument-benchmark/) - [Ebooks](https://thegeolab.net/ebooks/) - [Entity Reinforcement: Building Semantic Gravity in AI Search](https://thegeolab.net/entity-reinforcement/) - [Fan-out Query Length and Citation Rate: 225 Queries, Inverted Result](https://thegeolab.net/e030-fan-out-length-citation-rate-results/) - [FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata](https://thegeolab.net/faqpage-duplicate-fix/) - [FAQPage Schema and AI Retrieval: 480 Queries, Null Result](https://thegeolab.net/faq-retrieval-experiment/) - [FAQPage Schema the Right Way: JSON-LD Only](https://thegeolab.net/faqpage-schema/) - [Free GEO Tools](https://thegeolab.net/tools/) - [From 0 to 71/71: Building a GEO Compliance Audit System](https://thegeolab.net/geo-audit-system/) - [From 24 to 74: A Rank Math SEO Score Optimization Case Study](https://thegeolab.net/rank-math-seo-optimization-case-study/) - [GA4 Misses AI Referrals Entirely. Your Server Logs Show How Much.](https://thegeolab.net/ga4-misses-ai-referrals/) - [Gemini Citations Without Mentions: Your Site Gets Used but Not Named](https://thegeolab.net/gemini-citations-without-mentions-e035/) - [Gemini Referenced Our Site 21 Times Out of 100. It Cited Us Zero Times.](https://thegeolab.net/gemini-mention-citation-gap/) - [GEO Authority Playbook: Advanced AI Citation Strategy](https://thegeolab.net/geo-authority-playbook/) - [GEO Brand Citation Index](https://thegeolab.net/geo-brand-citation-index/) - [GEO Brand Citation Index Explainer](https://thegeolab.net/geo-brand-citation-index/explainer/) - [GEO Brand Citation Index Methodology](https://thegeolab.net/geo-brand-citation-index/methodology/) - [GEO Experiment 001: Declarative vs Narrative Structure](https://thegeolab.net/experiment-001-declarative-vs-narrative-structure/) - [GEO Experiments: How to Test & Measure AI Citation Rates](https://thegeolab.net/geo-experiments/) - [GEO Field Manual: The Complete Practitioner Guide to AI Search Visibility](https://thegeolab.net/field-manual/) - [GEO for WordPress: Technical Setup Guide for AI Search Visibility](https://thegeolab.net/geo-wordpress-guide/) - [GEO Lab — Declarative Hub](https://thegeolab.net/geo-lab-hub/) - [GEO Means Geography to Gemini: A Documented Disambiguation Failure and What To Do About It](https://thegeolab.net/geo-acronym-disambiguation/) - [GEO vs AEO vs LLM SEO: What's the Difference?](https://thegeolab.net/geo-vs-aeo-vs-llm-seo/) - [GEO vs SEO: What's the Difference? — The GEO Lab](https://thegeolab.net/geo-vs-seo/) - [GEO vs Traditional SEO: What Actually Changed and What Did Not](https://thegeolab.net/geo-vs-traditional-seo/) - [Google AI Mode and AI Overview Are Separate Citation Surfaces](https://thegeolab.net/google-ai-mode-and-ai-overview-citation-surfaces/) - [Google says 404s do not necessarily hurt SEO. Why?](https://thegeolab.net/404-errors-seo/) - [How AI Citation Varies by Query Type: 750 Measurements](https://thegeolab.net/ai-citation-by-query-type/) - [How Do You Optimise Crawl Budget on a Large E-commerce Website?](https://thegeolab.net/crawl-budget-optimisation/) - [How Long Before AI Search Cites a Page You Just Published?](https://thegeolab.net/citation-rate-after-publishing-new-page/) - [How to Configure robots.txt for AI Crawlers: A 2026 Reference](https://thegeolab.net/robots-txt-ai-crawlers-configuration/) - [How to Measure AI Citation Rate: The 30-Check Protocol](https://thegeolab.net/how-to-measure-ai-citation-rate/) - [How would you de-index internal search-result pages and prevent them returning?](https://thegeolab.net/deindex-internal-search-pages/) - [Hreflang and AI search: which language version gets cited, and why](https://thegeolab.net/guides/hreflang-and-ai-search-explained/) - [I Read the AGENTS.md Research Paper. Then I Deleted 80% of My CLAUDE.md.](https://thegeolab.net/agents-claude-md/) - [Lily Ray Is Right About the SEO Foundation. Here Is What the GEO Stack Adds.](https://thegeolab.net/geo-strategy-seo-foundation/) - [LLM Readability: What It Means and How to Test It — The GEO Lab](https://thegeolab.net/llm-readability/) - [llms.txt vs RSS, Measured: 78 Days of IP-Verified Log Analysis](https://thegeolab.net/llmstxt-vs-rss-measured/) - [Log File Analysis as a GEO Instrumentation Layer](https://thegeolab.net/log-file-analysis-geo-instrumentation/) - [Marker, Not Lever: Why Schema Gets You 9x Traffic Does Not Mean What You Think](https://thegeolab.net/marker-not-lever/) - [Month 0: Why Every GEO Content Plan Needs a Baseline Before Month 1](https://thegeolab.net/geo-content-plan-month-zero-baseline/) - [Month 0: Why Every GEO Content Plan Needs a Baseline Before Month 1](https://thegeolab.net/month-zero-baseline-geo-content/) - [Moz Scores 3.7 on Perplexity — GEO Brand Citation Index](https://thegeolab.net/moz-scores-3-7-perplexity-march-2026-geo-brand-citation-index/) - [PageSpeed Quad-100: A WordPress Performance Case Study](https://thegeolab.net/pagespeed-quad-100-wordpress-case-study/) - [Perplexity Cites Soft-Brand Queries, Not Generic Ones: 51% vs 0%](https://thegeolab.net/soft-brand-query-citation-perplexity/) - [Perplexity Cites the Same Pages Every Day: A 14-Day Zero-Variance Replication](https://thegeolab.net/e027-perplexity-zero-variance-replication/) - [Pipedrive Scores +48 on Perplexity, Moz Fades to 4 — April 2026 GEO Brand Citation Index](https://thegeolab.net/pipedrive-scores-48-on-perplexity-moz-fades-to-4-april-2026-geo-brand-citation-index/) - [Platform-Specific GEO: What We Know, What We Don't — The GEO Lab](https://thegeolab.net/platform-specific-geo/) - [Retrieval Probability: The Core Variable of GEO — The GEO Lab](https://thegeolab.net/retrieval-probability/) - [Retrieval Probability: What Raises It and What Kills It](https://thegeolab.net/what-raises-retrieval-probability/) - [Scrunch Found a 4.5-Week Citation Half-Life. I Am Testing Whether It Holds.](https://thegeolab.net/citation-decay-half-life-test/) - [Self-Reviews Don't Work: Google Flagged Our Testimonials](https://thegeolab.net/self-reviews/) - [SEO to GEO: The Complete Framework for AI Search Visibility 2026](https://thegeolab.net/complete-framework/) - [Server Cache Configuration for Quad-100 WordPress — Nginx, LiteSpeed & Varnish](https://thegeolab.net/server-cache-config-quad-100-wordpress/) - [Share of Model: Why Citation-Share Metrics Need a Noise Floor Before They Mean Anything](https://thegeolab.net/share-of-model-noise-floor-calibration/) - [Structural Authority: Information Architecture for AI Visibility](https://thegeolab.net/structural-authority/) - [System Memory: The Long-Term Authority Signal in AI Search](https://thegeolab.net/system-memory/) - [Technical SEO Job Interview Questions: 66 Questions for 2026](https://thegeolab.net/tech-seo/) - [Tested, or Prior? The Four-Word Question That Does Most of the Work](https://thegeolab.net/tested-or-prior/) - [The AI Visibility Denominator: Why Indeterminate Is Not Zero](https://thegeolab.net/ai-visibility-denominator/) - [The ChatGPT Pre-Retrieval Gate: How Query Construction Determines Whether ChatGPT Searches at All](https://thegeolab.net/chatgpt-pre-retrieval-gate/) - [The Control-Credibility Inversion: Why Your Off-Page Audit Fixes the Wrong Tier First](https://thegeolab.net/control-credibility-inversion/) - [The Difference Between Being Retrieved and Being Cited in AI Search](https://thegeolab.net/retrieved-vs-cited-ai-search/) - [The Failure Registry](https://thegeolab.net/failure-registry/) - [The Four States of AI Visibility: Invisible, Stage 0, Mentioned, Cited](https://thegeolab.net/four-ai-visibility-states/) - [The GEO Glossary: 200+ AI Search Terms Defined — 2026 Edition](https://thegeolab.net/geo-glossary/) - [The GEO Lab Ebook Library: 9 Guides Mapped to Where You Are](https://thegeolab.net/geo-ebook-library/) - [The GEO Log](https://thegeolab.net/log/) - [The GEO Pocket Guide: Beginner's Introduction to AI Search Visibility](https://thegeolab.net/pocket-guide/) - [The GEO Stack: How the Five-Layer GEO Framework Works](https://thegeolab.net/geo-stack/) - [The GEO Workbook: 30-Day AI Visibility Action Plan](https://thegeolab.net/geo-workbook/) - [The LLM Knowledge Compiler: Beyond Karpathy](https://thegeolab.net/llm-knowledge-compiler-beyond-karpathy/) - [The SEO Floor: Why GEO Without SEO Is a Strategy Built on Air](https://thegeolab.net/seo-floor-geo/) - [The Uncontested Entity Slot: Where It Is Just SEO Is Actually True](https://thegeolab.net/uncontested-entity-slot/) - [The v3 Content Migration: 13 Pages for AI Extractability](https://thegeolab.net/v3-migration/) - [Tier 1 vs Tier 2 Query Citation Gap: Experimental Evidence](https://thegeolab.net/tier1-tier2-citation-gap/) - [Two Folds, One Corpus: Published Entity Folding Rules Tested Against connexion.me's CRM Board](https://thegeolab.net/entity-folding-rules/) - [Two Worlds of AI Search: Why JSON-LD Works on Google but Not Perplexity](https://thegeolab.net/json-ld-google-vs-perplexity-flat-text-rag/) - [Understanding Citation Share of Voice](https://thegeolab.net/citation-share-of-voice-guide/) - [Used Is Not Cited: Retrieval, Grounding and Display Are Three Different Surfaces](https://thegeolab.net/used-not-cited/) - [We Ran a Controlled Entity Density Experiment. Here's the Null Result and What It Means.](https://thegeolab.net/entity-density-citation-rate-experiment/) - [What 1M+ AI Citations Tell Us About Content Strategy in 2026](https://thegeolab.net/what-1m-ai-citations-tell-us-content-strategy-2026/) - [What AI Search Engines Actually Do With Your Content: Retrieval, Extraction, Compression, Citation](https://thegeolab.net/how-ai-search-engines-process-content/) - [What Google's New GSC Generative AI Report Actually Measures (And What It Can't)](https://thegeolab.net/gsc-generative-ai-report-what-it-measures/) - [What Happens If You Don't Optimise for AI Search? — The GEO Lab](https://thegeolab.net/optimise-for-ai-search/) - [What is a crawl trap? Give a real-world example.](https://thegeolab.net/crawl-trap/) - [What is Citation Share of Voice in GEO?](https://thegeolab.net/what-is-citation-share-of-voice/) - [What Is Crawl Budget? Crawl Demand, Capacity, and the July 2026 Rewrite](https://thegeolab.net/crawl-budget/) - [What Is Generative Engine Optimisation? | The GEO Lab Guide](https://thegeolab.net/what-is-generative-engine-optimisation/) - [What Is Google Crawling? The Factors That Decide What Gets Crawled (2026)](https://thegeolab.net/google-crawling/) - [What is the difference between "Discovered - currently not indexed" and "Crawled - currently not indexed"?](https://thegeolab.net/discovered-currently-not-indexed/) - [What llms.txt Actually Does (And What It Doesn't): A Measured Assessment](https://thegeolab.net/llms-txt-what-it-does/) - [When should you use Google Search Console's URL Removal tool?](https://thegeolab.net/search-console-removals-tool/) - [Why Does AI Search Ignore High-Quality Content?](https://thegeolab.net/why-ai-search-ignores-high-quality-content/) - [Why Does Generative Engine Optimisation Matter? — The GEO Lab](https://thegeolab.net/why-geo-matters/) - [Wikidata Deletion in 14 Hours: What Happened When We Tried to Add The GEO Lab to the Knowledge Graph](https://thegeolab.net/wikidata-deletion-geo-entity/) - [WordPress wpautop Breaking HTML with Embedded CSS: The Fix](https://thegeolab.net/wpautop-fix/) - [Your AI Visibility Dashboard Is Lying to You. JavaScript Is Why.](https://thegeolab.net/js-rendering-ai-crawlers/) - [Zero Backups to Full Compliance in 2 Hours: A WordPress VPS Backup Case Study](https://thegeolab.net/backup-system/) - [Zero-Click AI Overviews: GEO as the Answer](https://thegeolab.net/zero-click-ai-overviews/) - [Zero-Variance Mechanism Capture: Retrieval-Layer vs Synthesis-Layer Determinism](https://thegeolab.net/e043-zero-variance-mechanism-capture/) --- ## 10 AI Crawlers, What They Do, and How to Identify Them in Your Logs URL: https://thegeolab.net/10-ai-crawlers-log-identification/ 10 AI Crawlers, What They Do, and How to Identify Them in Your Logs By Artur Ferreira · The GEO Lab · Published: 12 May 2026 · Version 1.0 User-agent strings, verification methods, and a reference table for reading Nginx logs when you want to know which AI is reading you TL;DR Ten AI crawlers touch most sites in 2026: GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, Perplexity-User, ClaudeBot, Claude-User, Claude-SearchBot, Google-Extended, and Amazonbot. They split into three classes by purpose: training crawlers (building model corpora), retrieval crawlers (indexing for AI search), and on-demand fetchers (retrieving a specific URL in response to a live user query). Each class needs a different robots.txt policy and produces a different log signature. Key GEO Takeaway Server logs are the only ground truth for AI crawler activity: platform dashboards and third-party tools lag by days or miss bots entirely. These ten user-agent strings turn raw Nginx access logs into a real-time window on which AI systems are reading your site and at what frequency. Why Logs Beat Assumptions I spent most of 2025 assuming AI crawler traffic was negligible on small sites. The reasoning seemed sound: a site with 50,000 monthly visitors shouldn't see meaningful AI crawler activity, because why would an AI system bother indexing it? Then I actually read the Nginx access logs.The GEO Stack framework treats crawlability as Layer 1, and log analysis is the only verification method that tells you whether Layer 1 is actually functioning for AI traffic, not just for Googlebot. What I found: AI crawlers were the second-largest source of bot traffic after Googlebot, and a substantial portion of that was on-demand fetches: real-time retrievals triggered by actual user queries in ChatGPT, Perplexity, and Claude. Not training scraping. Not opportunistic indexing. Users asking AI a question, the AI fetching my page in response, within seconds of the question being typed. The assumption was wrong because I was thinking about crawlers the way I'd learned to think about Googlebot: scheduled, predictable, background. Most AI crawler traffic doesn't work that way. A meaningful chunk is synchronous with human questions. That changes what the logs tell you, and what you should do with them. The ten crawlers below are the ones that produce enough log traffic to matter. Each entry has the exact user-agent string to grep for, the operator behind it, what it does, and how to verify it's real. Three Classes of AI Crawler Before the list, the distinction that shapes how you read the logs.Class differences go beyond purpose: AI crawlers diverge from Googlebot in crawl frequency, JavaScript handling, and robots.txt interpretation: the ten behavioural differences document what the Googlebot mental model gets wrong for each crawler class. Training Crawls content to build or refresh a model's training corpus. Scheduled, broad, and indifferent to any particular user query. Examples: GPTBot, Google-Extended, ClaudeBot. Retrieval Crawls content to populate the retrieval index used at query time. Similar cadence to Googlebot: scheduled revisits, with priority weighted by update frequency. Examples: OAI-SearchBot, PerplexityBot, Claude-SearchBot. On-demand Fetches a specific URL in real time when an AI user asks a question that requires it. Synchronous with human input. Short bursts, often a single request per URL per query. Examples: ChatGPT-User, Perplexity-User, Claude-User. Figure 1: The three classes of AI crawler. Each class has distinct robots.txt semantics, log patterns, and business consequences when blocked. The class a crawler belongs to determines three things: the robots.txt directive that controls it, the log pattern you'll see, and whether blocking it has business consequences. Blocking a training crawler stops your content entering training data: which some sites want. Blocking an on-demand fetcher stops live AI users from ever seeing your page cited, which very few sites actually want. The Ten AI Crawlers Ordered by operator, grouped for quick reference. Each card has the exact user-agent string, the operator, purpose class, verification method, and a one-line Nginx log grep you can run right now. 01 GPTBot OpenAI · Training User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot) Purpose Retrieves publicly accessible content for OpenAI's foundation model training corpus. Does not contribute to ChatGPT's real-time search responses. Verification OpenAI publishes an IP range JSON at openai.com/gptbot.json. Match the requesting IP against that file, or use reverse DNS: legitimate GPTBot traffic resolves to a subdomain under openai.com. Log grep grep 'GPTBot' /var/log/nginx/access.log | wc -l robots.txt User-agent: GPTBot followed by Disallow: / blocks all GPTBot crawling. Honoured by OpenAI as documented policy. 02 ChatGPT-User OpenAI · On-demand User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ChatGPT-User/1.0; +https://openai.com/bot) Purpose Fetches a specific URL when a ChatGPT user clicks a link, asks about a specific page, or uses browsing to answer a question. Synchronous with user input. Verification Same IP range file as GPTBot. The distinguishing signal in logs is the user-agent string and the request pattern: single-URL fetches rather than site-wide crawls. Log grep grep 'ChatGPT-User' /var/log/nginx/access.log | awk '' | sort | uniq -c | sort -rn Output shows which specific URLs ChatGPT users are asking about in real time. 03 OAI-SearchBot OpenAI · Retrieval User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot) Purpose Crawls and indexes content for ChatGPT Search: the retrieval layer behind ChatGPT's answer generation when web grounding is enabled. Distinct from training and from on-demand browsing. Verification Same openai.com/searchbot.json IP range file. Note that this is a separate endpoint from GPTBot's: they publish distinct ranges. Why it matters OAI-SearchBot access is a prerequisite for appearing in ChatGPT Search results. Blocking it blocks citation in the search surface: which is distinct from blocking training data via GPTBot. 04 PerplexityBot Perplexity · Retrieval User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot) Purpose Background retrieval crawler. Indexes content for Perplexity's answer-generation retrieval layer. Scheduled revisits. Verification Perplexity publishes IP ranges at their documented endpoint. Reverse DNS on a legitimate PerplexityBot request resolves to a perplexity.ai subdomain. Log grep grep 'PerplexityBot' /var/log/nginx/access.log | awk '' | sort -u | head Lists unique IPs seen: useful for spot-checking against the published IP ranges. 05 Perplexity-User Perplexity · On-demand User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) Purpose On-demand fetcher triggered when a Perplexity user asks a question that requires retrieving a specific URL in real time. The most common AI crawler source of "user just asked about my page" traffic in 2026. Log signature Single-URL requests, often correlated in time with spikes in referral traffic from perplexity.ai. If you see Perplexity-User hit a specific URL and traffic from perplexity.ai rise within the same hour, the page has just been cited in a live answer. 06 ClaudeBot Anthropic · Training User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) Purpose Retrieves content for Claude model training. Analogous to GPTBot's role at OpenAI: training corpus construction, not live retrieval. Verification Anthropic publishes an IP range file; reverse DNS resolves to anthropic.com subdomains. The contact email in the user-agent, claudebot@anthropic.com, is a unique identifier absent from spoof user-agents. robots.txt User-agent: ClaudeBot followed by Disallow: / blocks training crawl. Does not affect Claude-User or Claude-SearchBot. 07 Claude-User Anthropic · On-demand User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-User/1.0; +https://www.anthropic.com/claude-user) Purpose On-demand fetcher triggered when a Claude user asks about a specific URL, or when Claude uses browsing in a conversation. Real-time, synchronous with user input. Log signature Single-URL fetches with no follow-up crawl. If you see Claude-User hit a page with no preceding or following requests from the same operator, a user is almost certainly asking Claude about that specific page right now. 08 Claude-SearchBot Anthropic · Retrieval User-agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-SearchBot/1.0; +https://www.anthropic.com/claude-searchbot) Purpose Retrieval crawler for Claude's web search and research tools. Scheduled crawls, populates the retrieval index consulted when Claude uses web search during a conversation. Why it matters The three Anthropic crawlers correspond to three distinct functions. Blocking ClaudeBot preserves the option to opt out of training; keeping Claude-SearchBot and Claude-User allowed keeps the site visible to Claude's live users. Conflating them blocks too much or too little. 09 Google-Extended Google · Training User-agent No distinct user-agent. Google-Extended is a robots.txt product token, not a separate crawler: Googlebot handles the actual fetching, and the token tells Google whether to use the content for Gemini and Vertex AI training. Purpose Controls whether content crawled by Googlebot is also used to train Gemini and Vertex AI generative models. The crawler itself is still Googlebot; Google-Extended is the opt-out mechanism. robots.txt User-agent: Google-Extended Disallow: / Blocks training use without affecting Google Search indexation. This is the only way to opt out of Gemini training while remaining in Google Search. Log grep Not applicable, no distinct user-agent appears in logs. Opt-out works through robots.txt compliance, not IP-level blocking. 10 Amazonbot Amazon · Training & retrieval User-agent Mozilla/5.0 (Linux; ... ) AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Purpose Amazon's general-purpose crawler, used for Alexa content sourcing and increasingly for Amazon's generative AI products. Crawls are scheduled rather than on-demand. Verification Reverse DNS resolves to crawl.amazonbot.amazon subdomains. Amazon publishes IP ranges in their developer documentation. Log grep grep -iE 'Amazonbot|AlexaBot' /var/log/nginx/access.log | wc -l The Ten at a Glance One reference table. Bookmark this if you want a quick lookup for what each user-agent string means and whether blocking it has consequences. # Crawler Operator Class If you block it 01 GPTBot OpenAI Training Content excluded from GPT training corpora 02 ChatGPT-User OpenAI On-demand ChatGPT users asking about your page see no content 03 OAI-SearchBot OpenAI Retrieval Not cited in ChatGPT Search 04 PerplexityBot Perplexity Retrieval Not indexed for Perplexity answers 05 Perplexity-User Perplexity On-demand Perplexity users querying your URL see nothing 06 ClaudeBot Anthropic Training Content excluded from Claude training corpora 07 Claude-User Anthropic On-demand Claude users can't retrieve your pages mid-conversation 08 Claude-SearchBot Anthropic Retrieval Not cited in Claude web search responses 09 Google-Extended Google Training Opt-out of Gemini and Vertex AI training 10 Amazonbot Amazon Training Excluded from Amazon AI products and Alexa Four Log Queries That Actually Tell You Something Four Nginx one-liners that turn raw access logs into usable AI crawler intelligence. Each assumes the default Nginx combined log format at /var/log/nginx/access.log: adjust the path if yours differs.After confirming AI crawler visits via logs, the next diagnostic is a GEO audit: the ten GEO audit checks identify which structural failures are most likely to suppress citation despite confirmed crawling. 1. Count all AI crawler requests in the last 24 hours. grep -iE 'GPTBot|ChatGPT-User|OAI-SearchBot|PerplexityBot|Perplexity-User|ClaudeBot|Claude-User|Claude-SearchBot|Amazonbot' /var/log/nginx/access.log | awk -v d="$(date -d '24 hours ago' '+%d/%b/%Y:%H')" '$4 > "["d' | wc -l 2. Which pages are on-demand fetchers hitting right now? This one tells you which URLs are being asked about in live AI conversations. grep -iE 'ChatGPT-User|Perplexity-User|Claude-User' /var/log/nginx/access.log | awk '' | sort | uniq -c | sort -rn | head -20 3. Which AI crawlers visit most often? Distribution across operators over the whole log file. grep -iE 'GPTBot|ChatGPT-User|OAI-SearchBot|PerplexityBot|Perplexity-User|ClaudeBot|Claude-User|Claude-SearchBot|Amazonbot' /var/log/nginx/access.log | grep -oiE 'GPTBot|ChatGPT-User|OAI-SearchBot|PerplexityBot|Perplexity-User|ClaudeBot|Claude-User|Claude-SearchBot|Amazonbot' | sort | uniq -c | sort -rn 4. What is the 4xx/5xx rate for AI crawlers? A high error rate for a specific crawler means it's hitting blocked pages, broken redirects, or pages behind auth. Every error is content that will never reach the retrieval index. grep -iE 'GPTBot|PerplexityBot|ClaudeBot|Claude-SearchBot|OAI-SearchBot' /var/log/nginx/access.log | awk '' | sort | uniq -c | sort -rn On user-agent spoofing. User-agent strings are trivial to fake. A meaningful fraction of traffic claiming to be GPTBot or PerplexityBot is not, it's scrapers and competitive intelligence tools using the AI crawler user-agent to avoid being blocked. For any count above low hundreds per day, verify a sample of IPs against the operator's published range file before acting on the numbers. What to Put in robots.txt Three common policies. Pick the one that matches your posture, not whichever one sounds most cautious by default.Crawl policy changes affect citation indirectly and with a lag: a citation measurement run before and after any robots.txt change is the only reliable way to quantify the effect. Policy A — allow everything. Default. Suitable for content that benefits from being in both training data and live AI answers. This is the right policy for most publishers who want to be cited. # robots.txt: allow all AI crawlers (default) # No AI-specific directives needed. Policy B — opt out of training, allow retrieval and on-demand. Keeps the site visible to live AI users and in AI search results, but excludes content from model training corpora. The compromise most publishers actually want. User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: Amazonbot Disallow: / Policy C — block all AI. Nuclear option. Removes the site from every AI retrieval and training pipeline. Suitable for content with licensing restrictions or sensitivity that makes AI exposure unacceptable. The side-effect is total invisibility in AI-generated answers. User-agent: GPTBot Disallow: / User-agent: ChatGPT-User Disallow: / User-agent: OAI-SearchBot Disallow: / User-agent: PerplexityBot Disallow: / User-agent: Perplexity-User Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Claude-User Disallow: / User-agent: Claude-SearchBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: Amazonbot Disallow: / The GEO Lab runs Policy A. The whole point is to be cited. Quick reference for the trade-offs: Policy Training Retrieval On-demand Best for A — Allow all ✓ ✓ ✓ Publishers who want maximum citation potential B — No training ✗ ✓ ✓ Sites that want live AI visibility without training exposure C — Block all ✗ ✗ ✗ Content with licensing restrictions or legal sensitivity Frequently Asked Questions What is the difference between GPTBot and ChatGPT-User? GPTBot is OpenAI's training crawler: it retrieves content for model training and pre-training corpus construction. ChatGPT-User is the on-demand fetcher that retrieves a specific URL when a ChatGPT user asks about it in a conversation. The two have different user-agent strings, different crawl patterns, and different robots.txt semantics. Blocking one does not block the other, and treating them as a single entity in log analysis leads to misdiagnosed crawl behaviour. How do I verify an AI crawler is real and not a spoof? Three methods, in order of reliability: reverse DNS lookup on the requesting IP should resolve to a subdomain of the operator (for example openai.com or anthropic.com), then forward DNS on that hostname should resolve back to the same IP; match the IP against the operator's published IP range JSON file; and check request headers for operator-specific signatures. Reverse-and-forward DNS verification is the standard Google uses and is the most reliable for operators that publish verification endpoints. What user-agent does Perplexity use? Perplexity uses two distinct user-agents. PerplexityBot is the background crawler that indexes content for Perplexity's retrieval system. Perplexity-User is the on-demand fetcher triggered when a user asks Perplexity a question that requires retrieving a specific URL in real time. Both contain the literal string "Perplexity" in the user-agent header, but their crawl behaviour differs substantially: PerplexityBot crawls at scheduled intervals, while Perplexity-User fetches within seconds of a user query. Do AI crawlers execute JavaScript? Most AI crawlers do not execute JavaScript at crawl time. GPTBot, PerplexityBot, and ClaudeBot retrieve the raw HTML source and parse it without running client-side scripts. A minority of on-demand fetchers, typically the per-query browsing agents, may render JavaScript, but their behaviour is inconsistent across operators and model versions. Content that relies on client-side rendering is effectively invisible to the majority of AI crawler traffic. How do I block an AI crawler without blocking legitimate traffic? The correct layer is robots.txt, using the crawler's documented user-agent string and a Disallow directive. Firewall-level blocks risk collateral damage if the crawler shares IP ranges with other services. User-agent matching at the web server layer is effective for crawlers that honour robots.txt and legal for crawlers that do not, but it still requires the exact documented user-agent string: a partial match will miss variants. Related 10 GEO Terms Every Marketer Needs to Know in 2026 10 Technical Audit Checks Every GEO Page Should Pass What Is Generative Engine Optimisation (GEO)? The GEO Stack: Five Layers of AI Visibility Version History Version 1.0 — 12 May 2026: Initial publication. Ten AI crawlers across four operators, three purpose classes, with verification methods and Nginx log queries. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab --- ## 10 Content Formats Mapped to Query Intents URL: https://thegeolab.net/10-content-formats-query-intent/ 10 Content Formats Mapped to Query Intents By Artur Ferreira · The GEO Lab · Published: 16 June 2026 · Version 1.0 Ten structural templates, one query intent each — the practitioner's format-to-intent pattern language that sits under every well-cited page TL;DR An AI system deciding which source to cite first matches the shape of the user's query to the shape of the content. "What is X?" wants a definitional page. "How do I...?" wants an ordered how-to. "X vs Y" wants a comparison table. When the shapes align, the page gets cited. When they don't, a competitor with the right shape wins. Ten formats cover most of the intent space: definitional page, how-to guide, comparison table, listicle, troubleshooting registry, case study, glossary entry, reference/spec, explainer, and FAQ page. Each has a primary intent, a secondary intent it also serves, and a set of intents it will fail on. Key GEO Takeaway AI retrieval systems evaluate format before they evaluate content: a well-structured how-to page beats a better-written wall of prose for procedural queries every time. Matching format to query intent is the structural decision that determines whether a page is retrievable before any keyword or schema work begins. The AI Reads Shape Before It Reads Content I wrote a very good post on FAQPage schema. It had the right information, the right sources, the right structure. It got retrieved. It did not get cited — because the query that would have pulled it in was phrased as a how-to ("how do I fix the duplicate FAQPage error") and the page was structured as an explainer. The AI system fetched the page, looked for an ordered sequence of steps to quote, found prose paragraphs instead, and went to quote someone else who had the exact same information in a numbered list.Format optimisation is Layer 2 work in the GEO Stack — specifically the Extractability sub-layer that determines whether a retrieved passage is quotable, independent of whether the page ranked in traditional search. The information was the same. The shape was different. Shape won. This is the thing I find practitioners underestimate most consistently in 2026. There's a tendency to think of content quality as a single dimension — well-researched, well-written, well-structured content will be cited. It won't, if the structure is wrong for the query. AI systems have format preferences per intent, and those preferences are sharp enough to override content quality within the same topic. The ten formats below are the structural templates that fit the common intents cleanly. Each one is a pattern you can see in the HTML — headings, layout, schema — not a vibe-based judgement about writing style. Pick the format first. Write the content second. Reversing that order is how thoroughly-researched posts lose citations to shallower ones. Query Intents and the Formats That Serve Them Before the ten format cards, the matrix that drives everything else. Six common query intents, and the formats that win each one.Testing how well a format serves a specific intent type requires a structured probe set — the ten probe query types are the Lab's instrument for measuring format-to-citation relationships empirically. Definitional "What is X?" — Definitional page, glossary entry Procedural "How do I...?" — How-to guide, reference/spec Comparative "X vs Y" — Comparison table, listicle Commercial/category "Best X" — Listicle, comparison table Troubleshooting "Fix [error]" — Troubleshooting registry, FAQ page Evidence-seeking "Does X work?" — Case study, explainer Figure 1: Six common query intents and the content formats that win each one. Most formats win one primary intent and serve a secondary one — few formats cover more than two. The mapping is not one-to-one. Some formats — the listicle, for example — serve two intents well (comparative and commercial) because their shape accommodates both. Some intents — troubleshooting — are served by more than one format, but with different strengths. The format cards below specify each format's primary intent, its secondary use, and the intents where it fails. The Ten Formats Each format card has the structural pattern, primary and secondary intent, the schema type that reinforces it, and a failure mode to watch for.Each format has a different extractability profile — the ten extractability signals document which structural properties make a given format easier or harder for AI systems to quote cleanly. 01 Definitional page Article Pattern Opens with "X is Y" in the first sentence. Structured as: what it is, why it exists, how it works, related concepts. One canonical definition per page. Primary intent Definitional. "What is X?" queries where the user wants the term defined unambiguously. Example query "What is citation rate in AI search?" Failure mode Narrative opening. Any setup before the definition costs the page the extraction slot — AI systems looking for "X is Y" at the top find a story instead. 02 How-to guide HowTo Pattern Numbered steps with action-oriented verbs at the start of each. Code blocks or concrete examples where applicable. Result or verification step at the end. Primary intent Procedural. Any query starting with "how do I" or "how to". Example query "How do I check my robots.txt for AI crawler rules?" Failure mode Prose descriptions of steps instead of an ordered list. AI systems cannot extract a numbered procedure from a paragraph that describes the procedure in free text. 03 Comparison table Article Pattern Explicit table element comparing two or more named entities across consistent criteria. Row per attribute, column per entity. Short summary of when each choice wins. Primary intent Comparative. "X vs Y" or "X compared to Y" queries. Example query "GEO Stack vs Answer Engine Optimization — what's the difference?" Failure mode Prose comparison without a table. A well-written comparison in three paragraphs loses to an average comparison in a clean table, because the table is directly extractable as structured output. 04 Listicle ItemList Pattern Numbered list of discrete items, each with a consistent internal structure. Named entities prominent. Section-per-item format preserves extractability for each item individually. Primary intent Commercial/category. "Best X", "top Y", "top 10" queries. Example query "Best AI visibility monitoring tools in 2026" Failure mode Uneven item structure — some items with three sub-sections, others with one paragraph. AI systems extracting a list of items expect the same shape for each, and inconsistency forces them to skip items or flatten the list. 05 Troubleshooting registry Article Pattern Entries structured as symptom → root cause → fix. The exact error string or error message appears verbatim in the entry. Often organised as a registry of multiple entries on one page or one entry per page. Primary intent Troubleshooting. Queries that include a specific error string or describe a specific failure. Example query "Google Search Console 'Duplicate field: FAQPage' error — how to fix" Failure mode Paraphrasing the error message instead of quoting it verbatim. AI troubleshooting retrieval does string-level matching against the reported error before anything else — paraphrasing breaks that match. 06 Case study Article Pattern Structured around: context, problem, intervention, measurement, result. Named actors (company, team, named individual). Specific numbers for before and after. Timeline present. Primary intent Evidence-seeking. Queries asking whether a technique works, what results others got, or how to judge an approach. Example query "Has anyone measured citation rate improvement from adding schema?" Failure mode No numbers, no timeline, no named actors. A case study in name only — narrative reads well, produces no extractable evidence. AI systems evaluating evidence cite case studies with data, not case studies with stories. 07 Glossary entry DefinedTerm Pattern Short, focused definition (50–200 words) of a single term. Often part of a larger glossary collection. No narrative, no expansion — just the term and the canonical definition. Primary intent Definitional. Identical primary intent to the definitional page, but at smaller scale and higher density. Example query "Define C-SOV in GEO measurement" Failure mode Treating the glossary entry as a stub that redirects to a longer page. A glossary entry should be complete on its own — redirecting the reader to a different page to find the actual definition is how glossary entries stop being cited. 08 Reference/spec TechArticle Pattern Comprehensive, flat documentation of a system, API, schema, or protocol. Organised by component or endpoint rather than by narrative. Every item has a consistent structure — name, description, parameters, example, notes. Primary intent Procedural (secondary) and definitional (secondary). Queries that look up a specific parameter, flag, field, or configuration option. Example query "What does the user-agent parameter do in Perplexity API requests?" Failure mode Narrative reference. Trying to explain a reference document in prose rather than as a flat lookup. References need to be scan-and-extract, not read-from-start-to-finish. 09 Explainer Article Pattern Prose-heavy, narrative-driven content that walks through a concept with examples, analogies, and gradual buildup. Designed to be read linearly. Primary intent Evidence-seeking (secondary) and broad educational intent. Queries phrased as "why does X happen" or "what's the intuition behind Y". Example query "Why do AI systems cite some sources more than others?" Failure mode Using explainer format for definitional or procedural queries. An explainer is the right choice for a handful of intents — for most queries, a definitional page or how-to would win. Default to explainer format is the single most common format-to-intent mismatch. 10 FAQ page FAQPage Pattern Explicit question-answer pairs. Each question phrased as a user would ask it. Each answer self-contained and short. FAQPage schema directly mirrors the visible content. Primary intent Troubleshooting (secondary) and "common questions" queries. FAQ pages win when users are asking directly and concisely. Example query "Do AI crawlers execute JavaScript?" Failure mode Stretching the FAQ format into a primary content format. FAQ works as a secondary section on a longer page, or as a dedicated FAQ landing page for support use cases. Trying to make FAQ the primary structure of the entire site turns every topic into fragmented Q&A with no connective tissue. The Ten at a Glance Reference table. Use when you're about to write a page: identify the primary query intent first, then match to the format row. # Format Schema Primary intent Also serves 01 Definitional page Article Definitional Evidence-seeking 02 How-to guide HowTo Procedural Troubleshooting 03 Comparison table Article Comparative Commercial 04 Listicle ItemList Commercial Comparative 05 Troubleshooting registry Article Troubleshooting Procedural 06 Case study Article Evidence-seeking Comparative 07 Glossary entry DefinedTerm Definitional — 08 Reference/spec TechArticle Procedural Definitional 09 Explainer Article Evidence-seeking Definitional 10 FAQ page FAQPage Troubleshooting Definitional When to Combine and When to Split The temptation to combine formats — one page covering definitional, comparative, and procedural intent for the same topic — is the single most common structural mistake in content strategy. It produces pages that read as "thorough" to a human and as "unfocused" to an AI retrieval system.The citation evidence on format performance by intent type comes from Tier 1 vs Tier 2 experiments — the citation gap post shows how query type and format interact to produce citation rate differences of 60 percentage points or more. Three principles make the combine-vs-split decision tractable. First: one primary intent per page. A page can reference other intents through links, but the page itself needs to be unambiguous about what it is. A definitional page that also tries to be a how-to ends up failing both — the opening isn't declarative enough for the definitional intent, and the how-to steps are interrupted by definitional context. Second: pair formats only when they share structural shape. A listicle and a comparison table share shape — enumerated items with consistent attributes — and combine well. A definitional page and a troubleshooting registry do not — one is narrative-driven, the other is lookup-driven, and forcing them onto the same page breaks both patterns. Third: cross-link instead of combining. The right response to "this topic has three intents" is three pages, each in the right format for its intent, with explicit cross-links between them. The AI system then has three clean extraction targets instead of one confused one. Practitioners used to SEO often resist this because it feels like "thin content" — but thin content is content with nothing to say, not content that says one thing well. A working pattern applied on thegeolab.net: Topic Split into Cross-linked through Citation rate Definitional page + glossary entry + case study Definitional page links to glossary and case study; case study links back to definitional FAQPage duplicate error Troubleshooting registry entry + how-to guide + FAQ entry Registry entry links to how-to; how-to has short FAQ block at end GEO vs AEO vs LLM SEO Comparison table page + three separate definitional pages, one per term Each definitional page linked from the comparison row for that term On schema-format alignment. Every row in the table above aligns the schema type to the format. Article on definitional, HowTo on the how-to guide, FAQPage only where there is actual question-answer structure. Misaligned schema — FAQPage schema on a definitional page, HowTo on a troubleshooting registry — is worse than no schema. The AI system detects the mismatch between what the schema promises and what the content delivers, and discounts both. Frequently Asked Questions What is a content format in GEO? A content format is a structural template that organises information in a specific way — a definitional page, a how-to guide, a comparison table, a troubleshooting registry. The format is distinct from the topic. Two pages on the same topic can be structured in different formats, and each format serves a different set of query intents. Choosing the right format for the query intent is often the difference between a page that gets cited and one that doesn't. How do I know which content format matches a query intent? Match the structural shape of the query to the structural shape of the format. "What is X?" queries are definitional — they want a definitional page opening with "X is Y". "How do I..." queries are procedural — they want an ordered how-to with numbered steps. "X vs Y" queries are comparative — they want a side-by-side comparison table. When the query shape and format shape align, the AI system extracts a clean answer. When they don't, the page loses to a competitor whose format matches better. Can one page serve multiple query intents? Yes, but with diminishing returns. A page that tries to be a definitional page, a how-to, and a comparison all at once usually fails at all three — the structural patterns required by each format conflict. The better approach is separate pages for separate intents, cross-linked, with each page optimised for its primary format. Trying to cover three intents on one page is how "comprehensive" posts end up citation-less despite being topically thorough. What format works best for commercial or category queries? Commercial and category queries ("best X tools", "X vs Y alternatives", "top Y providers") favour list pages with named entities, brief descriptions, and explicit criteria. AI systems responding to category queries strongly prefer content that names competitors, structures them as a list, and gives comparable data points for each. Category queries almost never cite pure narrative content, regardless of quality. Does schema type need to match the content format? Yes. HowTo schema on a how-to page reinforces the extraction signal; HowTo schema on a narrative page creates a mismatch that weakens trust in both. FAQPage schema works on pages with clear question-answer structure and nowhere else. The rule is simple: the schema type should describe what the content actually is, not what you wish it were. Misaligned schema is worse than no schema. Related 10 Probe Queries We Use to Test AI Citation Behaviour 10 Extractability Signals That Predict AI Citation 10 GEO Terms Every Marketer Needs to Know in 2026 The GEO Stack: Five Layers of AI Visibility Version History Version 1.0 — 16 June 2026: Initial publication. Ten content formats mapped to six common query intents, with schema alignment and combine-vs-split principles. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab --- ## 10 Extractability Signals That Predict AI Citation URL: https://thegeolab.net/10-extractability-signals-ai-citation/ 10 Extractability Signals That Predict AI Citation By Artur Ferreira · The GEO Lab · Published: 2 June 2026 · Version 1.0 Ten structural patterns that make content easier for AI systems to quote cleanly — the practitioner reference for Layer 2 of the GEO Stack TL;DR A page that an AI system retrieves but can't extract a clean answer from gets skipped in favour of one it can. Ten structural patterns correlate with high extractability: declarative opening, heading-as-question, short answer before long answer, paragraph length discipline, early source attribution, entity density, schema-content alignment, explicit numbers and units, single canonical answer per section, and machine-readable markup. Each signal is a pattern you can see in the HTML, not a content quality judgement. That's what makes them testable, fixable, and measurable. Key GEO Takeaway Being crawled is not the same as being cited: AI systems retrieve thousands of pages and quote a fraction of them. Extractability — the structural property that makes a passage quotable — is the gap between those two numbers, and it is measurable across ten specific signals before a single query is run. Retrieved but Not Cited The first time I saw a GPTBot access log entry on a page that had never been cited in a ChatGPT answer, I assumed the crawler just hadn't gotten around to indexing the content yet. Then I watched it happen eleven more times over the following weeks — same page, repeated fetches, zero citations. The page was in the retrieval index. It was being read. It wasn't being quoted.Extractability is Layer 2 of the GEO Stack — the layer between crawlability (Layer 1) and structural authority (Layer 3) that determines whether a retrieved page produces a quotable passage. That gap — between retrieval and citation — is what Layer 2 of the GEO Stack is named for. The AI system found the page. It just couldn't find a clean sentence to quote from it. So it quoted somebody else's page, which had the same information but structured in a more extractable shape. The uncomfortable version of this: the page I lost the citation on was better researched than the page that won it. Extractability is not a quality signal. It's a shape signal. The AI can't tell which page is better. It can only tell which page gives it a quotable answer without having to synthesise one from disconnected fragments. The ten signals below are what separates an extractable page from an unextractable one. All of them are patterns in the HTML, which means all of them are measurable, and all of them are things you can change. Where Extraction Happens Extraction runs in three sub-layers inside Layer 2 of the GEO Stack. Knowing which sub-layer a signal targets tells you which kind of fix to apply.Each sub-layer has specific, testable failure modes — the ten GEO audit checks operationalise extraction diagnostics into pass/fail tests that can be run programmatically before deployment. Sub-layer 1 Answer location Signals 01, 02, 03 Sub-layer 2 Answer isolation Signals 04, 05, 09 Sub-layer 3 Answer reinforcement Signals 06, 07, 08, 10 Figure 1: The three sub-layers of extraction. Answer location decides whether the AI finds the answer; answer isolation decides whether it can pull a clean chunk; answer reinforcement decides whether it trusts what it pulled enough to quote. A page can fail at any sub-layer. A page with a declarative opening (good location signal) but five-sentence paragraphs (bad isolation signal) gets found but not cleanly chunked. A page with clean chunks but no source attribution (bad reinforcement signal) gets chunked but quoted as "according to a source" without the link. Citation requires all three sub-layers to clear. The Ten Extractability Signals Ordered by observed impact on extraction behaviour in the Lab's experiments. The first four are the ones that swing the outcome. The last six are structural polish — smaller effects individually, substantial in combination.Which signals matter most depends on the query type being probed — the ten content formats mapped to query intent shows which format choices naturally improve signal scores for different query types. 01 Declarative opening sentence High What it is The first sentence of content states a definitional fact, typically in "X is Y" form, within the first 200 characters. Why it works AI systems extracting a clean answer look near the top of the content first. A declarative opening is a sentence already shaped like an answer. A narrative hook is not. Examples Extractable "Citation rate is the proportion of AI query iterations in which a given URL appears as a named source link." Not extractable "Let's talk about citation rate. It's one of those metrics that everyone agrees matters, but nobody quite defines the same way." 02 Heading phrased as the question High What it is Section headings use the same phrasing a user would type into an AI system to ask about the topic the section covers. Why it works Heading-level matches between user queries and content give the retrieval system a direct query-to-section pointer. The section under the matching heading is then the natural extraction target. Examples Extractable "How do I block GPTBot in robots.txt?" Not extractable "Bot management considerations" 03 Short answer before long answer High What it is The first paragraph under a heading gives the complete answer in one or two sentences. Subsequent paragraphs expand, nuance, or justify — but the answer itself is extractable from the opening. Why it works AI systems generating a concise response prefer a self-contained opening paragraph they can quote without modification. Long answers that build up to a conclusion leave the AI either quoting the build-up (wrong) or synthesising a summary (which it then doesn't cite to the source). Pattern Short answer → long answer. Not the other way around. 04 Paragraph length discipline High What it is Body paragraphs are two to four sentences long. Single-sentence paragraphs are used sparingly for emphasis. Five-plus-sentence paragraphs are avoided. Why it works AI systems chunk content at paragraph boundaries. Paragraphs longer than five sentences produce chunks too large to fit into a generated response without truncation. Truncated chunks are either not used or used with a "..." that reduces citation trust. Target range Two to four sentences per paragraph for body content. Longer is permissible only when the content is explicitly a single connected argument that can't be split. 05 Single canonical answer per section Medium What it is Each section of the page answers exactly one question. Sections do not contain multiple competing answers, alternative positions, or conditional phrasings that the AI would have to choose between. Why it works AI systems extracting an answer want a section where the answer is unambiguous. A section with three conditional answers ("it depends on...") forces the AI to either quote one condition without context or synthesise across them. Both reduce citation likelihood. Pattern One question, one section, one canonical answer. Nuances and exceptions go in their own sections — not inside the primary answer section. 06 Early source attribution Medium What it is Claims made in the first few paragraphs of a page are attributed to named sources — publications, studies, or specific experts — rather than left as anonymous assertions. Why it works AI systems trained on academic and journalistic content strongly prefer to cite sources that themselves cite sources. A page with "according to [X study]" near the top reads as authoritative; a page with "it's widely known that..." reads as unsourced. Pattern Named source within the first 400 characters. Hyperlink to the source. Year of the source where applicable. 07 Entity density Medium What it is The content contains multiple named entities — specific products, people, companies, frameworks — within each section, not just one general topic mentioned throughout. Why it works AI retrieval systems use entity co-occurrence as a topical signal. A section that names five entities in context carries more retrieval weight than a section that names one entity repeatedly. Entity density also sharpens the match between user queries and content. Pattern At least three distinct named entities per major section, with at least one entity appearing in the section heading or opening sentence. 08 Explicit numbers and units Medium What it is Quantitative claims in the content state specific numbers with units, rather than relying on qualitative terms like "significant", "many", or "a large percentage". Why it works The research literature on GEO shows that content with embedded statistics is cited more often than content without. AI systems responding to questions that ask for numbers need content with numbers in it — qualitative content forces them to either skip the question or generate a number without citation. Examples Extractable "Citation rate shifted by 11 percentage points between the two conditions." Not extractable "Citation rate shifted significantly between the two conditions." 09 Schema-content alignment Supporting What it is Structured data declarations on the page accurately describe the content. FAQPage schema only on pages with clear Q&A structure. HowTo schema only on pages with ordered steps. Article schema only on pages with a single coherent article. Why it works Schema is an extractability amplifier when aligned and a liability when not. FAQPage schema on narrative prose creates a mismatch that AI systems detect, which reduces trust in both the schema and the surrounding content. Common failure FAQPage schema generated by a plugin on pages without a real FAQ section. The signal is worse than no schema, because the AI expected structured Q&A and got something else. 10 Machine-readable markup Supporting What it is Lists are marked up as
or . Tables are real tables. Emphasis uses and , not just CSS styling. Why it works AI systems parsing HTML use structural tags to identify content types. A bulleted list that's actually an unordered list is extractable as a list. A "list" that's actually a series of paragraphs with bullet characters is extractable only as prose. Test View the page source. If the structural intent of your content isn't visible in the tags, the AI doesn't see it either. The Ten at a Glance One reference table. The signals combine multiplicatively, not additively — missing one of the high-impact signals is usually not recoverable by stacking the supporting ones. # Signal Sub-layer Impact Quick check 01 Declarative opening Location High Does the first sentence state "X is Y"? 02 Heading as question Location High Do H2 headings match user query phrasing? 03 Short answer before long Location High Is the complete answer in the first paragraph under each heading? 04 Paragraph length discipline Isolation High Are body paragraphs 2–4 sentences? 05 Single canonical answer Isolation Medium Does each section answer exactly one question? 06 Early source attribution Reinforcement Medium Named source within first 400 characters? 07 Entity density Reinforcement Medium 3+ distinct entities per major section? 08 Explicit numbers and units Reinforcement Medium Are quantitative claims stated with specific numbers? 09 Schema-content alignment Isolation Support Does structured data match content structure? 10 Machine-readable markup Reinforcement Support Lists as , code as , etc? Diagnosing an Unextractable Page When a page is being retrieved but not cited, the diagnosis runs in the order of the three sub-layers. Start with location signals, because a page that fails location doesn't benefit from improvements to isolation or reinforcement.After fixing extractability failures, the standard probe query set provides a systematic way to test whether citation rate has improved — run at least one probe per extraction sub-layer. First: open the page in a browser and read the first 400 characters. If they don't contain a declarative sentence that directly answers what the page is about, the page is failing Signal 01 — nothing else matters until that's fixed. This is the most common single failure mode in the Lab's observations. Second: scan the H2 headings. Are they phrased as the questions a user would type? Or are they editorial descriptors like "Overview", "Considerations", "Background"? Editorial headings fail Signal 02 because they don't create a query-to-section pointer. Third: check paragraph length across the body content. Count the sentences per paragraph across a random sample. If the mean is above five, extractability is being degraded by Signal 04. The fix is mechanical — split paragraphs — but it has to be done carefully to preserve argument flow. Below this stage, the diagnosis branches based on what specifically the AI is failing to do. An AI that names your brand without linking is typically failing Signal 06. An AI that gives qualitative answers where quantitative ones would be expected is failing Signal 08. A practical diagnostic mapping: Observed failure Probable signal Fix direction Retrieved but never cited 01 or 02 Add declarative opening; rewrite H2s as questions Mentioned without source link 06 Add early source attribution with links Partially quoted, truncated with "..." 04 Shorten paragraphs to 2–4 sentences Quoted but with wrong nuance 05 Split conditional sections; one canonical answer per section AI gives qualitative where numbers expected 08 Replace qualitative phrases with specific numbers On the limits of structural optimisation. All ten signals improve extractability. None of them improve retrieval. A page with perfect extractability signals that isn't in the retrieval index is still invisible. Extractability is Layer 2 of the GEO Stack — if Layer 1 (retrieval probability) is failing, Layer 2 work produces no citation lift. Diagnose the retrieval layer first; the signals above are what you apply once retrieval is confirmed working. Frequently Asked Questions What is extractability in the GEO Stack? Extractability is Layer 2 of the GEO Stack. It measures how easily an AI system can isolate a discrete answer from a page once retrieval has selected it. High extractability correlates with declarative opening sentences, section-level answer isolation, schema-content alignment, and short paragraphs. A page with strong retrieval but poor extractability gets fetched but not cited — the AI reads it, then quotes a competitor that answered the question more cleanly. How is an extractability signal different from a ranking signal? Ranking signals determine whether your page appears on a search engine results page. Extractability signals determine whether an AI system can pull a clean, quotable answer from the page once it's been retrieved. A page can rank highly on Google and still have low extractability — it appears in results, but the AI system can't find a self-contained answer to quote, so it quotes a competitor instead. The two are measured independently and respond to different interventions. Why do declarative opening sentences matter? A declarative opening sentence states a definitional fact in the form "X is Y" within the first 200 characters of content. AI systems performing section-level extraction look for clean, self-contained answer sentences near the top of a page. A page that opens with a narrative hook, rhetorical question, or long setup gives them nothing to quote. A page that opens declaratively hands them the exact sentence they need, which is then more likely to be reproduced verbatim in the AI response. How long should paragraphs be for AI extractability? Two to four sentences is the working range observed in the GEO Lab's content. Paragraphs longer than five sentences reduce extractability because AI systems chunking content at paragraph boundaries end up with chunks too large to fit cleanly into a generated answer. Very short single-sentence paragraphs also reduce extractability by fragmenting the context needed to interpret the statement. The target is paragraphs long enough to carry one complete idea and short enough to be quoted without truncation. Do structured data signals like schema affect extractability? Yes, but only when the schema matches the content. FAQPage schema on a page with clear question-answer structure strengthens the extraction signal. FAQPage schema on a page with narrative prose does not — the AI system detects the mismatch between the structured data and the content, which weakens trust in both. Schema is an extractability amplifier when aligned and an extractability liability when misaligned. Related 10 GEO Terms Every Marketer Needs to Know in 2026 The GEO Stack: Five Layers of AI Visibility 10 Technical Audit Checks Every GEO Page Should Pass 10 Probe Queries We Use to Test AI Citation Behaviour Version History Version 1.0 — 2 June 2026: Initial publication. Ten extractability signals mapped to three extraction sub-layers, with observable patterns and diagnostic mapping. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 GEO Audit Checks Every Page Should Pass
URL: https://thegeolab.net/10-geo-audit-checks/
10 Technical Audit Checks Every GEO Page Should Pass By Artur Ferreira · The GEO Lab · Published: 5 May 2026 · Version 1.0 Ten programmatic tests that separate a page structurally ready for AI retrieval from one that will be crawled, skimmed, and quoted from someone else TL;DR A GEO audit is not a content review. It's a set of binary structural tests, each returning pass or fail, that verify the infrastructure underneath a page is correct before citation rate is measured. Ten checks carry most of the weight: single H1, no duplicate schema, declarative opening, FAQPage consistency, no self-reviews, AI crawler accessibility, server-rendered content, canonical integrity, entity naming consistency, and link deduplication. Every check below maps to a failure we've hit on thegeolab.net. None are hypothetical. Key GEO Takeaway A pass/fail GEO audit separates structural certainty from interpretation: a page either produces a clean passage extraction or it doesn't, either has valid schema or it doesn't. These ten checks are the difference between knowing a page is ready for AI retrieval and hoping it is. Why a Check Beats a Review Most content review for AI visibility is interpretive. Someone reads the page, forms an impression, and suggests improvements. The trouble with interpretive review is that it can't be repeated identically, can't be regressed against, and can't tell you whether the change you made last week is still in place this week.Each check maps to a specific layer of the GEO Stack: the framework that organises GEO technical work into crawlability, extractability, and structural authority layers. A check is different. A check is binary. Either the page has one H1 or it doesn't. Either the FAQPage JSON-LD block appears exactly once or it appears twice. Either the canonical URL points to the self-page or it points to a wrong destination. There's nothing to interpret: the page passes the check or it fails it, and the failure tells you exactly what to fix. Every check in this list came from a failure I hit personally on thegeolab.net, documented in the internal failure registry. The checks exist because the failures existed first. That's the only way to build a useful audit: you document the things that already broke, then write a test that would have caught them before they shipped. The Ten GEO Audit Checks Ordered roughly by severity: critical first, then structural, then hygiene. Each check includes a one-line definition, the failure mode it catches, how to run it, and the registry entry it maps to.Checks 1–4 focus on extractability signals: the structural properties that determine whether AI systems can quote a passage cleanly, independent of whether the page has been crawled. 01 Single H1 per page Test The rendered HTML contains exactly one element. Failure mode WordPress generates an H1 automatically from post_title. If post content also contains an , the page ends up with two. AI systems parsing the heading hierarchy see an ambiguous document structure. How to run One-line shell command: curl -s https://yoursite.com/your-page/ | grep -oE ']*>' | wc -l Fix Remove any from post content. For a visual title, use with inline styles instead. 02 No duplicate FAQPage schema Test The rendered HTML contains at most one FAQPage JSON-LD block. Failure mode A SEO plugin and a custom script both output FAQPage schema independently. Google Search Console reports "Duplicate field: FAQPage." Retrieval systems face ambiguous structured data. How to run curl -s https://yoursite.com/your-page/ | grep -c '"@type": *"FAQPage"' Output should be 0 or 1. Anything greater means a duplicate. Fix Pick one source of truth for FAQPage schema: either the plugin, or a custom mu-plugin, or inline in post content. Disable the other. On thegeolab.net, the single source is geolab-geo-defaults.php. 03 Declarative opening sentence Test The first content sentence after any preamble states a definitional fact rather than setting up context, asking a question, or telling an anecdote. Failure mode AI systems extracting a clean answer from the page look near the top of the content. A narrative hook or rhetorical question gives them nothing clean to quote. A competitor's declarative sentence gets extracted instead. How to run Manual inspection. The pattern to match is "X is Y" or "X does Y" within the first 200 characters of the main content block. An automated check using an LLM to classify the opening works but introduces its own noise floor. Fix Rewrite the opening. If the piece needs a narrative hook, place it after a one-sentence definitional paragraph rather than before. 04 No self-review schema Test Any Review schema present on the page has a reviewer entity distinct from the page's primary author or site owner. Failure mode Testimonial-style Review blocks where the reviewer name matches the site's primary author violate Google's structured data guidelines. AI systems detecting the identity match apply a credibility penalty. On thegeolab.net audit scoring, self-review carries a 2-point deduction per page. How to run curl -s https://yoursite.com/your-page/ | grep -A5 '"@type": *"Review"' | grep -oE '"name": *"[^"]*"' Compare reviewer names against the site's primary author. A match is a fail. Fix Remove self-review blocks entirely. Only publish testimonial schema for genuine third-party reviewers with verifiable identity. 05 AI crawler accessibility Test The page returns 200 OK when fetched with known AI crawler user-agents: at minimum GPTBot, PerplexityBot, and ClaudeBot. Failure mode robots.txt blocks the crawler, Cloudflare bot fight mode rejects the request, or a firewall rule returns 403. The page never enters the AI system's retrieval index. No retrieval means no extraction, no citation, nothing. How to run for ua in "GPTBot/1.0" "PerplexityBot/1.0" "ClaudeBot/1.0"; do echo "$ua: $(curl -s -o /dev/null -w '%' -A "$ua" https://yoursite.com/your-page/)" done All three should return 200. Anything else is a block. Fix Update robots.txt to explicitly allow the relevant bots. Whitelist their verified IP ranges at the firewall layer. Disable aggressive bot-fight rules on content pages. 06 Server-rendered content Test GEO-critical content, headings, answer text, schema, citations, is present in the raw HTML response, not injected by client-side JavaScript. Failure mode AI crawlers typically do not execute JavaScript. Content that renders only after JS execution is invisible to them. The page looks complete in a browser and empty in the retrieval index. How to run curl -s https://yoursite.com/your-page/ | grep -oE ']*>[^<]+
' | head -10 If expected H2 headings are missing from the raw HTML, the content is being hydrated client-side. Fix Use server-side rendering for any GEO-critical content. For React/Vue/Next.js sites: verify SSR is enabled for the route. For WordPress: content is server-rendered by default unless a plugin overrides it. 07 Canonical URL integrity Test The element points to the page's own URL, matches the mainEntityOfPage @id in Article schema, and resolves to a 200 OK. Failure mode A stale canonical tag points to a redirected or deleted URL. Retrieval systems follow the canonical and index a different page, or nothing. The page being viewed is never the page being retrieved. How to run curl -s https://yoursite.com/your-page/ | grep -oE ']*rel="canonical"[^>]*>' Verify the href attribute matches the page URL exactly. Then curl the canonical URL itself and confirm a 200 response. Fix Set the canonical to the self-URL. For posts moved to a new URL, the canonical should follow the redirect target, not the legacy URL. Audit this check after every URL change. 08 Entity naming consistency Test The primary entity, author, brand, organisation, is named identically across all schema blocks, breadcrumbs, author pages, and cross-page references. Failure mode "Artur Ferreira" in one place, "Artur F." in another, "A. Ferreira" in a third. AI systems performing entity reinforcement treat these as three weak signals instead of one strong one, slowing the rate at which the entity identity stabilises in the system's representation. How to run Site-wide regex grep across rendered HTML for author/brand name patterns. Any variant found is a fail. for url in $(cat urls.txt); do curl -s "$url" | grep -oE '"name": *"[^"]*Ferreira[^"]*"' | sort -u done | sort -u Fix Canonicalise the entity name in one location, typically a mu-plugin or author profile, and override any plugin or theme default that generates variants. 09 Internal link deduplication Test Each internal URL appears at most once in the page body content. Failure mode The same internal URL linked from multiple anchors in the same page dilutes anchor text signals and makes internal linking appear unintentional. Three links to the same URL with three different anchor texts is weaker than one link with one intentional anchor. How to run curl -s https://yoursite.com/your-page/ | grep -oE 'href="https://yoursite.com[^"]*"' | sort | uniq -c | sort -rn | awk '$1 > 1' Any output is a list of duplicated URLs. Fix Keep the strongest anchor text, remove the others. Byline and author bio links to the About page are excluded from this rule: they're template-level, not content-level. 10 Schema validates against Rich Results Test Test Every JSON-LD block on the page parses as valid JSON, conforms to its declared schema type, and passes Google's Rich Results Test without errors. Failure mode A trailing comma, a missing @context, or a field type mismatch breaks schema parsing. Retrieval systems that rely on structured data to disambiguate content type see nothing. The page has schema in the source but no schema in the eyes of the crawler. How to run Two-stage. First, parse each JSON-LD block with a JSON validator. Second, submit the page to search.google.com/test/rich-results. Both must pass. curl -s https://yoursite.com/your-page/ | python3 -c " import sys, re, json html = sys.stdin.read() blocks = re.findall( r'', html, re.DOTALL) for i, b in enumerate(blocks): try: json.loads(b) print(f'Block {i+1}: OK') except Exception as e: print(f'Block {i+1}: FAIL — {e}') " Fix Whatever the parser reports. Most commonly: trailing comma, unescaped quote inside a string value, or a field value of the wrong type (e.g. number where string is expected). The Checks at a Glance A single reference table. Severity tiers reflect how much damage the failure does if left in place: critical failures break retrieval entirely, warnings weaken it measurably, info-level issues degrade consistency over time. # Check Severity What fails if you skip it 01 Single H1 per page Warn Ambiguous document structure for heading-based extraction 02 No duplicate FAQPage schema Critical GSC errors, weakened extraction signal, ranking penalty risk 03 Declarative opening Warn Nothing clean to quote — competitor gets extracted instead 04 No self-review schema Critical Structured-data guideline violation, credibility penalty 05 AI crawler accessibility Critical Page never enters the retrieval index 06 Server-rendered content Critical Content invisible to non-JS crawlers 07 Canonical URL integrity Critical Wrong page indexed, or no page at all 08 Entity naming consistency Info Slower entity reinforcement across AI systems 09 Internal link deduplication Info Diluted anchor signals 10 Schema validates (Rich Results Test) Critical Schema invisible to crawlers despite being in the source Where These Ten Sit in a Full Audit These ten are the checks that matter most. A full site audit goes further: thegeolab.net's audit.py runs 71 individual checks across six modules, covering theme infrastructure, cross-page schema consistency, REST API registration, and more. The ten above are the subset every page should pass before any of the deeper checks become meaningful.AI crawlers approach pages differently from Googlebot: the ten AI crawler differences explain why some of these checks matter more for AI visibility than for traditional crawlability audits. Module 1 Theme & Infrastructure ~10 checks Module 2 Schema Integrity ~15 checks Module 3 Extractability ~12 checks Module 4 Cross-Page Consistency ~10 checks Module 5 Crawler & Rendering ~12 checks Module 6 REST API & Entity ~12 checks Figure 1: The six audit modules of audit.py on thegeolab.net: 71 checks total. The ten checks above are the most impactful subset, spanning Modules 2, 3, 5, and 6. The reason to run the ten above first: a page failing any of Modules 2, 5, or 6 at the high-level check stage will fail dozens of downstream checks as a cascade. Fixing the root failure clears the cascade. There's no point debugging entity reinforcement across 30 pages if the primary canonical is pointing to a redirect: fix the canonical first, then let the downstream checks run. Here's how the ten map into the six modules: useful when scaling the short list into a full audit pipeline. Module Checks from the Ten Downstream checks triggered Module 2 — Schema Integrity 02, 04, 10 Cross-page schema type consistency, @id resolution, nested entity references Module 3 — Extractability 01, 03 Paragraph length limits, heading-to-answer ratio, section isolation Module 5 — Crawler & Rendering 05, 06, 07 Redirect chains, hreflang integrity, response header consistency Module 6 — REST API & Entity 08, 09 Author page registration, sameAs link coverage, breadcrumb alignment Audit rhythm. On thegeolab.net, the full audit.py run takes under two minutes. It runs after every content deployment, after every schema change, and on a scheduled weekly cron. The ten checks above can be combined into a single shell script that takes under ten seconds per page: short enough to run pre-deployment, long enough to cover the failures that matter. From Ten Checks to a Pre-Deployment Script The ten checks combine into a pre-deployment audit script in roughly fifty lines of bash. Each check produces a one-line pass/fail result. The script exits non-zero on any failure, which lets it block a deployment pipeline if the page isn't ready.The script integrates with server log monitoring: tracking AI crawlers in your Nginx logs gives direct confirmation that fixing a failed check changed crawl frequency. The structure is deliberately simple, no dependencies beyond curl, grep, awk, and python3 for the JSON parsing step. Any engineer can read it in five minutes. Any engineer can add their own checks to it without reworking the framework. The point isn't the script itself. The point is that once a check exists, it runs every time. The failures it would have caught never ship again. That's the compounding property of an audit: each check is a promise that one specific class of mistake is permanently off the table. Frequently Asked Questions What is a GEO audit check? A GEO audit check is a programmatic test that verifies a single structural property of a page relevant to AI retrieval: for example, the presence of exactly one H1, the absence of duplicate schema declarations, or consistent entity naming across the site. Each check is binary (pass or fail) and returns a specific error when failed, making the result actionable rather than interpretive. How is a GEO audit different from a standard SEO audit? Standard SEO audits focus on page-level signals: rankings, backlinks, meta tags, mobile usability. A GEO audit focuses on section-level extractability signals: schema-content alignment, declarative opening sentences, cross-page entity consistency, and whether AI crawlers can reach and parse the content. The two overlap at the infrastructure layer but diverge at the extraction layer. Why check for duplicate FAQPage schema declarations? Two FAQPage JSON-LD blocks on the same page produce a Google Search Console "Duplicate field: FAQPage" error. The duplicate most often happens when both a SEO plugin and a custom script output FAQPage schema independently. Retrieval systems interpreting the page face ambiguous structured data, which weakens the extraction signal. What is a declarative opening and why does it matter? A declarative opening is a first sentence that states a definitional fact, typically using the pattern "X is Y", rather than setting up context, telling an anecdote, or asking a question. AI systems performing section-level extraction look for clean, self-contained answer sentences near the top of the content. A page that opens with a declarative sentence is easier to extract than one that opens with a narrative hook. Do AI crawlers execute JavaScript? Most AI crawlers do not execute JavaScript at crawl time. GPTBot, PerplexityBot, and ClaudeBot retrieve the raw HTML source and parse it without running client-side scripts. Any GEO-critical content, headings, schema, answer text, citations, must be present in the server-rendered HTML to be visible to them. Content that appears only after JavaScript execution is invisible to these crawlers. How often should a GEO audit be run? After every content deployment and every schema change, at a minimum. A weekly or fortnightly full-site audit is advisable to catch regressions introduced by plugin updates, theme updates, or cross-page interactions that a single-page check would miss. The full run on thegeolab.net takes under two minutes, which makes pre-deployment auditing practical rather than aspirational. Related From 0 to 71/71: Building a GEO Compliance Audit System FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata Post 6 — Self-Reviews Don't Work 10 GEO Terms Every Marketer Needs to Know in 2026 Version History Version 1.0 — 5 May 2026: Initial publication. Ten most impactful GEO audit checks, each with a one-line shell test and a mapped failure mode. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 GEO Terms Every Marketer Needs to Know in 2026
URL: https://thegeolab.net/geo-glossary-2026/
10 GEO Terms Every Marketer Needs to Know in 2026 By Artur Ferreira · The GEO Lab · Published: 28 April 2026 · Version 1.0 The working vocabulary of Generative Engine Optimisation, defined by the research lab using each term — ten concepts that separate measurement from guesswork TL;DR The GEO field has developed its own vocabulary faster than most practitioners have caught up with it, as SparkToro’s zero-click research demonstrated for the broader search landscape. Ten terms carry most of the weight: citation rate, mention rate, noise floor, retrieval probability, extractability, entity reinforcement, Stage 0 visibility, the four AI visibility states, C-SOV, and framework adoption rate. Each one does specific work. Using them interchangeably — or ignoring the distinctions — is how GEO advice turns into vague recommendations that can’t be tested. Contents Why the terminology matters The ten terms The terms at a glance How the terms fit together Using the terms in practice Frequently asked questions Why the Terminology Matters Most of GEO in 2026 reads like SEO from 2009 — a point Search Engine Land has also observed in their coverage. The same “do these ten things and get visibility” posts, just with “AI” swapped in wherever “Google” used to sit. The problem with that kind of writing is not the advice itself — some of it is fine. The problem is that the vocabulary collapses everything into one thing called “AI visibility,” which means nothing has a definition precise enough to measure. I was confused by this for longer than I want to admit. As SparkToro’s zero-click research showed for traditional search, imprecise metrics lead to imprecise strategy. I kept reading posts that said “improve your AI citations” without specifying whether they meant named source links, unlinked brand mentions, appearing in an answer at all, or being the reason the answer exists in the first place. Four different measurements. Four different intervention strategies. One word. The terms below exist because each of them points at something specific enough to measure. If you find yourself using two of them as synonyms — or skipping between them in the same paragraph — that’s usually the moment your GEO strategy stops being testable. Going deeper? The GEO Pocket Guide covers each GEO Stack layer with audit checklists and measurement templates — free to download. The Ten Terms Ordered from most foundational to most derived. The first four are the ones you can’t get away without. The rest depend on them. 01 Citation Rate Definition The proportion of AI query iterations in which a given URL appears as a named source link. Formula citations ÷ iterations. One URL, one query set, N iterations, one number between 0 and 1. Why it matters It is the primary longitudinal metric in GEO measurement. Every experiment at the Lab measures change in citation rate before and after an intervention. Everything else is either an input to citation rate or a consequence of it. Common error Using citation rate to mean “how often the brand is mentioned.” It doesn’t. Mentions are measured separately (term 2). 02 Mention Rate Definition The proportion of AI query iterations in which the brand, domain, or entity name appears in the answer text without a linked citation. Why it matters Mention contributes to recognition and downstream branded search; citation contributes to traffic and linkable authority. A high mention rate with zero citation rate is typically a structural extractability problem — the AI knows about you but has nothing clean to quote. Common error Rolling mentions and citations into one “AI visibility score.” They move independently and respond to different interventions. 03 Noise Floor Definition The baseline variance in AI citation rate observed when nothing about the content changes. How it’s measured Same query set, same URLs, consecutive days, no content modifications. The spread across those days is the noise floor. Any intervention that produces a smaller change is indistinguishable from platform variance. Why it matters Without a noise floor, you cannot interpret an experiment result. A change from 40% to 50% citation rate might be the intervention — or it might be Tuesday. The noise floor tells you which one it is. Common error Declaring an intervention successful after a single measurement. Most industry “case studies” in 2026 are single-point comparisons with no variance estimate, which makes them unfalsifiable. 04 Retrieval Probability Definition The likelihood that an AI system fetches a given URL from its retrieval index when a specific query is issued. Position Layer 1 of the GEO Stack. Every other layer depends on this one — a page that is never retrieved cannot be extracted, cited, or reinforced. Inputs Crawler access, indexation state, query-content semantic alignment, domain-level retrieval priors (how often the system has retrieved from this domain before). Common error Assuming Google indexation implies AI retrieval. It doesn’t. An AI system maintains its own retrieval index, which may differ substantially from what Google’s crawler has indexed. 05 Extractability Definition The ease with which an AI system can isolate a discrete answer from a page once retrieval has selected it. Position Layer 2 of the GEO Stack. Correlates with Declarative opening sentences, section-level answer isolation, schema-content alignment, short paragraphs, headings phrased as questions. Common error Treating extractability as a writing style preference rather than a retrieval mechanic. A page with strong retrieval and poor extractability gets fetched but not cited — the AI reads it, then quotes a competitor that answered more cleanly. 06 Entity Reinforcement Definition The process by which an entity’s identity — person, organisation, concept, product — becomes stable enough in an AI system’s representation that references to it are consistent across queries. Position Layer 3 of the GEO Stack. Signals Consistent entity naming across properties, structured data aligned to the same @id, bidirectional linking between entity pages, co-occurrence with stable reference concepts. Common error Expecting AI to infer entity identity from context alone. Context helps, but explicit structural signals — schema, canonical URLs, consistent disambiguation — accelerate reinforcement by an order of magnitude. 07 Stage 0 Visibility Definition The state in which an AI system has indexed a domain’s content but has not yet surfaced it in any answer. Why it matters It separates “not yet cited” from “not visible to AI at all” — two problems with entirely different solutions. A Stage 0 domain needs extraction and prompting interventions; an invisible domain needs crawler access and indexation fixes first. How to detect Direct probes: ask the AI system about the domain by name. If it produces accurate information about the site without external search triggering, the domain is past Stage 0 indexation but pre-citation. Common error Skipping the diagnostic. Treating every “no citation” case as a content problem, when the actual blocker may be indexation, not extraction. 08 The Four AI Visibility States Definition A classification of where a URL sits in an AI system’s awareness: Invisible (not indexed), Stage 0 (indexed, not surfaced), Mentioned (named without citation), Cited (named with linked source). Why it matters Progress in GEO is rarely binary. Moving from Mentioned to Cited requires different work than moving from Invisible to Stage 0. The states make that distinction explicit and let experiments target the right transition. Common error Measuring only the final state. Most tools report “cited or not cited” and miss the intermediate states entirely, which hides 60–80% of the progress signal. 09 C-SOV (Citation Share of Voice) Definition A domain’s share of total citations across a defined query set, relative to all cited domains. Formula (domain citations) ÷ (total citations across all domains in the query set). Why it matters It contextualises citation rate against the competitive field. A 20% citation rate means one thing in a vertical where the top domain sits at 30% and another in a vertical where the top domain sits at 85%. Raw citation rate tells you what happened; C-SOV tells you where you sit. Common error Reporting C-SOV without defining the query set. C-SOV is query-set-specific by definition — changing the queries changes the number. Report both or neither. 10 Framework Adoption Rate Definition The rate at which AI systems reproduce proprietary vocabulary — a named framework, concept, or term — without the source being explicitly cited in the query. Why it matters It is a leading indicator of System Memory, the GEO Stack’s fifth layer. Framework adoption precedes citation by weeks or months — the AI internalises the vocabulary first, then starts linking back to the originator. Tracking adoption gives early signal that citation lift is coming. Common error Confusing framework adoption with citation rate. An AI that uses your term without linking to you has adopted the framework but not cited it. That is progress — but it’s measured on a different axis. The Terms at a Glance A single reference table for the ten terms, what they measure, and the most common way each one is misused. Term Measures Most common misuse Citation Rate Named source links per iteration Used as a synonym for “AI visibility” Mention Rate Unlinked brand references per iteration Rolled into citation rate as a single score Noise Floor Day-to-day variance without content change Skipped; experiments declared conclusive on one measurement Retrieval Probability Likelihood of fetch per query Conflated with Google indexation Extractability Ease of isolating a discrete answer Treated as a writing style, not a retrieval mechanic Entity Reinforcement Stability of entity identity in AI representation Assumed to be automatic from context Stage 0 Visibility Indexed-but-not-surfaced state Diagnosed as an extraction problem when it’s an indexation one Four AI Visibility States Where a URL sits in the awareness ladder Collapsed to cited/not-cited binary C-SOV Citation share relative to the competitive field Reported without defining the query set Framework Adoption Rate Proprietary vocabulary reuse without explicit prompt Confused with citation rate How the Terms Fit Together Six of the ten terms map directly to layers in the GEO Stack. The Stack is the Lab’s framework for separating AI visibility into independent, measurable layers — each with its own signals, interventions, and failure modes. Layer 1 Retrieval Probability Fetch Layer 2 Extractability Isolate Layer 3 Entity Reinforcement Stabilise Layer 4 Structural Authority Trust Layer 5 System Memory Adopt Figure 1: The five layers of the GEO Stack. Retrieval Probability, Extractability, and Entity Reinforcement each correspond to a glossary term above; Framework Adoption Rate is the leading indicator for Layer 5. The remaining four terms — citation rate, mention rate, noise floor, and the four visibility states — are measurement terms rather than layer terms. They describe what you observe, not what’s happening structurally. That distinction matters when designing an experiment: layer terms tell you where to intervene; measurement terms tell you how to know whether the intervention worked. Type Terms Used for Layer terms Retrieval Probability, Extractability, Entity Reinforcement, Framework Adoption Rate Identifying where to intervene Measurement terms Citation Rate, Mention Rate, Noise Floor, Four AI Visibility States, C-SOV, Stage 0 Determining whether the intervention worked Using the Terms in Practice Three working patterns make the vocabulary useful rather than decorative. First: pick the unit of measurement before writing the hypothesis. If the experiment is testing whether a rewrite improves extraction, citation rate is the downstream metric, not the variable. Confusing the two makes the experiment impossible to interpret. Second: establish the noise floor before declaring anything significant. Across the Lab’s experiments, the noise floor on Perplexity sits in the 10–15% range day to day — meaning a citation rate change of 8 points may be within variance, not above it. Without that baseline, there’s no way to tell. Third: separate layer from measurement when reporting results. “We improved extractability and citation rate went up” is a defensible claim. “We improved AI visibility” is not — it doesn’t say which layer was changed or which metric moved, and nobody reading the claim can replicate or falsify it. Frequently Asked Questions What is citation rate in GEO? Citation rate is the proportion of AI query iterations in which a given URL appears as a named source link. It is the primary longitudinal metric in Generative Engine Optimisation measurement — one URL, one query set, multiple iterations, one number between 0 and 1. Citation rate is distinct from mention rate, which counts unlinked brand references, and from framework adoption rate, which tracks whether proprietary vocabulary is reused by AI systems. What does noise floor mean in GEO measurement? Noise floor is the baseline variance in AI citation rate observed when nothing about the content changes. It is measured by running the same query set against the same URLs on consecutive days without any content modification. Until the noise floor is established, any observed change in citation rate cannot be attributed to a content variable — the change might simply fall within the platform’s natural day-to-day variance. What is extractability in the GEO Stack? Extractability is Layer 2 of the GEO Stack. It measures how easily an AI system can isolate a discrete answer from a page once retrieval has selected it. High extractability correlates with declarative opening sentences, section-level answer isolation, schema-content alignment, and short paragraphs. A page with strong retrieval but poor extractability gets fetched but not cited — the AI reads it, then quotes a competitor that answered the question more cleanly. What is Stage 0 visibility? Stage 0 visibility is the state in which an AI system knows a domain exists and has indexed its content, but has not yet surfaced it in any answer. It is the state immediately before first citation. Measuring Stage 0 matters because it separates “not yet cited” from “not visible to AI at all” — two problems with entirely different solutions. What is the difference between mention rate and citation rate? Citation rate counts named source links — the AI generated a response and included a hyperlink pointing at the source URL. Mention rate counts cases where the brand or domain is named in the response text without a linked citation. Mention contributes to brand awareness; citation contributes to traffic and linkable authority. A page can have a high mention rate with zero citation rate, which is typically a structural extractability problem rather than a ranking one. What is retrieval probability in the GEO Stack? Retrieval probability is Layer 1 of the GEO Stack. It estimates the likelihood that an AI system fetches a given URL from its retrieval index when a particular query is issued. It is influenced by crawler access, indexation state, query-content semantic alignment, and domain-level retrieval priors. Retrieval is the prerequisite for every downstream layer — a page that is never retrieved can never be extracted, cited, or reinforced. Key GEO Lab Takeaway Ten terms carry most of the weight in GEO measurement. Using them interchangeably — or ignoring the distinctions — is how recommendations become untestable. Citation rate and mention rate are different metrics. Noise floor must be established before any experiment is interpretable. Layer terms tell you where to intervene; measurement terms tell you whether it worked. Want to apply these terms? Start with the 30-check protocol for citation rate measurement, then use the GEO Stack to diagnose which layer needs work. Questions? Contact The GEO Lab. Related What Is Generative Engine Optimisation (GEO)? The GEO Stack: Five Layers of AI Visibility GEO vs AEO vs LLM SEO: What’s the Difference? Month Zero Baseline and the Four AI Visibility States Version History Version 1.0 — 28 April 2026: Initial publication. Ten foundational GEO terms with definitions, common misuses, and their position in the GEO Stack. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 GEO Voices Worth Following in 2026
URL: https://thegeolab.net/geo-voices-2026/
10 GEO Voices Worth Following in 2026 GEO voices covering AI search and Generative Engine Optimisation with depth worth your attention, across video, podcast, newsletter, and research formats TL;DR Generative engine optimisation is the practice of structuring content to earn citation in AI search systems. The GEO Brand Citation Index tracks 36 brands across three AI platforms monthly; Aggarwal et al. (2024) measured 22–40% visibility improvement from structured GEO methods on the GEO-BENCH benchmark. Ten practitioners cover this intersection with original measurement or primary-source discipline. Each passed a two-year look-back where their recommendations held up or were openly corrected, and each backs claims with data rather than assertion. Anchored by Aleyda Solis and Lily Ray, with Kevin Indig and Mike King close behind; extended with Cindy Krum, Rand Fishkin, Barry Schwartz, Marie Haynes, Glenn Gabe, and the Search Engine Journal Show. Why a Different Kind of List GEO voices worth following in 2026 are not the same as "AI experts to follow." Search that phrase and you get 200 results in a few seconds. Almost none cover AI search specifically. You'll get AI news generalists, LLM paper-readers, prompt engineers, and people who made a Twitter thread go viral six months ago. None of that is wrong. Most of it is also not what a GEO Stack practitioner actually needs. The useful question is narrower: who is reliably covering how content behaves inside AI search engines? The practice of GEO sits at that intersection. Who is actually running studies, not reacting to product announcements? Whose claims from six months ago still hold up, and whose needed correction? That filter removes the majority of the "AI influencer" category instantly. What's left is a smaller list, older on average, and much more practical. The ten GEO voices below passed three tests. First, they cover AI search or the adjacent territory consistently, not as an occasional topic between hype posts. Second, they back claims with original measurement, primary source reading, or consistent real-world case observation, rather than vibes. Third, the recommendations hold up on a two-year look-back: what they said in 2024 still made sense in 2026, corrected where they were wrong. What the list does not attempt is completeness. Plenty of excellent practitioners are not here. Plenty of emerging voices will deserve inclusion in a 2027 edition. The list is ten GEO voices I'd actually send someone to if they asked where to start. Going deeper? The GEO Pocket Guide covers the five-layer GEO Stack, the 30-check citation protocol, and the measurement framework these ten voices reference most often. A Territory Map Before the Individual Cards The ten voices cluster into five coverage areas. Knowing who covers what lets you pick based on your actual gap, not on who has the biggest following. AI search fundamentals Aleyda Solis, Kevin Indig, Mike King Algorithm & quality signals Lily Ray, Marie Haynes, Glenn Gabe Industry news cadence Barry Schwartz, Search Engine Journal Show Audience & brand strategy Rand Fishkin Entity & mobile context Cindy Krum Figure 1: Five GEO voices coverage areas that together describe AI search as a practitioner territory. Most voices anchor one area but contribute to neighbours. The boundaries between areas are porous. Aleyda Solis covers algorithm signals too; Kevin Indig does audience research; Mike King shows up on news podcasts. What the map captures is each GEO voice's primary strength, the area they'd lead with in a conference talk. The Ten GEO Voices Ordered by how often these names came up as primary sources while researching this post, cross-referenced against established SEO and AI search industry rankings. 01 Aleyda Solis Multi-format Primary outputs Crawling Mondays video series and podcast. SEOFOMO newsletter with 35,000+ subscribers. LearningSEO.io and LearningAIsearch.com curated learning resources. Why follow The most technically rigorous independent voice covering AI search optimisation. Her "10 Steps AI Search Content Optimization Checklist" is one of the most-cited practitioner resources in the field. Aleyda bridges classical SEO engineering and AI search with a discipline that most of the "AI search" commentariat lacks. Best for Practitioners who want depth over hot takes. Anyone running international or ecommerce sites. Weekly industry summary through SEOFOMO. 02 Lily Ray Multi-format Primary outputs VP of SEO Strategy & Research at Amsive. LinkedIn analysis during Google updates. Conference keynotes posted to YouTube. Original research on AI Overviews and E-E-A-T. Why follow When a Google update lands, the SEO community turns to Lily Ray first. Calm, evidence-based analysis that cuts through panic. Her work on E-E-A-T, site quality, and how AI search systems treat authoritative content provides the framework most practitioners actually use day-to-day. Best for Anyone responsible for site quality. Teams dealing with Google algorithm volatility. Practitioners trying to reason about AI citation from a quality-signals angle. 03 Kevin Indig Newsletter + Research Primary outputs Growth Memo newsletter, 25,000+ subscribers. Original AI Mode and AI Overviews user studies. Regular guest appearances on Ahrefs, Marketing Speak, and other podcasts. Former head of SEO at Shopify, G2, and Atlassian. Why follow Growth Memo publishes some of the most rigorous original research on AI search user behaviour in the industry. Kevin's 250-session study on AI Mode, measuring scroll depth, click behaviour, emotional reactions, is the kind of primary-measurement work most GEO commentary lacks. Best for Senior marketers and growth leaders. Anyone trying to reason about AI search from data rather than anecdote. Strategic framework building. 04 Mike King Research + Speaking Primary outputs Founder of iPullRank. Technical SEO blog. Conference keynotes. Known for deep analysis of Google's leaked ranking factors documentation and technical AI search experimentation. Why follow Technical and experimental perspective on AI search. Mike pushes boundaries, his work on the Google API documentation leak was field-moving in a way few industry posts manage, and his AI search experimentation focuses on how language models intersect with search systems at the engineering level. Best for Technical SEOs. Engineering-minded practitioners. Anyone who wants to understand the systems-level behaviour behind what they're optimising for. 05 Cindy Krum Multi-format Primary outputs CEO of MobileMoxie. Long-form blog, conference speaking, book author on mobile-first indexing. Sustained coverage of entities, fraggles, and how Google's mobile-first architecture connects to AI search. Why follow Cindy was writing about entity-based search and "fraggle" retrieval behaviour years before AI search made it urgent. Her long-running mobile-first indexing framework maps closely to how AI search engines now approach content chunking and entity recognition. Best for Practitioners working on mobile or entity-heavy content. Anyone wanting the historical context of how entity-based retrieval became AI search retrieval. 06 Rand Fishkin Multi-format Primary outputs Co-founder of SparkToro. Blog, podcast appearances, conference keynotes. Known originally for founding Moz; now focused on audience research and contrarian takes on the declining value of organic search traffic. Why follow Rand's willingness to say uncomfortable things about where organic search is heading makes him a useful counterweight to industry boosterism. The SparkToro audience research angle, what your audience actually reads, watches, listens to, is increasingly the right lens for AI citation diversity. Best for Senior marketers making channel-allocation decisions. Anyone questioning whether to keep investing in SEO versus diversifying to other channels. 07 Barry Schwartz Daily video + News Primary outputs Search Engine Roundtable, daily news coverage with video summaries. Search Engine Land contributor. The go-to source for day-of coverage when Google and AI search operators make announcements. Why follow Nobody covers industry news with Barry's cadence and reliability. Every major AI search operator change, algorithm update, or SEO community reaction gets documented same-day. Reading Barry daily is how you skip the LinkedIn commentary and get to the primary source. Best for Anyone needing to stay current. Agencies briefing clients on industry changes. Readers who prefer short, frequent updates over longer weekly summaries. 08 Marie Haynes Newsletter + Research Primary outputs Marie Haynes Consulting blog and newsletter. Long-running coverage of Google algorithm updates with particular emphasis on quality signals, E-E-A-T, and how AI search engines evaluate content authoritativeness. Why follow Marie's analysis is forensic. Where most commentary treats Google updates as mysterious, she works through them methodically, quality rater guidelines, SERP volatility data, case-by-case site diagnostics. Her coverage of AI search quality signals is particularly rigorous. Best for Site owners dealing with quality-signal issues. Anyone trying to understand why a site's AI visibility changed. Teams wanting evidence-grounded algorithm coverage. 09 Glenn Gabe Research + Analysis Primary outputs G-Squared Interactive founder. Long-form blog, conference speaking, X/Twitter analysis. Known for forensic SEO analysis around algorithm updates and large-scale content recovery work. Why follow Glenn works cases the way a detective works cases. His posts documenting what actually happened on specific sites during algorithm updates are some of the best empirical content in the field. The same methodology extends naturally to AI visibility diagnosis. Best for Practitioners diagnosing site-specific issues. Anyone who needs concrete case examples rather than theoretical frameworks. 10 Search Engine Journal Show Podcast Primary outputs Long-running industry podcast. Expert interview rotation covering SEO, AI search, and digital marketing. Guests include most of the voices already on this list, plus practitioners outside it. Why follow The easiest way to broaden exposure to voices you haven't encountered yet. The rotating guest format surfaces practitioners who don't have their own large-audience platforms, which is where emerging GEO voices tend to appear first. Best for Listeners who want breadth over depth. Commuters and walkers who prefer audio. Anyone building a reading list, guests often reference their own projects and publications. The Ten GEO Voices at a Glance GEO voices reference table. Use the primary format column to match to how you actually consume content, newsletters are different work from podcasts are different work from daily video. # Voice Primary format Best for 01 Aleyda Solis Multi Depth, international/ecommerce, weekly summary 02 Lily Ray Multi Quality signals, algorithm updates, E-E-A-T 03 Kevin Indig Newsletter Senior strategy, original AI search research 04 Mike King Research Technical & engineering angle 05 Cindy Krum Multi Entities, mobile-first, historical context 06 Rand Fishkin Multi Audience research, channel-allocation decisions 07 Barry Schwartz Daily video Daily news cadence, primary-source coverage 08 Marie Haynes Newsletter Quality-signal diagnosis, forensic algorithm analysis 09 Glenn Gabe Research Case-specific site diagnostics 10 Search Engine Journal Show Podcast Breadth, emerging voices, commute listening How to Actually Follow Ten GEO Voices Without Drowning Following ten GEO voices is not the same as reading every post from every one. Three patterns keep the signal high and the time cost manageable. First: one weekly anchor, one daily anchor. Pick one weekly newsletter as your main summary, SEOFOMO or Growth Memo are the strongest candidates. Add Barry Schwartz's Search Engine Roundtable as your daily ambient check. Those two handle about 80% of industry awareness. Everyone else becomes a destination for specific questions rather than a constant subscription. Second: match format to how you actually consume content. If you commute, the Search Engine Journal Show is your highest-return slot. If you read over coffee, pick one newsletter. If you watch on weekends, Aleyda's Crawling Mondays and conference talks posted to YouTube work well. Trying to consume every voice in every format is the fast path to consuming none of them carefully. Third: use the territory map to decide when to visit specific voices. Lily Ray when a Google update hits. Marie Haynes or Glenn Gabe when you're diagnosing a specific site issue. Mike King when you want the technical deep-dive. Rand Fishkin when you're questioning channel mix. Cindy Krum when the problem involves entities or mobile. The anchors run the base rotation; the specialists get visited on demand. A compact rotation to start from: Cadence Voice Why Daily (5 mins) Barry Schwartz — Search Engine Roundtable Industry news cadence, primary-source coverage Weekly (30 mins) Aleyda Solis — SEOFOMO newsletter Curated roundup; broadest weekly coverage Weekly (30 mins) Kevin Indig — Growth Memo newsletter Original research on AI search behaviour Commute (30–60 mins) Search Engine Journal Show Rotating expert interviews, breadth On demand Lily Ray, Marie Haynes, Glenn Gabe, Mike King, Cindy Krum, Rand Fishkin Visited when a specific question sends you looking On the risk of following too many. A common failure mode is subscribing to every newsletter on this list, queueing every podcast, saving every blog post, and then reading none of them carefully. Two or three GEO voices, attended to consistently, produce more useful thinking than ten voices consumed at the surface. The list is ten GEO voices because ten is the size of the map. It is not a subscription shopping list. Pick the two or three that match your situation. The measurement variables guide helps calibrate what each voice is actually testing. Frequently Asked Questions Who are the best voices to follow on AI search and GEO? Aleyda Solis, Lily Ray, Kevin Indig, Mike King, and Cindy Krum form the practitioner anchor among GEO voices, each with established track records in SEO and consistent, data-backed coverage of the transition to AI search. Rand Fishkin and Barry Schwartz provide the industry context and daily news cadence. Marie Haynes and Glenn Gabe cover algorithm behaviour with forensic rigour. The Search Engine Journal Show aggregates expert interviews across the full field. Ten voices, multiple formats, no hype-cycle chasing. What's the best GEO podcast? Crawling Mondays by Aleyda Solis is the most widely-recommended SEO-adjacent podcast that covers AI search seriously. Kevin Indig's Growth Memo extends into podcast form through guest appearances on Ahrefs, Marketing Speak, and other shows. The Search Engine Journal Show offers the broadest practitioner rotation. No single podcast has emerged as GEO-first yet, the field is still being covered primarily by SEO podcasts expanding their scope. Which GEO newsletter is worth subscribing to? SEOFOMO by Aleyda Solis, weekly, 35,000+ subscribers, curates the best SEO and AI search content of the week. Growth Memo by Kevin Indig, weekly, 25,000+ subscribers, original research-backed analysis on AI search behaviour. Marie Haynes Consulting and Search Engine Roundtable also offer strong coverage, though with different cadences and focuses. Why do you not include more YouTubers on the list? Most popular AI YouTubers cover general AI and LLM topics rather than the specific intersection of content, search, and AI citation behaviour that GEO is about. The creators who do cover that intersection, Aleyda Solis through Crawling Mondays, Lily Ray through conference talks posted to YouTube, Barry Schwartz through daily video updates, are already on the list. Specific YouTube channels that deserve a slot over them would need to show equivalent depth on AI search specifically, and so far the field is still dominated by practitioners who distribute through multiple formats rather than YouTube-first creators. Should I follow all ten voices? Probably not. Two or three is usually the right number for active attention, enough to triangulate claims across voices without drowning in content. Aleyda Solis plus Kevin Indig covers most of the territory for a typical practitioner. Add Lily Ray if you care about algorithm updates and quality signals specifically. Add Mike King if you want the technical engineering angle. The other six are reserved for when a specific question sends you looking. Key GEO Lab Takeaway Ten voices anchor GEO coverage across five territory areas: AI search fundamentals, algorithm quality signals, industry news cadence, audience strategy, and entity context. Pick two or three that match your situation. A weekly newsletter plus a daily news check covers 80% of industry awareness. Visit the specialists on demand when a specific question arises. Depth on two voices beats surface exposure to ten. Version History Version 1.0 — 21 July 2026: Initial publication. Ten GEO voices grouped into five territory areas, with a practical cadence rotation for keeping up without drowning. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. More on the about page. Have questions? Get in touch via the contact page.
---
## 10 GitHub Repositories Every GEO Practitioner Should Know
URL: https://thegeolab.net/geo-github-repos/
10 GitHub Repositories Every GEO Practitioner Should Know Ten GEO repositories that anchor the technical substrate of Generative Engine Optimisation: research, frameworks, schema tooling, and curated lists TL;DR GEO is often discussed as if it lived entirely on LinkedIn. It doesn't. The field has an actual code substrate, the repositories where the research was published. The GEO Stack framework organises these findings into five actionable layers, the RAG frameworks AI search is built on, the schema tooling that makes content extractable, and the curated lists that track what's going on. Aggarwal et al. (2024) measured 22–40% visibility improvement from content interventions on GEO-BENCH (10,000 queries, 9 domains). Ten repos cover the substrate those findings sit on: the GEO-BENCH research code, two curated research lists, the Schema.org vocabulary, TypeScript JSON-LD types, two production RAG frameworks, a curated RAG list, a GEO audit CLI that checks 47 research-backed methods, and a structured-knowledge schema for LLM-compiled content. GEO Has a Code Substrate and Most People Don't Read It Most of what gets discussed as GEO advice originates from one of three places: a peer-reviewed paper, a production system, or somebody's Wednesday-afternoon LinkedIn post. The first two have code on GitHub. The third one doesn't. Knowing which source a claim comes from is how you tell well-grounded advice from recycled speculation. I've spent more time than I'd like to admit tracing GEO claims back to their source. The exercise is unreasonably clarifying. "AI engines reward structured content" turns out to mean different things depending on whether you're reading the KDD 2024 paper, the Haystack pipeline docs, or a thought-leadership post from last Tuesday. The paper's claim is testable. The pipeline docs describe what actually happens. The post is, at best, a compressed summary that drops the conditions under which the claim holds. The ten repositories below are the primary-source layer for GEO. They group into five categories of GEO repositories: original research, curated lists, the Schema.org vocabulary and its tooling, the RAG frameworks that power AI search, and practical GEO audit tools. Knowing what each category contains is enough. Reading every line of code in every GEO repository is not necessary, and not particularly useful. Going deeper? The GEO Pocket Guide maps the five GEO Stack layers these repositories anchor, from retrieval probability through system memory. Five Categories, Ten Repos Before the individual repo cards, a map of the territory. Each category serves a different purpose in a GEO practitioner's workflow. Research GEO-optim/GEO, the Aggarwal et al. (2024) reference implementation Curated lists DavidHuji/Awesome-GEO, amplifying-ai/awesome-generative-engine-optimization, Danielskry/Awesome-RAG Schema tooling schemaorg/schemaorg, google/schema-dts RAG frameworks deepset-ai/haystack, run-llama/llama_index GEO tools Auriti-Labs/geo-optimizer-skill, arturseo-geo/llm-knowledge-base Figure 1: The five-category map of the GEO GitHub substrate. Research anchors the field; curated lists make it navigable; schema tooling and RAG frameworks provide the technical primitives; practical tools apply them. The categories aren't equal-weighted. Research and schema tooling repositories are load-bearing, they're what the field is built on. The GEO Stack organises these findings into five layers. RAG frameworks are the technical reality of AI search. Curated lists are navigation aids. Practical tools are where the substrate meets day-to-day work. The Ten GEO Repositories GEO repositories ordered by practitioner value, what changes your thinking soonest comes first. Each card lists the repo slug, what it is, and what a GEO practitioner actually uses it for. 01 GEO-optim/GEO Research Slug github.com/GEO-optim/GEO What it is The reference implementation for Aggarwal et al. (2024), "GEO: Generative Engine Optimization", published at KDD 2024. Contains the nine GEO optimisation methods tested in the paper, the evaluation framework, and pointers to the GEO-BENCH dataset on Hugging Face. Why it matters Reading the repo is how you move from "the paper said statistics addition works" to understanding exactly what "statistics addition" meant in the measurement, which specific modifications, against which query set, under which evaluation conditions. Every GEO claim worth testing starts with clarifying its operational definition, and GEO-optim/GEO is where the definitions live. 02 DavidHuji/Awesome-GEO Curated Slug github.com/DavidHuji/Awesome-GEO What it is A curated list of research papers on Generative Engine Optimisation. Covers the foundational Aggarwal et al. paper plus extensions, multimodal GEO, adversarial attacks on generative search, conflict-aware instruction fusion, conversational SEO benchmarks. Why it matters The one-stop reference for peer-reviewed and preprint GEO research. When a claim sounds like it might be academic, check Awesome-GEO first, the paper is probably linked there, and you'll skip the hour of searching. 03 amplifying-ai/awesome-generative-engine-optimization Curated Slug github.com/amplifying-ai/awesome-generative-engine-optimization What it is A curated practitioner resource list:, tools, guides, platforms, newsletters, agencies, case studies. Broader than the research-focused DavidHuji list, with more day-to-day utility for content teams. Why it matters The map of the industry side of GEO. When evaluating a new tool or platform, check whether it's listed here first, the curators filter out most low-quality entries, and the surrounding context tells you where the tool sits in the ecosystem. 04 schemaorg/schemaorg Schema Slug github.com/schemaorg/schemaorg What it is The canonical repository for the Schema.org vocabulary itself, schemas, examples, definitions, and the supporting software that publishes schema.org. Contains every type and property in the vocabulary as RDF/Turtle source files. Why it matters When a schema question comes up, is this type still supported, what properties does it actually have, is this subtype valid, the answer is in this repo, not in a third-party guide. Reading the source files is how you avoid propagating outdated or incorrect schema definitions in your own content. 05 google/schema-dts Schema Slug github.com/google/schema-dts What it is TypeScript type definitions for the Schema.org vocabulary in JSON-LD format. Discriminated type unions allow IDE autocompletion and strict validation at build time rather than at runtime. Why it matters Invalid schema is worse than no schema for AI extractability. schema-dts enforces correctness in the codebase, you cannot ship a malformed FAQPage, a missing required property, or a subtype that doesn't belong. Build-time validation prevents the category of errors that makes schema a liability rather than an asset. 06 deepset-ai/haystack RAG Slug github.com/deepset-ai/haystack What it is An open-source orchestration framework for production RAG and agent workflows. Modular pipelines with explicit control over retrieval, ranking, memory, and generation. Supports dense and sparse retrievers, multiple vector databases, and model-agnostic generation. Why it matters Reading the Haystack component definitions is the fastest way to understand how retrieval-augmented generation actually works inside the systems you're optimising for. The framework exposes the same primitives, retriever, reranker, reader, generator, that commercial AI search engines use internally. Understanding this architecture is prerequisite to retrieval probability work, just with the abstractions visible. 07 run-llama/llama_index RAG Slug github.com/run-llama/llama_index What it is A framework for connecting custom data sources to language models through indexing and retrieval. More specialised than Haystack toward the data-ingestion and index-construction side of RAG, sentence window retrieval, hierarchical parsing, multimodal ingestion. Why it matters LlamaIndex's node abstractions map directly to how chunks are indexed and retrieved in AI search systems. Understanding what counts as a retrievable unit, how chunking decisions affect retrieval quality, and how reranking interacts with indexing is the substrate that makes GEO content-structure advice interpretable. 08 Danielskry/Awesome-RAG Curated Slug github.com/Danielskry/Awesome-RAG What it is A curated list of retrieval-augmented generation frameworks, patterns, and tutorials. Covers naive RAG, advanced RAG, modular RAG, agentic RAG, self-RAG, GraphRAG, the full taxonomy of retrieval patterns with implementation links. Why it matters Not every AI search system uses naive RAG. When a practitioner claim makes sense for one retrieval pattern but not others, Awesome-RAG is where you verify which pattern applies. The list keeps pace with a rapidly-moving field better than any single vendor documentation. 09 Auriti-Labs/geo-optimizer-skill Tool Slug github.com/Auriti-Labs/geo-optimizer-skill What it is A CLI tool that audits websites against 47 research-backed GEO methods drawn from the KDD 2024 paper and subsequent AutoGEO research. Produces 0–100 scores, regression detection against saved history, and output formats for GitHub Actions, GitLab CI, Jenkins, and human-readable reports. Why it matters Research-grounded GEO auditing rather than vibe-based scoring. The methods checked map back to the peer-reviewed literature, which means a failing check has a citation behind it. Useful for CI integration and longitudinal monitoring, with the usual caveat that any score is a simplification of a more complex reality. 10 arturseo-geo/llm-knowledge-base Tool Slug github.com/arturseo-geo/llm-knowledge-base What it is An AGENTS.md schema standard for LLM-compiled personal knowledge bases, with a versioned template, worked example, and a spaced-repetition learning layer. Built at The GEO Lab and published under MIT. Formalises the markdown-wiki-built-by-LLM pattern into a reproducible workflow. Why it matters Not a GEO tool directly, but the question it answers is adjacent. "How do you structure content so an LLM can reliably compile it into a coherent output?" is the same underlying question as "how do you structure content so an AI system can reliably extract it for a citation?" The schema choices that make one work are mostly the same choices that make the other work. The Ten GEO Repositories at a Glance Reference table. Each row is a repo worth bookmarking, grouped by what problem it solves. # Repository Category Primary use 01 GEO-optim/GEO Research Reference implementation for the Aggarwal et al. KDD 2024 paper 02 DavidHuji/Awesome-GEO Curated Research paper index for the field 03 amplifying-ai/awesome-generative-engine-optimization Curated Industry resource map for GEO 04 schemaorg/schemaorg Schema Canonical Schema.org vocabulary source 05 google/schema-dts Schema TypeScript JSON-LD type safety 06 deepset-ai/haystack RAG Production RAG orchestration framework 07 run-llama/llama_index RAG Indexing and retrieval primitives for RAG 08 Danielskry/Awesome-RAG Curated Taxonomy of RAG patterns with implementations 09 Auriti-Labs/geo-optimizer-skill Tool CLI GEO auditing with 47 research-backed methods 10 arturseo-geo/llm-knowledge-base Tool Schema for LLM-compiled structured content Using GEO Repositories Without Drowning in Code The trap with a list of ten repositories is treating it as a reading list. Nothing on this list needs to be read cover-to-cover. What matters is knowing where to look when a question arises. For a research-flavoured claim: start with DavidHuji/Awesome-GEO. If the paper exists, it's linked there. If it isn't linked there, the claim is probably not peer-reviewed, which doesn't make it wrong, but does change what you should conclude from it. For a schema or structured-data question: start with schemaorg/schemaorg. The source files answer questions that third-party guides often get wrong, whether a type still exists, what properties it supports, what the correct subtype is. Supplement with google/schema-dts if you work in TypeScript and want build-time validation. For a retrieval-side question about how AI search actually works: read the Haystack component definitions. They're unusually clear documentation of retrieval primitives, and the abstractions map closely to what commercial systems use. LlamaIndex is the specialist's follow-up, especially for questions about chunking and indexing. For a practical audit or tooling question: Auriti-Labs/geo-optimizer-skill runs research-grounded checks. Use it as an input to your judgement, not as the verdict. A compact mapping from common questions to the right starting repo: Question Start with Why Does this GEO claim have research backing? DavidHuji/Awesome-GEO Paper index — if the claim is peer-reviewed, it's linked What did the KDD 2024 GEO paper actually measure? GEO-optim/GEO The measurement code itself, not second-hand summaries Is this schema type valid and current? schemaorg/schemaorg Canonical vocabulary source How does an AI system actually retrieve content? deepset-ai/haystack Retrieval primitives exposed with clear abstractions Which RAG pattern does this system use? Danielskry/Awesome-RAG Full taxonomy with implementation links What should I audit my site against? Auriti-Labs/geo-optimizer-skill 47 research-backed checks with CI integration On the limits of substrate reading. Reading the substrate tells you what claims are well-grounded. It does not tell you what claims are worth acting on for your specific situation. A peer-reviewed finding that holds across a 10,000-query benchmark may not matter for your site's 200-page content library; a practitioner observation from a single blog post may be exactly the signal you need. The substrate is a filter, not a verdict. Use it to narrow what you consider, not to replace your own measurement. Frequently Asked Questions Is there a reference GitHub repository for Generative Engine Optimisation research? Yes, GEO-optim/GEO is the reference implementation for the Aggarwal et al. (2024) GEO-BENCH paper published at KDD 2024. It contains the nine GEO methods tested in the study, the evaluation framework, and pointers to the benchmark dataset hosted on Hugging Face. For tracking the peer-reviewed and preprint literature beyond that single paper, DavidHuji/Awesome-GEO curates research on generative engine optimisation, including adversarial and multimodal extensions. Which RAG frameworks are most relevant to AI search optimisation? Haystack from deepset-ai and LlamaIndex from run-llama are the two open-source frameworks most directly relevant to AI search optimisation. Both expose the retrieval patterns that modern AI search engines use under the hood, dense retrieval, chunking, reranking, generation with citations. Studying the frameworks lets a practitioner reason about the retrieval side of AI search from the same primitives the systems are built on. How do structured data tools on GitHub help with AI visibility? Structured data tooling, schemaorg/schemaorg for the vocabulary itself, google/schema-dts for TypeScript JSON-LD type definitions, lets content creators emit valid JSON-LD that AI systems can use to parse content structure reliably. Misaligned or invalid schema is worse than no schema for extractability, so tooling that enforces correctness at build time is an underrated GEO investment. Are there open-source GEO audit tools on GitHub? Yes. Auriti-Labs/geo-optimizer-skill is a CLI tool that audits websites against 47 research-backed methods drawn from the KDD 2024 GEO paper and subsequent AutoGEO work. It produces scores, regression detection, and integrates with CI pipelines. The category is evolving fast, evaluate any GEO audit tool against your own measurement requirements rather than treating any as authoritative. Where should a new GEO practitioner start with these repositories? Start with the two curated GEO repositories, DavidHuji/Awesome-GEO for research papers and amplifying-ai/awesome-generative-engine-optimization for practitioner resources. Both give you a map of the territory without requiring you to install anything. Move to GEO-optim/GEO when you want to understand how the Aggarwal et al. (2024) measurements were actually conducted. Only then explore the RAG frameworks and audit tools, since those become more useful once you understand the research context they operate in. Key GEO Lab Takeaway Ten repositories form the code substrate of GEO: Aggarwal et al. (2024) for the foundational research, Awesome-GEO for the paper index, Schema.org and schema-dts for structured data tooling, Haystack and LlamaIndex for RAG architecture understanding. Start with the two curated GEO repositories to orient, then visit a specific repository when a question about implementation or measurement methodology arises. Version History Version 1.0 — 14 July 2026: Initial publication. Ten GitHub repositories grouped into five categories of GEO repositories, research, curated lists, schema tooling, RAG frameworks, and practical GEO tools, with a question-to-repo mapping for day-to-day use. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. More on the about page. Have questions? Get in touch via the contact page.
---
## 10 Probe Queries We Use to Test AI Citation Behaviour
URL: https://thegeolab.net/10-probe-queries-ai-citation-behaviour/
10 Probe Queries We Use to Test AI Citation Behaviour By Artur Ferreira · The GEO Lab · Published: 26 May 2026 · Version 1.0 Ten distinct query types, each targeting a different layer of the retrieval pipeline — the working query taxonomy behind every GEO Lab experiment TL;DR "AI visibility" is not one thing. An AI system that cites you for "What is the GEO Stack?" may never cite you for "best AI SEO tools" — those two queries probe different layers of the retrieval pipeline, and they fail independently. Ten probe types cover most of the meaningful territory: branded, proprietary concept, category/commercial, comparison, how-to, troubleshooting, definitional, statistical, latest-news, and niche-technical. Testing with only one or two types gives you a partial picture. Designing a GEO experiment without a probe taxonomy is how you end up with a "citation rate went up" result that doesn't generalise to any query type that actually matters commercially. Key GEO Takeaway Citation rate is not a single number — it varies by query type, and the variation is structural, not noise. A probe set that spans all ten query types is the only way to diagnose which layer of the retrieval pipeline your content is failing at, and why the same page gets cited for one query and ignored for another. Why Query Type Changes the Answer I used to think of AI citation as a single phenomenon. A URL was either cited or it wasn't. Citation rate was one number. Then I ran the same URL through ten different query types on the same day and got citation rates ranging from 80% to 0%. Same URL. Same day. Same platform. An order of magnitude of difference, driven entirely by what kind of question was being asked.The GEO Stack retrieval model predicts that different query types stress different pipeline layers — this probe taxonomy was built to test those predictions with controlled experiments on real pages. That range is not noise. It's structural. AI systems handle different query types through different retrieval and ranking policies, and the policies don't agree on what counts as a good source. A definitional query pulls toward authoritative originators of terms. A commercial query pulls toward aggregators and review sites. A troubleshooting query pulls toward forums and documentation. The same URL has different visibility in each. Which means if you test AI visibility with only branded queries, you'll conclude your site is highly visible — and then be surprised when you're never cited for commercial queries that actually drive revenue. If you test with only category queries, you'll conclude your site is invisible — and miss the fact that you dominate proprietary-concept citations. The probe taxonomy below is how the Lab separates these signals. Each probe type has its own citation-rate baseline, its own expected cited-source distribution, and its own set of interventions that move the metric. Three Pipeline Layers, Ten Probes The ten probes group by which retrieval pipeline layer they primarily stress. A well-designed experiment spans all three.Each probe type produces different amounts of variance across measurement runs — the ten citation measurement variables document what else changes between runs beyond query type. Layer A Entity recognition Probes 01, 07 Layer B Retrieval selection Probes 02, 03, 04, 10 Layer C Answer synthesis Probes 05, 06, 08, 09 Figure 1: The three retrieval pipeline layers stressed by the ten probe query types. Probes in different layers fail independently — a site can pass Layer A probes and fail Layer C probes, or vice versa. The value of this mapping: when a probe fails, the layer tells you roughly where to intervene. Layer A failures need entity reinforcement work — canonical naming, schema consistency, sameAs links. Layer B failures need retrieval-side work — crawler access, indexation, topical authority. Layer C failures need extraction-side work — declarative openings, section structure, clean answer isolation. The Ten AI Citation Probe Types Each probe has a definition, an example query, the layer it stresses, the expected citation pattern, and what it tells you when it fails.Understanding what each probe detects requires knowing how content formats affect retrieval — the ten content formats mapped to query intent shows which formats produce the citation patterns each probe type is designed to reveal. 01 Branded query What it tests Whether the AI system recognises the brand as an entity and cites its canonical properties. Example "What is The GEO Lab?" Layer A — Entity recognition. Pure identity probe. If it fails The AI hasn't indexed the brand as a distinct entity. Foundational problem — nothing else in the probe set will work until this one does. 02 Proprietary concept query What it tests Whether the AI cites the originator when a proprietary framework, term, or concept is named directly. Example "What is the GEO Stack?" Layer B — Retrieval selection. High signal-to-noise: the term itself disambiguates the retrieval set. Expected pattern Tier 1 citation behaviour. The originator should dominate citations. Failure here means the vocabulary hasn't propagated to the retrieval index, and System Memory hasn't kicked in. 03 Category/commercial query What it tests Whether the AI cites your content for general topic queries where many sources compete. Example "best AI SEO tools" Layer B — Retrieval selection. Highly competitive retrieval set, heavily biased toward aggregator and commercial domains. Expected pattern Tier 2 citation behaviour. Citations skew to list sites, review aggregators, and the highest-authority domains in the vertical. Originating a specific tool concept does not guarantee citation here — the query simply doesn't pull that way. 04 Comparison query What it tests Whether the AI cites your content when a direct comparison is requested between two named entities. Example "GEO vs AEO vs LLM SEO — what's the difference?" Layer B — Retrieval selection. Comparison queries tend to retrieve longer-form explainer content rather than commercial pages. Expected pattern Mid-weight citation — between proprietary concept and category queries. Comparison content on your site should be explicitly structured as comparison content, with parallel section structure for each entity being compared. 05 How-to query What it tests Whether the AI cites your content when a user asks how to perform a specific task. Example "How do I check if my site is being crawled by GPTBot?" Layer C — Answer synthesis. How-to queries favour content with step-by-step structure and concrete code snippets. Expected pattern Citation favours content with ordered-list structure, H2 phrased as the question, and code blocks where applicable. Failure often means the content has the answer but not in an extractable shape. 06 Troubleshooting query What it tests Whether the AI cites your content when a user describes a specific error or failure and asks how to fix it. Example "Google Search Console 'Duplicate field: FAQPage' error — how to fix" Layer C — Answer synthesis. Troubleshooting queries favour content with the exact error string and a documented fix. Expected pattern Citation favours failure registries, issue logs, and documentation with the exact error message in the text. AI systems performing troubleshooting synthesis look for string-level matches against the reported error before anything else. 07 Definitional query What it tests Whether the AI cites your content when a user asks for the definition of a general term. Example "What does citation rate mean in AI search?" Layer A — Entity recognition. The term being defined is the entity being resolved. Expected pattern Citation favours content that opens with a clean "X is Y" definition in the first 200 characters. If your page has the term but defines it through narrative rather than declaratively, it will lose this probe to competitors who define it up front. 08 Statistical/data query What it tests Whether the AI cites your content when a user asks for a specific number, percentage, or benchmark. Example "What percentage of AI search citations come from Wikipedia?" Layer C — Answer synthesis. Statistical queries strongly favour content with the number stated explicitly and with a traceable source. Expected pattern The research literature on GEO confirms that content with embedded statistics and quotations from credible sources is cited more often than content without. Statistical probes are the place where this effect is most visible — content with the exact number wins against content that discusses the topic generally. 09 Latest-news query What it tests Whether the AI cites your content for recency-sensitive queries where freshness is a significant ranking factor. Example "Latest GPTBot user-agent string 2026" Layer C — Answer synthesis. Recency bias in retrieval often dominates authority for news queries. Expected pattern Citation favours content with recent publication or modification dates, dated page metadata, and explicit year mentions in the content. Old but authoritative content loses to new but less established content for this probe. 10 Niche-technical query What it tests Whether the AI cites your content for specialist queries with a small candidate retrieval pool. Example "How do I prevent wpautop from breaking inline JSON-LD in WordPress?" Layer B — Retrieval selection. Small retrieval pool, reduced competition, the probe where domain specificity matters most. Expected pattern Citation rates tend to be high when the retrieval pool is small, which is why niche content can dominate AI citation without ranking on Google. Failure here often indicates the content isn't in the retrieval index at all — not that it lost to a better source. The Ten at a Glance One reference table. Use when assembling a probe set for a new experiment — include at least one query per row to get signal across the full pipeline. # Probe type Layer Citation tier Primary signal 01 Branded A Tier 1 Is the brand indexed as an entity at all? 02 Proprietary concept B Tier 1 Has your vocabulary propagated to the index? 03 Category/commercial B Tier 2 Do you compete against aggregators in the vertical? 04 Comparison B Mixed Is your content structured as explicit comparison? 05 How-to C Mixed Does the task-answer live in an extractable format? 06 Troubleshooting C Mixed Does the exact error string appear in the content? 07 Definitional A Tier 1 Does the page open with a clean "X is Y" sentence? 08 Statistical/data C Tier 1 Is the number stated explicitly with source? 09 Latest-news C Mixed Is the content dated and recent? 10 Niche-technical B Tier 1 Is the content in the retrieval index for this specialism? Building a Probe Set for Your Own Site The ten types above are categories, not queries. A working probe set replaces each category with specific queries about your site. Three principles make the translation useful rather than arbitrary.Tier 1 probes consistently outperform Tier 2 by a wide margin — the citation gap experiment provides five days of data on the magnitude of that difference across 25 queries per tier. First: one query per type is the minimum, three is better. A single query per type gives you a point estimate per category. Three queries per type gives you a within-category variance estimate, which lets you distinguish "this one query is noisy" from "this whole category is a problem." Second: queries must be commercially relevant to your site. A probe set built from queries you don't care about gives you citation rates you can't act on. Pick queries where being cited would matter — either because they drive traffic, inform purchase decisions, or validate the authority of your framework. Third: write the queries the way users actually phrase them. "How do I fix the FAQPage duplicate field error" beats "FAQPage duplicate field error resolution methodology" for the same probe type. The retrieval systems are tuned on natural user queries, and unnatural phrasings produce unnatural retrieval results. A worked example from thegeolab.net's own probe set: Probe type Site-specific query What we learn when it fails Branded (01) "What is The GEO Lab?" Entity reinforcement hasn't stabilised across AI systems Proprietary concept (02) "What is the GEO Stack?" Framework adoption rate lags citation rate Category (03) "Best AI visibility tools" We're not competing in the commercial retrieval set Definitional (07) "What does citation rate mean?" Our definitional pages aren't opening declaratively enough Troubleshooting (06) "FAQPage duplicate field GSC error fix" The error string isn't surfacing in the retrieval match On selection bias. Every probe set is a sample of queries, not the entire query universe. A probe set that over-weights one category will produce a citation rate that reflects that category rather than overall AI visibility. Balance the set — one query per type, minimum — and report citation rates per category rather than as a single site-wide average. The single-number summary is where most GEO reporting goes wrong. Frequently Asked Questions What is a probe query in GEO measurement? A probe query is a query issued deliberately to test a specific aspect of AI citation behaviour — not to retrieve information for its own sake. Each probe query targets a known layer of the retrieval pipeline: whether a brand is recognised, whether proprietary vocabulary triggers citation, whether category queries pull commercial content, or whether the system handles a specific query type differently from another. What is the difference between proprietary and category queries in GEO? Proprietary queries ask about a specific framework, term, or concept owned by a single source — for example, "What is the GEO Stack?". Category queries ask about a general topic where many sources compete — for example, "best AI SEO tools". Proprietary queries reliably cite the originator when the term is clear; category queries usually cite aggregators, commercial domains, or the highest-authority source in the vertical, rarely the originator of a specific concept. Why use branded queries if I already rank for them? Ranking for a branded query on Google does not mean AI systems cite the brand for that query. The two indexes are separate. A branded probe query tests whether the AI has indexed the brand's primary properties at all, whether it disambiguates the brand correctly, and whether it links to the official site or a third-party description. A brand can rank number one on Google and still be invisible in AI citation for the same term. How many probe queries do you need for a meaningful test? At least one query per probe type on the list, for a minimum of ten queries. More is better, but each query requires multiple iterations to control for measurement noise — ten queries at five iterations each is fifty measurements, which is typically the practical lower bound for detecting meaningful differences in citation rate between conditions. Which probe query type is the most important? No single type is the most important; each tests a different dimension of AI visibility. Proprietary queries test whether your framework vocabulary has been adopted by AI systems. Category queries test your commercial citation potential. Troubleshooting queries test your utility as a reference source. All ten types need to be in the test set, because treating any single type as the measure of "AI visibility" misses most of the signal. Related 10 GEO Terms Every Marketer Needs to Know in 2026 10 Variables That Change Between AI Citation Measurements The GEO Stack: Five Layers of AI Visibility GEO vs AEO vs LLM SEO: What's the Difference? Version History Version 1.0 — 26 May 2026: Initial publication. Ten probe query types mapped to three pipeline layers, with site-specific example queries and per-probe failure diagnostics. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 RankMath Issues in 9 Days: A Complete Failure Log
URL: https://thegeolab.net/rankmath-failures/
, "publisher": } .wp-block-post-content h1 h2 h3 p ul, ol li strong em .byline .subtitle .definition-block .definition-block p .definition-block p:last-child .definition-block .label .callout .callout p .callout p:last-child /* Issue blocks */ .issue-block .issue-block.critical .issue-block.muplugin .issue-header .issue-number .issue-number.critical .issue-number.muplugin .issue-block h3 .issue-registry .issue-row .issue-row .row-label .issue-row p .issue-note /* Quick reference table */ table th td tr:nth-child(even) td code .faq-item .faq-item h3 .legend .legend-item .legend-dot .legend-dot.standard .legend-dot.critical .legend-dot.muplugin .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong h1 .issue-row .issue-row .row-label .legend } .comparison-table .comparison-table th .comparison-table td .comparison-table tr:nth-child(even) .comparison-table tr:nth-child(odd) .comparison-table tr:hover @media(max-width:600px) .comparison-table th, .comparison-table td } code .do-dont-list code, .do-dont code .do-dont .do-dont-col /* Mobile responsive */ @media (max-width: 768px) h1, .content-title h2 .stat-grid .stat-card .stat-number .term-grid .module-grid .method-grid .progress-grid .category-grid .do-dont .code-compare .code-compare-block .pipeline-diagram .pipeline-arrow .comparison-table .definition-block, .callout, .key-takeaway .entry-card, .entry-card-header, .issue-block .entry-row, .issue-row, .registry-row .testimonial-card .author-bio .review-card img } @media (max-width: 480px) h1, .content-title .stat-grid .byline .subtitle .geolab-toc .meta-section } /* Code blocks */ pre pre code 10 RankMath Issues in 9 Days: A Complete Failure Log By Artur Ferreira · The GEO Lab · Published: 12 March 2026 · Updated: 16 March 2026 · Version 1.1 Every RankMath failure on a custom PHP WordPress build — root cause, exact fix, and registry ID for each one TL;DR Ten RankMath failures between 26 February and 12 March 2026. None of them showed a visible error on the frontend. Two required building custom mu-plugins to patch around RankMath's behavior. Three required the UI because WP-CLI doesn't trigger the necessary side effects. One was a silent schema failure on three pages that looked completely fine in the browser. Registry IDs, root causes, and exact fixes — in the order they surfaced. 10 RankMath Failures — Severity and Audit Coverage 2 Critical 4 Warning 4 Info Audit Coverage 6 Automated 4 Manual only The 4 undetected failures are the ones that recur. Figure 1. 10 RankMath failures by severity — 2 critical, 4 warning, 4 info. 6 of 10 have automated audit coverage. Context — RankMath Issues RankMath was installed on 26 February. The first issue surfaced the same day. By 12 March I had documented ten of them, built two workaround mu-plugins, and sent a support email with full technical detail on two specific JSON-LD conflicts. On 16 March, Bhanu replied. His answer confirmed one thing and named a fix for a second problem I'd noticed but hadn't fully traced. That's now Issue 11. The support email, the build of audit.py, and the 71/71 audit system that came out of all this is covered in Post 8 — From 0 to 71/71. This post is just the list. I found all ten of these failures within the first nine days of the site being live — I documented each one before applying the fix are ordered by when they surfaced. The failure registry IDs are included for cross-reference. Standard fix Critical — silent visibility loss Required custom mu-plugin Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. The 10 Issues — WordPress Schema Issue 1 Entity Schema Outputting Wrong Primary Name Registry: GEO_AUDIT_HISTORY_R1-R8.md (Round 6, Mar 4) Symptom Entity scores dropped during GEO audit Round 6. title_match: False, h1_match: False, conflicting_entities flagged. Entity score: 45 → failing state. Root cause RankMath outputs a combined Person,Organization schema type with the WordPress author ("Artur Ferreira") as the primary entity name. On a brand site, the Organization ("The GEO Lab") should appear first. RankMath has no setting to control entity ordering or designate a primary entity site-wide. Fix Built geolab-entity-fix.php — a mu-plugin that intercepts RankMath's JSON-LD output via output buffering, parses the schema graph array, and reorders it so Organization appears before Person. Entity score: 45 → 80 (+35). ⚠ Fragile fix. Any RankMath update that changes its JSON-LD output structure could break the interception. Update (16 Mar 2026): Bhanu confirmed rank_math/json_ld is the right filter. His view: ordering in the JSON-LD graph doesn't matter — search engines parse the whole graph, not just the first entity. That may be true for traditional search. I'm not convinced it's true for AI-driven retrieval, where entity prominence in structured data is less well-understood. The mu-plugin stays. See the Vendor Update below for Bhanu's exact pattern. Issue 2 Meta Fields Not Saving Registry: WP_RANKMATH_003 Symptom RankMath SEO fields (title, description, focus keyword) blank in the editor panel after saving. Fields appear empty on reload. Root cause RankMath's REST API integration is disabled by default. Without it, the Gutenberg editor can't read or write RankMath meta fields via the REST API — which is how the block editor saves post data. Fix RankMath → Settings → General → REST API → Enable. One toggle. Off by default. Will catch anyone deploying RankMath on a Gutenberg-based setup without reading the settings documentation. Issue 3 Focus Keyword Not Saving via REST API Registry: RANKMATH_FOCUS_002 Symptom rank_math_focus_keyword field empty after programmatic post updates via the REST API. Saves correctly in the editor, not via wp-json/wp/v2/posts/{id}. Root cause Even with REST API enabled (Issue 2 fix applied), RankMath doesn't register rank_math_focus_keyword as a REST-accessible field by default. The field exists in the database but isn't exposed to the REST API endpoint. Fix Built rankmath-rest-api.php — a mu-plugin that uses register_rest_field() to expose rank_math_focus_keyword and other RankMath meta fields to the REST API. Required for any programmatic deployment workflow. Issue 4 Dashboard Showing N/A Scores Registry: RANKMATH_NA_001 Symptom The Score column in the RankMath dashboard shows "N/A" for all posts instead of a numeric score. Root cause RankMath only calculates rank_math_seo_score when a post is manually opened and saved in the WordPress editor. For posts deployed via WP-CLI, the score field is never populated and stays N/A permanently. Fix Set the field manually after deployment: wp post meta update $POST_ID rank_math_seo_score 70 The value (70 in the registry example) is arbitrary — any number stops the dashboard showing N/A. RankMath overwrites it with a real calculated score the next time the post is opened in the editor. Issue 5 — Critical Sitemap Index Not Listing Sub-Sitemaps Registry: SITEMAP_INDEX_001 Symptom sitemap_index.xml only listed page-sitemap.xml. All other sitemaps existed and returned valid XML at their direct URLs — but weren't in the index. Root cause RankMath internal caching. When new content types are added after initial sitemap configuration, the sitemap index cache isn't automatically invalidated. The index reflects the state at last cache generation. Fix (UI) Toggle the Posts sitemap off, save, then back on in RankMath → Sitemap settings. Forces cache regeneration. Fix (DB) Nuclear cache clear via MySQL — immediate regeneration on next sitemap request: DELETE FROM wp_options WHERE option_name LIKE '%rank_math_sitemap%' ? Marked critical: a sitemap index that doesn't list your post sitemaps means Google isn't being directed to crawl your posts. Silent visibility loss with no frontend symptom. Issue 6 Post Sitemap Empty Registry: SITEMAP_EMPTY_002 Symptom post-sitemap.xml returned valid XML with an empty — no URLs inside despite posts existing. Root cause Posts set to noindex globally, or the sitemap for the post type disabled in RankMath settings. Either condition produces a valid but empty sitemap file with no error message. Fix RankMath → Titles & Meta → Posts → verify "No Index" is not checked globally. RankMath → Sitemap → verify Posts is toggled on. Check individual posts for per-post noindex overrides. Issue 7 Noindexed Pages Still Appearing in Sitemap Registry: RANKMATH_NOINDEX_SITEMAP_001 Symptom Pages explicitly set to noindex via RankMath's per-page settings still appeared in sitemap.xml. Root cause RankMath does not automatically exclude noindexed pages from the sitemap by default. The noindex meta tag applies correctly to the page — sitemap exclusion is a separate setting. Fix RankMath → Sitemap → General → enable "Exclude Noindexed Pages". Not enabled by default. Not directly harmful — Google respects the noindex tag and ignores the sitemap entry. But misleading and adds noise. Worth fixing for hygiene. Issue 8 Category Sitemap Won't Disable via WP-CLI Registry: RANKMATH_CATEGORY_SITEMAP_001 Symptom Attempted to disable category-sitemap.xml via WP-CLI. Command ran successfully, option updated in the database — but the category sitemap continued to generate. Command used wp option patch update rank-math-options-sitemap tax_category_sitemap false Root cause WP-CLI option patches update the database value but don't trigger RankMath's cache invalidation or sitemap regeneration. The sitemap system reads from cache, not directly from the options table. Fix Use the RankMath UI. RankMath → Sitemap → uncheck Categories → Save Changes. The UI save triggers cache invalidation that WP-CLI doesn't. One of three issues where WP-CLI wasn't the answer. RankMath settings that affect cached outputs (sitemaps, schema) require the admin UI save action to take effect. Issue 9 — Critical Schema Not Injecting on Custom PHP Templates Registry: WP_WPHEAD_MISSING_001 Symptom Three pages — geo-brand-citation-index, explainer, methodology — had no structured data, no OG tags, no robots meta, and no RankMath SEO fields in the page source. Pages looked completely normal in the browser. Root cause The custom PHP templates were missing before . WordPress and all plugins hook their output to the wp_head action. Without that call, none of it fires. Visual layout is unaffected — it comes from the template body, not the head. Fix Add immediately before in each affected template. All schema, OG tags, and meta appeared on next page load. ? Caught manually during the Mar 10 session — not by audit.py. Nothing in the current audit system scans custom PHP templates for missing wp_head() calls. It's in the failure registry as a documented fix, not a prevented regression. Issue 10 FAQPage Duplicate Declaration Registry: SCHEMA_FAQPAGE_DUPLICATE_001 Symptom GSC email: "Duplicate field: FAQPage detected across your site." Rich Results Test showed two separate FAQPage declarations on the same pages. Root cause JSON-LD FAQPage schema injected via functions.php + HTML microdata itemtype="https://schema.org/FAQPage" on the same pages. Two valid declarations of the same schema type. RankMath had no awareness of the conflict — it only knows about its own JSON-LD output, not microdata attributes in the HTML. Fix Remove all itemscope / itemprop / itemtype attributes from FAQ HTML sections. Keep JSON-LD only. Re-submit affected pages to GSC. Full writeup: Post 4 — FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata Going deeper? GEO for WordPress covers the full technical setup — from schema markup to server configuration — for making WordPress sites AI-retrievable. Vendor Update — 16 March 2026 I sent Rank Math a detailed email on two schema conflicts — the entity ordering problem from Issue 1, and the author URL I'd noticed but hadn't fully traced. Bhanu replied on 16 March. Below is what he said, and what I'm doing with it. On entity ordering (Issue 1): Bhanu's answer: ordering in the JSON-LD graph doesn't matter. Search engines parse the entire graph, not just the first entity. He confirmed rank_math/json_ld as the filter to use: add_filter( 'rank_math/json_ld', function( $data, $jsonld ) , 99, 2); I disagree with the framing, not the filter. Traditional search engines may parse the whole graph. AI-driven retrieval systems are less predictable on this. I kept the mu-plugin. Issue 11 — Post-Publication Author URL Generating Legacy WordPress Username in Schema Registry: RANKMATH_AUTHOR_URL_001 · Documented: 16 March 2026 (vendor response) Symptom Rank Math outputs "@id": "https://thegeolab.net/about/jorge/" in the Person schema on every page. The URL does not resolve — the correct author page is /about/. The legacy WordPress username ("jorge") is used in the generated URL, not the display name or a custom slug. Root cause Rank Math generates author schema using WordPress's default author data. The WordPress username drives the author URL in the @id field. Display name and custom slug settings do not override the schema output. Changing the WordPress username would break other site systems. Fix Official filter from Rank Math support — override the author @id in the article entity without touching the WordPress username: add_filter( 'rank_math/snippet/rich_snippet_article_entity', function( $entity ) return $entity; } ); ✅ Vendor-confirmed fix. Add to an existing mu-plugin or a dedicated rankmath-author-fix.php. The broken @id was live the whole time I was running the audit. I'd noticed /about/jorge/ wasn't resolving but hadn't traced it to the username mapping. Bhanu's reply was what got me there. The Pattern Ten issues, one pattern: RankMath's defaults assume a standard WordPress setup. Custom PHP templates, programmatic deployments, WP-CLI workflows, and custom schema implementations all land outside that assumption — and the failures that follow are silent. No frontend errors. No admin warnings. No indication anything is wrong until you check the page source, the sitemap index, the REST API response, or the structured data validator. Two of the ten required building mu-plugins to patch around RankMath's behavior rather than configuring it. Three required the UI because WP-CLI updates don't trigger the side effects RankMath's systems depend on. Two were marked critical for silent visibility loss. And one — Issue 9 — has no automated prevention. It requires manual inspection of every custom PHP template. The audit system built in response to these failures — 6 modules, 71 checks, 1 min 38 sec — catches six of the ten automatically. The other four are in the failure registry as documented fixes, not prevented regressions. Quick Reference # Registry ID What broke Fix type 1 GEO_AUDIT_R6 Entity schema wrong primary name mu-plugin 2 WP_RANKMATH_003 Meta fields not saving Settings toggle 3 RANKMATH_FOCUS_002 Focus keyword not saving via REST mu-plugin 4 RANKMATH_NA_001 Dashboard N/A scores WP-CLI manual patch 5 SITEMAP_INDEX_001 Sitemap index incomplete UI toggle / DB cache clear 6 SITEMAP_EMPTY_002 Post sitemap empty Settings check 7 RANKMATH_NOINDEX_SITEMAP_001 Noindex pages in sitemap Settings toggle 8 RANKMATH_CATEGORY_SITEMAP_001 Category sitemap won't disable via CLI UI only 9 WP_WPHEAD_MISSING_001 Schema not injecting on custom templates Manual template fix 10 SCHEMA_FAQPAGE_DUPLICATE_001 FAQPage duplicate declaration Remove microdata 11 RANKMATH_AUTHOR_URL_001 Author URL using legacy WP username in schema mu-plugin filter (vendor-confirmed) Key GEO Takeaway Six of the ten RankMath failures have automated audit coverage. Four do not — the category sitemap UI-only fix, the N/A score manual override, the noindex sitemap toggle, and the REST API field. The undetected failures are the ones that recur. Building detection for them is the next audit.py priority. Frequently Asked Questions Why did RankMath schema not inject on custom PHP templates? Custom PHP templates were missing before the closing tag. WordPress and all plugins hook their head output to the wp_head action. Without that call, no schema, no OG tags, no robots meta, and no RankMath SEO fields fire — while the page looks completely normal in the browser. Why won't RankMath sitemap settings apply via WP-CLI? WP-CLI option patches update the database value but don't trigger RankMath's cache invalidation or sitemap regeneration side effects. Those side effects only fire through the admin UI save action. For any RankMath setting that affects cached outputs — sitemaps, schema — use the UI, not WP-CLI. How do I fix RankMath showing N/A scores in the dashboard? RankMath only calculates rank_math_seo_score when a post is manually opened and saved in the WordPress editor. For posts deployed via WP-CLI, the score is never populated. Fix: wp post meta update $POST_ID rank_math_seo_score 70 — set the field manually. RankMath overwrites it with a real score the next time the post is opened in the editor. How do I fix the RankMath sitemap index not listing all sitemaps? RankMath's sitemap index cache isn't automatically invalidated when new content types are added. Toggle the Posts sitemap off and back on in RankMath Sitemap settings to force regeneration. Or clear the cache directly: DELETE FROM wp_options WHERE option_name LIKE '%rank_math_sitemap%'. How do I expose RankMath meta fields to the WordPress REST API? Two steps. First, enable REST API under RankMath → Settings → General → REST API. Second, for fields like rank_math_focus_keyword that still don't appear in REST responses, register them manually with register_rest_field() in a mu-plugin. RankMath doesn't register all its meta fields for REST access by default. How do I fix RankMath outputting a legacy WordPress username in author schema? Rank Math uses WordPress's default author username to construct the @id URL in Person schema, which can produce a non-resolving URL if your username doesn't match your author page slug. Use the rank_math/snippet/rich_snippet_article_entity filter to override the author @id in a mu-plugin — no username change required. Confirmed fix from Rank Math support. Related Post 8 — From 0 to 71/71: Building a GEO Compliance Audit System Post 4 — FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata The Failure Registry Version History Version 1.0 — 12 March 2026: Initial publication. Documents 10 RankMath failures on a custom PHP WordPress build, 26 Feb – 12 Mar 2026. Version 1.1 — 16 March 2026: Vendor update. Added Rank Math support response from Bhanu confirming rank_math/json_ld as the supported filter for Issue 1 entity ordering. Added Issue 11 (RANKMATH_AUTHOR_URL_001) — author URL using legacy WordPress username in schema — with vendor-confirmed filter fix. Updated Issue 1 note and context section. Quick Reference and FAQ updated accordingly. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 Research Papers That Define the GEO Field
URL: https://thegeolab.net/geo-research-papers/
10 Research Papers That Define the GEO Field Ten GEO research papers that anchor Generative Engine Optimisation, from the retrieval architectures that make AI search work to the first study that measured the field as a distinct discipline TL;DR Generative Engine Optimisation didn't appear from nowhere. It sits on a decade of retrieval research, REALM, RAG, DPR, that built the architecture AI systems use to fetch documents at query time. It sits on the benchmarks, MS MARCO, Natural Questions, BEIR, that made those architectures measurable. It sits on the attribution literature, ALCE, RARR, Liu's verifiability study, that quantifies what it means for an AI system to actually cite a source. And then there's the one peer-reviewed paper that treats GEO itself as a named discipline: Aggarwal et al. (2024). Ten papers. Four categories. Together they form the citable substrate for every GEO claim worth making. Why GEO Needs a Citable Substrate Research papers that define the GEO field are rarely cited by practitioners, and that is the failure mode this post addresses. GEO is deep in it. Practitioners make claims. Practitioners cite other practitioners. Those other practitioners cite the first practitioners. Nobody ever cites a peer-reviewed source, because nobody's quite sure where one exists. The claims calcify into consensus without ever being tested. I've done this. You've probably done this. The phrase "AI crawlers don't execute JavaScript" has been repeated in GEO posts so many times that it reads as received wisdom, but the evidence base is still mostly server-log observations and one much-cited blog post. This is not how a field becomes scientific. This is how a field becomes a vibe. The ten papers below are what I treat as the citable substrate. They're peer-reviewed, indexable, and they establish the claims that everything else in GEO builds on. When a question arises, "why does structure matter for AI citation?", the answer lives in one of these papers, not in a LinkedIn post. Reading all ten end-to-end is not necessary. Knowing what each paper established is. The practitioner value is in being able to say "Liu et al. (2023) found 51.5%" rather than "someone somewhere said about half", that's the difference between a field with foundations and a field without. Going deeper? The GEO Pocket Guide translates the research findings from these papers into the five-layer GEO Stack practitioners use day-to-day. Four Categories of GEO Research Papers The ten papers split cleanly into four categories. Knowing which category a paper belongs to tells you what kind of question it answers. 2016 MS MARCO (Bajaj et al.) Benchmark 2019 Natural Questions (Kwiatkowski et al.) Benchmark 2020 REALM (Guu et al.) Retrieval 2020 RAG (Lewis et al.) Retrieval 2020 DPR (Karpukhin et al.) Retrieval 2021 BEIR (Thakur et al.) Benchmark 2023 ALCE (Gao et al.) Attribution 2023 Verifiability (Liu et al.) Attribution 2023 RARR (Gao et al.) Attribution 2024 GEO-BENCH (Aggarwal et al.) GEO Figure 1: The ten foundational GEO papers from 2016 to 2024. The field progresses from benchmarks (the measurement substrate) to retrieval architectures (how AI systems fetch content) to attribution (how they cite it) to GEO itself (how to optimise for it). The shape of this timeline matters. The retrieval and benchmark papers stacked up for years before anyone treated GEO as a discipline. Aggarwal's 2024 paper isn't the start of the field, it's the moment the field caught up with a decade of substrate research and named what practitioners had been doing informally. The Ten GEO Research Papers GEO research papers ordered by practitioner relevance, the GEO research papers that most directly change how you think about GEO work come first. 01 GEO: Generative Engine Optimization GEO Citation Aggarwal, P., Murahari, V., Rajpurohit, T., Kalyan, A., Narasimhan, K., & Deshpande, A. (2024). KDD '24. arXiv:2311.09735. What it established The first peer-reviewed paper to name Generative Engine Optimisation as a discipline and measure it directly. Introduced GEO-BENCH, 10,000 queries across 9 domains, and tested nine content-optimisation methods for their effect on AI citation rate. Key finding Statistics Addition and Quotation Addition produced the largest visibility improvements, up to 22–40% in some conditions. Other interventions varied widely by domain. Simple content signals matter measurably for AI retrieval behaviour. Why it matters This is the paper to cite when claiming GEO exists as a measurable discipline. Every subsequent serious GEO study positions itself relative to GEO-BENCH. 02 Evaluating Verifiability in Generative Search Engines Attribution Citation Liu, N. F., Zhang, T., & Liang, P. (2023). Findings of EMNLP 2023. arXiv:2304.09848. Stanford. What it established The first systematic audit of citation quality in generative search engines. Measured whether citations provided by Bing Chat, NeevaAI, perplexity.ai, and YouChat actually supported the claims they were attached to. Key finding A 51.5% citation support rate across the four engines. Roughly half of the citations did not substantively support the claims they accompanied. This number remains the reference baseline for citation-quality research. Why it matters Establishes the baseline against which all subsequent attribution improvements are measured. Also documents the gap between "having a citation" and "being cited correctly" that GEO work has to account for. 03 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Retrieval Citation Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., et al. (2020). NeurIPS 2020. arXiv:2005.11401. Meta / FAIR. What it established The RAG architecture, combining a parametric language model with a non-parametric retrieval component, as a general-purpose fine-tuning recipe. Demonstrated that RAG models generate more specific, diverse, and factual language than purely parametric baselines. Why it matters RAG is the underlying architecture for the majority of modern AI search engines. When you're optimising for AI citation, you're optimising for a RAG system. Lewis et al. is the canonical reference for what that means. 04 Enabling Large Language Models to Generate Text with Citations (ALCE) Attribution Citation Gao, T., Yen, H., Yu, J., & Chen, D. (2023). EMNLP 2023. arXiv:2305.14627. Princeton. What it established The ALCE benchmark, Automatic LLMs' Citation Evaluation, for measuring citation behaviour along three dimensions: fluency, correctness, and citation quality. Provided a reproducible way to evaluate citation performance across models. Why it matters Moves citation evaluation from subjective assessment to automated, benchmark-comparable measurement. The three-dimensional framework, can it cite, does the citation support the claim, is the generated text fluent, is now standard vocabulary in the attribution literature. 05 Dense Passage Retrieval for Open-Domain Question Answering (DPR) Retrieval Citation Karpukhin, V., Oğuz, B., Min, S., Lewis, P., Wu, L., Edunov, S., Chen, D., & Yih, W. (2020). EMNLP 2020. arXiv:2004.04906. Facebook AI. What it established That dense vector representations, learned from a small number of question-passage pairs, can outperform traditional sparse methods like BM25 for passage retrieval, by 9–19% absolute in top-20 accuracy across open-domain QA datasets. Why it matters DPR is the retrieval mechanism that made modern RAG practical. Understanding that AI retrieval is embedding-based, not keyword-based, is the single conceptual shift separating GEO practice from classical SEO practice, and DPR is the paper where that shift is technically grounded. 06 REALM: Retrieval-Augmented Language Model Pre-Training Retrieval Citation Guu, K., Lee, K., Tung, Z., Pasupat, P., & Chang, M. (2020). ICML 2020. arXiv:2002.08909. Google. What it established That language models can be trained to learn when to retrieve from an external corpus, not just use retrieval at inference time. Introduced learned retrieval as a pre-training objective, not an add-on. Why it matters REALM is the conceptual predecessor to RAG. It's the paper that made external retrieval a first-class citizen in language-model training, rather than a post-hoc lookup. 07 BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models Benchmark Citation Thakur, N., Reimers, N., Rücklé, A., Srivastava, A., & Gurevych, I. (2021). NeurIPS Datasets & Benchmarks 2021. arXiv:2104.08663. UKP-TUDA. What it established An 18-dataset benchmark for evaluating retrieval models across diverse domains and task types, under zero-shot conditions, i.e. without dataset-specific fine-tuning. Why it matters BEIR showed that retrieval performance doesn't transfer uniformly across domains. A model that's excellent on general-web retrieval may underperform on specialist-domain retrieval. For GEO, this predicts platform-specific variation in how well different AI systems handle different content types. 08 RARR: Researching and Revising What Language Models Say, Using Language Models Attribution Citation Gao, L., Dai, Z., Pasupat, P., Chen, A., Chaganty, A. T., Fan, Y., Zhao, V., Lao, N., Lee, H., Juan, D., & Guu, K. (2023). ACL 2023. arXiv:2210.08726. CMU / Google / UC Irvine. What it established A framework, Retrofit Attribution using Research and Revision, for post-hoc attribution and editing of language-model output. RARR automatically finds evidence for claims and revises unsupported content while preserving the original output as much as possible. Why it matters Clarifies that attribution in AI search is not a single-step retrieval problem. It's a research-and-revise pipeline. Understanding this pipeline is how to reason about why some pages get cited accurately and others get cited incorrectly. 09 Natural Questions: A Benchmark for Question Answering Research Benchmark Citation Kwiatkowski, T., Palomaki, J., Redfield, O., Collins, M., Parikh, A., Alberti, C., et al. (2019). TACL 2019. Google. What it established A benchmark of real user queries, 307,373 training examples plus 7,830 development and 7,842 test examples, drawn from anonymised Google Search queries and paired with Wikipedia answers. Questions use real user phrasing, not crowdsourced rewording. Why it matters Natural Questions shifted benchmarking from synthetic to realistic. The research community could suddenly measure whether retrieval worked for the kind of questions users actually ask, not for the kind of questions annotators invent. GEO measurement inherits this emphasis on realistic query sets. 10 MS MARCO: A Human Generated MAchine Reading COmprehension Dataset Benchmark Citation Bajaj, P., Campos, D., Craswell, N., Deng, L., Gao, J., Liu, X., et al. (2016). arXiv:1611.09268. Microsoft. What it established A dataset of 1,010,916 anonymised Bing queries, each with a human-generated answer, plus 8.8 million passages from 3.5 million web documents. The first large-scale real-world question-answering dataset sampled from actual search-engine use. Why it matters MS MARCO is what much of the dense-retrieval research trained against. The passage-ranking conventions that underpin retrieval probability, what counts as a relevant chunk, how to evaluate retrieval at scale, come from MS MARCO. Understanding how AI systems were shaped by MS MARCO's structure is useful context for why current retrieval behaviour looks the way it does. The Ten GEO Research Papers at a Glance Reference table. When citing any of these in your own work, use the citation column directly. # Short name Authors / Venue Year Category 01 GEO-BENCH Aggarwal et al., KDD 2024 GEO 02 Verifiability Liu et al., EMNLP Findings 2023 Attribution 03 RAG Lewis et al., NeurIPS 2020 Retrieval 04 ALCE Gao et al., EMNLP 2023 Attribution 05 DPR Karpukhin et al., EMNLP 2020 Retrieval 06 REALM Guu et al., ICML 2020 Retrieval 07 BEIR Thakur et al., NeurIPS D&B 2021 Benchmark 08 RARR Gao et al., ACL 2023 Attribution 09 Natural Questions Kwiatkowski et al., TACL 2019 Benchmark 10 MS MARCO Bajaj et al., arXiv 2016 Benchmark Where GEO Research Papers Have Gaps Three things the GEO research papers canon doesn't adequately cover, worth knowing so you don't cite absent work as if it were present. First: longitudinal citation-rate studies across AI operators. The Liu et al. (2023) verifiability study measures citation support at one point in time across four engines. It doesn't track how citation rate changes over months, how model updates shift citation behaviour, or how the four engines diverge over time. This is the gap the GEO Lab's own experimental programme targets directly. Second: content-structure studies at scale. Aggarwal et al. (2024) tested nine interventions on GEO-BENCH. The tested interventions don't include some of the most-discussed GEO practices, heading-as-question patterns, structured data alignment, entity density. These remain practitioner claims, not peer-reviewed findings. The evidence base is growing but remains sparse. Third: per-platform retrieval behaviour. BEIR shows that retrieval performance varies by domain. Nothing in the peer-reviewed canon yet systematically compares how different AI operators, OpenAI, Perplexity, Anthropic, Google, differ in retrieval behaviour for the same content. The differences are obvious in practice; they're undocumented in the literature. A practitioner's honest summary of the canon's coverage: GEO question Peer-reviewed answer exists? Where to look Does adding statistics improve AI citation rate? Yes Aggarwal et al. (2024) Are AI citations actually accurate? Yes, at one point in time Liu et al. (2023) Does schema-content alignment affect retrieval? No direct study Practitioner evidence only Do different AI operators retrieve differently? No direct study Practitioner evidence only Does citation rate change over time? No longitudinal study Practitioner measurement only On treating a growing field with care. The appropriate response to a sparse canon is not to fill it in with assertions. It's to say "this is well-grounded" where the papers support the claim, and "this is practitioner consensus" where they don't. The ten GEO research papers above are what's well-grounded. Everything else in GEO, including most of what the GEO Lab publishes, sits in the second category until the measurement catches up. Naming which category a claim is in is the careful practice. Frequently Asked Questions What is the foundational paper on Generative Engine Optimisation? The foundational GEO-specific paper is Aggarwal et al. (2024), "GEO: Generative Engine Optimization", published at KDD 2024. It introduced the GEO-BENCH benchmark (10,000 queries across 9 domains) and measured the effect of nine content-optimisation methods on AI citation rate. The study found that Statistics Addition and Quotation Addition were the strongest interventions, producing up to 22–40% improvements in visibility. It is the first peer-reviewed paper to measure GEO as a distinct discipline. What's the difference between retrieval-augmented generation and GEO? Retrieval-Augmented Generation (RAG) is the underlying architecture, introduced by Lewis et al. (2020), that lets AI systems retrieve documents from an index and use them to generate answers. GEO is the practitioner-facing optimisation discipline that works on the content side of that architecture: making documents more retrievable, more extractable, and more likely to be cited. RAG is the engine; GEO is the fuel formulation. Which paper established the measurement baseline for AI citation support rate? Liu, Zhang, and Liang (2023), "Evaluating Verifiability in Generative Search Engines", published at EMNLP Findings 2023, established the first quantitative baseline for citation quality in generative search engines. The study measured a 51.5% citation support rate across Bing Chat, NeevaAI, perplexity.ai, and YouChat, meaning roughly half of the citations these engines provided did not actually support the claims they were attached to. This number remains the reference baseline against which subsequent attribution research is measured. Do I need to read all ten papers to work in GEO? No. The practitioner-essential papers are Aggarwal et al. (2024) for the GEO-specific measurements, Liu et al. (2023) for the verifiability baseline, and Lewis et al. (2020) for the RAG architecture. The remaining seven GEO research papers, REALM, DPR, ALCE, RARR, MS MARCO, Natural Questions, BEIR, are the technical substrate that explains why AI systems behave the way they do at retrieval time. Most GEO practitioners benefit from knowing what each paper established rather than reading all of them end to end. Are there newer GEO-specific papers than Aggarwal et al. (2024)? The field is early enough that Aggarwal et al. remains the most widely cited peer-reviewed GEO-specific study. A growing body of preprints and industry research has appeared since, but peer-reviewed venues have only slowly caught up to the rapid shift from classical SEO to AI-retrieval optimisation. The GEO Lab maintains its own experimental programme specifically to contribute reproducible measurements while the academic literature catches up. Key GEO Lab Takeaway Ten papers form the citable foundation for GEO. Aggarwal et al. (2024) named the discipline and measured it. Lewis et al. (2020) introduced the RAG architecture that makes AI search possible. Gao et al. (2023) built the citation evaluation benchmark. Karpukhin et al. (2020) proved dense retrieval outperforms keyword matching. The remaining six papers established the benchmarks, attribution methods, and verifiability metrics the field relies on. Citing these papers by name is the difference between a field with foundations and a field running on LinkedIn posts. Version History Version 1.0 — 16 July 2026: Initial publication. Ten peer-reviewed papers establishing the citable substrate of the GEO field, grouped into four categories, GEO, retrieval, benchmark, and attribution. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. More on the about page. Have questions? Get in touch via the contact page.
---
## 10 Things the Four AI Visibility States Don't Tell You
URL: https://thegeolab.net/four-states-caveats/
10 Things the Four AI Visibility States Don't Tell You By Artur Ferreira · The GEO Lab · Published: 23 June 2026 · Version 1.0 AI visibility states — edge cases, transitions, and measurement boundaries that the four-state classification can't capture on its own. A working companion to the Four States framework. TL;DR The Four AI Visibility States — Invisible, Stage 0, Mentioned, Cited — are the working classification for where a URL sits in an AI system's awareness. They're also an abstraction. Ten things the four-box model doesn't capture on its own: state instability, platform divergence, stuck Stage 0, model-memory citations, partial citation, regressions without content change, per-query-type variation, on-demand vs indexed citation, competitive displacement, and the meaning of a site-wide state claim. This isn't a critique of the framework. It's the second page of the manual — the one you reach for when a measurement stops making sense under the first page. Why Any Framework Needs a Second Page The four AI visibility states — Invisible, Stage\u00a00, Mentioned, Cited — and the four-state model built on them is the most useful abstraction I've used for thinking about AI visibility. Invisible, Stage 0, Mentioned, Cited — four boxes, clear boundaries, meaningful transitions between them. It's the right level of resolution to hold in your head while thinking about a page or a site. It's also, like every useful abstraction, wrong in specific ways. Not wrong in the sense of misleading — wrong in the sense that reality has edge cases the boxes don't cover, and if you use the boxes without knowing the edge cases, you'll sometimes draw conclusions the measurement can't actually support. I learned this by making a series of small but unmistakable errors. A page I confidently placed in Cited turned out to be in a different state next week with no content change. A page I called Invisible turned out to be Cited on one platform and Mentioned on another — the word "Invisible" was averaging across platforms in a way I hadn't noticed. A page in Stage 0 turned out to be in Stage 0 for two very different reasons, one of which was fixable and one of which was not. A concrete example: in fourteen days of daily measurement across a fixed query set (E016), the observed citation rate moved 6.7 percentage points between Day 1 and Day 2 with no content change, no new competing sources, and no detectable model update. The reading was accurate at the moment it was taken. It was not a property of the page. The ten caveats below are the ones that have changed how I read a visibility measurement. They don't replace the four-state model. They sit underneath it — the thing you consult when the four boxes are giving you an answer that doesn't quite make sense. This post assumes familiarity with the Four AI Visibility States. The core vocabulary is defined in the GEO Glossary. What follows is about the model's limits. Going deeper? The GEO Authority Playbook covers durable AI visibility strategy — including how to act on each state. For the experimental methodology behind the data in this post, see GEO Experiments. Three Categories of Caveat The ten caveats group into three types, each requiring a different kind of care when interpreting a visibility measurement. Edge cases • States that look distinct but aren't When the four boxes share a label but reflect fundamentally different underlying situations — for example, two pages both "Stage 0" for reasons that require opposite interventions. State transitions • Movements between states the model abstracts over When a page moves between states for reasons that aren't explained by the model — platform-level shifts, temporal instability, competitive displacement. Measurement boundaries • Where the state itself becomes hard to define When aggregating across URLs, queries, or platforms produces a state claim the underlying data can't actually support. Figure 1: The three categories of caveat that extend the four-state model. Each category requires a different correction when reading a visibility measurement. The difference between the three matters because the response to each is different. Edge cases require looking beneath the state label to the underlying signals. Transition caveats require reporting state alongside time, query, and platform. Measurement boundaries require restricting the scope of any state claim to what the measurement actually supports. The Ten Caveats Ordered by how often they change a conclusion the four-state model alone would give. The first four are the ones that will mislead you soonest if you treat the four states as complete. 01 A state is a point-in-time reading, not a property Transition What it means A page that is Cited today can be Mentioned next week and back to Cited the week after, with no content change. The state reflects a measurement at a moment in time, not a durable property of the page. Why it happens AI retrieval indexes shift. Competing sources enter and leave. Model versions update. The underlying pipeline is in motion continuously, and the state reading at any moment is partly a measurement of that motion, not just of the page. How to handle Report state alongside the time window of the measurement. "Cited (week of June 16)" is defensible; "Cited" as an unqualified claim is not. 02 The same page can be in different states on different platforms Measurement What it means A page commonly sits at Cited on Perplexity, Mentioned on ChatGPT, and Invisible on Claude at the same moment. "The page's state" as a single value erases exactly the signal that tells you what's happening. Why it happens Each AI operator maintains its own retrieval index, uses its own citation heuristics, and has its own selection thresholds. The three systems don't agree about which pages are good sources, and they shouldn't be expected to. How to handle Report state per platform. A visibility dashboard that collapses three platforms into one state is hiding the data you actually need. Three state labels is not three times the work — it's the minimum resolution the data actually has. 03 Stage 0 is two different states Edge case What it means Two pages can both be classified as Stage 0 — indexed but not cited — for fundamentally different reasons. One is pre-citation (recently indexed, citation signals still accumulating). The other is stuck (structural problems prevent citation entirely). The four-state label is identical; the prognosis is opposite. Why it matters A pre-citation Stage 0 page resolves itself with time and normal propagation. A stuck Stage 0 page will stay in Stage 0 indefinitely unless the structural issue is identified and fixed. Treating them identically means either waiting forever on a stuck page, or pushing unnecessary interventions on a page that was about to move anyway. How to diagnose Look at the structural signals — extractability, schema alignment, declarative opening, crawler access — independently of the state. A pre-citation page passes the structural checks. A stuck page fails at least one. An LLM readability audit gives you the fastest read on which type applies. 04 A "Cited" state may not mean the page was retrieved Edge case What it means AI systems sometimes cite pages based on model memory — content that was in training data but not freshly retrieved at query time. A citation appears in the response without a corresponding fetch in server logs. Why it matters Model-memory citations and retrieval-time citations look identical to a visibility dashboard. They are not the same thing. Retrieval-time citations respond to recent content changes; model-memory citations do not, because the content being cited is the pre-training snapshot, not the current page. How to detect Cross-reference citations with server logs. A citation with no corresponding on-demand fetch in the relevant time window is likely model-memory. The how retrievable your content is explains how on-demand and indexed fetch patterns diverge. This distinction matters heavily for attribution — a content update won't show up in citation rate if the citations are all from model memory. 05 Citation is partial, not binary Edge case What it means The four-state model treats Cited as binary — either the page is cited or it isn't. In practice, citation has degrees: full citation with linked source, inline citation with partial source, named citation without link, quoted text without attribution. Why it matters A page cited with a link drives traffic and authority. A page named without a link builds brand recognition but no traffic. A page quoted without attribution contributes to the answer but gets no credit. These are different business outcomes, collapsed into a single label. How to handle Track citation quality as a secondary metric alongside the Cited state. The difference between a dominant and a marginal citation can be the difference between a meaningful outcome and a nominal one. 06 States regress without content change Transition What it means A page moving from Cited back to Mentioned is often interpreted as a content problem. It is frequently not. The page hasn't changed; the environment around it has — new competing sources, updated model, shifted retrieval priorities, competitive displacement. Why it matters Interpreting an environmental regression as a content problem triggers unnecessary content work. Worse, the content work can make the page weaker for the next regression cycle by over-optimising for what currently reads as a problem. How to diagnose Record the cited sources each time a state reading is taken. A regression accompanied by a new competing source appearing in cited results is environmental. A regression with no change in the competitive set points at content — but verify that separately, don't assume. 07 States vary by query type on the same page Measurement What it means A single page can be Cited for proprietary-concept queries, Mentioned for definitional queries, and Invisible for category queries — all simultaneously. "The page's state" as a single value is meaningless without specifying which query type it was measured under. Why it matters A page's visibility is as much a property of the queries it was tested against as of the page itself. Reporting state without reporting the query type (or probe category) produces numbers that move without explanation as different query sets are used. How to handle Always report state per probe type from a structured query taxonomy. "Cited for proprietary queries, Stage 0 for category queries" is the minimum meaningful resolution. The 30-check measurement protocol gives the full procedure. 08 On-demand citation and indexed citation are different Edge case What it means A Cited state can reflect either a citation coming from the AI's retrieval index (scheduled crawl, indexed content) or a citation from an on-demand fetch (user-triggered, real-time). These look identical in the response and are very different in what they require to reproduce. Why it matters Indexed-citation state is durable — the page is in the index and will be cited again for similar queries. On-demand-citation state is transient — it happened this time because a specific user asked about this specific URL. The two require different content strategies. How to detect Cross-reference citations with server logs for on-demand user-agents (ChatGPT-User, Perplexity-User, Claude-User). A citation within seconds of an on-demand fetch is on-demand; without one, it's indexed. 09 Competitive displacement is invisible in the state Transition What it means A page moves from Cited to Mentioned because a new authoritative source entered the retrieval index and took the citation slot. The displaced page hasn't become worse; the competitive set has become stronger. Why it matters Competitive displacement can't be fixed by improving the displaced page alone. If the displacer is an authoritative source that legitimately covers the topic better in context, the right response may be to target a different query set rather than chase the citation slot. How to identify Track the full set of cited sources per query over time. A Cited→Mentioned regression on the target page that coincides with a previously absent competitor appearing in citations is displacement, not decay. 10 A site-wide state is either an average or a marketing metric Measurement What it means "This site is in a Cited state" is not a diagnostic measurement. Visibility is a URL-level property observed under a specific query on a specific platform. Collapsing that to a site-wide state produces a number that may be useful for reporting but not for diagnosis. Why it matters A site-wide state obscures exactly the per-URL, per-query, per-platform signal that tells you where the site is working and where it isn't. It encourages treating visibility as one number to move up, rather than many specific states to fix or protect individually. How to handle Report per-URL state per query per platform as the core measurement. If a site-wide number is required — for a stakeholder conversation, a dashboard summary — flag it as an aggregation, name the method, and keep the per-URL data one click away. The Ten at a Glance One reference table. Use when a visibility measurement is producing a conclusion that doesn't quite make sense — the row that matches the situation will usually tell you what's missing. # Caveat Category Correct by 01 Point-in-time reading, not a property Transition Report state with the time window it was observed in 02 Different states on different platforms Measurement Report per platform, never a single cross-platform state 03 Stage 0 is two different states Edge case Check structural signals independently of the state label 04 Cited may not mean retrieved Edge case Cross-reference citations with server logs 05 Citation is partial, not binary Edge case Track citation quality alongside the state 06 Regressions without content change Transition Record cited sources each time to spot environmental shifts 07 Varies by query type on one page Measurement Report state per probe category, not per page 08 On-demand vs indexed citation Edge case Check server logs for on-demand user-agents 09 Competitive displacement is invisible Transition Track full set of cited sources per query over time 10 Site-wide state is an aggregation Measurement Keep per-URL, per-query, per-platform data as the source Reading a Visibility Measurement Carefully Three habits make the difference between a measurement that holds up under scrutiny and one that doesn't. First: qualify every state claim with scope. Time window, query, platform. A state reading without all three is an assertion, not a measurement. "Cited" is not a fact — "Cited on Perplexity for the proprietary-concept probe set in the week of June 16" is. The qualification isn't fussy detail; it's the minimum condition for the claim to be falsifiable. Second: track cited sources, not just your state. Half the caveats above are impossible to diagnose from the target URL alone. Competitive displacement, environmental regression, model-memory citation — all of them require knowing what else the AI system cited, not just whether it cited you. A visibility log that records "Cited" or "Not Cited" without the full retrieval set is missing the information that lets you interpret the changes over time. Third: keep the structural signals separate from the state. The four states describe where the page is. The structural signals — extractability, schema alignment, crawler access — describe whether the page should be there. A page in Stage 0 with good structural signals is in a different situation than a page in Stage 0 with bad ones, and the model alone can't tell you which is which. Keep both measurements in the same diagnostic view. A practical translation of these three habits into the kinds of claims that survive scrutiny: Unqualified claim Qualified version What was added "The page is Cited" "The page is Cited on Perplexity for the proprietary-concept probe set, week of June 16" Platform, query type, time window "The site's visibility dropped" "12 of 40 URLs moved from Cited to Mentioned on ChatGPT, coinciding with a new competitor entering the cited set" URL count, platform, competitive context "The page is in Stage 0" "The page is in Stage 0; structural signals pass; extractability audit clean — likely pre-citation rather than stuck" Separation of state from structural diagnosis "We moved from Mentioned to Cited" "We moved from Mentioned to Cited on definitional queries; still Mentioned on category queries" Per-probe-type breakdown On the risk of over-engineering the state model. The response to these ten caveats is not to replace the four-state model with a twenty-state model. The four boxes are the right level of abstraction for most day-to-day use. What the caveats suggest is that the four-state model is the headline, not the entire report. Under the headline sit the per-query, per-platform, per-time-window breakdowns that explain what the headline actually means. The model remains simple; the measurement underneath it cannot be. Frequently Asked Questions About AI Visibility States Are the four AI visibility states stable over time? No. A page that was Cited last week may be only Mentioned this week, then back to Cited the week after — without any content change. Visibility state is not a property of the page; it's a property of the page at a specific point in time, under a specific query, on a specific AI platform. Reporting a state without the time window, query, and platform it was observed in can lead to misleading conclusions. Can a page be in different visibility states on different platforms? Yes, and it usually is. A page commonly sits at Cited on Perplexity, Mentioned on ChatGPT, and Invisible on Claude at the same moment. Each AI operator maintains its own retrieval index and has its own citation-selection heuristics. Visibility states are platform-specific by construction, and any site-wide claim about visibility has to be qualified with the platform on which it was observed. What's the difference between "not yet cited" and "will never be cited"? The four-state model describes the present state. It does not distinguish a page in Stage 0 because it's just been indexed and hasn't accumulated citation signals yet from a page in Stage 0 because it has structural problems that prevent citation entirely. The first resolves with time; the second never does. Diagnosing which type of Stage 0 a page sits in requires looking at the structural signals independently of the state label. Does Cited always mean the page was retrieved? No. AI systems sometimes cite pages based on model memory — content that was in training data but not freshly retrieved at query time. A citation can appear in the response without any corresponding fetch in the server logs, because the content is being recalled rather than retrieved. This distinction matters for attribution: model-memory citations are harder to reproduce and less responsive to recent content changes than retrieval-time citations. Is a site-wide visibility state a meaningful measurement? Not without qualification. Visibility is a URL-level property measured under a specific query on a specific platform. Averaging across URLs, queries, and platforms produces a number, but that number hides exactly the signal that makes the state useful — which URLs are cited for which queries on which platforms. A site-wide "visibility state" is usually either a category average or a marketing metric, not a diagnostic measurement. Key Takeaway A visibility state without its time window, query set, and platform is an assertion, not a measurement. Ten caveats — edge cases, transitions, and measurement boundaries — that sit beneath the four-state model and explain when it stops making sense. Related The GEO Stack: Five Layers of AI Visibility Version History Version 1.0 — 23 June 2026: Initial publication. Ten edge cases, transitions, and measurement caveats that extend the four AI visibility states framework. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 Variables That Change Between AI Citation Measurements
URL: https://thegeolab.net/10-measurement-variables-ai-citation/
10 Variables That Change Between AI Citation Measurements By Artur Ferreira · The GEO Lab · Published: 19 May 2026 · Version 1.0 Ten concrete things that shift between two citation rate measurements even when your content hasn't — the sources of the noise floor every GEO experiment has to account for TL;DR Two AI citation measurements of the same URL on the same query can produce different results. The difference isn't measurement error — it's real variance in a stochastic system. Ten variables drive most of it: model version, retrieval index state, session context, query order, sampling temperature, time of day, geography, cache state, competing sources, and iteration count. You can't eliminate them. You can hold each one constant, randomise across it, or measure over enough iterations that it averages out. Designing a GEO experiment without accounting for these ten is how you get a result that doesn't replicate. Key GEO Takeaway The same query, run against the same page on two consecutive days, can produce different citation outcomes without any content change. Ten variables are responsible — and not controlling for them makes every GEO experiment result uninterpretable, regardless of how large the measured effect appears. Why the Same Query Gives Different Answers The first time I tried to measure whether a content change had improved citation rate, I ran the query once before and once after. The number went up. I concluded the intervention had worked. I was, charitably, an idiot.The GEO Stack measurement layer — Layer 3 — exists precisely because citation rate cannot be read reliably from a single run: the variables documented here are the reason a controlled experimental design is required. Running the same query a second time before the intervention would have shown me the number was different the second time too. Running it five more times would have shown me a range that entirely contained the post-intervention result. The change I thought I'd measured wasn't from the content — it was from the simple fact that AI citation systems don't return the same answer twice. This is the thing most GEO "case studies" in 2026 get wrong. They measure once before, once after, and declare a result. Without a variance estimate, that kind of measurement is unfalsifiable. The number changed. Why? Could be the content. Could be any of the ten things below. There's no way to tell from two data points. The noise floor — the variance you see when nothing changes — is the precondition for every other claim. Before you can say an intervention worked, you need to know how much the metric moves when nothing has been done to it. The variables below are where that movement comes from. Where the Variance Comes From The ten variables split into three layers, corresponding to where in the AI pipeline the variance is introduced.Designing a probe set that controls for these variables requires understanding the ten probe query types — different query types introduce different amounts of variance at each pipeline layer. Layer 1 Platform state Model, index, cache Layer 2 Session context Order, history, geo Layer 3 Generation Sampling, competition Figure 1: The three layers where citation rate variance is introduced. Platform-layer variance is the hardest to control and typically produces the largest effects. The layer matters because it determines how you control for the variance. Platform-layer variables can't be held constant — they belong to the AI operator, not you. The best you can do is measure across them (multiple days, multiple model versions) and report a range rather than a point. Session and generation variables can be held constant through experimental discipline: same session setup, same sampling parameters, randomised query order. The Ten AI Citation Variables Ordered by the magnitude of variance each variable produces in the Lab's observations. The first four are the ones that will ruin your experiment if you don't control for them. The last six are smaller but still real.The most controlled experiment the Lab has run — E016, the noise floor measurement — established the baseline variance range. That baseline and its protocol are documented in the Month 0 baseline post. 01 Model version High What changes The AI operator silently updates the model behind the API — new weights, new retrieval heuristics, new citation policy. Observed effect Citation rate can shift by ten percentage points or more overnight with no correlation to any content change. The version string in the API response may or may not indicate the update. How to control Pin to a dated model version where the API allows it. Log the version string on every request. Treat any measurement across a version change as a separate experiment, not a continuous one. 02 Retrieval index state High What changes The AI system's retrieval index is updated as new content is added and old content is re-crawled. The set of candidate sources for any given query shifts over time. Observed effect A URL that was cited heavily last week may be displaced by a newer, more authoritative source this week. Your content hasn't changed; the competitive set has. How to control Record the cited sources on every measurement, not just whether the target URL was cited. A drop in citation rate accompanied by a new domain appearing in the cited set points at index change, not content decay. 03 Session context High What changes Queries within the same session accumulate context. Earlier questions prime the model toward specific entities, topics, or sources for later ones. Observed effect The same query issued as the first question in a fresh session and the tenth question in an ongoing one can produce different citations. Session warmth biases retrieval and generation. How to control Start a fresh session for every iteration. If batch-running queries, randomise order across iterations to distribute session-warmth effects across the sample. 04 Sampling temperature High What changes Most AI systems use non-zero temperature at generation time, which introduces randomness in token selection. Even with identical inputs, the output varies. Observed effect The model may cite the same source with different anchor text, cite a different source entirely, or cite no source at all — across runs of a query where every other variable is held constant. How to control Set temperature to 0 where the API allows it. For APIs that don't expose the parameter, accept temperature variance as a floor and use higher iteration counts to average it out. 05 Query order within a batch Medium What changes Within a single session, the order in which queries are issued changes how the model attends to each one. Query three benefits (or suffers) from the context set by queries one and two. Observed effect Smaller than full session-context variance, but measurable. A fixed-order batch systematically over- or under-counts citation rate for queries later in the batch. How to control Randomise order across iterations, not just within one. Each query should appear in every position across the iteration set. 06 Time of day Medium What changes AI operators run different model weights, rate-limit policies, and cache states at different times. Peak-hour requests may hit a different system configuration than off-peak ones. Observed effect Measurable differences in citation rate between, for example, 3am and 3pm on the same day. Usually single-digit percentage points, but consistent enough to confound a poorly scheduled experiment. How to control Run measurements at the same time of day across experimental conditions. For longitudinal tracking, schedule a fixed measurement window. 07 Geographic origin Medium What changes Requests from different geographic regions may be routed to different data centres, hit different cache states, and receive region-adjusted retrieval priors. Observed effect A query that cites your URL consistently from an EU IP may cite it less often from a US IP, even for content with no regional specificity. How to control Pin the request origin. Run all measurements from the same IP range. Document the origin in the experiment metadata. 08 Cache state Medium What changes AI systems cache intermediate results — retrieval results, embeddings, partial responses. A query hitting a warm cache returns differently than one hitting a cold cache. Observed effect The first run of a novel query may show different behaviour from the fifth run of the same query minutes later. Cache warmth often stabilises citation rate within a session but introduces between-session variance. How to control Hard to control without operator access. The practical workaround is to report the first-iteration behaviour separately from subsequent iterations, or to discard the first N iterations as warmup. 09 Competing sources in the retrieval set Low What changes Even within a single query session, the retrieval step may pull different candidate sources each time. Your URL may be in the candidate set on iteration three and missing from it on iteration four. Observed effect Citation rate reflects both whether your URL is in the candidate pool and whether it's selected from the pool. Two sources of variance combine. How to control Where the API exposes the retrieval set, log it. This separates "not retrieved" failures from "retrieved but not cited" failures — two different problems with different solutions. 10 Iteration count Low What changes The number of times the query is run. Not a source of variance itself — a multiplier on whether the variance averages out. Observed effect One iteration gives you a point estimate with uncertainty equal to the full noise floor. Five iterations reduce uncertainty substantially. Ten iterations are usually enough to detect effect sizes below five percentage points. How to control Use at least five iterations per query as a baseline. Use ten when the intervention being tested is expected to produce a small effect. More iterations cost more but buy you the ability to detect subtler changes. The Ten at a Glance One reference table. Use this when designing an experiment — every row needs a decision about how you'll handle that variable. # Variable Layer Magnitude Control method 01 Model version Platform High Pin dated version; log string per request 02 Retrieval index state Platform High Record cited sources; track competitive set 03 Session context Session High Fresh session per iteration; randomise order 04 Sampling temperature Generation High Set to 0 where possible; increase iterations otherwise 05 Query order in batch Session Medium Randomise position across iterations 06 Time of day Platform Medium Fixed measurement window 07 Geographic origin Platform Medium Pin request origin; document IP range 08 Cache state Platform Medium Discard warmup iterations; separate cold vs warm 09 Competing sources Generation Low Log retrieval set where exposed 10 Iteration count Experimental Low Minimum 5; use 10 for small expected effects Designing Around the Ten Three design principles follow directly from the variables above.In practice: the Tier 1 vs Tier 2 citation gap post shows how applying these design principles changes the interpretation of a 60-percentage-point citation rate difference between query tiers. First: measure baseline variance before attributing any change. A pre-intervention noise floor is the unit against which post-intervention changes are interpreted. Without it, you have a point estimate and no idea what it means. Five days of measurement with no content change is the Lab's working minimum; ten is better. Second: control the cheap variables; report the expensive ones. Session context, query order, temperature, and geographic origin can all be held constant with basic experimental discipline. Model version and cache state often can't — so log them, report them, and treat measurements across a model change as separate experiments rather than continuous ones. Third: iteration count is the adjustable knob. When you can't hold a variable constant, you can usually average it out by running more iterations. Five iterations per query is the baseline. Ten is the standard for detecting small effects. Twenty is warranted when model-version drift is suspected during the experiment window. A practical mapping of when each variable matters across the experiment lifecycle: Stage Variables to decide What the decision determines Pre-experiment setup 01 Model version, 04 Temperature, 06 Time of day, 07 Geography Whether the experiment has any chance of being replicable at all Query batch design 03 Session, 05 Order, 10 Iteration count How much within-batch variance will average out versus confound During measurement 02 Index state, 08 Cache, 09 Competing sources Whether observed changes are attributable to the content or the platform Reporting 01, 02 logged; 06, 07 documented Whether another researcher can reproduce the result or dismiss it The single most common failure mode. Running a one-shot measurement before and after an intervention and declaring victory when the number goes up. The number would have gone up, or down, without the intervention. You cannot tell the difference from two data points. The variables above are why. Frequently Asked Questions Why do AI citation rates change between measurements? AI citation systems are stochastic at multiple layers: the retrieval step samples from an index that changes as content is added and removed, the generation step introduces variance through temperature and sampling parameters, and the caching and personalisation layers shift results between sessions. Even when the input query and target content are identical, the output is not deterministic. The observed variance across repeated measurements is called the noise floor, and establishing it is a prerequisite for attributing any citation rate change to a content intervention. How many of the same query should I run to get a reliable citation rate? At least five iterations per query is the working minimum in the GEO Lab's experiments, and ten is better where time and API cost allow. One iteration gives you a single sample from a stochastic distribution, which is indistinguishable from noise. Five gives you a point estimate with usable uncertainty. Ten lets you detect effect sizes below the single-digit percentage range. Does the order of queries in a batch affect the results? In some AI systems, yes. Session-level context accumulates across queries in the same session — earlier queries can prime the model's attention toward specific entities, topics, or sources for later queries in the batch. The fix is to randomise query order across iterations, or to issue each query in a fresh session with no prior context. What is the biggest source of variance in AI citation measurement? In the GEO Lab's experiments, model version changes produce the largest single source of variance. A silent model update on the provider's side can shift citation rate by 10 percentage points or more overnight, with no correlation to any content change. Time of day, query order, and session state produce smaller but still measurable variance. Establishing the noise floor across multiple days, not a single day, is the only way to separate model-level drift from content-level intervention. Related 10 GEO Terms Every Marketer Needs to Know in 2026 10 Technical Audit Checks Every GEO Page Should Pass 10 AI Crawlers, What They Do, and How to Identify Them in Your Logs The GEO Stack: Five Layers of AI Visibility Version History Version 1.0 — 19 May 2026: Initial publication. Ten variables producing between-measurement variance in AI citation rate, grouped by platform, session, and generation layers. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 10 Ways AI Crawlers Behave Differently from Googlebot
URL: https://thegeolab.net/10-ai-crawlers-vs-googlebot/
10 Ways AI Crawlers Behave Differently from Googlebot By Artur Ferreira · The GEO Lab · Published: 9 June 2026 · Version 1.0 Ten structural differences between AI crawlers and the crawler everyone already knows — and the mental-model shift that has to happen before any of them make sense TL;DR Two decades of SEO produced a shared mental model of how a crawler works: Googlebot comes by, renders JavaScript, follows redirects, respects robots.txt, updates its index, and reports back via Search Console. AI crawlers break that model in ten specific ways: no JS execution, separate indexes, different schema interpretation, fragmented user-agent tokens, lower revisit frequency, no rendering pipeline, no centralised reporting tool, on-demand fetching as a distinct class, different redirect tolerance, and no feedback loop on content changes. Treating AI crawlers like Googlebot-with-different-branding is how sites that rank perfectly well end up invisible in AI answers. Key GEO Takeaway Treating AI crawlers as a variant of Googlebot is the single most common GEO setup error: crawl frequency, JavaScript handling, link-following logic, and robots.txt interpretation all differ — and several of the differences mean that Googlebot-optimised pages actively work against AI crawler access. The ten differences here are the mental-model update that precedes all other AI visibility work. Why the Googlebot Mental Model Fails I spent most of my first year thinking about AI crawlers as a variant of Googlebot. They had user-agents. They hit pages. They respected robots.txt, mostly. Close enough, I figured. Apply the same SEO mental model with a few tweaks.The correct mental model starts with GEO Stack Layer 1 — Crawlability — which treats AI crawler access as a distinct system from search engine crawling, with different failure modes and different diagnostics. That model is wrong in so many specific ways that using it actively produces wrong decisions. The wrongness isn't uniform, either. Some AI crawlers are more Googlebot-like than others; some break the model in one dimension while looking like Googlebot in every other. Treating them as a single population — or as "Googlebot but for AI" — is how you end up doing work that doesn't matter and missing the work that does. The ten differences below are the ones that change decisions. Some of them are mechanical (JS execution, redirect handling). Some are infrastructural (separate indexes, no reporting tool). Some are conceptual (on-demand fetching as a distinct class of crawler, not a mode of Googlebot). Each one demands an update to how you think about optimisation. This post assumes familiarity with the ten AI crawlers covered in AI Crawlers in Logs. If you want the user-agent strings and verification methods, that's where they live. This post is about what the crawlers do once they're identified — and specifically, how that differs from the Googlebot behaviour you already have a mental model for. The Ten AI Crawler Differences Googlebot pipelineReading these differences in practice requires access log analysis — the AI crawlers identification guide covers the user-agent strings and Nginx queries needed to distinguish each crawler's visits from Googlebot traffic. Phase 1: Fetch raw HTML. Phase 2: Run headless Chrome, execute JavaScript, render full page. Phase 3: Merge both phases into one index. Feedback: Search Console reports back. Typical AI crawler pipeline Phase 1: Fetch raw HTML. Done. No rendering pass. No JavaScript execution. No merging. Response body is the index input. No feedback loop. Inference only. Figure 1: Googlebot runs a two-phase pipeline with a rendering pass and a feedback loop. Most AI crawlers run a single-phase pipeline with neither. The gap between the two pipelines explains most of the ten differences below. Ordered by how much each difference changes optimisation decisions. The first four are the ones that force a genuine mental-model shift. The last six are corrections to smaller assumptions that still matter in combination. 01 JavaScript execution High Comparison Googlebot Runs a headless rendering step that executes JavaScript before indexing. Client-side-rendered content appears in the index. AI crawlers Most retrieve raw HTML only. Training and retrieval crawlers do not execute JS. A minority of on-demand fetchers may render, but inconsistently. Implication Content hydrated by client-side scripts is invisible to the majority of AI crawler traffic. Server-side rendering is not a performance optimisation for GEO — it is a prerequisite for visibility. 02 Separate retrieval indexes High Comparison Googlebot Builds one primary index used across Google Search, News, Discover, and AI Overviews. A single crawl populates all downstream surfaces. AI crawlers Each operator maintains its own retrieval index. OpenAI, Perplexity, and Anthropic run independent indexes with no cross-pollination. Implication Being indexed by Google does not imply being indexed by any AI system. "My page ranks on Google" tells you nothing about AI visibility. Indexation has to be verified per operator. 03 Schema interpretation priorities High Comparison Googlebot Uses structured data primarily to enable rich results — FAQ snippets, How-To cards, product info. Schema enhances display, not ranking position directly. AI crawlers Use schema as an extraction aid. Structured data that matches the content strengthens the retrieval-to-content mapping. Misaligned schema weakens it. Implication Schema hygiene matters differently for GEO than for SEO. The SEO goal is "valid schema that qualifies for rich results." The GEO goal is "schema that accurately describes the page content" — even valid schema that doesn't match the content is a liability. 04 Fragmented user-agent tokens High Comparison Googlebot Small, stable set of user-agent tokens — Googlebot, Googlebot-Image, Googlebot-News, AdsBot. One Disallow directive per token covers the domain. AI crawlers Each operator splits training, retrieval, and on-demand fetchers across distinct user-agent strings. OpenAI alone has three primary tokens. Implication robots.txt control is more granular and more error-prone. A "block all AI" policy requires naming every documented token individually. Missing one token by oversight means that class of crawler still has access — which is sometimes intentional, sometimes not. 05 Crawl cadence and revisit frequency Medium Comparison Googlebot Adaptive crawl frequency tuned per page. Frequently-updated pages can be revisited within hours. Low-update pages visited every few weeks. AI crawlers Longer, less adaptive schedules. Days to weeks for most pages. Adaptive behaviour exists but is weaker and less responsive to update signals. Implication Content changes propagate to the AI index more slowly than to Google's. An intervention made today may not appear in AI citations for a week or more — which also means experiments have to run long enough to capture the propagation window. 06 Rendering pipeline Medium Comparison Googlebot Two-phase crawl: initial fetch of raw HTML, then a second pass that runs headless Chrome to render the full page. Both phases contribute to the index. AI crawlers Single-phase fetch. No rendering pass. What's in the response body at fetch time is what enters the index. Implication Late-loading content — lazy-loaded images, dynamically injected text, deferred schema — that Googlebot would catch on the second pass is lost entirely for AI crawlers. The first response has to be complete. 07 Reporting and diagnostics Medium Comparison Googlebot Google Search Console provides indexation status, crawl errors, rendered HTML inspection, and schema validation. A mature feedback loop. AI crawlers No equivalent tooling. No AI operator provides a Search Console analogue. Diagnosis is reconstructed from server logs and direct query probes. Implication Every GEO diagnostic has to be built or reconstructed. Indexation is inferred from probe queries, not confirmed by a dashboard. The reason tools like audit.py exist is that the reporting layer doesn't exist at the operator level. 08 On-demand fetching as a distinct class Medium Comparison Googlebot One crawler class. All crawl activity is scheduled against the index. No real-time user-triggered fetching that bypasses the index. AI crawlers On-demand fetchers — ChatGPT-User, Perplexity-User, Claude-User — retrieve URLs in real time when a user asks about them, bypassing the retrieval index entirely. Implication Some AI traffic to your site is synchronous with human users asking questions, not scheduled crawling. Blocking on-demand fetchers has immediate visibility consequences — a real user is waiting for an answer right now, and blocking the fetch means they get no answer or a worse one. 09 Redirect handling Low Comparison Googlebot Follows up to five redirects per URL, consolidates signals to the canonical destination, tolerates redirect chains with graceful degradation. AI crawlers More conservative. Chains of three-plus redirects may be abandoned. Temporary versus permanent redirect handling is less nuanced. Implication Redirect hygiene matters more, not less, for AI crawlers. A chain Googlebot cheerfully follows can lose the AI crawler entirely. Clean up redirect chains as part of GEO infrastructure work. 10 No feedback loop on content changes Low Comparison Googlebot Search Console shows when the last crawl happened, whether it was successful, and surfaces rendered HTML for inspection. You can request re-indexation. AI crawlers No request-reindex mechanism. No cache inspection. No way to confirm whether a given content update has reached the retrieval index except by probing the AI directly. Implication Content update propagation is observed, not controlled. After a content change, the only signal that it has reached the AI index is seeing the updated content reflected in probe query responses — which may take days. The Ten at a Glance One reference table. Each row is a place the Googlebot mental model gives wrong answers for AI crawler behaviour.Crawler behaviour differences affect citation rate indirectly — tracking what else changes between citation measurement runs is needed to isolate the effect of a crawler behaviour fix from platform noise. # Difference Googlebot AI crawlers Impact 01 JavaScript execution Full headless render Raw HTML only High 02 Retrieval index Single shared index Separate per operator High 03 Schema interpretation For rich results display For extraction aid High 04 User-agent tokens Small and stable Fragmented per function High 05 Revisit frequency Adaptive, fast Scheduled, slower Medium 06 Rendering pipeline Two-phase Single-phase Medium 07 Reporting tools Search Console No equivalent Medium 08 On-demand class Does not exist Separate crawler class Medium 09 Redirect tolerance Up to 5 hops Typically 2–3 Low 10 Content update feedback Dashboard confirmation Probe-query inference only Low The Mental-Model Shift Three updates to the SEO mental model cover most of the adjustment needed.A GEO audit surfaces most of the structural issues that cause divergent AI crawler behaviour — the ten GEO audit checks include four crawlability checks designed specifically around AI crawler behaviour, not Googlebot. First: treat AI visibility as a separate product, not a side-effect of SEO. Separate indexes, separate crawlers, separate reporting, separate optimisation signals. A site that ranks well on Google can be entirely invisible in AI answers, and the reasons won't show up in any standard SEO audit. AI visibility needs its own workstream, its own metrics, and its own tooling. Second: optimise for the first response, not the rendered page. What's in the response body at fetch time is what enters the AI retrieval index. No second rendering pass will fill in gaps. No deferred script will inject content the crawler picks up later. Every GEO-critical element — headings, answer text, schema, citations — has to be server-rendered and present at the first byte. This is the specific mental-model shift that trips up the most sophisticated SEO practitioners. The Googlebot rendering pipeline is forgiving. The AI crawler pipeline is not. A content pattern that worked fine for Google Search for years can be entirely invisible to AI, and the diagnosis looks like nothing is wrong until you view the page source. Third: infer everything from behaviour, not from dashboards. There is no Search Console for AI. Indexation is inferred from probe queries. Crawl health is inferred from server logs. Citation uplift after a content change is inferred from repeated measurement. Every diagnostic is a reconstruction, which means every optimisation has to be designed with observability built in from the start. A change you can't measure is a change you can't attribute. The shift translates into specific practice changes across the standard SEO playbook: SEO habit Still works for AI? What GEO requires instead Rely on Googlebot's render pass to pick up client-side content No Server-rendered HTML with all GEO-critical content present at first byte Use Search Console to confirm indexation No equivalent Probe queries against each AI operator to confirm indexation per operator One robots.txt Disallow for Googlebot controls all Google surfaces Partially Enumerate each AI operator's user-agent tokens explicitly Request re-indexation after a content update No Wait for next scheduled crawl; verify via probe queries Treat schema as "nice to have" for rich results Partially Schema must match content structure; misaligned schema is worse than none Redirect chains tolerated up to 5 hops Partially Clean up chains beyond 2–3 hops to avoid AI crawler drop-off On the temptation to wait. Some of these differences — particularly the reporting gap — look like they will be fixed in the next year or two as the major operators mature. They might be. They also might not, because the business model for Google providing free indexation tooling is very different from the business model for OpenAI, Anthropic, or Perplexity doing the same. Planning your GEO work around tooling that doesn't yet exist is a way of doing no GEO work for several more years. The ten differences above are what you have to work with today. Frequently Asked Questions Do AI crawlers index the same content as Googlebot? No. AI crawlers maintain their own retrieval indexes that are separate from Google's. A page crawled, rendered, and ranked by Googlebot may not appear in any AI system's index, and vice versa. The two systems use different crawlers, different rendering pipelines, different scheduling priorities, and different content-selection heuristics. Presence in Google Search is not a proxy for presence in AI answers, and the two have to be measured and optimised separately. Do AI crawlers render JavaScript like Googlebot does? Most do not. Googlebot runs a full headless rendering step that executes JavaScript before indexing, which lets it see client-side-rendered content. The majority of AI crawlers — GPTBot, PerplexityBot, ClaudeBot — retrieve raw HTML and parse it without JavaScript execution. Any GEO-critical content rendered by client-side scripts is invisible to them. This is one of the single most consequential differences between the two crawler populations. How often do AI crawlers revisit a page compared to Googlebot? AI crawlers revisit less often than Googlebot. Googlebot tunes revisit frequency per page based on update signals, with high-update pages sometimes re-crawled within hours. AI crawlers generally operate on longer, less adaptive schedules — days to weeks for most pages, with on-demand fetchers handling real-time retrieval through a separate path. The practical consequence is that content changes take longer to propagate to the AI index than to Google's index. Do AI crawlers respect robots.txt the same way Googlebot does? AI crawlers from the major operators honour robots.txt as documented policy. The difference is in the user-agent tokens. Googlebot has a small, stable set of tokens; AI operators have larger and more fragmented token sets, often splitting training crawlers, retrieval crawlers, and on-demand fetchers across separate user-agent strings. A single Disallow directive targeting Googlebot does not map cleanly to AI crawler control — each AI operator's tokens have to be addressed individually. Why does a page that ranks on Google get no AI citations? Ranking on Google reflects a combination of retrieval, relevance, and quality signals tuned over two decades. AI citation reflects an entirely separate pipeline with different signals — extractability, schema-content alignment, declarative structure, entity density. A page optimised for Google's ranking model can have all the properties that make it rank well and still fail AI extraction, because the two systems reward different structural patterns. The two indexes need separate optimisation, not a shared one. Related 10 Extractability Signals That Predict AI Citation 10 GEO Terms Every Marketer Needs to Know in 2026 The GEO Stack: Five Layers of AI Visibility Version History Version 1.0 — 9 June 2026: Initial publication. Ten structural differences between AI crawler behaviour and Googlebot, with mental-model-shift implications for GEO work. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## 100% Citation Rate. 15/100 Entity Signals. What That Gap Actually Means.
URL: https://thegeolab.net/citation-rate-entity-signals-gap/
, "publisher": , "datePublished": "2026-03-20", "dateModified": "2026-03-26" } /* Breadcrumb */ .layer-nav .layer-nav a .layer-nav a:hover .layer-nav .current .layer-nav .sep /* TL;DR / WHAT THIS IS block */ .definition-block .definition-block .label .definition-block p .definition-block p:last-child /* Callout — amber/gold (data, stats, evidence) */ .callout .callout p .callout p:last-child /* Callout — blue (cross-references, field manual links) */ .callout-note .callout-note p .callout-note p:last-child /* Variable rows (grey left border, small caps label) */ .variable-row .variable-row .v-label .variable-row h3 .variable-row p .variable-row p:last-child /* Signal lists — positive (green) / negative (red) */ .signal-list .signal-list li .signal-list.positive li .signal-list.negative li .signal-list li strong .signal-list li .example /* Numbered step protocol (black circles) */ .protocol .protocol li .protocol li::before .protocol li .step-content .protocol li .step-content strong .protocol li .step-content p .comparison-table .comparison-table thead .comparison-table th .comparison-table td .comparison-table td:first-child .comparison-table tbody tr:nth-child(even) .comparison-table tbody tr:nth-child(odd) .comparison-table tbody tr:hover .comparison-table tbody tr:last-child td @media (max-width: 580px) .comparison-table th, .comparison-table td .comparison-table td:first-child } /* Key takeaways (black numbered circles) */ .takeaway-list .takeaway-list li .takeaway-list li::before /* Related reading cards — 2-column grid */ .related-grid .related-card .related-card:hover .related-card .r-label .related-card .r-title .related-card .r-desc /* FAQ */ .faq-item .faq-item h3 /* Meta footer / Sources */ .meta-section .meta-section h2 .meta-section ul .meta-section li /* Testimonial / Review cards */ .testimonial-card .testimonial-card .t-body .testimonial-card .t-author .testimonial-card .t-role @media (max-width: 580px) } /* Code styling */ pre pre code code , "publisher": , "mainEntityOfPage": , "keywords": [ "citation rate", "entity signals", "entity reinforcement", "GEO audit", "AI visibility", "retrieval vs representation" ] } ] } The GEO Lab / GEO Stack / Entity Reinforcement / Citation Rate vs Entity Signals By Artur Ferreira · The GEO Lab · Last updated: 25 March 2026 A page that AI systems always cite but never accurately represent. The audit that changed how I think about entity reinforcement. TL;DR A page can achieve a 100% citation rate across ChatGPT, Perplexity, and Gemini while scoring just 15 out of 100 on entity signals. Citation rate measures whether AI retrieves your page. Entity signals measure whether AI represents your concepts accurately when it does. These are different capabilities, and optimising for one does not automatically improve the other. This post documents the gap, explains the scoring architecture behind it, and shows what to fix. The Paradox I Found in My Own Data I ran the GEO Stack audit on every published page on thegeolab.net in March 2026. The GEO-002 baseline covered 330 queries across 13 semantic categories, tested against three platforms: ChatGPT (gpt-4o-mini), Gemini (gemini-2.5-flash), and Perplexity (sonar-pro). One page came back with a result I did not expect. Every time an AI system was asked a question where this page was relevant, it cited the page. 100% citation rate. The retrieval pipeline was working perfectly — the content was being found, selected, and included in AI-generated answers. The entity reinforcement score for the same page was 15 out of 100. That is not a typo. A page that AI always retrieves but almost never represents accurately. I spent the next week understanding why this happens, and the answer changed how I think about the entire GEO Stack. The core finding: Citation rate measures retrieval. Entity signals measure representation. A page can be retrieved every time and still be misrepresented every time. These are architecturally independent capabilities in RAG systems. What Citation Rate Actually Measures Citation rate is the percentage of relevant queries for which an AI system includes your content in its response. If Perplexity answers 20 queries where your page is topically relevant, and it cites your page in 18 of those responses, your citation rate is 90%.The methodology for measuring citation rate consistently — including platform variance controls and minimum run requirements — is in the 30-check measurement protocol. This is a retrieval metric. It tells you that the vector embedding of your content is close enough to the query embedding that the retrieval pipeline selects it. It tells you that the page has sufficient topical authority for the re-ranker to keep it in the context window. It tells you the content passed whatever freshness, quality, and relevance heuristics the system applies before generation. What it does not tell you is what the AI system does with your content once it has retrieved it. Kevin Indig's analysis of 1.2 million ChatGPT responses found that citation frequency and citation accuracy are only weakly correlated — a page can be frequently cited while the specific claims extracted from it are paraphrased inaccurately or attributed to the wrong entity. The retrieval pipeline and the generation pipeline are separate systems with separate failure modes. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. What Entity Signals Actually Measure Entity signals measure how explicitly and consistently a page names its core concepts. The GEO Stack scoring architecture breaks this down into four components, each weighted independently:Entity signal scoring is Layer 3 work in the GEO Stack — Structural Authority — which operates above crawlability and extractability and determines whether a page's named concepts are legible to AI knowledge graphs independently of whether the page ranks in search. Component Weight What It Measures Compression retention 40% How much information survives when an LLM compresses the section Declarative openings 25% Whether sections begin with strong factual statements, not questions or transitions Entity explicitness 20% The ratio of named entities to pronouns (he, she, it, they, this, that) Standalone coherence 15% Whether a section makes sense if extracted without its parent document The entity explicitness sub-score is the most mechanically straightforward. The GEO OS scoring engine counts every occurrence of 12 tracked pronouns (he, she, it, they, this, that, these, those, his, her, its, their) and compares them against named entity mentions. A section that says “it improves performance by reducing latency” scores lower than one that says “the GEO Stack improves retrieval performance by reducing embedding latency.” Same claim. Different entity explicitness. The formula: Entity explicitness = entity_mentions / (entity_mentions + pronoun_count) × 100. A score of 15 means roughly 85% of references in the content use pronouns instead of naming the entity directly. The LLM compression step then strips those pronouns entirely, leaving the concept unanchored. Why the Gap Exists: Retrieval vs Representation I was confused by this for longer than I should have been. If the page is good enough to be retrieved every time, why is the entity representation so poor?The retrieval side of the equation is covered by the retrieval probability framework — which models the conditions under which a crawled page gets included in an AI response at all, independently of its entity signal score. The answer is that retrieval and representation happen at different stages of the RAG pipeline, and they depend on different properties of the content. Stage 1 — Retrieval What gets your page selected Topical relevance, semantic similarity to the query, domain authority, freshness signals. These operate on the document level. A page about entity reinforcement gets retrieved when someone asks about entity reinforcement. The content can be poorly structured and still match the query embedding closely enough to be selected. Stage 2 — Extraction What gets pulled from your page The LLM does not use the entire page. It extracts sections, compresses them, and synthesises an answer. This is where entity signals matter. If a section says “this framework improves it by addressing those issues,” the compression step has nothing concrete to preserve. The section is topically relevant (Stage 1 passed) but semantically empty when compressed (Stage 2 fails). Stage 3 — Generation What the AI says about your content The LLM generates its response using the compressed extractions as grounding. If the extraction lost entity specificity, the generated response either attributes the concept vaguely (“some frameworks suggest…”) or misattributes it to a competitor whose content had clearer entity naming. Your page was cited. Your concept was not accurately represented. This is the architectural explanation. Retrieval operates on document-level signals. Representation operates on section-level signals. You can have perfect document-level relevance and catastrophic section-level entity loss simultaneously. What a 15/100 Entity Score Actually Looks Like I went through the flagged page section by section. Here is what I found. The page had seven H2 sections. Five of them opened with transitional phrases: “Building on the previous section…”, “As we discussed earlier…”, “This approach works because…”. Each of these scores 10/100 on declarative openings because they require the surrounding document for context — extracted in isolation, they mean nothing. Entity explicitness was worse. I counted the pronoun-to-entity ratio across all sections: 47 pronoun references against 8 named entity mentions. The page introduced its core concept by name once in the opening paragraph, then referred to it as “it”, “this”, and “the approach” for the remaining 2,400 words. Weak: pronoun-heavy reference “It improves retrieval performance by addressing the core issues that make this difficult for most implementations.” Entity explicitness: 0/100 — no named entity, three pronouns Weak: context-dependent opening “Building on the framework described above, this section explains why the approach works.” Declarative opening: 10/100 — requires parent document, no standalone meaning Weak: compression collapse “These signals help systems understand what the content is about and how it relates to the broader topic.” Compression retention: 12/100 — when compressed, becomes “signals help systems understand content topics” (generic, unattributable) Compare that to what a high-scoring section looks like: Strong: explicit entity naming “The GEO Stack’s entity reinforcement layer measures how consistently a page names its core concepts rather than using pronoun references.” Entity explicitness: 92/100 — “GEO Stack” and “entity reinforcement layer” named explicitly Strong: declarative opening “Entity explicitness is the ratio of named entity mentions to pronoun references within a content section.” Declarative opening: 100/100 — factual definition, standalone, no context needed Strong: compression-resistant “Experiment 001 measured a 23.3-percentage-point citation rate gap between declarative and narrative structure (18/30 vs 11/30, Perplexity, p = 0.07).” Compression retention: 95/100 — compressed form preserves entity, number, and claim How to Close the Gap: Entity Reinforcement Protocol If you do not fix entity explicitness, the retrieval system will continue citing your page while the generation system attributes your concepts to “some practitioners” or, worse, to a competitor whose content names the same concepts more explicitly. You will have the citation. You will not have the representation. The competitor with three posts and better entity naming will own the concept in AI-generated answers. The fix is mechanical. I applied it to the flagged page and the entity signal score moved from 15 to 78 in a single editing pass. Replace every pronoun reference with the named entity Search for “it”, “this”, “that”, “these”, and “the approach” in your content. Replace each one with the actual entity name. “It improves performance” becomes “The GEO Stack improves retrieval performance.” Yes, it feels repetitive in prose. The prose is not the audience — the compression algorithm is. Rewrite every section opening as a standalone declarative statement Delete “As mentioned above”, “Building on this”, and every other phrase that assumes the reader has seen the previous section. Each H2 section should open with a factual claim that makes sense if extracted in complete isolation. RAG systems retrieve sections, not documents. Run the compression test on every section Ask an LLM to compress each section to one sentence. If the compressed form does not contain the entity name and the specific claim, the section will lose its identity during extraction. Rewrite until the compressed form preserves both. Check standalone coherence Read each section without reading any other section on the page. Does it make sense? Does it restate the topic from the H1? Sections that score below 0.3 topic overlap with the page title get a −12 penalty in the GEO Stack scoring model because they are opaque to retrieval systems operating at the passage level. Result: After applying this protocol to the flagged page, entity signals moved from 15/100 to 78/100. Citation rate remained at 100% — retrieval was never the problem. But the accuracy of how the page’s concepts appeared in AI-generated answers improved measurably. The page went from being cited as “some GEO practitioners suggest” to being cited as “The GEO Lab’s entity reinforcement framework.” What This Means for GEO Strategy The citation rate metric is seductive because it is binary and easy to celebrate. Your page was cited or it was not. But citation rate alone is the equivalent of measuring whether someone mentioned your name at a conference without checking whether they described your work accurately. Entity signals measure the second part. They measure whether the AI system, having retrieved your content, can accurately reconstruct what your content actually says. A low entity signal score means the system is citing you but paraphrasing you into generic advice that could have come from anyone. Citation rate and entity signals are architecturally independent metrics. Optimising for retrieval does not automatically improve representation. Entity explicitness is the most mechanically fixable component. It is a pronoun-to-entity ratio. Replace pronouns with named entities. Declarative section openings are the second largest lever. Every section must be a standalone factual claim, not a continuation of the section above it. Compression retention is the ultimate test. If an LLM compresses your section and the entity name disappears, the section will be misrepresented in generated answers. The fix is editorial, not technical. This is not a schema problem, a site speed problem, or a crawlability problem. It is a writing problem. Deeper dive: The GEO Stack scoring architecture and the five-layer framework that produces these scores are documented in The GEO Stack: Five-Layer Framework. The entity reinforcement layer specifically is covered in building semantic gravity. Frequently Asked Questions Can a page have high entity signals but a low citation rate? Yes. Entity signals measure content quality at the section level. Citation rate depends on document-level retrieval signals including topical authority, freshness, and domain reputation. A perfectly structured page on a new domain with no backlinks may have excellent entity signals but never be retrieved. Does fixing entity signals improve citation rate? Not directly. Citation rate depends on retrieval, which is driven by different signals. However, improving entity signals can indirectly improve citation rate over time: if AI systems more accurately represent your content, downstream training data (for systems like ChatGPT) will more strongly associate your entity names with the relevant topics. How do I measure entity signals on my own content? The simplest test: ask an LLM to compress each section of your page to one sentence. If the compressed sentence does not contain your brand name or core concept name, your entity signals are weak. The GEO Stack scoring engine automates this with a four-component weighted score. Is this the same as keyword density? No. Keyword density is a document-level metric from traditional SEO. Entity explicitness is a section-level metric that measures the ratio of named entities to pronoun references within each individual section. The goal is not repetition for ranking — it is semantic anchoring for extraction. Continue Reading GEO Stack · Layer 3 Entity Reinforcement: Building Semantic Gravity in AI Search How to make AI systems consistently name your brand and concepts correctly. Framework The GEO Stack: Five-Layer Framework The complete scoring model behind retrieval, extractability, entity signals, authority, and memory. Data & Experiments GEO Experiments: How to Test & Measure AI Citation Rates Methodology for running citation tests across ChatGPT, Perplexity, and Gemini. GEO Stack · Layer 4 Structural Authority How page architecture and internal linking create authority signals for AI systems. Methodology Entity signal scores were generated by the GEO OS scoring engine using the GEO Stack weighted model (v1.0). Citation rate was measured across the GEO-002 baseline: 330 queries, 13 semantic categories, 3 platforms (ChatGPT gpt-4o-mini, Gemini gemini-2.5-flash, Perplexity sonar-pro). Entity explicitness uses a 12-pronoun detection set with word-boundary regex matching against named entity extraction. Compression retention is measured by simulating LLM compression and comparing information preservation. Ready to apply this? Start with the GEO Stack five-layer framework to diagnose which layer is constraining your visibility, then run the 30-check protocol to establish your citation rate baseline. Questions? Contact The GEO Lab. Sources GEO Lab internal audit data, March 2026 (GEO-002 baseline, 330 queries) GEO OS scoring engine — section_scorer.py, entity explicitness formula Kevin Indig, “What 1.2 Million ChatGPT Responses Tell Us About Citation Mechanics,” Growth Memo newsletter Aggarwal et al., “GEO: Generative Engine Optimization,” Princeton University, 2024 (arXiv)
---
## A URL is noindex and blocked by robots.txt but still appears in Google. Why?
URL: https://thegeolab.net/blocked-by-robots-txt-noindex/
A URL is noindex and blocked by robots.txt but still appears in Google. Why? By Artur Ferreira · The GEO Lab Technical SEO Field Reference, Question 09 of 66. The interview answer, checked against what Google currently documents. Google can't see the noindex directive because robots.txt stops it crawling the page. If other pages link to that URL, Google can still show it in search results without fetching its content. The result in Search Console is "Indexed, though blocked by robots.txt." To get the noindex recognised, remove the crawl block, keep the directive in place and let Google revisit the page. Google's noindex guidance says the page must be crawlable for the rule to work. I can see why people apply both. One says "don't index this page"; the other says "don't crawl it". Together they sound safer. Then the URL appears in Google anyway, and someone adds another Disallow rule. That only makes it harder for Google to see the instruction it needs. What Google says when noindex is blocked by robots.txt robots.txt controls crawling. It doesn't guarantee that a URL stays out of search results: Google can discover a blocked URL through links elsewhere. A noindex directive controls indexing, but Google has to fetch the page to read it. Source: Google Search Central, robots.txt introduction. Google's noindex documentation is explicit: for noindex to work, Google must be able to crawl the page. If robots.txt blocks the crawl, the noindex is invisible. Search Console has a name for the result: "Indexed, though blocked by robots.txt." Google's Page indexing report recommends allowing the crawl and using noindex if you want the URL removed from the index. The noindex blocked by robots.txt interview answer The robots.txt block prevents Google from reading the noindex. Google may still know the URL exists because other pages link to it, and it can list that URL without having crawled the page. I'd remove the Disallow rule for that URL, check that it still serves noindex in the HTML or HTTP header, then wait for Google to recrawl it and confirm it has left the index. Why a noindex page stays indexed when blocked by robots.txt StepWhat happens 1The page serves noindex. 2robots.txt prevents Googlebot from fetching the page. 3Google therefore doesn't see the noindex. 4Links can still tell Google that the URL exists. 5The URL may appear in results, sometimes with little or no snippet because Google hasn't read the page. A real-world noindex blocked by robots.txt example Say a thank-you page shows as "Indexed, though blocked by robots.txt". I'd check the live page first: does it actually return noindex, and is the rule present in the response Googlebot would receive? Then I'd allow crawling for that URL and monitor its status after Google revisits it. The result I want is the URL leaving the index. A stronger crawl block wouldn't get me there. This connects directly to the previous question on how to deindex internal search pages, where the same ordering principle applies: noindex needs crawl access to work. The exception: when a noindex blocked page must stay restricted If the page contains private information and must not be fetched by the public, I wouldn't open it to crawlers just to make noindex work. I'd put it behind authentication and deal with any existing search appearance separately. noindex is an indexing instruction, not access protection. This distinction matters for understanding how crawl budget interacts with indexing controls. robots.txt and noindex operate at different layers of Google's pipeline. Confusing their scope is what produces the "indexed though blocked" status in the first place. The crawl trap question in this series covers the broader principle: blocking crawling doesn't automatically prevent indexing, and preventing indexing doesn't automatically stop crawling. The noindex blocked by robots.txt interview trap This question catches a common assumption: that two blocking instructions must work better than one. Here, one prevents Google from seeing the other. The first check is whether Google can actually fetch the page carrying your noindex. The candidate who answers "add robots.txt and noindex" without understanding the interaction between the two has given the exact answer that causes the problem in the first place. Takeaway If a URL is indexed though blocked by robots.txt, the fix is to remove the crawl block so Google can see the noindex. Two instructions that sound complementary can cancel each other out when one prevents the other from being read. Part 09 of my Technical SEO Field Reference: 66 interview questions answered from what Google currently documents, what we observe in practice, and where the two do not match.
---
## About Artur Ferreira — The GEO Lab
URL: https://thegeolab.net/about/
/* Post meta */ .post-meta .subtitle /* Callout, amber */ .callout .callout p .callout p:last-child /* Callout, blue */ .callout-note .callout-note p .callout-note p:last-child /* Profile image + text side-by-side */ .profile-wrap .profile-wrap img .profile-wrap .profile-text .profile-wrap .profile-text p .profile-wrap .profile-text p:last-child /* Principles list */ .principles .principles li .principles li strong /* FAQ */ .faq-item .faq-item h3 /* Related reading cards */ .related-grid .related-card .related-card:hover .related-card .r-label .related-card .r-title .related-card .r-desc /* Meta footer */ .meta-section .meta-section h2 .meta-section ul .meta-section li @media (max-width: 560px) .related-grid } About Artur Ferreira The GEO Lab is a research platform dedicated to Generative Engine Optimisation (GEO), founded by Artur Ferreira in 2026. It publishes controlled experiments, the five layers of AI visibility, and diagnostic tools measuring how content is retrieved, extracted, and cited by AI systems including Perplexity, ChatGPT, and Google AI Overviews. Based in Cambridge, United Kingdom. I’m Artur Ferreira, founder of The GEO Lab, a research initiative focused on Generative Engine Optimisation (GEO). After more than 20 years working in SEO, I created the lab to study the shift from ranking-based search to AI-driven retrieval and answer generation. From Cambridge, United Kingdom, I publish experiments, frameworks like the GEO Stack, and tools such as the GEO Lab Console to help practitioners understand how content is discovered, retrieved, and cited by AI systems. Alongside The GEO Lab, I run AJ Web Design, a Cambridge-based web design studio building hand-coded, mobile-first websites for UK trade businesses. Both businesses are operated under the same entity, if you need a web presence built for AI and human search from the ground up, that is where to start. Why I Built The GEO Lab Artur Ferreira founded The GEO Lab after 20 years in SEO and organic growth strategy. The shift from traditional search optimisation to Generative Engine Optimisation did not happen overnight, but there was a moment the change became undeniable. I was reviewing performance data for a client who’d done everything right: two years of consistent publishing, a strong backlink profile, technically clean architecture. Rankings were solid. Then AI Overviews started appearing above the fold for their core queries, and organic click-through dropped sharply, without a single ranking change. The page was still in position one. The traffic had simply gone somewhere else: into a synthesised answer at the top of the page, assembled from multiple sources, none of which were the client’s. That’s when I understood that the game had changed at a structural level, not a tactical one. For most of my career, search was a ranking problem. We optimised for keyword targeting, link authority, technical crawl efficiency, and SERP position. But search is no longer purely ranked. It is retrieved, interpreted, compressed, and synthesised. Large language models, AI Overviews, and generative search systems have introduced a new layer: visibility is now partly determined by whether your content is retrieved, understood, and cited inside machine-generated answers. Most industry discussion about this shift has been reactive, tool comparisons, prompt tactics, surface-level speculation. Very little focuses on the structural mechanics: how retrieval systems decide what to extract, how entity clarity affects summarisation, how content architecture reinforces machine confidence. That gap is why The GEO Lab exists. The question in search used to be: where do you rank? In the generative era, the question that determines visibility is: are you part of the answer? It was not only client data. I run several content sites of my own, sports, fashion, tech. Different niches, different audiences, different strategies. By late 2025 they shared one trait: they ranked reasonably well in traditional search, and AI never cited any of them. Not occasionally. Not rarely. Never. I would run queries my content was well-positioned to answer, watch the AI Overview synthesise a reply from three or four sources, and find none of them mine, while pages ranking below me on the same query sometimes were. My own pages were invisible to the retrieval process that now sits above the organic results. When I want to understand something properly, I journal and test, but not on live sites. Legacy architecture and pre-existing signals make it impossible to know what is actually causing what. So I built a dedicated testing ground: a site where every structural decision is intentional, every experiment is documented, and every failure goes into a registry. The GEO Lab is that site. This site documents my transition from traditional SEO strategy to Generative Engine Optimisation (GEO), publicly, rigorously, and experimentally. Not as a hype cycle. As a systems problem. What You Will Find Here The GEO Lab is not a marketing blog. It is a documented research effort. Everything published here starts from a hypothesis, goes through a defined intervention, and produces documented observations with commercial implications. In practice that means: Controlled GEO experiments, with documented results, including a 24-percentage-point improvement in citation rates from structural changes alone. See Experiment 001. Content restructuring case studies, real before-and-after examples of extractability improvements, including the PageSpeed case study showing how technical performance affects retrieval probability. Structured data implementation tests, schema markup effectiveness in AI retrieval contexts. AI visibility measurement frameworks, methods to track retrieval and citation across platforms where standard analytics fall short. Free practitioner resources, browse the complete GEO Lab Library for guides, frameworks, and reference tools. The GEO Lab Console, a diagnostic tool measuring content extractability and retrieval readiness at the section level, available. All experiments and audit results are published openly in The GEO Log. My Approach Twenty years in SEO teaches you to be sceptical of trend cycles. Most of what gets labelled “the future of search” turns out to be a feature update with a good PR team. Generative search is different, not because it’s newer or shinier, but because it changes the unit of optimisation from the document to the section, and from position to retrieval. That’s a structural shift, not a surface one. Four principles shape everything published here: Systems over tactics AI search is architectural. The retrieval pipeline, query processing, section selection, extraction, compression, citation, is consistent in what it rewards. Surface tricks don’t scale against a system; understanding the system does. Evidence over hype If a GEO claim can’t be tested, it isn’t strategy, it’s opinion. Every framework published at The GEO Lab is grounded in documented experiments with measurable outcomes. Commercial impact over vanity metrics Retrieval rate and citation frequency are interesting. Revenue and strategic positioning are what matter. GEO research here is always anchored to business outcomes, not AI novelty. Evolution over nostalgia Traditional SEO fundamentals, domain authority, technical health, link equity, still matter and still feed the retrieval pipeline. But optimisation that stops at the page level is now incomplete. Both layers are required. The framework behind everything published here is the GEO Stack, a five-layer model I developed for engineering generative visibility systematically. It covers retrieval probability, extractability, entity reinforcement, structural authority, and system memory. Each layer targets a specific stage of the retrieval pipeline. Current Projects The GEO Field Manual, a 90-page practitioner guide to Generative Engine Optimisation, published February 2026. It covers the full GEO Stack implementation, section-level audit methodology, entity reinforcement strategies, and AI visibility measurement. Written for practitioners who need a working system, not a theoretical overview. GEO Lab Console, a diagnostic tool measuring content extractability and retrieval readiness at the section level. Available. It surfaces the exact GEO Stack layer where a content section fails, so practitioners can fix the right thing, not just the most obvious thing. GEO Brand Citation Index, a public tracker measuring how frequently brands are cited in AI-generated search responses across platforms, updated regularly. Open Research The GEO Lab publishes open research on AI citation mechanics. All papers are deposited on Zenodo under a CC BY 4.0 licence and linked to ORCID iD 0009-0004-4072-9741. Deterministic Citation-Identity in Perplexity: A 14-Day Zero-Variance Replication of AI Citation Behaviour on Proprietary-Concept Queries, working paper, E027 (May 2026). Confirms Perplexity returns stable query-to-page bindings for proprietary-concept queries across 14 days with zero inter-day variance. Noise Floor Measurement for AI Citation Experiments: Platform Variance, Recording Artifacts, and a Four-Test Diagnostic Protocol, working paper, E016 (April 2026). Establishes the 22.0 pp interpretability threshold applied to all subsequent GEO Lab experiments. Domain Authority Gates Citation Eligibility: Entity Density as a Within-Domain Signal in AI Search, preprint, EDX (April 2026). Null result: entity density is non-operative below the competitive citation gate. GEO Brand Citation Index: Monthly Brand Visibility Tracking Across AI Systems, dataset, monthly (March–May 2026). 37 brands tracked across ChatGPT, Perplexity, and Gemini. View full publication record on ORCID → Get in Touch If you have questions about GEO, want to discuss the research, or are interested in collaboration, visit the Contact page to reach me directly. I respond within 48 hours. You can also follow the ongoing research on X/Twitter (@TheGEO_Lab) or connect on LinkedIn. Frequently Asked Questions Who is Artur Ferreira? Artur Ferreira is the founder of The GEO Lab, with over 20 years of experience in SEO and organic growth strategy. He developed the GEO Stack framework, a five-layer system for engineering content visibility in AI-driven search, and leads ongoing research into Generative Engine Optimisation methodologies. He is based in Cambridge, United Kingdom. What is The GEO Lab? The GEO Lab is a research platform studying how content is retrieved, extracted, and synthesised by AI-driven search systems like ChatGPT, Perplexity, and Google AI Overviews. It publishes controlled experiments, practitioner frameworks, and diagnostic tools for Generative Engine Optimisation. Founded by Artur Ferreira in 2026, the platform operates on four principles: systems over tactics, evidence over hype, commercial impact over vanity metrics, and evolution over nostalgia. What experience does Artur Ferreira bring to GEO? Artur Ferreira brings over 20 years of SEO practice, building organic growth systems, scaling content strategies, solving technical bottlenecks, and aligning search performance with commercial outcomes. That background provides both the pattern recognition to identify when search mechanics shift structurally, and the practical discipline to test and document what actually changes. The GEO Stack framework and the research published at The GEO Lab emerge directly from that applied experience. How can I contact Artur Ferreira? Visit the contact form to reach Artur Ferreira directly. Response time is within 48 hours. The GEO Lab is based in Cambridge, United Kingdom. You can also connect on X/Twitter (@TheGEO_Lab) or LinkedIn. Official GEO Lab Channels The GEO Lab’s official online presence: Website: thegeolab.net, all research, experiments, and publications LinkedIn: linkedin.com/in/arturgeo, research updates and commentary Reddit: r/fromSEOtoGEO, official GEO Lab community Zenodo: ORCID 0009-0004-4072-9741, published research archive X: @TheGEO_Lab Medium: medium.com/@arturseo, long-form writing and practitioner essays The GEO Lab publishes exclusively at thegeolab.net and on LinkedIn under Artur Ferreira. The Substack at open.substack.com/pub/geolabinsights and the Reddit community r/geolab are unaffiliated third-party accounts. Related Reading Framework The GEO Stack, Five-Layer Framework The complete framework for engineering AI search visibility, layer by layer. Experiment Experiment 001: Declarative vs Narrative Structure 24-percentage-point citation improvement from structural changes alone. Pillar What Is Generative Engine Optimisation? The foundational definition of GEO and how it differs from traditional SEO. Resource The GEO Field Manual 90-page practitioner guide covering full GEO Stack implementation.
---
## AI Referral Traffic 3x’d: What It Actually Means to Measure
URL: https://thegeolab.net/ai-referral-traffic-measurement/
AI Referral Traffic 3x'd: What It Actually Means to Measure By Artur Ferreira · The GEO Lab · Published: 21 April 2026 · Version 1.0 Crawler hits, conversation citations, and referral sessions are three different things. Most AI visibility reports treat them as one. Here's the framework that separates them. TL;DR When someone says their AI referral traffic tripled, that number could mean crawler volume, conversation citations, or actual human sessions — and those three figures can point in completely opposite directions. The four AI visibility states (Invisible / Stage 0 / Mentioned / Cited) assign each metric to the correct stage of the funnel, so you know whether you're measuring a precondition or an outcome. Only one state drives referral sessions. The others are diagnostic signals — useful for understanding what's blocking you, not for reporting success. Key GEO Takeaway Crawler hits, conversation citations, and referral sessions are three different metrics that respond to different interventions on different timescales — reporting them in the same breath, as most AI visibility reports do, makes the numbers impossible to act on. The four-state visibility model separates them and maps each to a specific GEO Stack layer. The AI Referral Traffic Numbers That Don't Mean the Same Thing A post circulating in April 2026 reported three figures in the same breath: 32,479 ChatGPT conversations had cited a product's pages in the past 30 days, up 381%. The site had logged 917,000 AI crawler hits over the same period. And AI referral traffic had tripled in recent weeks. These are impressive-sounding numbers. They are also three completely different measurements, at three different stages of the AI visibility funnel, with three different implications for what to do next. The 917,000 crawler hits are a server log figure — bots visiting the site to index content. The 32,479 conversations are a platform-level citation count — queries in which ChatGPT retrieved and linked the domain. The referral traffic is a GA4 session figure — humans who followed a citation link to the site. The first is a precondition. The second is an outcome measure. The third is the downstream commercial result of the second. Conflating these three figures doesn't just muddy reporting — it misdirects intervention. If crawler hits are high but citation rate is low, the bottleneck is extractability and entity clarity, not crawl access. Adding more content to increase crawler volume will not move the needle. The GEO Lab uses a four-state visibility model to formally separate these signals. Each state corresponds to a distinct position in the funnel, with a distinct diagnostic implication and a distinct intervention path. The Four AI Visibility States Every page, on every AI platform, sits in one of four states at any given time. The states are mutually exclusive and ordered — you cannot be Cited without passing through the earlier stages first.Establishing which state a page is in before any intervention is the purpose of Month 0 baseline measurement — without that starting point, the state transition you observe cannot be attributed to a specific content or structural change. Invisible Platform does not retrieve the domain The AI system has no access to the page — either because the crawler has not indexed it, the domain lacks sufficient authority for the platform's retrieval threshold, or the content is blocked. No retrieval means no possibility of citation. Crawler log: zero hits from platform bot Stage 0 Platform retrieves but does not include in answer The crawler has visited the page and the domain appears in the platform's index, but the content is not being selected for inclusion in responses. The page exists to the system — it is not participating in answers. This is the most common state for new or low-authority domains. Crawler log: hits present. Citation checks: 0% Mentioned AI names the domain without linking The AI response refers to the site or entity by name in the answer text, but does not include a source link. No session is driven. In GEO Lab's E002 experiment, Gemini mentioned thegeolab.net in 21.2% of responses and cited it zero times across the same query set. Mention rate is not citation rate. Citation checks: named, not linked Cited AI includes a named source link — the only state that drives sessions The AI response includes the domain as a clickable attributed source. A human can follow the link. This is the only state that produces referral sessions in GA4. Everything before this is diagnostic infrastructure — not a traffic outcome. GA4: referral session recorded The critical distinction is between Stage 0 and Mentioned. Both produce zero referral traffic. But they have different causes and require different responses. Stage 0 indicates a retrieval problem — the content is indexed but not selected. Mentioned indicates a citation-conversion problem — the content is being retrieved and used, but the platform is not attributing it with a link. What Each Metric Actually Measures Mapping common AI visibility metrics to the four-state model makes the diagnostic logic concrete. Metric What it measures Visibility state AI crawler hits (server log) Whether platform bots are accessing your pages Invisible → Stage 0 transition Citation rate (query checks) Proportion of relevant queries where the domain is linked in the AI response Stage 0 → Cited transition Mention rate (query checks) Proportion of relevant queries where the domain is named but not linked Mentioned state — not a traffic signal Conversation citations (platform data) Total query instances in which the platform cited the domain over a period Cited state — volume measure AI referral sessions (GA4) Human sessions originating from an AI platform citation link Cited state — downstream outcome The relationship between conversation citations and referral sessions is not 1:1 and not fixed. A citation in a query that is asked by thousands of users in a day drives more sessions than the same citation in a query asked by three. Reporting raw citation count without query volume context produces a number that cannot be compared across time periods or topics. Where This Model Comes From The four-state framework was developed during E016 — The GEO Lab's noise floor measurement experiment, which ran five consecutive days of citation checks against the same 30-query set with no content changes. The purpose was to establish baseline citation rate variance independent of any content variable.The E016 noise floor data also underpins the ten citation measurement variables post — the same experiment that produced the four-state model also quantified how much each variable contributes to citation rate variance. On Day 1, the data immediately separated into two distinct populations. Tier 1 queries — those about proprietary GEO Lab concepts like the GEO Stack, Retrieval Probability, and Extractability — produced citation rates between 30% and 60%. Tier 2 queries — category and commercial terms like "generative engine optimisation tools" or "AI search optimisation" — produced citation rates of 0% across all five days. The Tier 2 result is not a content quality failure. It is a domain authority failure at the retrieval stage. The content exists. The crawlers visit it. The platform does not select it for competitive queries because the domain does not yet have the authority signals required to compete in that query space. That is Stage 0 visibility — not Invisible (crawlers are active), not Cited (no link is produced), just retrieved and set aside. The noise floor experiment is what makes the four-state model falsifiable rather than theoretical. Without baseline variance data, any change in citation rate could be noise. E016 established that Tier 1 citation rate holds stable across days (±8% variance), while Tier 2 holds stable at 0%. That makes interventions on Tier 2 content testable — if a change produces a non-zero result on a Tier 2 query, that is a signal worth examining. Applying the Model to Reported Results Return to the original figures: 917k crawler hits, 32,479 conversation citations, 3x referral traffic growth.The four-state model connects to the GEO Stack layers: crawled but not cited is a Layer 2 extractability failure; cited but not driving referral traffic is a Layer 3 authority or query-match issue that content changes alone cannot fix. Mapped to the four-state model, these read differently. The 917k crawler hits confirm the domain is not Invisible to the platforms generating those logs — GPTBot, PerplexityBot, and similar. That is the Invisible-to-Stage-0 transition confirmed. It says nothing about whether those crawled pages are being cited. The 32,479 conversation citations confirm the domain has moved past Stage 0 on ChatGPT for some query set. The 381% growth figure is interesting but uninterpretable without knowing the query distribution — whether the growth came from a single high-volume query, a broad set of lower-volume queries, or a change in the platform's retrieval behaviour for a topic category. The 3x referral traffic growth is the only downstream outcome measure. If this figure is tracked to specific citation sources — which pages, which query types, which platforms — it becomes actionable. Without that breakdown, it is a success metric with no replication path. None of this makes the numbers wrong. It makes them incomplete as a reporting framework. The missing layer is always the same: which visibility state is each metric measuring, and what is the bottleneck between the current state and the next one? The Measurement Protocol at The GEO Lab The GEO Lab separates these signals into three distinct measurement tracks, each running on a different cadence and producing a different type of output.The citation rate track uses the standard probe query set — ten query types across Tier 1 and Tier 2, run weekly during active experiments and bi-weekly during baseline monitoring. Crawler access (weekly, server log review): Which AI crawler bots hit which pages, at what frequency, and whether any pages are missing from the crawler logs despite being indexed by Googlebot. A page present in GSC but absent from AI crawler logs is Invisible to that platform regardless of its traditional search performance. The AI Visibility Diagnostics Console surfaces this discrepancy as a crawl parity failure. Citation rate (per experiment, query-based checks): 10 queries per experiment run, across Perplexity, ChatGPT, and Google AI Overviews, with a fixed query set and documented noise floor from E016. Citation rate is recorded as a percentage per platform, not blended. A blended figure hides platform-specific behaviour — Perplexity and ChatGPT have different retrieval mechanisms and different domain authority thresholds. Referral sessions (monthly, GA4 source/medium breakdown): AI referral traffic tracked by platform and landing page. The landing page dimension is the link between the citation rate measurement and the session outcome — it identifies which cited pages are converting crawler access into human visits. One caveat on the source/medium breakdown: GA4 undercounts it. A large share of AI-driven visits arrive with no referrer and fall into direct traffic, so the referral-session figure is a floor rather than a full count. See GA4 misses AI referrals for the mechanism and how to bound the gap. Running all three in parallel is what makes it possible to isolate the bottleneck. High crawler hits and low citation rate: extractability or entity clarity problem. High citation rate and low referral sessions: query volume or competitive displacement problem. High referral sessions without a corresponding citation rate increase: a platform behaviour change worth investigating. Frequently Asked Questions What is the difference between AI crawler hits and AI referral traffic? AI crawler hits are server log entries from bots like GPTBot, PerplexityBot, and ClaudeBot visiting your pages to index content. AI referral traffic is human sessions arriving at your site from an AI platform after a citation. A page can receive thousands of crawler hits and zero referral sessions — crawling is a precondition for citation, not a guarantee of it. What is the difference between a citation and a mention in AI search? A citation is a named source link in the AI response — the platform retrieved the page and attributed the content with a clickable link. A mention is when the AI refers to a site or entity by name without linking. Mentions do not drive referral sessions. In GEO Lab experiments, Gemini mentioned thegeolab.net in 21.2% of responses but cited it zero times across the same query set. What are the four AI visibility states? Invisible — the platform does not retrieve the domain at all. Stage 0 — the platform retrieves the domain but does not include it in the answer. Mentioned — the AI names the domain in its response without linking. Cited — the AI includes a named source link. Only the Cited state drives referral sessions. The earlier states are diagnostic — they identify what is blocking the transition to citation. Why does conflating AI visibility metrics lead to bad decisions? Each metric sits at a different stage of the AI visibility funnel. Optimising for crawler volume when the bottleneck is citation rate wastes effort. Celebrating referral session growth without knowing which queries drove it makes the result non-repeatable. Treating a mention as a citation overstates actual traffic impact. The four-state model assigns each metric to its correct stage so interventions target the actual constraint. Related Month 0 Baseline: The Four AI Visibility States E002 — FAQPage Schema Retrieval Experiment The GEO Stack: Five Layers of AI Visibility AI Visibility Diagnostics Console Version History Version 1.0 — 21 April 2026: Initial publication. Four-state AI visibility model applied to the measurement problem of conflated AI traffic metrics. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## AI Search Optimization: How to Get Your Content Cited
URL: https://thegeolab.net/ai-search-optimization/
, "publisher": , "description": "AI search optimization means structuring content so Perplexity, ChatGPT, and Google AI Overviews cite it as a source. Here is the exact framework — tested, measured, documented.", "mainEntityOfPage": } body h1 h2 h3 p ul, ol li strong em .byline .subtitle .definition-block .definition-block p .definition-block p:last-child .definition-block .label .callout .callout p .callout p:last-child .stat-grid .stat-card .stat-card .stat-number .stat-card .stat-number.positive .stat-card .stat-number.negative .stat-card .stat-desc .stat-card .stat-source table th th.dark td td:first-child tr:last-child td .layer-list .layer-list li .layer-list li:first-child .layer-list li::before .layer-list li div .layer-list li strong .layer-list li span .before-after .before-box, .after-box .before-box .after-box .before-box .box-label, .after-box .box-label .before-box .box-label .after-box .box-label .before-box p, .after-box p .platform-grid .platform-card .platform-name .platform-signal .platform-signal.live .platform-signal.mixed .platform-signal.rank .platform-card p .reviewer-meta .reviewer-meta strong .rating-stars .faq-item .faq-item h3 .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong @media (max-width: 560px) h1 .stat-grid .before-after .platform-grid } By Artur Ferreira · The GEO Lab · Published: 1 April 2026 · Version 1.0 AI Search Optimization: How to Get Your Content Cited Most guides on this topic tell you to "write better content." That is not wrong. It is also not enough. Here is what the data actually shows — and what it means for how you structure every H2 section you publish. TL;DR AI search optimization is the practice of structuring content so that Perplexity, ChatGPT, and Google AI Overviews retrieve and cite it when answering user queries. The core insight — measured, not assumed — is that AI platforms do not evaluate pages. They evaluate sections. A page can rank in position 1 and have zero AI citations if its sections are structured for human reading rather than machine retrieval. The fix is not a new content type. It is a different sentence structure, applied at the section level, across every page you want cited. The GEO Lab's Experiment 001 measured a 23.3-percentage-point citation rate gap (18/30 vs 11/30, Perplexity, p = 0.07) between declarative and narrative structure on identical content with identical domain signals. That number is the practical foundation for everything in this guide. The Problem Is Not What Most Guides Say It Is Here is the advice you will find in most "AI search optimization" guides: write comprehensive content, add schema markup, use conversational language, keep pages fresh. Some of that is correct. None of it explains why a page that ranks in position 2 gets cited on every Perplexity query about its topic, while a page in position 1 — on the same topic, with better backlinks, on a stronger domain — gets cited zero times. I know this pattern because I documented it. My sites were ranking. AI was never citing them. Not occasionally. Not for some queries. Never. The reason is not ranking. The reason is not domain authority. The reason is that AI retrieval systems do not evaluate pages the way search ranking algorithms do. They evaluate sections. And a section written to answer a human reader — with context before the conclusion, with qualifications before the claim, with narrative before the fact — is a section that does not extract cleanly into an AI-generated answer. 60.0% Citation rate — declarative structure (answer first) The GEO Lab, Experiment 001, Jan 2026 36.7% Citation rate — narrative structure (context first) The GEO Lab, Experiment 001, Jan 2026 +23.3pp Gap from sentence structure alone — identical content, identical rankings, identical domain 30 queries on Perplexity −58% Organic CTR reduction for top-ranking pages when an AI Overview is present Ahrefs, Dec 2025 The 23.3-point gap is the number that changes how you think about this. It is not a marginal improvement from a minor tweak. It is the difference between being cited six out of ten times versus being cited three-and-a-half out of ten times — from changing where in the sentence the answer appears. How AI Retrieval Actually Works AI search platforms retrieve content in two distinct stages. Understanding which stage your content fails at determines which fix applies. Stage 1: The candidate pool Before any AI platform generates an answer, it pulls a pool of candidate pages. For Perplexity and ChatGPT with web search, this pool comes from a real-time web retrieval step — effectively a search engine query run in the background. For Google AI Overviews, the pool comes from Google's organic index. The pool is typically the top 20–30 organic results for the query. If your page is not in that pool, nothing else matters. AI retrieval cannot cite what it cannot reach. This is the stage where SEO determines eligibility — domain authority, backlinks, keyword relevance, technical crawlability. GEO's five-layer structure calls this Stage 0, and it is a prerequisite gate: if a page is not ranking in the top 20–30 results for its target query, passage-level optimisation produces zero improvement. Stage 2: Passage selection Once the candidate pool is assembled, the platform evaluates individual sections within those pages. Not the pages as wholes — the sections. A 3,000-word page contributes dozens of candidate passages to this evaluation. The platform selects the passages that best match the query, that can be cleanly extracted without losing meaning, and that are unambiguously associated with the right entity or topic. This is where most pages fail — not because they are not in the pool, but because their sections are not structured for passage-level extraction. The signals that determine passage selection are different from the signals that determine page ranking. Domain authority does not help a narrative-structured paragraph get extracted. A clean declarative opening sentence does. The practical implication: SEO gets your page into the candidate pool. AI search optimization determines whether your sections are retrieved from that pool. Both are required. A page that ranks but is not extractable will not be cited. A page that is extractable but does not rank will not be found. Going deeper? The GEO Field Manual covers the full GEO Stack framework, section-level audit checklist, and citation rate tracking methodology — free to download. The GEO Stack: Five Layers of AI Search Optimization The GEO Stack is a five-layer framework developed at The GEO Lab for engineering content visibility in AI search systematically. Each layer addresses a specific point in the retrieval pipeline. Layers are sequential — a failure at Layer 1 means Layers 2–5 produce no improvement. Layer 1 — Retrieval Probability Whether a section gets selected from the candidate pool at all. Determined by semantic alignment between the section and the query, heading clarity, and opening sentence structure. A section that buries the answer three sentences in has lower retrieval probability than one that states it in the first sentence. This is the layer Experiment 001 tested directly. Layer 2 — extractable content structure Whether a retrieved section can be cleanly parsed and reused. A section is extractable if it makes sense when pulled from its surrounding context — if removing the paragraphs before and after it does not destroy the meaning. Sections that depend on prior context to be understood are not extractable. Sections with explicit entity naming, self-contained sentences, and clear H3 headings are. Layer 3 — Entity Reinforcement Whether the content strengthens the association between your brand, domain, or topic and the right entities. Named explicitly. Every time. "The GEO Stack" not "it." "Perplexity" not "the platform." "Artur Ferreira" not "the author." Consistent entity naming is what allows AI systems to build a reliable model of what your content is about and who produced it. Layer 4 — Structural Authority Whether the site architecture, internal linking, and schema markup signal that the content is authoritative on its topic. Consistent heading hierarchy, bidirectional internal links between topically related pages, and correct JSON-LD schema are the practical interventions here. Structural authority is the layer most overlapping with traditional SEO — domain authority, backlinks, and technical health all feed Layer 4. Layer 5 — System Memory The accumulated contextual model AI retrieval systems build about a site over time. Consistent publishing on a focused topic cluster, external references from other sites, and entity associations that compound across the retrieval corpus. System Memory is the layer that explains why a new site with excellent content may still have lower citation rates than an older site with weaker content — and why citation rates accumulate over time with consistent publishing rather than arriving immediately. THE GEO STACK — AI SEARCH OPTIMIZATION LAYERS Layer 5 — System Memory Accumulated entity associations over time Layer 4 — Structural Authority Schema, internal links, domain signals Layer 3 — Entity Reinforcement Consistent naming, no pronouns Layer 2 — Extractability Self-contained sections, context-free Layer 1 — Retrieval Probability Declarative openings (+23.3pp) ← Most pages fail here first — fix Layer 1 before anything else → The GEO Stack: five sequential layers of AI search optimization. A failure at Layer 1 means Layers 2–5 produce no improvement. Layer 1 — Retrieval Probability — is where the 23.3pp declarative structure gap was measured. The Single Highest-Impact Change: Declarative Section Openings Every layer of the GEO Stack matters. Layer 1 — Retrieval Probability — is where most pages fail first, and it has one dominant fix: open every H2 section with a declarative statement of the main claim. This is not a stylistic preference. It is a structural signal that determines whether an AI platform extracts the section or skips it. The mechanism: AI retrieval systems evaluate passages probabilistically. A passage that opens with the answer to the query — stated directly, in the first sentence — has higher semantic alignment with the query than a passage that builds up to the answer over several sentences. Higher semantic alignment means higher retrieval probability. What this looks like in practice ❌ Narrative — low retrieval probability "When thinking about how content gets discovered by AI systems, it's important to understand that there are several factors at play. Research has shown that the way content is structured can have an impact on whether it appears in AI-generated responses. One key finding relates to sentence structure..." ✓ Declarative — high retrieval probability "Declarative sentence structure increases AI citation rate by 23.3 percentage points compared to narrative structure on identical content (18/30 vs 11/30, Perplexity, p = 0.07). AI retrieval systems evaluate passages by semantic alignment with the query — a section that states its answer in the first sentence matches more directly than one that builds context before the claim." Both versions contain the same information. The declarative version states the finding in the first sentence. The narrative version arrives at the same finding after three sentences of setup. In a 30-query Perplexity test, the declarative version was cited in 18 of 30 queries (60.0%). The narrative version was cited in 11 of 30 (36.7%). The content was identical. The domain was identical. The only variable was sentence order. The rule applied at section level Apply this to every H2 section on every page you want cited. Not just the introduction. Not just the summary. Every section. The first sentence of every H2 section should state the main claim of that section directly — before any qualification, any context, any setup. The supporting sentences that follow can provide context, nuance, and evidence. The opening sentence cannot afford to. This is also why section-level optimisation matters more than page-level optimisation for AI search. A page with ten H2 sections contributes ten candidate passages to the retrieval evaluation. Fixing the opening sentence of each section is ten separate citation opportunities — each one independent of the others. How the Three Main Platforms Differ Perplexity, ChatGPT, and Google AI Overviews use different retrieval mechanisms. What works on one does not automatically transfer to the others — and the measurement approach differs per platform. Perplexity Live web retrieval Retrieves from the live web before every response. Citations are shown transparently in a source panel. The most responsive platform to content structure changes — a structural improvement can show up in Perplexity citations within weeks of publishing. The primary measurement platform for AI search optimization work. ChatGPT Mixed — training + web Uses training data as the primary knowledge source, with optional web search that activates inconsistently. Citation rates on ChatGPT are consistently lower than Perplexity for equivalent content. Training data updates on a timescale of months to years — structural content improvements take longer to reflect here. Google AIO Ranking-correlated Google AI Overviews pull from Google's organic index and correlate strongly with organic ranking position. Getting cited in Google AIOs requires both strong organic rankings and extractable content structure. The hardest platform to influence through content structure alone without established domain authority. The practical implication for measurement: track Perplexity first. It is the most responsive to structural changes, the most transparent about sourcing, and the most useful for detecting whether an intervention is working before waiting months for training data or ranking signals to move. Factor Perplexity ChatGPT Google AIO Retrieval source Live web, every query Training data + web search Google organic index Speed of change Weeks Months to years Weeks (for ranking changes) Citation transparency Source panel shown Inconsistent Source links shown Primary signal Content structure Training corpus presence Organic ranking position Measurability High Low Medium What Does Not Work — and Why Several interventions are commonly recommended for AI search optimization that the data does not support — or that actively undermine the goal. FAQ schema does not improve citation rate The GEO Lab ran 320 queries across ChatGPT, Gemini, and Perplexity comparing FAQ-schema pages against non-FAQ pages on identical topics. The result: a −1.7 percentage point delta in favour of non-FAQ pages, with no statistical significance. FAQPage JSON-LD does not meaningfully affect whether AI systems retrieve your content. Keep it for content structure discipline and Google rich results eligibility — not for AI citation rate. Content length is not a retrieval signal Longer pages do not get cited more. AI systems retrieve sections, not pages. A 500-word page with one declarative section can outperform a 5,000-word page whose sections all begin with narrative context. The retrievable unit is the passage. Optimise the passage, not the page word count. Freshening content without adding information does not help Updating timestamps and rephrasing existing sentences to appear fresh is documented as a POST_AUDIT_RULES violation at The GEO Lab — and it does not improve AI citation rate. Perplexity's live retrieval evaluates content quality and semantic alignment, not publication date. New data, corrected figures, expanded FAQs, and genuine additions improve retrievability. Cosmetic freshening does not. Mentions are not citations Gemini mentioned thegeolab.net in 21.2% of responses during the FAQ schema experiment — and cited it zero times. A mention is when the AI response refers to your brand or content by name without a source link. A citation is a URL appearing as a named source. Mentions do not drive traffic. Conflating mention rate with citation rate produces false confidence about AI visibility. The AI Search Optimization Checklist Applied in order. Each item targets a specific layer of the GEO Stack. Stop if an earlier item fails — fixing Layer 3 does nothing if Layer 1 is broken. Layer 0: Confirm the page is in the candidate pool Check organic ranking for each target query. The page needs to rank in the top 20–30 results. If it does not, the AI platforms will not find it — and no amount of structural optimisation helps. Fix the ranking problem first through standard SEO: domain authority, backlinks, technical health, keyword relevance. Layer 1: Fix section openings Open every H2 section with a declarative statement of the main claim. First sentence. No setup, no qualification, no context before the answer. Read each section opening in isolation — if it does not immediately answer the implicit query the section is about, rewrite it. Layer 2: Make sections self-contained Each H2 section should make sense if the surrounding sections are removed. Test this by reading only the section — without the introduction and without the following section. If the meaning is lost, the section has a context dependency that reduces its extractability. Fix it by: explicitly naming entities instead of using pronouns, restating the key concept rather than assuming the reader remembers it from two sections ago, and writing the closing sentence of each section as a standalone conclusion. Layer 3: Name entities explicitly and consistently Every entity — brand, person, concept, platform, framework — named the same way every time it appears. "The GEO Stack" not "it" or "the framework." "Perplexity" not "the platform." "Artur Ferreira" not "the author." Inconsistent entity naming reduces the strength of the association the AI system can build between your content and the entity it describes. Layer 4: Add schema and internal links Article JSON-LD with correct datePublished, author, and publisher. FAQPage JSON-LD for any Q&A section — not for citation rate improvement, but for structured signal to Google. Internal links to topically related pages, bidirectional. Canonical URL set. These are structural authority signals that compound over time. Layer 5: Publish consistently on a focused topic cluster System Memory — the accumulated contextual model AI retrieval systems build about a site — requires consistent publishing on a focused topic cluster. A site that publishes one well-optimised page and stops will see lower citation rates than a site that publishes consistently on related topics. The entity associations that drive System Memory are built by repetition, not by a single excellent page. How to Measure Whether It Is Working AI search optimization without measurement is not a strategy — it is an opinion about what might help. The measurement protocol that matters is simple: run a fixed query set monthly and track citation rate. The GEO Lab's 30-check protocol runs 10 fixed queries across Perplexity, ChatGPT, and Google AI Overviews every 30 days. Each query is run once per platform. The result is a combined citation rate across 30 data points, a per-platform breakdown, and a delta score (Perplexity minus ChatGPT) that reveals whether citations are coming from live web retrieval or training data memory. Two metrics to track in parallel: URL citation rate — the percentage of queries where your domain URL appears as a named source. This is the primary longitudinal tracking metric. Changes here are the signal that structural optimisation is working. Framework adoption rate — the percentage of queries where the AI platform builds its answer using your terminology, framework, or methodology, even without a URL citation. High framework adoption with low URL citation is the most common pattern for sites building authority: content is working at the passage level, but domain authority has not yet crossed the threshold that triggers direct URL attribution. The E014 experiment at The GEO Lab documented exactly this pattern in its first month: a 20% URL citation rate on Perplexity against a 90% framework adoption rate on the same query set. The framework was structuring AI answers. The URLs were not yet appearing in every response. Month-on-month tracking shows when that gap closes. Frequently Asked Questions What is AI search optimization? AI search optimization is the practice of structuring content so that AI platforms — including Perplexity, ChatGPT, and Google AI Overviews — retrieve and cite it as a source when answering user queries. Unlike traditional SEO, which optimises entire pages for ranked position, AI search optimization targets individual content sections for retrieval from a passage pool. The primary signals are declarative sentence structure, topical isolation per section, explicit entity naming, and context-complete chunks that survive compression. How do AI search engines decide what to cite? AI search engines retrieve content in two stages. First, they pull a candidate pool from indexed pages — typically the top 20–30 organic results for the query. Second, they evaluate individual sections within those pages for retrieval probability: how well the section matches the query, whether it can be cleanly extracted, and whether the entity associations are clear. A page can rank in position 1 and still have zero AI citations if its sections are not structured for passage-level retrieval. Does sentence structure actually affect AI citation rate? Yes — with measured data. The GEO Lab's Experiment 001 tested 30 queries on Perplexity comparing declarative structure (answer-first) against narrative structure (context-first) on identical content with identical domain signals. Declarative: 60.0% (18/30). Narrative: 36.7% (11/30). A 23.3-percentage-point gap (z = 1.81, p = 0.07) from sentence order alone, with no other variables changed. What is the difference between AI search optimization and traditional SEO? SEO optimises entire pages for ranked position in a document list. AI search optimization optimises individual content sections for retrieval from a passage pool within pages that are already ranked. SEO primary signals: domain authority, backlinks, keyword relevance. AI search optimization primary signals: declarative structure, entity naming consistency, topical isolation at section level. Both are required — SEO gets content into the candidate pool, AI search optimization determines whether sections are retrieved from that pool. Which AI platform should I optimize for first? Perplexity. It retrieves from the live web before every response, shows citations transparently in a source panel, and responds to structural content changes within weeks rather than months. It is the most measurable platform for tracking whether AI search optimization interventions are working. Once Perplexity citation rate is moving, ChatGPT and Google AI Overviews will follow as training data updates and organic rankings improve. How do you measure AI search optimization results? Run a fixed set of 10 queries across Perplexity, ChatGPT, and Google AI Overviews monthly. Record whether your domain URL appears as a named source (URL citation rate) and whether the platform uses your framework or terminology in its answer without a URL (framework adoption rate). Repeat monthly with the same query set. The trend line across 6 months is more informative than any single data point. Full protocol at How to Measure AI Citation Rate. Is AI search optimization the same as GEO? Generative Engine Optimisation (GEO) is the broader discipline — the practice of optimising content for AI-driven search and answer generation systems. AI search optimization is one aspect of GEO, focused specifically on the structural and content-level interventions that improve retrieval and citation. The GEO Stack is the five-layer framework that maps the full pipeline from retrieval probability to system memory. Key GEO Lab Takeaway AI search optimization works at the section level, not the page level. The single highest-impact intervention — opening every H2 section with a declarative answer sentence — produced a 23.3-percentage-point citation rate improvement (18/30 vs 11/30, Perplexity, p = 0.07) in controlled testing at The GEO Lab. That improvement requires no new content type, no tool, and no schema. It requires changing where in the sentence the answer appears. Measure it with a fixed monthly query set across Perplexity, ChatGPT, and Google AI Overviews. Track URL citation rate and framework adoption rate separately. The trend across six months tells you whether the GEO Stack is working — no single data point does. Related Experiment 001: Declarative vs Narrative Structure — the 23.3pp gap The GEO Stack: Five-Layer Framework Extractability — Designing Content for Machine Retrieval Retrieval Probability — The Core Variable of GEO How to Measure AI Citation Rate: The 30-Check Protocol E014 Month 1: thegeolab.net Citation Rate After 30 Days What Is Generative Engine Optimisation? AI SEO OS — 20-Chapter Framework for Autonomous AI Visibility External References Aggarwal, P. et al. (2024). GEO: Generative Engine Optimization. Princeton University. Structural optimisation improved generative search visibility by 22–40%. Ahrefs. (Dec 2025). AI Overviews reduce organic CTR by 58% for top-ranking pages. Seer Interactive. Pages cited in AI Overviews receive 35% more organic clicks than non-cited pages (3,100+ queries, June 2024 to September 2025). Version History Version 1.0 — 7 April 2026: Initial publication. AI search optimization definition, two-stage retrieval model, GEO Stack five layers, declarative structure evidence, platform comparison, what does not work, measurement protocol, FAQ. Ready to apply this? Run your first citation check with the AI Citation Leaderboard — free first check, no credit card needed. Or start with the GEO Stack. Questions? Contact The GEO Lab. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## AI SEO OS: The Autonomous AI Visibility System
URL: https://thegeolab.net/ai-seo-os/
.ebook-landing .ebook-landing h1 .ebook-landing .lead .ebook-landing h2 .ebook-landing h3 .ebook-landing p .ebook-landing .faq-item .ebook-landing .faq-item h3 .ebook-landing .faq-item p .ebook-landing .internal-links .ebook-landing .internal-links h2 .ebook-landing .internal-links ul .ebook-landing .internal-links li .ebook-landing .internal-links li:last-child .ebook-landing .internal-links a .ebook-landing .internal-links a:hover .ebook-landing .whats-inside h3 @media (max-width: 768px) .ebook-landing h1 .ebook-landing h2 .ebook-landing .faq-item } AI SEO OS: The Autonomous AI Visibility System The AI SEO OS is a 20-chapter operational framework for building an autonomous AI search visibility system — a 15-layer architecture covering intelligence gathering, content production, authority building, distribution, citation monitoring, and AI agent deployment. It is the most advanced resource in the GEO Lab Library, designed for practitioners who want to move from manual GEO implementation to a systematised, self-improving visibility infrastructure. Most GEO implementation is manual: update a page, check citations, repeat. The AI SEO OS replaces that loop with infrastructure — a structured operating system that continuously optimises your content for citation across ChatGPT, Perplexity, Gemini, Copilot, and emerging AI platforms. Twenty chapters across twelve parts. A 90-day launch roadmap. Twelve worksheets. A quick-reference guide. Built as a system to install, not a guide to read once. What's Inside the AI SEO OS Part I — The Transformation of Search How AI rewired search from rankings to answers. How RAG (Retrieval-Augmented Generation) and knowledge graphs work — and why every layer of the AI SEO OS is designed to influence what AI retrieves, what it knows about you, and how it structures your information. AI citation visibility as the new core success metric. Part II — SEO vs GEO vs AI Visibility Engineering The three disciplines compared in a single hierarchy. Why AI visibility engineering supersedes both traditional SEO and standard GEO — and what that means for your strategy. Part III — The AI SEO Operating System: 15 Layers The complete 15-layer architecture: Layers 1–5 (Intelligence & Foundation), Layers 6–10 (Content & Authority Production), Layers 11–15 (Distribution, Monitoring & Growth). Each layer explained with implementation guidance and readiness assessment. Part IV — The AI SEO Command Center The operational architecture for running the OS: five operational layers, dashboard design from Opportunity Radar to Agent Control, and monitoring infrastructure. Part V — AI Agents Running SEO Five autonomous agent types and their workflows: content research, gap analysis, schema generation, citation monitoring, and authority building. How to build, deploy, and operate your agent fleet. Part VI — Programmatic SEO and Content Factories Templates, query expansion, and automated page generation at scale. Content libraries, quality control frameworks, and the risks of scaling without guardrails. Parts VII–XII — Full Implementation Stack Designing extractable knowledge (the architecture of AI-quotable content). Authority signals and knowledge graph presence. AI citation monitoring systems. GEO experimentation frameworks. Building the complete AI visibility infrastructure. The future of AI search and what to build for now. 90-Day Launch Roadmap A week-by-week implementation plan from OS installation to full operational status, with milestone markers and decision points. 12 Worksheets One per major system component — each with defined inputs, outputs, and success criteria. Designed to be completed as you build, not after. Quick Reference Guide The complete AI SEO OS summarised on a single reference page for ongoing use. Who the AI SEO OS Is For The AI SEO OS is written for advanced practitioners, SEO leads, agency owners, and founders who want to build AI search visibility infrastructure — not just implement individual tactics. It assumes familiarity with GEO fundamentals and the GEO Stack. Readers new to GEO should start with the GEO Pocket Guide. The GEO Authority Playbook is the recommended companion reference. Frequently Asked Questions What is the AI SEO OS?The AI SEO OS is a free ebook and operational framework for building an autonomous AI search visibility system. It covers a 15-layer architecture spanning intelligence gathering, content production, AI agent deployment, citation monitoring, and knowledge graph optimisation — structured as an operating system to install rather than a guide to read once. What is RAG optimisation and why does it matter for AI visibility?RAG stands for Retrieval-Augmented Generation — the technical process by which AI engines like ChatGPT and Perplexity retrieve external content before generating an answer. RAG optimisation means structuring your content so it is retrieved, extracted accurately, and cited in AI-generated responses. The AI SEO OS is built around influencing all three stages of the RAG pipeline. What are AI SEO agents and how do they work?AI SEO agents are autonomous software workers that perform specific SEO and GEO tasks without manual input — such as monitoring citation rates, identifying content gaps, generating schema markup, or analysing competitor citation patterns. Part V of the AI SEO OS covers five agent types, their workflows, and how to build and deploy them. How is the AI SEO OS different from the GEO Authority Playbook?The GEO Authority Playbook focuses on the strategic architecture of AI citation authority — entity building, knowledge graphs, and competitive intelligence. The AI SEO OS focuses on operational infrastructure — the systems, agents, dashboards, and workflows that run your AI visibility programme at scale. They are complementary: the Authority Playbook is the strategy, the AI SEO OS is the execution engine. Do I need technical skills to implement the AI SEO OS?Some technical familiarity is helpful, particularly for the AI agent and programmatic content sections. However, each layer of the OS is explained with clear implementation guidance, and the 12 worksheets are designed to be accessible to non-developers. The 90-day roadmap provides a structured sequence so implementation doesn't require everything to be done at once. Continue in the GEO Lab Library Companion: GEO Authority Playbook — the strategic authority architecture that the AI SEO OS runs on top of. Foundation: GEO Field Manual — the complete practitioner reference for all five GEO Stack layers. Start here: The GEO Pocket Guide — the fastest introduction to GEO for new team members. Browse all ebooks: thegeolab.net/ebooks /* ── LIGHT THEME TOKENS ── */ :root *, *::before, *::after body .page .page::before .topbar .topbar.gold .topbar.blue .topbar.green .topbar.purple .topbar.red .topbar.teal .label h2 h3 h4 p .rule .stat-grid .stat-card .stat-num .stat-label .callout .callout.gold .callout.blue .callout.green .callout.red .callout.purple .callout strong ul.arr ul.arr li ul.arr li::before ul.tck li::before ul.crs li::before table.era table.era th table.era td table.era tr:hover td .dot .formula .fstep .fnum .fstep-content strong .fstep-content p .week-grid .week-card .week-head .week-head.w1 .week-head.w2 .week-head.w3 .week-head.w4 .week-body .week-body ul.arr li .quote .quote p .quote small .lift-grid .lift-card .lift-pct .lift-desc .pfooter .pfooter span .pfooter > div:nth-child(2) .pfooter > div:nth-child(3) .pfooter a .pfooter a:hover /* COVER */ .cover-page .cover-stripe .cover-inner .cover-tag .cover-h1 .cover-h1 em .cover-sub .cover-kicker .cover-promise .cover-promise p .cover-pills .cpill .cpill.a .cpill.b .cpill.c .cpill.d .cpill.e .cover-stats .cs-item .cs-num .cs-lbl .cover-bottom .cover-deco .cover-deco2 /* CHEAT SHEET */ .timeline-row .tl-era .tl-body .tl-body strong .tl-era.blue-bg .tl-era.green-bg .tl-era.purple-bg .tl-era.hot-bg /* PYRAMID */ .pyramid .pyr-row .pyr-block /* CHECKLIST */ .check-grid .check-col .check-head .check-head.beg .check-head.int .check-head.adv .check-body .check-body ul.arr li /* FAQ */ .faq-item .faq-q .faq-q::after .faq-a /* QUIZ */ .quiz-section .quiz-q .quiz-q .qnum .quiz-q .qtext .quiz-options .quiz-opt .quiz-opt:hover .quiz-opt.correct .quiz-opt.incorrect .quiz-tf .quiz-tf button, .quiz-short button .quiz-tf button:hover, .quiz-short button:hover .quiz-tf button.correct, .quiz-short button.correct .quiz-tf button.incorrect .answer-reveal .answer-reveal.show .show-answer-btn .show-answer-btn:hover /* SCORE */ .score-board .score-num .score-label /* UPSELL */ .upsell-grid .upsell-card .upsell-price .upsell-title .upsell-desc @media (max-width: 900px) .page, .cover-page .cover-page h1 h2 h3 p, li table .pfooter } @media (max-width: 480px) h1 p, li } @media print .page } /* ── AI SEO OS EXTRA COMPONENTS ── */ .toc-part .toc-row .toc-ch .toc-title .toc-pg /* Comparison table */ table.compare table.compare th table.compare th.h-seo table.compare th.h-geo table.compare th.h-ai table.compare th.h-dim table.compare td table.compare tr:nth-child(even) td /* Layer cards */ .layer-grid .layer-item .layer-num .layer-content strong .layer-content p /* Architecture box */ .arch-box .arch-box .ac .arch-box .ag .arch-box .ay .arch-box .ap .arch-box .ar /* Agent card */ .agent-grid .agent-card .agent-head .agent-head.opp .agent-head.cont .agent-head.opt .agent-head.cit .agent-head.auth .agent-body .agent-body ul.arr li /* Worksheet */ .worksheet .ws-title .ws-field .ws-label /* Chapter summary */ .chapter-summary .cs-title .chapter-summary ul .chapter-summary ul li .chapter-summary ul li::before /* Roadmap */ .roadmap-phase .rp-head .rp-head.ph1 .rp-head.ph2 .rp-head.ph3 .rp-body .rp-week .rp-week strong The GEO Lab · Advanced Series · 2026 Edition · Expert AI SEO OS The Autonomous AI Visibility System Building a Knowledge Infrastructure for Search, AI Assistants, and Generative Engines Search is no longer a list of links. AI systems now read, synthesise, and answer — citing a handful of trusted sources. This book builds the complete operating system your organisation needs to become one of those sources, permanently. Not tactics. Not a checklist. A full infrastructure. What this book builds: A 15-layer AI SEO Operating System · Autonomous agent workflows · Programmatic content factories · Extractable knowledge architecture · Entity and knowledge graph presence · AI citation monitoring systems · A complete 90-day implementation roadmap 15-Layer OS AI Agents Knowledge Graph 90-Day Roadmap 12 Worksheets 12 Parts covering the complete AI visibility stack 15 OS layers from intelligence to monitoring 90 Day launch plan for immediate implementation thegeolab.net March 2026 · Free for personal & commercial use · By Artur Ferreira Contents · AI SEO OS Table of Contents A complete systems manual for building autonomous AI visibility. Each part builds the next layer. Part I — The Transformation of Search 1From Rankings to Answers: How AI Rewired Search3 2RAG, Knowledge Graphs & How AI Systems Retrieve Information4 3AI Citation Visibility: The New Success Metric5 Part II — SEO vs GEO vs AI Visibility Engineering 4The Three Disciplines Compared6 5Why AI Visibility Engineering Supersedes Both7 Part III — The AI SEO Operating System: 15 Layers 6Layers 1–5: Intelligence & Foundation8 7Layers 6–10: Content & Authority Production9 8Layers 11–15: Distribution, Monitoring & Growth10 Part IV — The AI SEO Command Center 9Architecture: Five Operational Layers11 10Dashboards: From Opportunity Radar to Agent Control12 Part V — AI Agents Running SEO 11Five Agent Types and Their Workflows13 12Building and Operating Your Agent Fleet14 Part VI — Programmatic SEO and Content Factories 13Templates, Query Expansion & Automated Page Generation15 14Content Libraries, Quality Control & Scaling Risks16 Parts VII–XII & Implementation 15Designing Extractable Knowledge17 16Authority & Knowledge Graph Presence18 17AI Citation Monitoring19 18GEO Experimentation Framework20 19Building the Complete AI Visibility Infrastructure21 20Future of AI Search22 ✦90-Day AI SEO OS Launch Roadmap23 AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 2 Chapter 1 · Part I: The Transformation of Search From Rankings to Answers: How AI Rewired Search For three decades, search meant one thing: a ranked list of blue links. Visibility meant position. Success meant clicks. The entire infrastructure of SEO — keywords, backlinks, crawl budgets, title tags — was built around this model. That model is structurally over for a large and growing class of queries. The Retrieval Revolution In 2024–2026, the world's largest search infrastructure shifted from link retrieval to knowledge synthesis. Google AI Overviews now serve AI-generated answers above organic results for hundreds of millions of queries daily. ChatGPT's search-enabled mode queries the live web and synthesises responses. Perplexity's entire architecture is built around answer generation with citations. Microsoft Copilot integrates AI answers into the default search experience. Old Search (2000–2023)User types query → Engine returns ranked list → User clicks → User reads → User decides. Ten blue links. The source of truth was position. New Search (2024–2026+)User types or speaks query → AI synthesises answer from trusted sources → User reads synthesised answer → AI cites 3–5 sources. The source of truth is citation. Three Forces Driving the Shift 1Large Language Models at ScaleLLMs can now read, synthesise, and present information fluently. They don't just retrieve — they understand, compare, and answer. The result: for any question with a knowable answer, AI synthesis is faster and more complete than click-based navigation. 2Retrieval-Augmented Generation (RAG)RAG connects LLMs to live web data. Instead of relying purely on training data, AI systems retrieve current information and ground their answers in real sources. This means citation patterns update continuously — creating both opportunity and urgency for content publishers. 3Conversational InterfacesVoice, chat, and agentic interfaces don't return lists. They answer. When Siri, Alexa, Copilot, or a custom enterprise AI assistant answers a question, it cites one or two sources — or none at all. Visibility in these systems requires a fundamentally different approach than traditional SEO. The Zero-Click Acceleration Zero-click search — where users get their answer without visiting any website — has been growing since 2019 (featured snippets) and accelerated sharply in 2024 with AI Overviews. Current estimates place zero-click rates above 60% for informational queries. For brands that built their entire visibility strategy on organic clicks, this represents a structural revenue threat. For brands that adapt, it represents a new form of visibility: AI brand impressions — your brand name, your expertise, your framing appearing in every AI answer on your topic. 800M+ChatGPT weekly active users, early 2026 750M+Monthly Gemini app users (Jan 2026) >60%Zero-click rate on informational queries Chapter 1 — Key Takeaways AI synthesis has replaced link navigation as the primary mode of information retrieval for a growing share of queries — this is permanent, not transitional Visibility now means citation, not ranking — a brand cited in AI answers has visibility even when users never click to its site RAG architecture means citation patterns update continuously — recency and structural quality compound over time, not just at the moment of publication AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 3 Chapter 2 · Part I: The Transformation of Search RAG, Knowledge Graphs & How AI Systems Retrieve Information To engineer visibility in AI systems, you must first understand how they retrieve and use information. The mechanics differ significantly across platforms — but two foundational architectures underpin all of them: Retrieval-Augmented Generation (RAG) and Knowledge Graphs. Retrieval-Augmented Generation (RAG) RAG is the technical architecture that allows an AI to query external information sources at inference time — meaning when a user asks a question. Instead of relying solely on what was learned during training, a RAG-enabled AI: 1Receives a queryThe user's question is processed and converted into a search vector. 2Retrieves candidate documentsThe system queries an index — either a web search API, a vector database, or both — and retrieves the most semantically relevant documents. 3Ranks and filtersRetrieved documents are scored for relevance, authority, and extractability. High-quality, structured, clearly attributed content scores higher. 4Generates a grounded responseThe LLM reads the retrieved content and synthesises a response, drawing directly from the source text. This is why extractable content — content with clear, direct answers — gets cited more often than prose-heavy content. 5Attributes citationsSources used in generation are cited. In systems like Perplexity, every source is cited explicitly. In Gemini AI Overviews, 3–5 sources typically appear. In ChatGPT's search mode, citations are inline. # RAG Pipeline (simplified) User Query ↓ Query Encoder → semantic vector representation ↓ Document Retrieval → web index + vector DB ↓ Re-ranking → authority + relevance + recency scoring ↓ Context Window Assembly → top N documents ↓ LLM Generation → grounded in retrieved documents ↓ Answer + Citations Knowledge Graphs Knowledge graphs are structured databases of entities and relationships — the backbone of how AI systems "know" things about the world. Google's Knowledge Graph, Wikidata, and internal model representations all form part of the knowledge infrastructure AI uses to answer questions. When an AI is asked "Who is [Brand X]?" or "What does [Brand X] do?", it queries its knowledge graph. If your brand has a well-defined entity record — with consistent attributes, accurate relationships, and cross-source validation — the AI returns rich, accurate information and is more likely to cite you in related answers. Why this matters for the AI SEO OS: Every layer of the operating system described in Part III is designed to influence one of three things: what AI retrieves (RAG optimisation), what AI knows about you (knowledge graph presence), or how AI structures your information when generating answers (extractability engineering). Chapter 2 — Key Takeaways RAG means your content competes at retrieval time on every query — freshness, structure, and extractability are scored on every request, not just at indexing Knowledge graphs are how AI "knows" your brand exists — Wikidata and Google's Knowledge Graph are the primary inputs you can influence directly The AI SEO OS is designed to optimise for both simultaneously: content systems feed the RAG pipeline; entity architecture feeds the knowledge graph 📋 Part I Worksheet — Your Search Transition Audit 1. What % of your current organic traffic comes from informational queries? Your answer: ________% 2. Test your top 5 queries in ChatGPT, Gemini, and Perplexity. Are you cited? Query 1: ______________ · Cited: Y / N Query 2: ______________ · Cited: Y / N Query 3: ______________ · Cited: Y / N Query 4: ______________ · Cited: Y / N 3. What does AI currently say when asked about your brand? AI response summary: _______________________________________________ 4. Which 3 competitors are cited in AI answers on your key queries? 1: ______________ 2: ______________ 3: ______________ AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 4 Chapter 3 · Part I: The Transformation of Search AI Citation Visibility: The New Success Metric The shift from rankings to answers requires a new primary metric. AI Citation Visibility is the percentage of relevant queries across AI platforms where your brand, content, or expertise is cited in the generated answer. It is the GEO-era equivalent of Search Visibility Score. Why Citation Visibility Matters Beyond Clicks When AI cites your brand in an answer, several things happen simultaneously — most of which are invisible in traditional analytics: Brand impression: The user encounters your brand name, associated with a specific area of expertise, in a trust-elevated context — inside an authoritative AI answer Framing influence: AI often quotes directly from your content — your exact framing and terminology enters the user's mental model of the topic Recall advantage: Users who encounter your brand in AI answers are more likely to recall it and search for it directly in subsequent sessions, driving branded search volume Trust by association: Being cited alongside other trusted sources (established publications, research institutions) elevates perceived authority Compounding citation: More citations → more external mentions of your brand → stronger entity signals → higher retrieval probability on the next query Measuring AI Citation Visibility MetricDefinitionHow to MeasureTarget Citation Rate% of sampled queries where you are citedManual platform sampling (20 queries × 3 platforms)↑ Month-on-month AI Share of VoiceYour citations ÷ total citations in topic spaceRecord all citations in sampling set, not just yours↑ vs. competitors Platform DistributionWhich platforms cite you and at what ratePer-platform citation rate trackingCited on 3+ platforms Query Coverage% of your query universe where you appearQuery universe sampling monthly↑ as content scales Entity Recognition ScoreRichness of AI knowledge about your brandDirect brand entity queries across platforms, scored 1–5Leading indicator of citation growth The Compounding Effect: Unlike keyword rankings which can be lost overnight to algorithm changes, AI citation visibility compounds over time. Each citation generates external brand mentions. External mentions strengthen entity signals. Stronger entity signals increase retrieval probability. Higher retrieval probability generates more citations. The AI SEO OS is specifically designed to accelerate and sustain this flywheel. "AI visibility isn't a campaign. It's an infrastructure build. The organisations that start building now compound for years. Those that wait face an exponentially higher barrier to entry." GEO Lab Research Note · March 2026 · thegeolab.net Chapter 3 — Key Takeaways AI Citation Visibility is your primary success metric in the new search landscape — track it weekly, improve it systematically Zero-click citations still deliver brand value: impressions, framing, trust association, and recall all occur without a visit to your site The compounding flywheel means early AI visibility investment returns disproportionately over time — every citation makes the next one more likely AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 5 Chapters 4–5 · Part II: SEO vs GEO vs AI Visibility Engineering Three Disciplines — One Hierarchy SEO, GEO, and AI Visibility Engineering are not competing approaches. They are three layers of the same stack — each building on the previous, each necessary, none sufficient alone. Dimension 🔵 Traditional SEO 🟢 GEO (Generative Engine Optimisation) 🟡 AI Visibility Engineering Primary GoalRank high in search results for clicksBe cited in AI-generated answersBecome a trusted, machine-readable knowledge source Success MetricKeyword rankings, organic trafficAI citation rate, Share of VoiceEntity recognition, knowledge graph inclusion, multi-platform authority Primary AssetKeyword-optimised pagesExtractable, structured answer contentEntity architecture, knowledge graph, API-accessible data layers Authority SignalBacklinks, Domain AuthorityE-E-A-T, author attribution, structured trustKnowledge graph presence, entity co-citation, cross-platform brand signals Content FormatLong-form keyword-rich articlesAnswer-first, extractable sections, schema-taggedMachine-readable knowledge objects, API endpoints, structured data Timeline3–12 months for rankings30–90 days for initial citations6–24 months to build infrastructure, then compounding Risk ProfileAlgorithm updates, competitionPlatform shifts, citation decayInfrastructure depth creates durable competitive moats Team RequirementSEO specialists, content writersGEO-trained content + technical SEOFull-stack: data, engineering, content, entity strategy Why AI Visibility Engineering Supersedes Both AI Visibility Engineering doesn't replace SEO or GEO — it includes them. A brand with strong AI visibility engineering: Has excellent technical SEO (because AI crawlers need the same fast, well-structured pages as Googlebot) Publishes GEO-optimised content (because extractable answers feed the RAG pipeline) Additionally maintains entity architecture, knowledge graph presence, machine-readable data layers, and autonomous monitoring systems # The Three-Layer Stack Layer 3: AI Visibility Engineering Entity architecture · Knowledge graph · API accessibility Autonomous agents · Multi-platform monitoring · Compounding infrastructure ↑ built on Layer 2: GEO (Generative Engine Optimisation) Extractable content · Answer-first structure · Author attribution Schema markup · Citation monitoring · Platform-specific optimisation ↑ built on Layer 1: SEO (Search Engine Optimisation) Technical foundation · Crawlability · PageRank · Keyword relevance Core web vitals · Mobile friendliness · Site architecture 📋 Part II Worksheet — Discipline Audit Rate your current capability (1–5) in each discipline: Traditional SEO: ___ /5 GEO: ___ /5 AI Visibility Engineering: ___ /5 Biggest gap to address first: _______________________________________________ One action from each discipline you'll implement this month: SEO: _________________________ · GEO: _________________________ · AIE: _________________________ AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 6 Part III Introduction · The AI SEO Operating System Introducing the AI SEO OS: A 15-Layer Architecture The AI SEO OS is a complete operational framework for achieving and sustaining visibility across AI search systems at scale. It is not a checklist or a campaign strategy. It is a living infrastructure — a set of connected systems that continuously produce, distribute, monitor, and improve AI-visible content and authority. ## AI SEO OS — Architecture Overview INTELLIGENCE LAYER ① Market Intelligence Engine → signals, trends, competitor data ② Query Universe Generator → comprehensive query mapping ③ Entity Knowledge Graph → brand entity + topic nodes FOUNDATION LAYER ④ Topic Ecosystem Builder → semantic coverage architecture ⑤ Programmatic Page Factory → scalable content generation PRODUCTION LAYER ⑥ AI Content Generation System → LLM-assisted content at scale ⑦ Extractable Knowledge Layer → answer-first content architecture ⑧ Structured Data Engine → schema · JSON-LD · microdata DISTRIBUTION LAYER ⑨ Internal Knowledge Network → hub-spoke link architecture ⑩ Authority Signal Amplifier → PR · backlinks · brand mentions ⑪ Brand Distribution Engine → multi-channel authority signals MONITORING & GROWTH LAYER ⑫ AI Citation Monitoring → cross-platform citation tracking ⑬ Autonomous SEO Agents → automated execution workflows ⑭ GEO Experimentation Engine → hypothesis → test → iterate ⑮ Continuous Knowledge Expansion → compounding growth loop The Architecture Principle: Each layer feeds the next. Intelligence layers generate the input for Foundation layers. Foundation layers produce what Production layers need. Production layers supply Distribution layers. Distribution layers build what Monitoring layers measure. Monitoring layers feed back into Intelligence layers. The OS runs as a loop — not a funnel. AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 7 Chapter 6 · Part III: Layers 1–5 — Intelligence & Foundation Intelligence & Foundation Layers 1 Market Intelligence Engine Continuously monitors the information landscape: which queries are growing, which AI platforms are gaining adoption in your vertical, what content types competitors are publishing, and where citation gaps exist. Inputs: search trend data (GSC, SEMrush, Ahrefs), competitor content feeds, citation audit data. Outputs: prioritised opportunity list updated weekly. Without this layer, your OS operates on intuition rather than signals. 2 Query Universe Generator Builds a comprehensive map of every question your target audience could ask about your topic space — across all five AI platforms, all query formulations, and all intent types. This is not a keyword list. It is a semantic map of the knowledge territory you need to own. A thorough Query Universe for a medium-complexity B2B topic contains 200–2,000 nodes. Inputs: seed topics, customer language, competitor gap analysis. Outputs: scored, prioritised query map. 3 Entity Knowledge Graph Your brand's structured representation in machine-readable form. This layer builds and maintains the entity records that AI systems consult when generating answers about you. Includes: Wikidata Q-item, Google Knowledge Panel, LinkedIn company page, Wikipedia (if eligible), Crunchbase profile, and consistent Organisation schema across your site. This is the layer that determines what AI "knows" about your brand — independent of what any single page says. 4 Topic Ecosystem Builder Translates the Query Universe into a structured content architecture. Maps every query node to a content type, identifies hub pages that should anchor clusters, and plans the internal linking architecture that connects them. Produces a visual coverage map scored 0–3 per node. This is your content strategy — not as a calendar, but as a semantic territory map showing gaps, strengths, and priorities. 5 Programmatic Page Factory Generates content at scale using templates and structured data inputs. For organisations with large query universes (hundreds to thousands of nodes), manual page creation is impractical. The Programmatic Page Factory uses structured content templates, data libraries, and LLM generation to produce pages at scale — maintaining GEO quality standards across every output. Not every query node needs a human-written page; the factory identifies which do and automates the rest. Common Mistake — Skipping Layer 2: Organisations often build content based on keyword research alone. The Query Universe Generator is different: it maps how your audience asks questions to AI systems (natural language, full sentences, conversational phrasing) rather than how they type keywords. Building content to answer the question "What is the best project management tool for remote teams that uses async video?" requires a different page than targeting the keyword "async project management tool." AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 8 Chapter 7 · Part III: Layers 6–10 — Content & Authority Production Content & Authority Production Layers 6 AI Content Generation System A governed LLM pipeline that produces GEO-compliant content at scale. Not unconstrained AI generation — a system with: a GEO style guide enforced as a prompt constraint, a fact-check and citation requirement layer, a human review threshold for strategic pages, and a quality scoring function that gates publication. Produces first drafts, extracts FAQ sections, generates schema JSON-LD, and creates structured meta descriptions. Throughput: 10–100× the speed of pure human production. 7 Extractable Knowledge Layer Every piece of content published by the OS is structured to maximise extractability — the probability that AI retrieval systems can pull a clean, direct answer from it. The four-element pattern: (1) Question as H2 heading, (2) Direct answer in first 2 sentences, (3) Bullet-point elaboration, (4) Evidence with attribution. Pages built with this pattern achieve significantly higher RAG extraction rates than narrative prose. This is the most impactful single layer for citation rate improvement. 8 Structured Data Engine Implements and maintains schema markup at scale. For the AI SEO OS, schema is not a one-time technical task — it is a production system that generates and deploys JSON-LD for every published page. Schema types in scope: Article, FAQPage, HowTo, Organization, Person, Product, SoftwareApplication, VideoObject, ImageObject, BreadcrumbList, SiteLinksSearchBox. Each schema type feeds specific AI systems differently; the engine maps schema to platform-specific citation patterns. 9 Internal Knowledge Network The internal linking architecture that tells AI crawlers which pages are authoritative within your site. Hub pages receive concentrated internal link equity from spoke pages. Every spoke page links to its hub. Topic clusters are self-contained sub-networks. The network is visualised and managed — not emergent from ad-hoc publishing. A well-designed Knowledge Network ensures that when AI systems crawl your domain, they encounter a coherent, navigable knowledge structure rather than isolated pages. 10 Authority Signal Amplifier Builds and amplifies the external signals that influence AI citation probability: digital PR earning brand mentions in publications that train AI models, guest authorship under your brand's named experts, HARO and Connectively responses that place expert quotes in high-authority publications, community participation (Reddit, LinkedIn, industry forums) that generates organic brand co-citation. Authority signals are not optional enhancements — they are what distinguishes sources AI cites from sources AI ignores. Layer 7 is the Multiplier: Organisations that implement the Extractable Knowledge Layer on their existing content — without publishing a single new page — typically see a 20–40% improvement in citation rate within 60 days. It is the fastest-ROI layer in the entire OS. If you can only implement one layer this month, make it Layer 7. AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 9 Chapter 8 · Part III: Layers 11–15 — Distribution, Monitoring & Growth Distribution, Monitoring & Growth Layers 11 Brand Distribution Engine Extends your brand's knowledge footprint beyond your own domain. This layer systematically distributes your entity's key attributes, expert perspectives, and knowledge assets across the platforms that AI training data aggregates: LinkedIn (brand and founder), YouTube (transcribed video content), GitHub (if technical), SlideShare (presentations), Podcast appearances, industry publications, and vertical-specific directories. Multi-channel distribution creates cross-platform citation patterns that reinforce each other — making your brand visible regardless of which AI platform a user employs. 12 AI Citation Monitoring The observability layer of the OS. Continuously samples your query universe across AI platforms, records citation rates and share of voice, tracks entity recognition scores, and monitors competitor citation movement. Generates weekly citation reports and monthly trend analyses. Inputs: query universe (Layer 2), competitor list (Layer 1). Outputs: citation dashboard, priority gap alerts, improvement recommendations. Without this layer, you are operating blind — investing in content and authority without knowing whether it is generating AI visibility. 13 Autonomous SEO Agents AI agents that execute specific OS workflows without continuous human supervision. Five core agent types: Opportunity Agent (monitors and flags new citation gaps), Content Agent (drafts content briefs and first drafts for priority gaps), Optimisation Agent (identifies underperforming pages and applies extractability improvements), Citation Agent (runs citation sampling and reports anomalies), Authority Agent (monitors brand mention opportunities and drafts PR outreach). Agents reduce operational overhead by 60–80% on routine OS tasks. 14 GEO Experimentation Engine A systematic framework for running controlled GEO experiments — testing hypotheses about what content structures, formats, and signals improve citation rate. Hypothesis → experiment design → implementation → measurement → documentation → iteration. Without this layer, GEO improvement is anecdotal. With it, the OS becomes a learning system: every experiment produces documented evidence that informs every future decision. Target: 2–4 active experiments per month. 15 Continuous Knowledge Expansion The growth loop that connects all layers. Monitoring data feeds Intelligence layers. Experiment results update production standards. New market signals expand the Query Universe. Authority gains increase citation probability for all content. This layer ensures the OS is never static — it compounds. Each month, more of the query universe is covered. Each month, entity recognition strengthens. Each month, citation rate grows. The compounding effect is why AI visibility engineering is a durable competitive moat rather than a tactical campaign. 📋 Part III Worksheet — OS Layer Readiness Score each layer 0 (not started) → 3 (fully operational). Total score indicates OS maturity: L1 Market Intelligence: __ /3 L2 Query Universe: __ /3 L3 Entity Graph: __ /3 L4 Topic Ecosystem: __ /3 L5 Page Factory: __ /3 L6 AI Content: __ /3 L7 Extractable Layer: __ /3 L8 Schema Engine: __ /3 L9 Knowledge Network: __ /3 L10 Authority Amp: __ /3 L11 Distribution: __ /3 L12 Citation Monitor: __ /3 L13 Agents: __ /3 L14 Experiments: __ /3 L15 Growth Loop: __ /3 Total: __ /45 | 0–15: Emerging | 16–30: Building | 31–40: Advanced | 41–45: Full OS AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 10 Chapters 9–10 · Part IV: The AI SEO Command Center The AI SEO Command Center The Command Center is the management interface for the entire AI SEO OS. It connects the 15 layers, provides visibility into system health, surfaces opportunities and anomalies, and enables both strategic decision-making and tactical execution from a single operational hub. Five Operational Layers of the Command Center 1Data LayerAggregates all data inputs: Google Search Console, GA4, platform citation sampling results, competitor audit data, entity recognition scores, content performance metrics, and agent execution logs. All data flows into a centralised data warehouse — the single source of truth for the entire OS. 2Intelligence LayerProcesses raw data into actionable intelligence. Identifies trends, anomalies, and opportunities. Scores content gaps by impact and urgency. Generates competitor movement alerts. Produces the weekly priority queue that drives all OS execution decisions. 3Automation LayerManages the agent fleet. Routes tasks to appropriate agents. Monitors agent execution. Handles exceptions. Scales agent workload based on queue depth and priority. The Automation Layer is what converts the OS from a manual content operation into an autonomous system. 4Execution LayerWhere content is produced, reviewed, approved, and published. Integrates with your CMS, schema deployment tools, and distribution channels. Maintains quality gates: GEO compliance scoring, fact-check status, author attribution, schema validation. No content publishes without passing the gate. 5Monitoring LayerContinuous observability across the entire OS. Citation rate trends, entity recognition changes, authority signal growth, agent performance metrics, content quality scores. Weekly reports generated automatically. Anomalies flagged to human operators immediately. This layer closes the loop — monitoring outputs feed back into Intelligence, which updates Automation priorities. The Five Core Dashboards 📡 Opportunity RadarSurfaces new citation gaps, emerging query clusters, and competitor movement in real-time. The daily starting point for your GEO Strategist. Shows: top 10 priority gaps this week, competitor citation changes (↑↓), new query clusters detected, and urgent freshness decay alerts. 🏭 Content Factory MonitorLive view of the content production pipeline: pages in briefing, drafting, review, and approval stages. GEO compliance scores for each piece in flight. Quality gate pass/fail rates. Publication velocity vs. target. 📈 Authority Growth TrackerTracks domain authority signals, brand mention velocity, backlink acquisition, Knowledge Panel completeness, and entity recognition score trends. The long-horizon dashboard — updated weekly, reviewed monthly. 🎯 AI Citation TrackerCitation rate trends across all five platforms. AI Share of Voice vs. top 3 competitors. Platform distribution (which platforms cite you most). Query coverage percentage of your universe. Entity recognition score per platform. 🤖 Agent Control PanelStatus of all active agents: last run time, tasks completed, exceptions flagged, queue depth. Agent performance over time. Manual override controls. Execution log for audit and debugging. The operational control room for your autonomous fleet. AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 11 Chapters 11–12 · Part V: AI Agents Running SEO The Agent Fleet: Five Autonomous Workers AI agents are autonomous systems that execute specific tasks — monitoring, creating, optimising, and reporting — without requiring human instruction on each action. In the AI SEO OS, agents handle the high-volume, repeatable execution work that would otherwise consume your team's strategic capacity. 🔍 Opportunity Agent Role: Continuously monitors for new citation gaps Runs: Daily Actions: Samples 20 queries from priority segments Identifies new competitor citations not seen before Flags queries where citation rate dropped ≥10% Detects emerging topic clusters from trend data Adds confirmed gaps to Priority Gap queue ✍️ Content Agent Role: Generates content for priority gaps Runs: On queue trigger (when Priority Gap queue > N) Actions: Retrieves top-priority gap from queue Researches current citations on target query Drafts GEO-compliant content (Extractable Layer format) Generates JSON-LD schema for the content type Routes to human review queue with context brief ⚙️ Optimisation Agent Role: Improves underperforming existing content Runs: Weekly Actions: Scores all published pages against GEO rubric Identifies pages below citation threshold Rewrites opening paragraph to answer-first format Adds FAQ section if missing Flags "last updated" date for refresh 📊 Citation Agent Role: Monitors AI citation rates systematically Runs: Weekly (full run), Daily (spot checks) Actions: Samples query universe across 3–5 platforms Records citation results in structured format Calculates citation rate and AI SOV changes Generates weekly citation report Alerts on anomalies (>15% change in either direction) 🏆 Authority Agent Role: Monitors and builds external authority signalsRuns: Daily monitoring, Weekly reportingKey Actions: Scans HARO/Connectively for expert quote opportunities Monitors brand mentions for unlinked citation opportunities Drafts outreach emails for link reclamation and PR Tracks entity recognition changes quarterly Reports authority signal velocity (mentions per week trend) ## Agent Workflow — Weekly Cycle Mon: Opportunity Agent → new gaps logged to queue Mon–Fri: Content Agent → drafts created for top 3 gaps Tue: Citation Agent → weekly sampling run + report generated Wed: Optimisation Agent → weekly page scoring + improvement queue Thu: Authority Agent → HARO scan + mention report Fri: Human review → approve/edit drafts, review agent reports, update priorities Human-in-the-Loop Principle: Agents produce, flag, and draft — humans decide, approve, and direct. The OS does not eliminate human judgement; it eliminates human execution on routine tasks, freeing strategic bandwidth for the decisions that require it. AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 12 Chapters 13–14 · Part VI: Programmatic SEO and Content Factories Programmatic Content: Templates, Scale & Quality Control Programmatic SEO — generating hundreds or thousands of pages from templates and data — is one of the most powerful and most dangerous components of the AI SEO OS. Used correctly, it enables citation coverage of an entire query universe. Used carelessly, it produces the thin, undifferentiated content that AI systems are specifically trained to avoid. The Three Valid Programmatic Models 1Data-Driven PagesPages generated from a rich structured data source where each page genuinely answers a unique question. Examples: "[City] average salary for [Role]" using real salary data per city/role combination; "[Product A] vs [Product B]" using a product database; "[Condition] treatment options" using a medical database. Each page has unique, accurate, valuable data — not the same text with a location swapped in. 2Template-Augmented PagesPages that use a consistent structural template but require meaningful content variation per instance. The template defines the extractable knowledge structure (question, direct answer, evidence, example). The content variation provides the unique, valuable answer per topic. LLM generation assists with content at scale, but human review is applied to all strategic pages. 3Query Expansion PagesSystematic expansion of a proven content type across a query cluster. If your "what is [X]" definition page is being cited for one topic, build the same pattern for all related topics where you have genuine expertise. This is not thin content — it is systematic coverage using a validated format. Quality Gates — The Non-Negotiable Standards GateRequirementFail = ? UniquenessEvery page answers a meaningfully different questionConsolidate or delete Direct AnswerPage opens with a 1–2 sentence direct answer to its target queryRewrite opening before publishing Data AccuracyAll statistics and claims are verified from the source dataRemove or verify before publishing Author AttributionNamed author with credentials on every pageAssign author before publishing Schema ValidityJSON-LD schema validates without errorsFix schema before publishing GEO Compliance ScoreScore ≥ 7/10 on GEO rubricOptimise before publishing The Thin Content Trap: AI platforms are trained extensively on examples of low-quality, templated, location-swap content. Content that is structurally identical across hundreds of pages — differing only by a city name, product name, or keyword — is one of the patterns most likely to be deprioritised in AI retrieval. The test: if removing the unique identifier (city, product) would make two pages identical, they are too thin to generate citations. 📋 Part VI Worksheet — Programmatic Readiness 1. Do you have a structured data source that could support data-driven pages? Data source: _______________ · Number of unique records: _______________ 2. Which content type on your site performs best for AI citations? Best performing type: _______________ · Citation rate: ___% 3. How many query nodes in your universe could this type cover if scaled? Expansion potential: _______________ pages AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 13 Chapter 15 · Part VII: Designing Extractable Knowledge Extractable Knowledge: The Architecture of AI-Quotable Content Extractable knowledge is content structured so that AI retrieval systems can isolate and use a direct, accurate answer without needing to parse narrative prose. It is the single most impactful content-level variable in AI citation probability — and the most commonly missed by organisations optimising purely for human readers. The Four-Element Extractable Format 1Question — as H2 HeadingThe heading must be phrased as the exact question AI users are asking — natural language, full sentence. "What is the difference between RAG and fine-tuning?" not "RAG vs Fine-Tuning Comparison." The heading is the retrieval anchor; if the heading doesn't match the query pattern, the page will not enter the candidate set. 2Direct Answer — in First 1–2 SentencesThe complete, accurate answer to the question in the first 100–200 characters below the heading. AI systems extract the text immediately following the matching heading. If your answer begins with "It depends on..." or "There are many factors..." — you will not be cited. If it begins with "RAG retrieves external documents at inference time, while fine-tuning updates model weights during training..." — you will. 3Bullet Elaboration — 3–5 PointsStructured expansion of the direct answer. Each bullet adds one dimension, consideration, or clarification. Bullets are more extractable than paragraphs — AI systems parse structured lists reliably. Each bullet should be independently meaningful (not "See above for context"). 4Evidence — with AttributionA data point, study citation, or concrete example that validates the direct answer. Princeton GEO Research (2024): including statistics in content increases AI citation probability by 37%. Including source attribution increases it by a further 40%. Evidence is not decoration — it is a trust signal that AI systems weight during retrieval scoring. Before and After: The Extractability Transformation ❌ AI Skips This "Knowledge graphs have been a fundamental part of modern search infrastructure since Google introduced the concept in 2012. The evolution of knowledge representation in AI systems has progressed through several paradigms, from early ontologies to modern neural approaches. Understanding the nuances requires careful consideration of both the technical and semantic dimensions..." ✅ AI Quotes This "A knowledge graph is a structured database of entities and their relationships, used by AI systems to represent facts about the world. Unlike traditional databases, knowledge graphs encode meaning — allowing AI to infer that 'Paris is the capital of France' implies France has a capital city, and that capital city is in Europe." The Extractability Audit: Read your top 10 pages aloud. For each heading, can you state the direct answer in one sentence immediately? If you have to read three paragraphs to find the answer, AI systems will choose a source that leads with it. Extractability audits on existing content are the fastest-ROI activity in any GEO programme. 📋 Part VII Worksheet — Extractability Audit Select your 5 most important pages. For each, score extractability 1–5: Page 1: _______________ · Score: __ /5 · Missing: Direct answer / Bullets / Evidence / Attribution Page 2: _______________ · Score: __ /5 · Missing: Direct answer / Bullets / Evidence / Attribution Page 3: _______________ · Score: __ /5 · Missing: Direct answer / Bullets / Evidence / Attribution Page 4: _______________ · Score: __ /5 · Missing: Direct answer / Bullets / Evidence / Attribution Page 5: _______________ · Score: __ /5 · Missing: Direct answer / Bullets / Evidence / Attribution Priority rewrite (lowest score): Page to rewrite first: _______________ · Target completion: _______________ AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 14 Chapter 16 · Part VIII: Authority & Knowledge Graph Presence Authority Signals in the AI Era Authority has always been the decisive factor in search — from PageRank's link-based model to Google's E-E-A-T framework. In AI search, authority signals operate at two distinct levels: document-level authority (does this specific page have credible attribution?) and entity-level authority (does the AI "know" this brand as a trusted expert in this domain?). Document-Level Authority Signals SignalHow It WorksImpact on AI Citation Named Author + CredentialsPerson schema with credentials, linked author bio page with expertise signalsDirect E-E-A-T signal; pages without named authors score lower in AI retrieval ranking Cited SourcesExternal links to primary sources (research, data, institutions)+40% citation probability with proper attribution (Princeton, 2024) Original DataProprietary research, surveys, tests, measurementsHighest-value evidence type; AI heavily weights data it cannot find elsewhere Recency SignalVisible "Last Updated" date, recent publication date in Article schemaCritical for Perplexity; significant for Gemini; lower impact on ChatGPT training data Backlink QualityLinks from high-authority domains to specific pagesIndirect — backlinks influence Gemini (PageRank correlation) most directly Entity-Level Authority Signals Entity-level authority is what determines whether AI systems include your brand in responses even when the user hasn't specifically asked about you. It is the "background knowledge" that AI draws on. Building it requires consistent, cross-platform entity development: Wikidata entry with 8+ accurate properties (immediate, free, high-value) Wikipedia notability — earned through independent press coverage in reliable sources Google Knowledge Panel — claimed, verified, and optimised via Search Console Brand co-citation — appearing alongside authoritative brands in the same published context Expert author network — named individuals at your organisation published on authoritative external platforms Cross-platform consistency — identical entity attributes across your site, LinkedIn, Crunchbase, and directories The Brand Co-Citation Accelerator: When your brand is mentioned in the same article, study, or report as established authority brands in your space, AI systems update your entity's relationship graph — implicitly associating you with the authority level of your co-citation partners. Pursuing guest posts, panel inclusions, and press mentions where you appear alongside category leaders is one of the fastest paths to entity authority elevation. 📋 Part VIII Worksheet — Authority Signal Audit Document-level: Check all that apply to your top 5 pages: Named author ☐ Credentials shown ☐ Sources cited ☐ Original data ☐ Updated date ☐ Entity-level: Check all completed: Wikidata ☐ Knowledge Panel claimed ☐ Wikipedia ☐ Crunchbase ☐ Consistent NAP ☐ Your entity recognition score (1–5 — what does AI say when asked about your brand?): ChatGPT: __ /5 Gemini: __ /5 Perplexity: __ /5 Average: __ /5 Top authority-building action needed: _______________________________________________ AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 15 Chapters 17–18 · Parts IX–X: Monitoring & Experimentation AI Citation Monitoring & GEO Experimentation Part IX — AI Citation Monitoring: The Operational System Citation monitoring is how the AI SEO OS sees whether it is working. Without it, you are publishing content and building authority without knowing whether AI systems are responding. The monitoring system has three operational tiers: 1Weekly Citation SamplingSelect 20 queries from your query universe (randomised from different topic clusters). Submit to ChatGPT, Perplexity, and Gemini. Record: cited / not cited, which page, which competitor was cited. Log results in a tracking spreadsheet. Calculate weekly citation rate = (citations received / queries tested) × 100. Track trend over 8+ weeks before drawing strategic conclusions. 2Monthly AI SOV AnalysisFrom your weekly sampling data, calculate your AI Share of Voice: your citation count divided by total citations recorded across all sources. Compare against your top 3 competitors. A rising AI SOV means your visibility is improving relative to the competitive landscape — even if your absolute citation count fluctuates. 3Quarterly Entity Recognition AuditAsk each platform 10 direct questions about your brand and score response richness 1–5. Compare quarter-on-quarter. This is your leading indicator — entity recognition improvements precede citation rate improvements by 4–8 weeks. If entity scores are rising but citation rate is flat, your content quality is the bottleneck. If entity is flat and citation is flat, entity architecture is the bottleneck. Part X — GEO Experimentation Framework GEO experimentation converts anecdote into evidence. Every GEO decision should be backed by a documented test — not intuition, convention, or borrowed best practices from SEO. The framework: 📐 Step 1: HypothesisSpecific, falsifiable, measurable. "Adding a 2-sentence direct answer block to the opening of our 10 definition pages will increase their Perplexity citation rate from X% to Y% within 30 days." Not: "Better content will improve citations." 🧪 Step 2: Experiment DesignControl group + test group. Minimum 10 pages per group for statistical reliability. Single variable change — don't change structure AND schema AND author at the same time. Document baseline citation rates before the change. 📊 Step 3: MeasurementSample both groups weekly for 4–8 weeks. Record citation rates per group per platform. Don't stop early because results look good — wait for the full measurement period. Document anomalies (e.g., one page was linked to by a major publication mid-experiment). 🔄 Step 4: IterationDocument results regardless of outcome — negative results are as valuable as positive ones. If the change worked, apply it to all similar pages. If it didn't, document the null result and test a different hypothesis. Build a library of documented experiments. Example experiment bank: Does adding a summary box improve citation rate? Does FAQ schema outperform Article schema on definition pages? Does adding an "Updated" date improve Perplexity citation rate vs. no date? Does a 200-word direct answer outperform a 50-word direct answer? Does first-person experience language improve Claude citation rates? 📋 Parts IX–X Worksheet — Monitoring Setup Define your weekly monitoring protocol: Queries to sample weekly: ___ (20 recommended) · Platforms: ChatGPT ☐ Perplexity ☐ Gemini ☐ Copilot ☐ Claude ☐ Current baseline citation rate (test 20 queries now to establish): Baseline rate: ___% · Date established: _______________ Write your first GEO experiment hypothesis: If I [change]: _______________ Then [metric] will change from ___% to ___% within ___ days AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 16 Chapter 19 · Part XI: Building the Complete AI Visibility Infrastructure The Complete AI Visibility Infrastructure Individual layers improve individual metrics. The complete AI Visibility Infrastructure is what produces compounding, durable competitive advantage. This chapter shows how all components operate as one connected system. The Continuous Workflow ## AI Visibility Infrastructure — Operating Loop ① MARKET RESEARCH (Layer 1: Market Intelligence Engine) What queries are emerging? What are competitors owning? Where are the gaps? ↓ ② QUERY MAPPING (Layer 2: Query Universe Generator) Map all queries in target topic space. Score by volume, intent, and gap status. ↓ ③ ENTITY ARCHITECTURE (Layer 3: Entity Knowledge Graph) Build Wikidata, Knowledge Panel, author entities, consistent attributes. ↓ ④ CONTENT GENERATION (Layers 4–8: Topic + Factory + Extractable + Schema) Produce GEO-compliant content for priority gaps. Validate quality. Publish. ↓ ⑤ AUTHORITY BUILDING (Layers 10–11: Authority Amplifier + Distribution) PR, guest posts, brand mentions, cross-platform entity distribution. ↓ ⑥ CITATION MONITORING (Layer 12: AI Citation Monitor) Weekly sampling. Citation rate tracking. AI SOV measurement. Anomaly alerts. ↓ ⑦ OPTIMISATION (Layers 13–14: Agents + Experimentation) Improve underperformers. Test hypotheses. Apply findings. Close loops. ↓ ← FEEDS BACK INTO ① MARKET RESEARCH (Layer 15: Continuous Knowledge Expansion) The Compounding Growth Effect The AI Visibility Infrastructure doesn't grow linearly — it compounds. As entity recognition strengthens, retrieval probability increases. As retrieval probability increases, citation rate rises. As citation rate rises, external brand mentions increase. As brand mentions increase, entity signals strengthen further. Each completed loop of the system produces a stronger starting position for the next loop. Time PeriodPrimary FocusExpected Outcome Month 1–3Foundation: entity architecture, extractability rewrites, citation baselineEntity recognition improving; citation rate stabilising from baseline Month 4–6Production: priority gap content, schema, authority signalsCitation rate 15–25% above baseline; appearing on 2–3 platforms for core queries Month 7–12Scale: agent workflows, programmatic expansion, SOV growthCitation rate 30–50% above baseline; measurable AI SOV in primary topic cluster Year 2+Compounding: authority accumulation, knowledge monopoly positionsCitation cluster dominance; infrastructure becomes structural competitive moat AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 17 Chapter 20 · Part XII: The Future of AI Search Where AI Search Is Heading — and How to Prepare The AI search landscape of 2026 is sophisticated, complex, and consequential. The landscape of 2028 will be unrecognisable from the perspective of traditional SEO. Here are the five trends that will define the next phase — and the infrastructure decisions you should make today to be positioned for them. Five Defining Trends 1Agentic Search: AI Agents as the Primary SearcherBy 2028, a significant proportion of web searches will be initiated not by humans but by AI agents acting on behalf of humans. These agents compile research reports, compare products, schedule appointments, and complete tasks autonomously. They query the web programmatically, extract structured information, and synthesise results — without a human in the loop on each search. Organisations whose content is machine-readable, API-accessible, and structured will appear in agent-generated outputs. Those optimised only for human reading will be invisible to this layer. 2Knowledge Graph DominanceAs AI systems become more powerful, their reliance on structured knowledge representations increases. The brands with the richest, most accurate, most cross-referenced knowledge graph entries will have a compounding advantage in every AI system trained or fine-tuned after their records are established. Wikidata investment made today will compound for a decade. Knowledge Graph presence is the most durable AI visibility investment available. 3Multimodal Citation at ScaleAI systems are rapidly developing the ability to cite non-text content: images, charts, diagrams, video segments, audio clips. By 2027–2028, a well-described chart will be citeable in the same way a well-written paragraph is today. Organisations building multimodal GEO infrastructure now — ImageObject schema, transcribed video, accessible data tables — will have established library assets at the moment when multimodal citation becomes mainstream. 4Personalised AI RetrievalAI systems are moving toward user-specific retrieval — different answers for different users based on context, history, and profile. This creates a new strategic dimension: segment-specific authority. The organisation that is cited consistently in the queries characteristic of its target customer segment will have disproportionate visibility within that segment, regardless of overall AI SOV. Future GEO strategy will require segment-level query universe mapping and citation tracking. 5AI-Native Content SystemsBy 2028, the majority of content produced and consumed on the web will involve AI in both production and consumption. The competitive advantage will shift from who can produce the most content to who can produce the most trustworthy, most cited, most entity-consistent content. Quality signals — author attribution, citation of primary sources, original data, expert credentials — will matter more, not less, as AI production volume increases. The organisations that build quality infrastructure now will have it as a baseline; those that don't will be competing in a commodity content market. The Strategic Principle for 2027–2028: Every investment that makes your content more machine-readable, your entity more precisely defined, and your authority more cross-platform distributed is an investment that compounds through every AI architecture change. Build infrastructure, not campaigns. Build assets, not tactics. Build knowledge systems that AI systems cannot ignore. "The organisations that will dominate AI search in 2028 are not waiting for the landscape to stabilise. They are building the infrastructure that will make them the default trusted source — before anyone knows exactly what 'default' means." GEO Lab Research Note · March 2026 · thegeolab.net AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 18 Implementation · 90-Day AI SEO OS Launch Roadmap 90-Day Launch Roadmap Three phases, each building the foundation for the next. Start Day 1 regardless of team size — the roadmap scales from solo practitioner to enterprise team. 🟡 Phase 1 — Foundation (Days 1–30) Intelligence + Entity + Monitoring baseline Week 1 — Audit & Baseline Run citation baseline: 20 queries × 3 platforms Document current entity recognition score Identify top 3 competitor citation leaders Extract top 10 priority gap queries Audit top 5 pages for extractability score Week 2 — Entity Architecture Create or verify Wikidata Q-item (8+ properties) Claim and optimise Google Knowledge Panel Update Organisation + Person schema on site Verify LinkedIn and Crunchbase consistency Check and resolve any entity disambiguation issues Weeks 3–4 — Extractability Sprint Rewrite top 5 pages to Extractable Knowledge format Add FAQ schema to rewritten pages Add author attribution + Person schema Publish llms.txt at domain root Set up weekly citation sampling tracker 🔵 Phase 2 — Production (Days 31–60) Content + Authority + Agent setup Week 5 — Query Universe Build full query universe map (50–200 nodes) Score each node 0–3 for current coverage Identify top 10 Priority Gap nodes Assign content types to gap nodes Prioritise by volume × gap × strategic fit Weeks 6–7 — Content Sprint Publish 5 new pages targeting Priority Gaps Each page: Extractable format + schema + author Build hub page for primary topic cluster Implement internal Knowledge Network linking Submit all new pages for indexing Week 8 — Agent Setup Configure Citation Agent (weekly sampling) Configure Opportunity Agent (gap monitoring) Define first GEO experiment (hypothesis + design) Set up Opportunity Radar dashboard Begin Authority Agent: HARO registration 🟢 Phase 3 — Scale (Days 61–90) Automation + Authority + Measurement Week 9 — Authority Building Publish 2–3 digital PR pitches targeting citations Submit 3 guest post proposals in vertical Participate in 5 relevant Reddit/LinkedIn threads Complete first HARO expert response Audit brand mentions for unlinked citations Weeks 10–11 — Programmatic Layer Build first programmatic page template Generate 10–20 data-driven pages from template Apply quality gate to all generated pages Publish passing pages; fix or discard failing ones Measure citation impact at 30-day mark Week 12 — Review & Next Quarter Compare Day 90 citation rate vs. Day 1 baseline Document experiment results from Phase 2 Update query universe with new gaps found Set Q2 targets: citation rate, AI SOV, entity score Brief team on OS expansion priorities AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 19 Reference · AI SEO OS Quick Guide AI SEO OS — Quick Reference The complete system on one page. Return here when you need to re-orient. The 15 Layers at a Glance Intelligence 01 Market Intelligence Engine 02 Query Universe Generator 03 Entity Knowledge Graph Foundation 04 Topic Ecosystem Builder 05 Programmatic Page Factory Production 06 AI Content Generation System 07 Extractable Knowledge Layer 08 Structured Data Engine Distribution 09 Internal Knowledge Network 10 Authority Signal Amplifier 11 Brand Distribution Engine Monitoring & Growth 12 AI Citation Monitoring 13 Autonomous SEO Agents 14 GEO Experimentation Engine 15 Continuous Knowledge Expansion Key Metrics Dashboard Citation RateWeekly · 20Q × 3 platforms AI Share of VoiceMonthly · vs. top 3 competitors Entity ScoreQuarterly · 1–5 per platform Coverage ScoreMonthly · nodes at 3/3 Branded SearchMonthly · GSC trend Authority VelocityMonthly · mentions/links/week The Four Extractability Elements ① Question — H2 heading in natural language ② Direct Answer — first 1–2 sentences ③ Bullet Elaboration — 3–5 structured points ④ Evidence — data + source attribution "Build infrastructure, not campaigns. Build assets, not tactics. Build knowledge systems that AI cannot ignore." AI SEO OS · The GEO Lab · thegeolab.net 🔬 The GEO Lab publishes ongoing AI visibility research at thegeolab.net/log Field experiments · Citation rate studies · Platform-specific findings · New OS layer updates AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 20 The GEO Lab · AI SEO OS You've Built the Blueprint You now have the complete architecture for autonomous AI visibility. Start with Phase 1 of the 90-day roadmap. The system compounds from Day 1. Start Today — 3 Immediate Actions: 1. Run your citation baseline (20 queries × ChatGPT + Perplexity + Gemini — 90 minutes) 2. Create or verify your Wikidata entry (30 minutes, free, highest-ROI entity action) 3. Rewrite your best page opening paragraph to lead with a direct answer (20 minutes) 🚀 Go Deeper with the GEO Lab Library 📗 Book #1 The GEO Pocket Guide Beginner-level foundation. The full SEO → GEO shift explained in 30 pages with 50-question exam. 📘 Book #7 GEO Field Manual Advanced extractability depth. The technical layer beneath the AI SEO OS content systems. 📙 Book #8 GEO Authority Playbook Entity strategy, multi-platform intelligence, competitive citation analysis and the 2027 architecture. 📓 Book #3 GEO Experiments The experimentation framework in full. Documented experiments, hypotheses, and results. 💡 Free Research Resources GEO Log — Live field experiments and citation rate studies: thegeolab.net/log Brand Citation Index — How top brands perform across AI platforms: thegeolab.net/geo-brand-citation-index All 8 Ebooks — Free for personal and commercial use: thegeolab.net/ebooks "The brands AI trusts by default in 2028 are building that trust right now.You have the system. Build it." AI SEO OS · The GEO Lab · thegeolab.net · March 2026 The GEO Lab AI search visibility research, field experiments, and the complete GEO Lab Library — all free. 𝕏 @TheGEO_Lab in linkedin.com/in/arturgeo #1 The GEO Pocket Guide · #2 SEO to GEO: Complete Framework · #3 GEO Experiments · #4 The GEO Workbook #5 GEO for WordPress · #6 The GEO Glossary · #7 GEO Field Manual · #8 GEO Authority Playbook · AI SEO OS AI SEO OS · The Autonomous AI Visibility Systemthegeolab.netPage 21 function toggleAns(btn) else } The GEO Lab thegeolab.net AI search visibility research, field experiments, and the complete GEO Lab Library — all free. 📖 All Ebooks → thegeolab.net/ebooks Follow & Connect 𝕏 @TheGEO_Lab in linkedin.com/in/arturgeo The GEO Lab Library #1 The GEO Pocket Guide #2 SEO to GEO: Complete Framework #3 GEO Experiments #4 The GEO Workbook #5 GEO for WordPress #6 The GEO Glossary #7 GEO Field Manual #8 GEO Authority Playbook #9 AI SEO OS ✓ AI SEO OS · The GEO Lab Library #9 · © 2026 Artur Ferreira Free for personal & commercial use · thegeolab.net
---
## Before You Trust Any GEO Experiment Result, Ask About the Noise Floor
URL: https://thegeolab.net/noise-floor-geo-experiments/
Before You Trust Any GEO Experiment Result, Ask About the Noise Floor By Artur Ferreira · The GEO Lab · Published: 18 May 2026 · Version 1.0 Citation rate on Perplexity varies by ±4–6 percentage points day to day with no content changes. Most published GEO "experiments" don't mention this. Here's what that omission means for every result they report. TL;DR The noise floor is the baseline citation rate variance that exists independently of any content change. On Perplexity, it runs at ±4–6 percentage points across consecutive days on the same query set with no site modifications. Any experiment reporting a delta smaller than the noise floor is reporting noise, not signal. The GEO Lab ran E016 — five consecutive days, same 10 queries, zero content changes — specifically to establish this baseline before interpreting any other experiment result. This post explains why that had to happen first. Contents The Problem with Most GEO Experiments What a Noise Floor Is E016: What We Measured Why Citation Rate Variance Exists Minimum Detectable Effect: The Number That Matters What This Invalidates How to Run a Valid GEO Experiment Frequently Asked Questions The Problem with Most Published GEO Experiments Scroll LinkedIn on any given week and you will find at least one post claiming to have "tested" something about AI citations. Changed a heading format — citations went up 12%. Added schema — citations increased. Rewrote the intro — Perplexity started citing the page. Almost none of them mention how many days the measurement ran — a gap that Search Engine Land has also flagged in their GEO coverage. Almost none specify the query sample size. Almost none establish what citation rate looked like before the change on multiple days. And almost none acknowledge the fundamental problem: citation rate is not a stable number even when nothing changes. That last point is the one that makes most published GEO experiments uninterpretable. If your baseline is a single-day measurement and your post-change measurement is also a single-day reading, and the natural day-to-day variance in citation rate is larger than the delta you're reporting, you have measured nothing. You've observed noise and called it a result. This is not a minor methodological quibble. It is the difference between a finding and a story that sounds like a finding. What a Noise Floor Is — and Why GEO Needs One In signal processing, the noise floor is the level of background noise in a system that limits how small a signal you can meaningfully detect. Below the noise floor, you cannot distinguish signal from noise — any reading could be either. In GEO measurement, the noise floor is the citation rate variance that exists independently of any content change. It is the range within which citation rate will fluctuate on any given platform, on any given day, for any given query set, even when the site, the content, and the queries are all held constant. Every measurement system has a noise floor. As SparkToro's zero-click study demonstrated for traditional search metrics, single-point measurements are unreliable when the underlying system has inherent variance. A thermometer has one — you cannot meaningfully distinguish a 0.01°C difference with a standard household thermometer. A bathroom scale has one — your weight fluctuates by 1–2kg across a single day without any change in actual body mass. The noise floor does not mean measurement is impossible. It means you need to know what it is before you can interpret what you're measuring. GEO research published without a noise floor is in the same position as a clinical trial with no control group. The treatment may have worked. It may also have been the natural variance of the outcome measure. Without knowing the variance, you cannot tell the difference. The experiment is not wrong — it is uninterpretable. The GEO Lab established the noise floor as the first dependency for all other experiment interpretation. Every subsequent experiment — E002, E003, E006, the entity density test, the citation decay study — is only interpretable because E016 exists to tell us what baseline variance looks like. E016: What the GEO Lab Measured E016 ran for five consecutive days in April 2026. The protocol was deliberately minimal: the same 10 queries, run once per day on Perplexity sonar-pro, with no changes to the site, the content, the schema, or the query set across the five days. The single variable was time. The question was not "does X affect citation rate?" It was: "what does citation rate do when nothing changes?" Day 1 22% baseline Day 2 27% +5pp Day 3 19% −8pp Day 4 24% +5pp Day 5 23% +1pp E016 indicative daily citation rates — Perplexity sonar-pro, 10-query set, no content changes. Day-to-day range: 19%–27%. Peak-to-trough swing: 8 percentage points. Full data: thegeolab.net/e016-noise-floor-measurement/ 30% 25% 20% 15% noise floor 22% 27% 19% 24% 23% Day 1 Day 2 Day 3 Day 4 Day 5 No content changes across all five days E016: Citation rate across five consecutive days with zero content changes. The shaded band represents the ±4–6pp noise floor range. An 8pp swing (Day 2 → Day 3) with no intervention. The range across five days was 19%–27% — an 8 percentage point swing with zero content changes. The natural variance of citation rate, absent any intervention, sits at approximately ±4–6 percentage points on a 10-query sample. This is the noise floor for the GEO Lab measurement system on Perplexity at the current domain authority level. Two immediate implications follow from this number. First, any single-day delta smaller than 8 percentage points cannot be confidently attributed to a content change — it falls within the observed natural variance range. Second, the noise floor is domain- and query-specific: a higher-authority site with a larger query sample will have a different noise floor. E016 establishes the GEO Lab's noise floor, not a universal constant. Why Citation Rate Variance Exists on AI Platforms The variance documented in E016 is not random noise in a statistical sense — it has identifiable sources. Understanding those sources explains both why the variance is unavoidable and why it is larger on some platforms than others. Web search index freshness. Perplexity retrieves citations via live web search. The results of that search vary by the hour as the index updates, pages are recrawled, and competing content is added or removed. A page that ranks position 3 in Perplexity's web search on Monday may rank position 7 on Tuesday after a competitor publishes relevant content — not because of anything the original page did. Model temperature and sampling. AI language models use probabilistic sampling when generating responses. Even with identical retrieval results, the synthesis step introduces variation in which retrieved sources make it into the final response. Two identical queries run seconds apart can produce responses that cite different subsets of the same retrieval pool. Query routing variation. Perplexity routes queries to different retrieval strategies depending on its assessment of query intent. A query phrased identically on two different days may be classified differently if the model's assessment of intent shifts, sending it to a different retrieval path and producing a different citation set. Index state at query time. Perplexity's index is not a static snapshot — it is continuously updating. The same query run at 9am and 9pm may hit different index states, with different pages at the top of the retrieval pool. None of these sources of variance are controllable from the publisher side. You cannot prevent Perplexity's index from updating or prevent model sampling variation. This is why the noise floor is an empirical measurement, not a calculation — you have to run the same queries across multiple days and observe what happens. Minimum Detectable Effect: The Number Every GEO Experiment Needs The minimum detectable effect (MDE) is the smallest real change in citation rate that your measurement system can reliably distinguish from noise. It is a function of your noise floor, your sample size, and how many days you run the measurement. For the GEO Lab measurement system — 10 queries per day, Perplexity sonar-pro, current domain authority — the E016 data establishes the following: Measurement duration Queries per day Min. detectable effect Practical meaning 1 day 10 ~8–10pp Only very large effects are detectable. Most GEO interventions produce smaller effects than this. 3 days (each condition) 10 ~5–6pp Medium effects become detectable. Minimum viable for most A/B style tests. 5 days (each condition) 10 ~4pp GEO Lab standard. Sufficient for detecting effects of the size typically produced by structural content changes. 5 days (each condition) 30 ~2–3pp Higher confidence. Required for testing subtle variables like schema format or heading style. MDE estimates derived from E016 variance data. Values are approximate — actual MDE depends on the specific query set and domain. Higher domain authority typically reduces noise floor and MDE. The practical consequence: if you run a GEO experiment for one day on a 10-query sample and report a +5pp citation rate increase, that number is inside the noise floor. You cannot say whether the intervention worked or whether the measurement simply landed on a good day for citation rate. This is not a theoretical concern. The E016 data shows a +5pp swing between Day 1 and Day 2 with zero intervention. A +5pp "result" from a one-day test is indistinguishable from that movement. 📖 The GEO Workbook: 30-Day AI Visibility Action Plan Includes the full GEO experiment protocol template — query design, measurement duration, noise floor check, and result interpretation framework. Download free → What the Noise Floor Invalidates Applying the noise floor standard to published GEO research produces an uncomfortable list. The following experiment types are structurally unable to produce interpretable results without multi-day measurement: Experiment type Common format Problem Valid version Before/after schema change "Added FAQ schema, citations went up 15%" Before = 1 day, after = 1 day. Delta may be noise. 5-day baseline, change, 5-day post-measurement Content rewrite test "Rewrote intro declaratively, Perplexity cited us" Single citation event on single day. No baseline variance established. Multi-day multi-query protocol before and after rewrite Platform comparison "Perplexity cites us 3× more than ChatGPT" If measured on a single day, both readings carry ±4–6pp uncertainty. Average across ≥5 days per platform Tool-reported AI visibility score Dashboard showing "AI visibility: 34%" Point-in-time measurement presented as a stable metric. Varies ±4–6pp by day. Rolling 5-day average, shown with variance band Common GEO experiment formats and their noise floor problems. This is not an exhaustive list — the issue applies to any measurement that does not account for daily citation rate variance. The FAQ schema experiment (E002) is one of the few published GEO experiments that holds up under noise floor scrutiny. The −1.7% overall delta reported in E002 would normally be questionable — it falls within the noise floor range. But the null result is interpretable because the experiment ran 480 queries across three platforms, used 5 iterations per query, and produced a result consistent with zero effect across every platform and every query type. The consistency pattern is informative even when the aggregate delta is small. A positive result of −1.7% would not be interpretable the same way. Null results at small deltas can be informative. Positive results at small deltas cannot — without multi-day measurement to rule out variance. How to Run a GEO Experiment That Produces Interpretable Results The methodology changes required to produce valid GEO experiments are not complicated. They require more time than a single-day test, but they do not require specialist tools or large budgets. The five requirements for a valid GEO experiment, derived from the E016 findings: 1. Establish a noise floor before starting. Run your query set for at least three days with no changes and record the citation rate each day. Calculate the day-to-day variance range. This is your noise floor. Any result from the experiment must exceed this range to be interpretable as a real effect. 2. Use a fixed query set of at least 10 queries. Fewer than 10 queries produces citation rate readings that are too coarse — a single citation added or removed shifts the rate by 10 percentage points on a 10-query set. More queries reduce the impact of any individual retrieval event. 3. Run each condition for at least 5 days. Five days gives you enough data points to see whether the post-change citation rate is consistently different from the pre-change baseline, or whether it is bouncing within the noise floor range. 4. Make one change at a time. Changing schema, heading format, and content structure simultaneously makes it impossible to attribute any delta to a specific variable. One variable, one experiment. 5. Report the variance, not just the average. A result reported as "citation rate increased from 22% to 28%" obscures whether the post-change readings were consistently 28% or ranged from 19% to 37%. The variance tells you whether the effect is stable. The average alone does not.The GEO Lab applies this protocol to every experiment published on the site. The 30-check citation protocol specifies query count, platform coverage, iteration count, and recording format. The E016 post provides the variance baseline against which all GEO Lab results are interpreted. Key Takeaway Citation rate on Perplexity varies by ±4–6 percentage points day to day with no content changes. This is the noise floor — the baseline variance that must be established before any experiment result can be interpreted. Any delta smaller than the noise floor cannot be attributed to a content change Single-day measurements are structurally uninterpretable for most GEO variables The minimum viable experiment runs each condition for at least 5 days on at least 10 queries Null results at small deltas (like E002's −1.7%) can still be informative — positive results at small deltas cannot Every noise floor is domain- and platform-specific. E016 establishes the GEO Lab's — it is not a universal number Frequently Asked Questions What is a noise floor in GEO measurement? The noise floor is the baseline citation rate variance that exists independently of any content change — the range within which citation rate fluctuates on a given platform across consecutive days when the site, content, and queries are all held constant. For thegeolab.net on Perplexity with a 10-query sample, the E016 experiment established a noise floor of approximately ±4–6 percentage points, with a peak-to-trough range of 8 percentage points across five days. Any experiment reporting a delta smaller than the noise floor is reporting noise, not signal from a content change. Why does citation rate vary if nothing on the site changes? Four sources produce natural citation rate variance: web search index freshness (Perplexity's retrieval pool updates continuously, changing which pages appear at the top of results), model temperature and sampling (probabilistic generation means identical queries can produce different citation sets), query routing variation (the same query may be classified differently on different days, sending it to different retrieval strategies), and index state at query time (the index is a moving target, not a static snapshot). None of these are controllable from the publisher side, which is why the noise floor must be measured empirically rather than assumed to be zero. How do you establish a noise floor for your own site? Run a fixed set of at least 10 queries on your target platform for at least three consecutive days with no changes to your site, content, schema, or the query set. Record the citation rate each day. The range from lowest to highest reading is your observed variance — this is your noise floor. Any subsequent experiment result must produce a delta that consistently exceeds this range across multiple measurement days to be interpretable as a real effect rather than natural variance. Does the noise floor apply to all AI platforms equally? No — the noise floor is platform-specific. Perplexity's live web search architecture produces more day-to-day variance than platforms that draw from a more stable knowledge base. Gemini's grounding mechanism and ChatGPT's web search each have different variance characteristics. The E016 experiment measured the noise floor on Perplexity specifically. Running the same protocol on Gemini or ChatGPT would produce different variance figures. The noise floor is also domain-specific: a higher-authority site that consistently ranks at the top of retrieval results will show lower variance than a newer site whose position in the retrieval pool is less stable. What is the minimum experiment duration for a valid GEO test? Based on E016 variance data, the minimum viable duration is five days of measurement per condition on a 10-query sample — meaning five days before the change (baseline) and five days after (post-change). This produces a minimum detectable effect of approximately 4 percentage points. For testing subtle variables like schema format or heading style, where real effects may be smaller, 30 queries per day over five days reduces the MDE to approximately 2–3 percentage points. Single-day measurements on 10-query samples have a minimum detectable effect of approximately 8–10 percentage points — larger than most GEO interventions are expected to produce. Running your own GEO experiments? The GEO Lab publishes its full experiment methodology — query design, measurement protocol, and noise floor standards — alongside every experiment result. See the experiments index → Related E016: The Noise Floor Experiment — full methodology and data E002: FAQPage Schema and AI Retrieval — 320 Queries, Null Result We Ran a Controlled Entity Density Experiment. Here's the Null Result. How to Measure AI Citation Rate: The 30-Check Protocol Month 0: Why Every GEO Content Plan Needs a Baseline Version History Version 1.0 — 18 May 2026: Initial publication. Noise floor concept, E016 variance data, minimum detectable effect framework, experiment validity standards. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## Building a Native WP Form to Replace Google Forms
URL: https://thegeolab.net/google-forms-webhook/
, "publisher": } .wp-block-post-content h1 h2 h3 p ul, ol li strong em .byline .subtitle .definition-block .definition-block p .definition-block p:last-child .definition-block .label .callout .callout p .callout p:last-child /* Attempt blocks */ .attempt-list .attempt-list li .attempt-list li::before .attempt-list li div .attempt-list li strong .attempt-list li p /* Architecture block */ .arch-block .arch-block .arch-label /* Pipeline steps */ .pipeline .pipeline li .pipeline li > * .pipeline li code .pipeline li::before /* Field table */ table th td tr:nth-child(even) td td:first-child .req-yes /* Registry blocks */ .registry-block .registry-block.critical .registry-id .registry-id.critical .registry-row .registry-row .rlabel code .faq-item .faq-item h3 .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong h1 .registry-row .registry-row .rlabel } .comparison-table .comparison-table th .comparison-table td .comparison-table tr:nth-child(even) .comparison-table tr:nth-child(odd) .comparison-table tr:hover @media(max-width:600px) .comparison-table th, .comparison-table td } code .do-dont-list code, .do-dont code .do-dont .do-dont-col /* Mobile responsive */ @media (max-width: 768px) h1, .content-title h2 .stat-grid .stat-card .stat-number .term-grid .module-grid .method-grid .progress-grid .category-grid .do-dont .code-compare .code-compare-block .pipeline-diagram .pipeline-arrow .comparison-table .definition-block, .callout, .key-takeaway .entry-card, .entry-card-header, .issue-block .entry-row, .issue-row, .registry-row .testimonial-card .author-bio .review-card img } @media (max-width: 480px) h1, .content-title .stat-grid .byline .subtitle .geolab-toc .meta-section } /* Code blocks */ pre pre code Building a Native WP Form to Replace Google Forms By Artur Ferreira · The GEO Lab · Published: 11 March 2026 · Version 1.0 Four attempts to make Google Forms work without a login wall. All four failed. Then we built the form ourselves. TL;DR Google Forms kept forcing users to sign in with a Google account. The root cause is a Google Workspace org-level policy that can't be overridden at the form level. We tried four things. All four hit the same wall. We started a Workspace trial to access the admin console, couldn't find the relevant setting, and built a native WordPress form instead. The form writes directly to Google Sheets via a Python service account. No login required. Live at the GEO Console. [research_ access_form] WP Shortcode PHP AJAX nonce + escape functions.php form-handler .py Python script gspread API client Python lib Google Sheets 32-col schema No Workspace dependency. No Google Forms login required. Figure 1. Native form submission pipeline — WordPress shortcode → PHP AJAX → Python handler → gspread → Google Sheets. The Story Paid for a Google subscription to use Google Forms. Could not find Google Forms. That's the whole thing. But the four attempts that came before the subscription are worth documenting, because they're the logical sequence anyone would try before spending money. The Login Wall — Google Forms Problem The form was supposed to let people submit their site for a GEO visibility audit — name, email, URL, a few research questions. Google Forms was the obvious starting point: free, connects to Sheets, no setup required. Every time someone opened the form, Google redirected them to accounts.google.com/v3/signin. Sign in to fill out a form. The research access form was not supposed to require a Google account. That was the problem. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. Going deeper? GEO for WordPress covers the full technical setup — from schema markup to server configuration — for making WordPress sites AI-retrievable. Four Attempts, One Wall Uncheck "Limit to 1 response" The login requirement looked like it might be tied to response tracking — limiting one response per person requires knowing who the person is. Unchecked it. Form still redirected to accounts.google.com/v3/signin. Response limits and login requirements are separate settings. Copy the form to a personal @gmail.com account The form was owned by a Workspace account. Copying it to a personal Gmail might shed the org-level policy. Same redirect. Google Workspace org-level policy applies to forms created under the org — copying doesn't escape it. The policy travels with the form. Create a blank form under personal Gmail and push fields via the API If copying inherits the policy, start fresh. Created a new blank form under a personal Gmail account, no org association, and pushed the full field structure via the Google Forms API. Still hit the login wall. The API-created form inherited the same behavior. At this point the wall stopped looking like a setting and started looking like a policy. Set Drive API sharing to "anyone with link" Treated the form like a shared document. Set the form's sharing permissions to public via the Drive API. Google Forms ignores Drive-level sharing for responder access — the form's own settings and the org policy override it. Drive sharing controls who can see the file in Drive, not who can respond to the form. Root cause across all four: Google Workspace org-level restriction forces sign-in for all forms created under the org, regardless of form-level settings. It cannot be disabled without paid Workspace admin access — and it cannot be circumvented at the form level at all. The Workspace Trial So we started a Google Workspace Business Standard trial — the plan with admin console access. Then we tried to find Google Forms in the admin panel at admin.google.com. The Google admin console has a lot going on. Apps, services, settings, sub-settings, dashboards that look like they were designed by different teams across different years without much coordination. It's the Google equivalent of a drawer that's been accumulating things since 2010 — technically everything is in there, but finding the specific thing you need when you need it is a different matter. We searched for Forms. Checked the Apps panel. Read documentation that described menu paths that didn't match what was on screen — which usually means the documentation was written for a previous version of the UI. We gave up. Not dramatically. Just: this is taking longer than building the alternative, so we're building the alternative. The trial ended. What We Built Instead — WordPress Solution A native WordPress form. 100% custom — no plugin. HTML, CSS, JavaScript, PHP AJAX handler, and Python script, all registered as a [research_access_form] shortcode in functions.php. Styled to match the site: DM Sans font, #8b6914 gold accents, same visual weight as the rest of the layout. Architecture [research_access_form] shortcode → PHP AJAX handler (admin-ajax.php + nonce) → shell_exec("python3 form-handler.py '$json'") via escapeshellarg → form-handler.py authenticates via google-credentials.json (service account) → gspread appends row to Google Sheets The Flow [research_access_form] shortcode in functions.php renders the form with embedded CSS and JS User submits → JavaScript POSTs to admin-ajax.php with nonce PHP handler validates nonce, sanitises input, calls shell_exec() with escapeshellarg for the Python call form-handler.py authenticates via google-credentials.json (service account), appends a row via gspread 11 Fields Collected # Field Type Required 1TimestampAuto-generated— 2NameTextNo 3EmailEmailNo 4Site URLURLNo 5Site typeRadio: Blog, SaaS, Service, E-commerce, Agency, OtherNo 6Brand name variationsTextYes 7Main questionTextareaNo 8Queries to track (4–10)Textarea, one per lineYes 9Intent typesCheckboxes: Brand, Category, Use case, Comparison, LocalYes 10Competitor domainsTextarea, one per lineNo 11Attribution permissionRadio: yes with name, anonymised, noYes No login required. Submissions write directly to the spreadsheet. The form is live at thegeolab.net/console. Why No Plugin The standard answer to "I need a WordPress form" is a form plugin. Any of them would have handled the HTML and submission logic. The reason for custom code here was the Google Sheets integration. Form plugins connect to Sheets via third-party add-ons or Zapier — a second dependency, usually a paid tier, and a data pipeline that routes through someone else's servers. The custom implementation authenticates directly via a Google service account: one credentials file, one Python script, direct API write. No intermediaries, no per-submission cost, no additional account to maintain. The other reason: the form fields are research-specific. Intent types, query tracking, competitor domains, attribution permission — these aren't generic contact form fields. A plugin would approximate this. The custom form does exactly this. Failure Registry Entries GFORMS_LOGIN_001 SymptomAll form respondents redirected to accounts.google.com/v3/signin regardless of form sharing settings. Root causeGoogle Workspace org-level policy enforces sign-in for all forms created under the org. Cannot be overridden at form level. Requires Workspace admin access to disable. Failed fixes1) Uncheck "Limit to 1 response" · 2) Copy to personal Gmail · 3) Create via API under personal Gmail · 4) Set Drive sharing to public FixBuilt native WordPress form. PHP AJAX handler → form-handler.py → Google Sheets API documentation via service account. No login required. DateAdded: 2026-03-11 · Fixed: 2026-03-11 FORM_PERMISSION_001 SymptomUser submits form, receives "Submission failed. Please try again or contact us." PHP error log: Permission denied: google-credentials.json Root causegoogle-credentials.json owned by root:root. PHP and shell_exec run as www-data. www-data cannot read a file owned by root with default permissions. Fix chown www-data:www-data /var/www/thegeolab/wp-content/themes/geolab-theme/google-credentials.json DateAdded: 2026-03-11 · Fixed: 2026-03-11 FORM_SPREADSHEET_ALIGN_001 — Critical SymptomBrand names appearing in the "SaaS / Software" column. All data shifted right by 4 columns. Submissions landing in wrong fields throughout. Root causeSpreadsheet still had the old Google Form's column structure — junk columns (duplicate Site type, individual radio options as separate columns). The Python handler outputs a clean 11-field row; it was landing on the old header layout, causing a 4-column offset. FixCleared sheet headers entirely. Set clean 32-column schema matching form-handler.py output exactly. DateAdded: 2026-03-11 · Fixed: 2026-03-11 Key GEO Takeaway Google Workspace organisation-level policy blocks public form access regardless of individual form settings. The fix is not a workaround — it's a replacement: a native WordPress shortcode form that writes directly to Google Sheets via the gspread API, with no Workspace dependency. Frequently Asked Questions Can you fix the Google Forms login requirement without paying for Workspace? Not if your form is owned by a Google Workspace account. The org-level restriction that forces sign-in can only be disabled by a Workspace admin. If you create the form under a personal Gmail account (not a Workspace org), public forms work by default — but copying a form from a Workspace org to a personal Gmail does not escape the policy. Why does Google Forms ignore Drive-level sharing settings? Drive sharing controls who can view or edit the file in Google Drive. It does not control who can respond to a form. Form responder access is governed by the form's own settings and the Workspace org policy — and the org policy takes precedence over both. Why use shell_exec to call a Python script instead of a PHP Google Sheets library? The Python gspread library handles Google Sheets authentication and row appending cleanly with a service account JSON file. A native PHP implementation would require a PHP Google API client, additional OAuth handling, and more configuration surface. The shell_exec call uses escapeshellarg for input sanitisation before the JSON is passed to the script. Does the form store data anywhere other than Google Sheets? Form submissions are not stored in WordPress. Submissions go directly to the spreadsheet via the service account. Nothing is stored in the WordPress database — the PHP handler validates, sanitises, passes to Python, and discards. The Sheets row is the only record. What causes "Permission denied: google-credentials.json" when calling Python from PHP? The credentials file is owned by root:root but PHP (and shell_exec) runs as www-data. www-data cannot read a file owned by root with default permissions. The fix, when I found it, was embarrassingly simple: chown www-data:www-data /path/to/google-credentials.json. Submissions worked immediately. I had been debugging the Python handler for forty minutes. Related The Failure Registry GEO Visibility Audit — Submit Your Site Version History Version 1.0 — 11 March 2026: Initial publication. Documents GFORMS_LOGIN_001, FORM_PERMISSION_001, FORM_SPREADSHEET_ALIGN_001 — the full sequence from Google Forms login wall to native WP form deployment. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## Can AI search engines read paywalled content?
URL: https://thegeolab.net/guides/paywalls-and-ai-search-a/
AI search engines can only cite the content their crawlers can access. A hard paywall will usually keep the full article out of AI answers. Metered and client-side paywalls may not. That is the short answer. The details depend on what the server gives the crawler, and that varies by paywall and engine. What does "reading" a paywalled page mean? An AI search engine can discover content in two ways. It may crawl and store the page in advance, or fetch it while generating an answer. In both cases, the request will usually arrive without subscription cookies or an active login. The engine sees whatever the server returns. This is where the type of paywall matters: A hard paywall gives the crawler a preview and a login prompt. A metered paywall may serve the complete article until the free allowance is reached. A client-side paywall sends the complete article in the HTML, then uses JavaScript to hide it from the reader. These pages may look equally restricted to a visitor, but they can look very different to a crawler. Do AI assistants cite content behind a paywall? They can cite whatever they were able to read. If the crawler received only a short preview, the engine may still cite the page, but only for information contained in that preview. If it received the complete article through a metered or client-side paywall, the page may be treated much like openly accessible content. If the crawler was blocked before receiving any useful text, the article is unlikely to become a citation candidate. Some publishers also have licensing agreements that provide their content directly to AI companies without relying on a normal crawl. These arrangements are not visible from the page itself and cannot be reproduced through a markup change. How do AI search engines handle gated content? Gated content usually sits behind a form, email request or account login. From a crawler's perspective, that often works like a hard paywall: it receives a landing page or short description instead of the asset. Many gated assets are also deliberately kept out of search indexes. That can make them invisible to AI search at both the crawling and indexing stages. If a report or white paper has a public landing page, an AI engine may cite that page. It cannot reliably cite claims inside the report unless it was also able to access the report itself. Is paywalled content indexed by AI search? Only the part served to the crawler can be indexed. Google supports flexible sampling and structured data that identifies paywalled sections. Because AI Overviews use Google's search infrastructure, they can inherit what Google has indexed. Other engines do not publicly document an equivalent paywall signal. The safest assumption is that they store or use the text their crawler received. A page can therefore exist in an AI engine's index while containing little more than a headline, standfirst and subscription prompt. Can AI answer engines see content behind a login? Not when the restriction is properly enforced by the server. If the server requires a valid session before returning the article, the crawler receives no protected content. Client-side restrictions are different. If the complete article is sent in the HTML and JavaScript merely hides it in the browser, a crawler reading the raw HTML may still see everything. That is a common and often unintended content leak. Do AI search engines cite subscription-only articles? They can, particularly when: the subscription wall is applied only in the browser; a metered paywall gives the crawler access within its free allowance; or the publisher has a direct content agreement with the engine. Without one of those routes, a subscription article may still be cited for its headline or public introduction, but not necessarily for anything inside the protected body. How to make paywalled content visible without giving it away Give crawlers and readers a deliberate, useful excerpt instead of an empty stub. A strong opening section can explain the subject and state the article's main finding accurately while keeping the supporting detail behind the paywall. This gives an AI engine something meaningful to retrieve without exposing the full work. For Google, mark the protected section with the structured data it provides for paywalled content. Keep the title and opening paragraph outside the wall, and make them specific enough to explain what the article contains. Avoid serving the complete article to crawlers while showing readers a restricted version. That is cloaking, may breach search-engine guidelines and defeats the purpose of protecting the content. Does a paywall stop a page being cited in AI answers? A hard, server-side paywall will usually stop the protected body from being used. A metered or client-side paywall may not. A page with a substantial public excerpt sits somewhere between the two: it can be cited for the information in the excerpt, while the rest remains protected. What has not been measured This explanation is based on how paywalls respond to crawler requests, public documentation about retrieval and what can be observed in live systems. There is no public controlled experiment that keeps an article fixed, changes only the type of paywall and measures citation rates separately for each AI engine. Until that test exists, a useful open excerpt is the safest practical approach, not a proven citation lever.
---
## Can AI search engines read paywalled content? (Variant B)
URL: https://thegeolab.net/guides/paywalls-and-ai-search-b/
Technical Guides 10 September 2026 Contents What does "reading" a paywalled page mean? Do AI assistants cite content behind a paywall? How do AI search engines handle gated content? Is paywalled content indexed by AI search? Can AI answer engines see content behind a login? Do AI search engines cite subscription-only articles? How to make paywalled content visible without giving it away Does a paywall stop a page being cited in AI answers? What has not been measured Related: What is Generative Engine Optimisation? AI search engines can only cite the content their crawlers can access. A hard paywall will usually keep the full article out of AI answers. Metered and client-side paywalls may not. That is the short answer. The details depend on what the server gives the crawler, and that varies by paywall and engine. What does "reading" a paywalled page mean? An AI search engine can discover content in two ways. It may crawl and store the page in advance, or fetch it while generating an answer. In both cases, the request will usually arrive without subscription cookies or an active login. The engine sees whatever the server returns. This is where the type of paywall matters: A hard paywall gives the crawler a preview and a login prompt. A metered paywall may serve the complete article until the free allowance is reached. A client-side paywall sends the complete article in the HTML, then uses JavaScript to hide it from the reader. These pages may look equally restricted to a visitor, but they can look very different to a crawler. Do AI assistants cite content behind a paywall? They can cite whatever they were able to read. If the crawler received only a short preview, the engine may still cite the page, but only for information contained in that preview. If it received the complete article through a metered or client-side paywall, the page may be treated much like openly accessible content. If the crawler was blocked before receiving any useful text, the article is unlikely to become a citation candidate. Some publishers also have licensing agreements that provide their content directly to AI companies without relying on a normal crawl. These arrangements are not visible from the page itself and cannot be reproduced through a markup change. How do AI search engines handle gated content? Gated content usually sits behind a form, email request or account login. From a crawler's perspective, that often works like a hard paywall: it receives a landing page or short description instead of the asset. Many gated assets are also deliberately kept out of search indexes. That can make them invisible to AI search at both the crawling and indexing stages. If a report or white paper has a public landing page, an AI engine may cite that page. It cannot reliably cite claims inside the report unless it was also able to access the report itself. Is paywalled content indexed by AI search? Only the part served to the crawler can be indexed. Google supports flexible sampling and structured data that identifies paywalled sections. Because AI Overviews use Google's search infrastructure, they can inherit what Google has indexed. Other engines do not publicly document an equivalent paywall signal. The safest assumption is that they store or use the text their crawler received. A page can therefore exist in an AI engine's index while containing little more than a headline, standfirst and subscription prompt. Can AI answer engines see content behind a login? Not when the restriction is properly enforced by the server. If the server requires a valid session before returning the article, the crawler receives no protected content. Client-side restrictions are different. If the complete article is sent in the HTML and JavaScript merely hides it in the browser, a crawler reading the raw HTML may still see everything. That is a common and often unintended content leak. Do AI search engines cite subscription-only articles? They can, particularly when: the subscription wall is applied only in the browser; a metered paywall gives the crawler access within its free allowance; or the publisher has a direct content agreement with the engine. Without one of those routes, a subscription article may still be cited for its headline or public introduction, but not necessarily for anything inside the protected body. How to make paywalled content visible without giving it away Give crawlers and readers a deliberate, useful excerpt instead of an empty stub. A strong opening section can explain the subject and state the article's main finding accurately while keeping the supporting detail behind the paywall. This gives an AI engine something meaningful to retrieve without exposing the full work. For Google, mark the protected section with the structured data it provides for paywalled content. Keep the title and opening paragraph outside the wall, and make them specific enough to explain what the article contains. Avoid serving the complete article to crawlers while showing readers a restricted version. That is cloaking, may breach search-engine guidelines and defeats the purpose of protecting the content. Does a paywall stop a page being cited in AI answers? A hard, server-side paywall will usually stop the protected body from being used. A metered or client-side paywall may not. A page with a substantial public excerpt sits somewhere between the two: it can be cited for the information in the excerpt, while the rest remains protected. What has not been measured This explanation is based on how paywalls respond to crawler requests, public documentation about retrieval and what can be observed in live systems. There is no public controlled experiment that keeps an article fixed, changes only the type of paywall and measures citation rates separately for each AI engine. Until that test exists, a useful open excerpt is the safest practical approach, not a proven citation lever.
---
## Citation Rate and Query Length — E030 Pre-Registration | The GEO Lab
URL: https://thegeolab.net/e030-fan-out-length-citation-rate/
Experiment Pre-Registration · E030 By Artur Ferreira · The GEO Lab · 12 May 2026 Does query length affect citation rate on Perplexity? E030 pre-registers a controlled test across 3 fan-out length tiers, 3 stably-cited pages, and 45 frozen queries. I'm about to spend 5 days asking Perplexity 45 versions of the same three questions, just to find out whether typing more words makes a citation more likely. This is, on paper, a silly thing to do. The interesting thing is that nobody has actually tested it. The gap I keep tripping over Every controlled experiment I've run at The GEO Lab so far has varied the page and held the queries constant. E001 changed declarative vs narrative structure. EDX changed entity density. E025 (active) changes external entity reinforcement. The query set sits there as a fixed baseline. There's an obvious axis nobody's testing across the experiments I've published or got active so far: the queries themselves. Same page, same content, same authority, same everything — but ask the question differently and see if the citation rate moves. I was confused for a while about why this hadn't been done. Then I realised the reason: the design space for "ways to ask the same question" is enormous and most of it is uncontrolled. Take "what is extractability in AI search" and "how does extractability work for Perplexity citation" — same intent, but they vary on at least 4 dimensions: length (6 vs 9 words), intent type (definitional vs mechanistic), platform anchoring (none vs Perplexity), and complexity. Pick any two and you've got an interaction. Pick all of them and you've got a paper, not an experiment. Dr. Pete Meyers, BrightonSEO 2026 — “The Infinite Tail: Keyword Research for AI” Then in late April, Dr. Pete Meyers gave a talk at BrightonSEO 2026 called "The Infinite Tail," and slide 64 carved off one specific axis as a clean variable: query length. His proposal: AI fan-out generates queries at three approximate length tiers — 2-4 words (root), 6-8 words (mid), 10-12 words (deep). Whether you accept those exact bounds or not, the tiered framing isolates length as a single dimension and lets you hold everything else constant. That's an experiment. What I'm pre-registering: length vs citation rate E030 — Fan-out Length × Citation Rate. Frozen 2026-05-10. Measurement window 2026-05-19 to 2026-05-23. The hypothesis: On the same page set, same intent, same fan-out category, citation rate on Perplexity goes up as query length goes up. Specifically, the longest tier (10-12 words) clears the shortest tier (2-4 words) by at least 22 percentage points, which is the noise floor I measured in E016 last month. The pre-registered null: No pair of length tiers is separated by 22 percentage points or more. Length doesn't matter — Perplexity matches by intent regardless of phrasing length. I am, on balance, predicting H1. But the entire reason for pre-registering is that I lock the prediction in writing before the data arrives. If the null holds, the post that goes live on 2026-05-29 will say so. That's the deal. How the experiment is built 3 pages, all stably cited in E014 M2 (April 2026): /geo-stack//extractability//retrieval-probability/ I started with all 5 GEO Stack layer pages, then E014 measurement data through April 2026 showed only 3 of them have observed Perplexity citation history. Including pages with a 0% citation baseline would have masked any length effect on the cited pages. They'd always fail to be cited regardless of query length, conflating "did length matter?" with "is this page in the cited set at all?" So the experiment uses the 3-page subset only. The generalisability claim is "length affects citation rate among already-citable T1 pages" — not "length moves uncited pages onto the cited list." That's a different experiment. 45 queries, 5 per length tier per page: Each query is anchored to the same root noun phrase across all three length tiers. For example, on /extractability/: 2-4 words: "extractability AI search"6-8 words: "what is extractability in AI search"10-12 words: "how does extractability affect citation rate in Perplexity AI search" Length variation comes from added qualifiers (verbs, modifiers, context), not from synonym substitution. All queries are in Pete Meyers' Semantic fan-out category — same intent, same semantic core, length-only variation. No brand mentions. No category mixing. No edits during the measurement window. The full query set is on GitHub at e030_query_set.csv. 45 rows, frozen at pre-registration time, programmatically verified for word-count compliance. 5-day measurement window: Same protocol as E016 (the noise floor experiment) and E027 (the Perplexity zero-variance replication). One iteration per query per day. 45 × 5 = 225 measurements per platform. Perplexity is the primary platform; ChatGPT runs in parallel as observation data only because, per E016, ChatGPT cites 0-2 pages per day on a 10-query set — too small for a controlled comparison at this sample size. Each measurement is binary: cited or not cited. URL match against the 3 target pages. No partial credit. No soft-match. This is the same binary protocol used across all GEO Brand Citation Index runs. On the 3-page stably-cited subset, citation identity is deterministic per E027. Citation rate is therefore the variable axis where length effects, if they exist, would manifest. A null result on E030 would rule out length as a Layer 1 driver; a confirmed result would extend Pete Meyers' fan-out framework with a quantified citation-rate effect size. Slide 64 — the 2-4 / 6-8 / 10-12 word fan-out length pyramid. Source: Dr. Pete Meyers, BrightonSEO 2026. The four outcomes I'm pre-committing to 1. Monotonic confirmation: 10-12 word > 6-8 word > 2-4 word, largest gap clears 22pp. H1 holds. Length matters. 2. Inverted result: 2-4 word > 10-12 word, gap clears 22pp. H1 falsified. Perplexity favours short root queries — possibly because retrieval rewards keyword density over compositional matching. 3. Plateau: 6-8 word and 10-12 word equivalent, both above 2-4 word, gap clears 22pp. Length matters but as a threshold, not a gradient. 4. All-null: No pair clears 22pp. Length isn't a Layer 1 driver. Reported as null, full stop. Three of these four outcomes are uncomfortable to write. One of them happens. The confounds I haven't solved A 10-12 word query isn't a pure length increase. It carries more disambiguation. Add the word "Perplexity" to a query about extractability and you've also added a platform anchor that wasn't there before. The "same root noun phrase" rule controls for synonym drift but not for the inevitable narrowing that comes with extra qualifiers. I've documented this as the primary confound in the pre-registration. The control is to clamp every query to the Semantic fan-out category, where added words act as qualifiers around a fixed semantic core rather than introducing new entities. If Pete Meyers' taxonomy is wrong about Semantic being a clean category — or if my classification of these 45 queries into Semantic is wrong — that's the failure mode that hits hardest. The page-set selection bias is also explicit. Choosing only stably-cited pages means I can't say anything about whether length variation could promote previously-uncited pages onto the cited list. That's a real limitation. It's also a deliberate scope choice — I want a clean test of the length variable on pages where I know the floor isn't already 0%. Why the pre-registration If I ran this experiment the normal SEO-blog way — measure first, write second — I'd be writing a story, not an experiment. Whatever pattern showed up in the data, I'd find a way to make the hypothesis fit. The pre-registration locks the hypothesis in writing before the data exists. If the null holds, the result post says so. If H1 is inverted, the result post says so. The methodology survives whichever way the data lands. This is the standard E025 (entity reinforcement, also active) and E016 (noise floor, published last month) work to. It costs more to do it this way. The trade-off is that the result, whichever direction it goes, is interpretable. Credit where it's due The 2-4 / 6-8 / 10-12 word fan-out length pyramid is from Dr. Pete Meyers, "The Infinite Tail: Keyword Research for AI", BrightonSEO April 2026 (slide 64). His deck is the cleanest operationalisation of AI query expansion I've read this year. The framework would have taken me considerably longer to derive on my own. The GEO Lab contribution here is per-platform per-page citation-rate measurement against the length pyramid, with pre-registered falsification criteria, noise-floor calibration from E016, isolation from category effects, and the page-set selection from E014 M2 history. Timeline Pre-registration: 2026-05-12 (this post)Measurement window: 2026-05-19 to 2026-05-23 (5 consecutive days)Data analysis: 2026-05-24 to 2026-05-26Result post: 2026-05-29 Win, lose, or null — the result post lands on 2026-05-29. If H1 holds, longer queries get cited more, and the implication is that section-level extractability optimised for compound questions has a structural advantage over short-generic-section optimisation. If H0 holds, length doesn't matter and we've just ruled out one variable. Both are findings. The dataset will be deposited on Zenodo at result-post time, matching the E027 publication protocol. The 45-query frozen set is already on GitHub. I'll update this post with the result link on 2026-05-29. Key TakeawayE030 pre-registers the hypothesis that Perplexity citation rate increases with query length. Frozen 45-query set across 3 length tiers, 3 stably-cited pages. Measurement window 2026-05-19 to 2026-05-23 — result post 2026-05-29 regardless of outcome. Frozen query set: https://github.com/arturseo-geo/geo-citation-index/blob/main/data/e030/e030_query_set.csv Noise floor reference (E016): https://thegeolab.net/e016-noise-floor-measurement/ Related ongoing experiment (E025): https://thegeolab.net/e025-entity-reinforcement-intervention/ Version History Version 1.0 — 12 May 2026: Pre-registration. Hypothesis, null prediction, methodology, four pre-committed outcomes, and known confounds recorded ahead of the measurement window opening 2026-05-19. Frozen 45-query set deposited at github.com/arturseo-geo/geo-citation-index. Result post scheduled 2026-05-29 regardless of outcome.
---
## Cited Into Irrelevance: What Happens When AI Answers Your Questions Better Than Your Pages Do
URL: https://thegeolab.net/cited-into-irrelevance/
By Artur Ferreira · 12 June 2026 · 8-minute read Cited Into Irrelevance: What Happens When AI Answers Your Questions Better Than Your Pages Do Our own GSC and GA4 data, 90 days: the pages AI engines cite most often are the pages that receive almost no referral traffic from them. TL;DR Two of our most-cited T1 pages hold position one in Google and earn zero clicks. Perplexity cites them at a 72.9% citation rate and sent two referral sessions in 90 days — neither to the cited page. The citation-to-referral gap is structural: engines extract the answer from the theoretical page and route the rare click to practical assets. The fix is not more citations. It is pairing each citation asset with an early conversion path, then reading branded search and direct traffic — not impressions on the cited URL — as the proxy for citation value. Contents Ranked first, cited often, clicked never The citation-to-referral gap The citation itself is stable — the clicks were never coming This is not just us What to measure instead Frequently asked questions Ranked first, cited often, clicked never Two of our tier-one (T1) framework pages hold position one in Google for their defining query and earn zero clicks. In the Google Search Console 90-day window (February–May 2026), /geo-stack/ sat at average position 1.25 for “how does the geo stack work?” across 20 impressions with 0 clicks. our retrieval probability page sat at position 1.85 for “what is retrieval probability in ai search?” across 27 impressions with 0 clicks. 1.25 Avg. Position/geo-stack/ (0 clicks) 72.9% Perplexity citation rateT1 pages (E027) 2 Referral sessionsfrom those citations 0 AI sessions tocited T1 pages Position one with zero clicks is not a title problem. It is the definitional query being answered inside an AI Overview before the user ever reaches a result to click. A third T1 page, passage extractability, behaved differently — its query cluster carried genuine click-through headroom, which is why we rewrote its title on 13 May rather than treating it as the same case. The clean signal is the two definitional pages: the system surfaces our answer and the click stops at the answer. The citation-to-referral gap Perplexity cites our T1 pages at a 72.9% citation rate and sends them no one. That citation measurement comes from experiment E027, our 14-day zero-variance replication of Perplexity citation behaviour, published on Zenodo (DOI 10.5281/zenodo.20245814). In the matching window, those citations produced two GA4 referral sessions in 90 days — and both landed on the GEO Field Manual and the Pocket Guide, not the T1 pages Perplexity actually cited. Ready to act on the gap? The GEO Workbook is a 30-day AI visibility action plan that walks through citation audit, capture-path setup, and the measurement framework that separates presence from referral. The fresh GA4 pull deepens that gap. Over the current window (6 March–4 June 2026), the three T1 pages drew 66 sessions from human sources — direct, Facebook, LinkedIn, and organic search — and exactly zero sessions from any AI platform. Site-wide, AI referrers sent just six sessions in total (excluding claude.ai): Perplexity 3, ChatGPT 1, and Microsoft Copilot 2. Every one of those six landed on a practical asset — the Field Manual, the Pocket Guide, the GEO for WordPress guide, the GEO Experiments log, the ebooks library — and not one landed on a cited T1 page. So the funnel break is structural, not a volume problem. The engines cite the theoretical page that defines a term, and on the rare occasion they pass a click, they route it to the downloadable thing a reader can use. The pages that earn the most citations capture the least referral. What this measurement can and cannot prove This is a single-window snapshot, not a before-and-after. The GA4 property has no data before 6 March 2026, so there is no earlier 90-day period to compare against. The only earlier reference point is E027’s two-session count from its own window. Read the current figures as one clean observation — 66 human sessions, zero AI sessions to the cited pages — rather than a measured trend over time. We excluded 20 claude.ai sessions from the citation count, because assistant link-following is not the same signal as organic citation routing. The citation itself is stable — the clicks were never coming Citation presence on our T1 pages is holding across consecutive monthly measurements, which is what makes the missing traffic a structural finding rather than a bad month. In our third monthly wave (measured 28 May 2026), the combined citation rate across platforms was 12.0%, statistically flat against the prior wave’s 12.9% and well inside our 22-point measurement noise floor. The T1 tier held at 24.0% while the non-owned T2 tier stayed at 0.0%. Finding ChatGPT cited the extractability page for the first time in wave three — sole source, six inline citation references — after zero citations across two prior waves. Meanwhile a separate entity reinforcement intervention returned a clean null: zero-point movement in non-owned citation. Citation presence is durable and, on at least one platform, strengthening. The referral simply does not follow it. That ordering matters. If citation were eroding, you could dismiss the traffic gap as decline. It is not eroding. The page is cited, the citation is stable, and the click still does not arrive. This is not just us Industry-scale data points the same way our first-party data does. Cloudflare’s 2025 Year in Review found that roughly 80% of AI crawling is training-only and returns no referral traffic at all — the clearest external statement of the thesis that most AI extraction of content sends nothing back. Our 72.9%-citation-rate-to-two-sessions gap is the same phenomenon viewed from a single domain. The scale is also shifting fast. TollBit’s State of the Bots report (Q4 2025) put AI bots at roughly 1 in 31 web visits, up from about 1 in 200 at the start of 2025. The synthesis from Kinsta’s analysis of more than 10 billion requests is the practical conclusion: raw visit counts no longer reflect reality, and the signals that do are the correlated ones — branded search, direct traffic, engagement quality, and revenue. What to measure instead Stop reading citation rate and referral traffic as if one predicts the other. They are different layers: citation rate measures presence in the answer, and referral measures capture of the click. On our T1 pages the first is high and the second is near zero, so a dashboard that watches impressions on the cited URL will report success while the page sends nobody anywhere. The practical fix follows from where the six AI-sourced clicks actually went. They went to downloads. So a cited theoretical page should carry its own capture mechanism — an early, explicit path from the layered GEO framework page to the Field Manual, from our retrieval probability page to the matching guide — so that a rare AI-sourced visit converts instead of bouncing. Treat the T1 page as both a citation asset and a conversion asset, because the engines have decided it is only the former. And report the right number. Branded search and direct traffic are where the value of a citation you cannot click actually lands. Reading those, rather than impressions on the cited page, is the difference between knowing your content is working and being cited into irrelevance. Key GEO Lab Takeaway A citation rate above 70% and a referral rate of near zero are not contradictory — they are the same system working as designed. The engine extracts your answer, satisfies the reader, and keeps the click. Measuring citation rate in isolation will always look like success. The signal worth tracking: branded search volume and direct traffic in the window after each citation wave. If those are growing, your citations are converting somewhere upstream. If they are flat, your citation asset has no capture path and the citation has no downstream value. Add a conversion anchor to every T1 page that carries a high citation rate: one early, relevant link to the practical asset that serves the same reader. That is the only change that turns a citation into a visit. The methodology behind this post is pre-registered and independently reproducible: Zenodo DOI 10.5281/zenodo.20245814. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab Sources and methodology Data window: Google Search Console, 90-day period February–May 2026. GA4 property, 6 March–4 June 2026. Monthly citation wave measurements: Wave 3 measured 28 May 2026. Citation data: E027 — 14-day zero-variance replication of Perplexity citation behaviour. Published: Zenodo, DOI 10.5281/zenodo.20245814. Industry references: Cloudflare 2025 Year in Review (AI crawl analysis); TollBit State of the Bots Q4 2025; Kinsta analysis of 10B+ web requests. Version history: v1.0 published 12 June 2026. v1.1 updated 19 June 2026 — testimonial section removed, extractability funnel-break note added, sources consolidated. Frequently asked questions What does “cited into irrelevance” mean? It describes a page that AI search engines cite frequently but send almost no traffic to. The engine extracts the page’s answer, presents it in the generative response, and the user’s need is met without a click. The page earns visibility inside the answer while becoming irrelevant as a destination — high citation rate, near-zero referral. Why do AI engines cite a page but not link traffic to it? Because citation and referral serve different purposes. The engine cites the page that best defines a concept to ground its answer, but a satisfied reader rarely clicks through. In our GA4 data, when AI platforms did pass a click, they routed it to practical downloads rather than the theoretical page they cited. The cited page grounds the answer; a different page captures the rare visit. How much AI crawling actually returns traffic? Very little. Cloudflare’s 2025 Year in Review found roughly 80% of AI crawling is training-only and sends no referral traffic. AI bots have also grown to about 1 in 31 web visits, per TollBit’s Q4 2025 report, up from around 1 in 200 a year earlier. The volume of automated access is rising sharply while the share that converts to a human visit stays small. What should you measure if citation rate doesn’t predict clicks? Measure correlated signals rather than referral alone. Track citation rate as a presence metric, then watch branded search volume, direct traffic, and engagement quality as the places where unclickable citations create value. Reading impressions on the cited URL will overstate success. Separating presence in the answer from capture of the click is the core methodological shift.
---
## Claude Hits Record +72 on Perplexity. Ahrefs Bounces Back to Dominant. The June 2026 GEO Brand Citation Index.
URL: https://thegeolab.net/claude-record-72-perplexity-ahrefs-bounces-back-dominant-june-2026-geo-brand-citation-index/
}, }, }, }, } ] } body h2 h3 p ul, ol li strong em .byline .subtitle .definition-block .definition-block p .definition-block p:last-child .definition-block .label .callout .callout p .callout p:last-child .callout.blue .geolab-toc .geolab-toc ol .geolab-toc li .brand-card .brand-card-header .brand-name .brand-archetype .brand-scores .score-item .score-label .score-value .score-value.positive .score-value.negative .score-delta .score-delta.up .score-delta.down table.comparison-table table.comparison-table th table.comparison-table td table.comparison-table td.brand-col table.comparison-table td.up table.comparison-table td.down table.comparison-table td.flat table.comparison-table tr:last-child td table.comparison-table tr:hover td table.comparison-table tr:nth-child(even) td .shift-table .shift-table th .shift-table td .shift-table tr:last-child td .archetype-from .archetype-to .stat-grid .stat-card .stat-card .stat-number .stat-card .stat-number.positive .stat-card .stat-number.negative .stat-card .stat-desc .faq-item .faq-item h3 .run-meta .run-meta span .run-meta strong .key-takeaway .key-takeaway .kt-label .key-takeaway p .key-takeaway p:last-child .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong @media (max-width: 560px) .stat-grid .brand-scores .run-meta } Claude Hits Record +72 on Perplexity. Ahrefs Bounces Back to Dominant. The June 2026 GEO Brand Citation Index. By Artur Ferreira · The GEO Lab · Published: 17 June 2026 · Version 1.0 GEO Brand Citation Index · Run #4 · June 2026 Claude's Perplexity delta hit +72.22 — the largest in four runs. Ahrefs recovered Dominant status in a single month. The two-mechanism model now has four months of evidence. Run: #4 — June 2026 Brands: 36 (+1 from May) Queries: 54 Platforms: ChatGPT · Perplexity · Gemini TL;DR Run #4 of the GEO Brand Citation Index tracked 36 brands across 54 queries on ChatGPT, Perplexity, and Gemini. Claude posted a record +72.22 delta — up from +60.87 in May — making it the strongest Live Search Brand signal in the index's history. Ahrefs reversed its AI Memory classification in a single month, recovering to Dominant with Perplexity scores jumping from 60.87 to 90.91. Five brands now hold Dominant status, up from four in May. The four-month dataset confirms the two-mechanism pattern: brands cluster around either training-data memory (ChatGPT) or live retrieval (Perplexity), and the few that hold both — Salesforce, Semrush, HubSpot — remain the exception rather than the rule. Contents What Changed Between May and June May vs June: The Full Comparison Ahrefs Regains Dominant Status Claude Posts the Largest Delta in Four Runs Google Search Console Flips to Live Search Four-Month View: Trend Lines Frequently Asked Questions What Changed Between May and June in the GEO Brand Citation Index I expected the June run to be quiet. Four months in, the archetypes should be stabilising. Instead, eight brands shifted classification in a single month — the second-highest churn since the GEO Brand Citation Index launched in March. The headline: Claude's delta widened again. Ahrefs bounced back from AI Memory to Dominant in a single run. And Google Search Console — which had been sinking toward irrelevance on Perplexity — reversed course so dramatically that it flipped from AI Memory to Live Search Brand. In our June 2026 run, the data kept contradicting the "stable archetypes" narrative I had been building. +72.22 Claude — largest positive delta in 4 runs −38.74 Moz — 4th consecutive month as AI Memory Brand 5 Dominant Brands (up from 4 in May) Claude 🔍 Live Search Brand ChatGPT16.67 Perplexity88.89 Gemini43.48 Delta+72.22↑ +11.35 from May Ahrefs 👑 Dominant Brand ChatGPT100.0 Perplexity90.91 Gemini89.47 Delta−9.09↑ +30.04 from May May vs June: The Full GEO Brand Citation Index Comparison The GEO Brand Citation Index comparison table below shows every brand's delta shift between May and June. Eight archetype changes in one month is unusual — the April-to-May transition had twelve, but many of those were artefacts of the Gemini key expiry correction. These eight are all genuine signal. BrandVerticalMay ΔJun ΔShiftArchetype ClaudeAI & LLM+60.87+72.22+11.35🔍 Live Search AhrefsSEO−39.13−9.09+30.04🧠 → 👑 Dominant Google Search ConsoleSEO−21.74+29.05+50.79🧠 → 🔍 Live Search JasperAI & LLM−13.04−27.78−14.74— → 🧠 AI Memory Zoho CRMCRM+13.43+20.13+6.70★ → 🔍 Live Search PipedriveCRM+10.65+33.65+23.00— → 🔍 Live Search Surfer SEOSEO+39.13+5.14−33.99🔍 → — MajesticSEO−8.70−13.04−4.34— → 🫥 Fading UbersuggestSEO−8.69−12.84−4.15— → 🫥 Fading MozSEO−34.79−38.74−3.95🧠 AI Memory (4th month) SemrushSEO+4.35+4.350.00👑 Dominant SalesforceCRM−20.830.00+20.83👑 Dominant HubSpotCRM+25.93−13.20−39.13👑 Dominant ChatGPTAI & LLM0.000.000.00👑 Dominant CopilotAI & LLM+8.69+16.66+7.97🔍 Live Search GeminiAI & LLM+17.39+38.89+21.50🔍 Live Search FreshsalesCRM−14.81−14.17+0.64🫥 Fading Copy.aiAI & LLM+4.35−11.11−15.46— Screaming FrogSEO0.00+0.79+0.79— The largest single shift belongs to Google Search Console: a +50.79 swing from −21.74 to +29.05. That is not a gradual trend — it is a structural change in how live retrieval systems evaluate GSC's web presence. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. Ahrefs Regains Dominant Status After One Month as AI Memory Brand Ahrefs is the only brand in the GEO Brand Citation Index to have held three different archetype classifications across four runs. In March, it was AI Memory (delta −48.15). April brought a partial recovery and a brief Dominant classification. May saw a relapse to AI Memory with a −39.13 delta. June: Dominant again, with Perplexity jumping from 60.87 to 90.91. The pattern is instructive. Ahrefs' ChatGPT score has been locked at 100.0 for four consecutive months — the training data signal is completely stable. What oscillates is the retrieval probability on Perplexity, which depends on live web signals: fresh content, recent mentions, current backlink authority. When Ahrefs publishes actively, Perplexity retrieves more. When the publishing cadence drops, Perplexity notices within a month. The June recovery coincided with a series of high-profile Ahrefs blog posts and tool updates through late May and early June. This is not causation — the GEO Brand Citation Index measures correlation between web activity and AI citation rates — but the timing is consistent with the retrieval-probability model: live search engines reward recency. Research from Semrush's analysis of generative engine optimisation (2025) supports the same pattern: content freshness and update frequency correlate with higher AI retrieval rates. For brand teams watching their own citation index scores, Ahrefs demonstrates that AI Memory classification is not a permanent state. It can reverse in a single measurement cycle. The cost is sustained content investment. The signal decays within weeks of reduced publishing. Claude Posts the Largest Delta in Four Runs of the GEO Brand Citation Index Claude's Perplexity-vs-ChatGPT delta has grown every month: +50.1 in March, +43.5 in April (a dip), +60.87 in May, and now +72.22 in June. The June number breaks the index record. No other brand in any vertical has posted a delta above 50 for more than one consecutive month. Claude delta progression across four GEO Brand Citation Index runs +50.1 Mar +43.5 Apr +60.87 May +72.22 Jun Figure 1: Claude's Perplexity-vs-ChatGPT delta has increased in three of four GEO Brand Citation Index runs, reaching +72.22 in June 2026. The breakdown tells the story. Claude's Perplexity score rose from 73.91 in May to 88.89 in June — a 15-point jump on live search. Meanwhile, its ChatGPT score increased marginally from 13.04 to 16.67. Gemini sits in the middle at 43.48, up from 35.71. The gap between how static training data and live retrieval systems evaluate Claude is widening, not narrowing. What makes this signal useful for extractability research is the consistency. A one-month spike could be noise. Four months of directional growth, with only one minor dip in April, suggests a structural pattern: Anthropic's web presence is growing faster than the training data refresh cycle can absorb. For practitioners, Claude's trajectory illustrates a broader GEO Brand Citation Index finding: live search brands can grow their citation rate independently of training data. The mechanism is web activity — fresh documentation, community mentions, integration guides — and the timeline for that activity to register in retrieval systems appears to be weeks, not months. This aligns with findings from the xFunnel research on GEO (Aggarwal et al., 2024), which demonstrated that content optimisation signals are absorbed by retrieval-augmented systems faster than static training cycles. Google Search Console Flips from AI Memory to Live Search Brand Google Search Console produced the single largest delta shift in June: a +50.79 swing from −21.74 to +29.05. In May, GSC was an AI Memory Brand — ChatGPT cited it at 39.13 while Perplexity managed only 17.39. By June, Perplexity jumped to 68.18 and Gemini reached 73.68, while ChatGPT held steady at 39.13. The reversal is striking because GSC is a Google product. Its training-data footprint should be enormous. Yet the live retrieval systems — both Perplexity and Gemini — now cite it more frequently than the static training model. This suggests recent web activity around GSC (documentation updates, community discussions, how-to content) has outpaced the existing training signal. Within the GEO Stack framework, this is a textbook case of retrieval-probability shifting independently of entity reinforcement. GSC's entity authority hasn't changed — everyone knows what it is. What changed is the volume and recency of citable content about it on the open web. Four-Month View: What the GEO Brand Citation Index Trend Lines Show With four months of GEO Brand Citation Index data, longitudinal patterns are becoming legible. Three observations stand out. Moz is the index's most stable archetype. Four consecutive months as an AI Memory Brand with deltas of −43.9, −43.7, −34.8, and −38.7. The signal does not fluctuate meaningfully. Moz's training-data presence is deep and its live-web retrieval score is consistently below 15. Whatever Moz is doing for web presence, it is not registering in Perplexity's retrieval pipeline. This is the clearest example of a brand living in AI memory rather than current relevance. Ahrefs oscillates — the only brand to switch archetypes three times. AI Memory in March, Dominant in April, AI Memory in May, Dominant in June. No other brand in the GEO Brand Citation Index has reversed classification twice. The implication: Ahrefs' citation profile is volatile, sensitive to short-term web activity. For the May report, I wrote that Ahrefs had "fallen back" to AI Memory. One month later, it recovered. Volatility, not trajectory, is the story. The Dominant tier is stable at the top, volatile at the edges. Salesforce and ChatGPT have scored 100 across all platforms for four months. Semrush has been Dominant since April. These three are locked in. HubSpot and Ahrefs sit at the boundary — their classification depends on month-to-month live retrieval scores that move 10–30 points between runs. Full interactive dataset and month-over-month comparison: GEO Brand Citation Index. Methodology: published methodology. Raw data: Zenodo (DOI: 10.5281/zenodo.19218295). Frequently Asked Questions What is the GEO Brand Citation Index June 2026 run? Run #4 of the GEO Brand Citation Index tracked 36 brands across 54 standardised queries on ChatGPT, Perplexity, and Gemini on 15 June 2026. The index measures how frequently brands are cited by AI systems when users ask tool evaluation questions, with scores normalised to 0–100 per vertical per platform. Why did Ahrefs return to Dominant Brand status in June 2026? Ahrefs regained Dominant Brand classification because its Perplexity score recovered from 60.87 in May to 90.91 in June. Combined with ChatGPT at 100.0 and Gemini at 89.47, Ahrefs now scores consistently high across all three platforms — the defining characteristic of a Dominant Brand in the GEO Brand Citation Index. What does Claude's +72.22 delta mean in the GEO Brand Citation Index? Claude's +72.22 delta means Perplexity cites Claude 72.22 points more frequently than ChatGPT does when answering the same standardised queries. This is the largest positive delta recorded across four runs of the GEO Brand Citation Index, classifying Claude as a Live Search Brand — dominant on live web retrieval but under-represented in AI training data. How many brands does the GEO Brand Citation Index track in June 2026? The June 2026 GEO Brand Citation Index tracks 36 brands across three verticals: AI and LLM Tools (12 brands), CRM and Sales (10 brands), and SEO and Marketing (14 brands). Each brand is measured across 54 queries on three platforms. Where can I download the full June 2026 GEO Brand Citation Index dataset? The full dataset is published on Zenodo under DOI 10.5281/zenodo.19218295. The interactive leaderboard with filtering, sorting, and month-over-month comparison is at thegeolab.net/geo-brand-citation-index/. Key GEO Lab Takeaway The two-mechanism model holds across four months of GEO Brand Citation Index data. Brands are cited either from training-data memory (ChatGPT-dominant) or from live web retrieval (Perplexity-dominant). The five brands that manage both — Salesforce, ChatGPT, Semrush, Ahrefs, HubSpot — do so through a combination of deep historical authority and sustained current publishing. Everyone else is drifting toward one pole. Ahrefs' oscillation between AI Memory and Dominant — twice in four months — demonstrates that archetype classification is not permanent. Live retrieval scores are volatile and respond to recent web activity within weeks. This is the core actionable finding: if your brand's Perplexity score dropped, the fix is not SEO — it is fresh, citable content on the open web. Track your brand's AI visibility. See the full interactive dataset at the GEO Brand Citation Index, or download the raw data from Zenodo. Questions? Contact The GEO Lab. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab Dataset Zenodo: 10.5281/zenodo.19218295 (concept DOI — always resolves to latest version) Interactive: GEO Brand Citation Index Run ID: c4fe67bc-4ae4-4836-9d48-7cbfe3fc3ead Methodology Full methodology — scoring formula, query list, normalisation 54 queries × 3 platforms = 162 total responses per run Platforms: ChatGPT (GPT-4o mini, browsing disabled), Perplexity (sonar, live search), Gemini (2.5 Flash, default grounding) Previous Runs March 2026 — Run #1 April 2026 — Run #2 May 2026 — Run #3 Version History v1.0 — 17 June 2026: Initial publication
---
## Claude Leads Perplexity. Ahrefs Shifts to AI Memory Brand. The May 2026 GEO Brand Citation Index Is Out.
URL: https://thegeolab.net/claude-leads-perplexity-ahrefs-ai-memory-brand-may-2026-geo-brand-citation-index/
body h2 h3 p ul, ol li strong em .byline .subtitle .definition-block .definition-block p .definition-block p:last-child .definition-block .label .callout .callout p .callout p:last-child .brand-card .brand-card-header .brand-name .brand-archetype .brand-scores .score-item .score-label .score-value .score-value.positive .score-value.negative .score-delta .score-delta.up .score-delta.down table th th.dark td td.brand-col td.up td.down td.flat tr:last-child td tr:hover td .shift-table .shift-table th .shift-table td .shift-table tr:last-child td .archetype-from .archetype-to .stat-grid .stat-card .stat-card .stat-number .stat-card .stat-number.positive .stat-card .stat-number.negative .stat-card .stat-desc .faq-item .faq-item h3 .reviewer-meta .reviewer-meta strong .run-meta .run-meta span .run-meta strong .key-takeaway .key-takeaway .kt-label .key-takeaway p .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong @media (max-width: 560px) .stat-grid .brand-scores .run-meta } Claude Leads Perplexity. Ahrefs Shifts to AI Memory Brand. The May 2026 GEO Brand Citation Index Is Out. By Artur Ferreira · The GEO Lab · Published: 7 May 2026 · Version 1.0 GEO Brand Citation Index · Run #3 · May 2026 Ahrefs briefly recovered in April, then fell harder in May. Claude hit its highest delta ever. The SEO vertical now has three AI Memory Brands. This is what platform divergence looks like at scale. Run: #3 — May 2026 Brands: 35 (−2 from April) Queries: 54 Platforms: ChatGPT · Perplexity · Gemini TL;DR Run #3 of the GEO Brand Citation Index tracked 35 brands across 54 queries on ChatGPT, Perplexity, and Gemini. The headline numbers: Ahrefs dropped from Dominant Brand back to AI Memory Brand with a −39.13 delta — its worst Perplexity gap across three runs. Claude posted its highest delta ever at +60.87, now the definitive Live Search Brand signal in the AI tools vertical. The SEO vertical has three simultaneous AI Memory Brands for the first time: Ahrefs, Moz, and Google Search Console. The two-mechanism model is now clear across three months of data: brands either win on model memory (ChatGPT) or on live retrieval (Perplexity) — very few win both simultaneously. Semrush and HubSpot remain the exceptions. Every other brand is drifting toward one pole or the other. What Changed Between April and May in the GEO Brand Citation Index In April’s run I wrote about Ahrefs graduating to Dominant Brand. Its Perplexity score had climbed to 75, its delta narrowed from −48.1 to −25.0, and the trend looked like a brand actively recovering ground on the live web. One month later, that reading looks premature. May’s Perplexity score for Ahrefs dropped back to 60.87 — widening the gap to −39.13. The graduation was real in April’s data, but it didn’t hold. What April’s score may have captured was a short-lived burst of Perplexity retrieval (a product launch, a major piece of coverage, a ranking movement) rather than a durable shift in live web presence. That distinction — between a spike and a trend — is exactly what three months of data starts to reveal. The more interesting inversion this month is Claude. Where Ahrefs scores 100% on ChatGPT and 60.87% on Perplexity — a training-data brand coasting on legacy — Claude does the opposite: 13.04% on ChatGPT, 73.91% on Perplexity, a +60.87pp gap running the other direction. That is the Live Search Brand signature: Anthropic is generating fresh content, press coverage, and practitioner discussion at a pace that Perplexity’s real-time retrieval picks up, while OpenAI’s own model unsurprisingly under-cites its direct competitor. The signal for any brand watching this index is that the two citation mechanisms — model memory versus live retrieval — are diverging faster than most teams realise. Optimising for one without the other is not a strategy; it is a bet on which type of AI query your prospects happen to use. 35 Brands tracked in May (−2 from April: Copper and Runway dropped) 12 Archetype shifts recorded this month (5 reclassified, 7 dropped to unclassified) +60.9 Claude’s delta — highest positive gap in three runs of the index Two brands exited the panel this month: Copper (CRM) and Runway (AI tools). Both had consistently low scores across all three platforms with no meaningful trend signal. The contraction from 37 to 35 brands reflects a decision to track brands where citation patterns are informative — near-zero scores across all platforms for three consecutive runs provide no new data. April vs May: The Full Comparison Table The table below shows all 35 brands from May with their April delta for comparison. Sorted by delta shift, largest positive first. Brands that changed archetype are flagged in the rightmost column. How to read the Δ Shift column: This tracks how the gap between Perplexity and ChatGPT changed month-on-month. ▲ means Perplexity gained ground relative to ChatGPT. ▼ means ChatGPT gained ground. The interactive full dataset — including all three months — is on the GEO Brand Citation Index. Brand Vertical Apr Δ May Δ Δ Shift Archetype ClaudeAI+43.5+60.9▲ +17.4🔍 Live Search HubSpotCRM+16.4+25.9▲ +9.5👑 Dominant Zoho CRMCRM+2.1+13.4▲ +11.3⭐ GEO Outlier GeminiAI+8.7+17.4▲ +8.7NEW: 🔍 Live Search Surfer SEOSEO+16.1+39.1▲ +23.0🔍 Live Search Monday.comCRM+1.1+12.5▲ +11.4— Copy.aiAI−13.0+4.4▲ +17.4Fading → — CursorAI+17.4+13.0▼ −4.4— CopilotAI+17.4+8.7▼ −8.7— ChatGPTAI0.00.0— flat👑 Dominant SemrushSEO+4.3+4.4— flat👑 Dominant Screaming FrogSEO+3.40.0▼ −3.4— MangoolsSEO+3.8−4.4▼ −8.2— SE RankingSEO+20.6+8.7▼ −11.9— PipedriveCRM+48.1+10.7▼ −37.5Live Search → — InsightlyCRM−7.4+0.9▲ +8.3— Notion AIAI+17.4+4.4▼ −13.0— PerplexityAI+8.7+8.7— flat— SalesforceCRM0.0−20.8▼ −20.8👑 Dominant GrammarlyAI+4.3−8.7▼ −13.0— WritesonicAI0.0−4.4▼ −4.4— JasperAI−8.7−13.0▼ −4.3— ClearscopeSEO+4.2+4.4— flat— Rank MathSEO−8.70.0▲ +8.7— Yoast SEOSEO−17.4−13.0▲ +4.4— UbersuggestSEO−13.4−8.7▲ +4.7— MajesticSEO−8.7−8.7— flat— Google Search ConsoleSEO+6.7−21.7▼ −28.4GEO Outlier → 🧠 AI Memory MozSEO−43.7−34.8▲ +8.9🧠 AI Memory AhrefsSEO−25.0−39.1▼ −14.1Dominant → 🧠 AI Memory KeapCRM−7.4−7.4— flat— Close CRMCRM−2.60.0▲ +2.6— SugarCRMCRM−7.4−11.1▼ −3.7NEW: 🫥 Fading FreshsalesCRM−10.1−14.8▼ −4.7🫥 Fading MidjourneyAI+4.40.0▼ −4.4— Archetype Shifts: Twelve Changes in One Month The full dataset records 12 archetype changes this month. Five brands moved into a new named classification; seven lost a classification and reverted to unclassified. Both types are real shifts — the distinction matters for how to read them. Reclassified — gained or changed named archetype Brand April Archetype May Archetype Driver Ahrefs 👑 Dominant Brand 🧠 AI Memory Brand Perplexity score fell from 75.0 to 60.87; delta widened to −39.13 Google Search Console ⭐ GEO Outlier 🧠 AI Memory Brand Perplexity score halved from 45.8 to 17.39; delta swung to −21.74 Gemini — Unclassified 🔍 Live Search Brand Perplexity score rose to 17.39 and Gemini itself scores 32.14; live web presence solidifying SugarCRM — Unclassified 🫥 Fading Brand Perplexity dropped to 0.0 for second consecutive run; consistent zero-citation pattern Copy.ai 🫥 Fading Brand — Unclassified Perplexity recovered from 0.0 to 17.39; no longer meets Fading threshold Dropped to unclassified — lost named archetype Brand April Archetype May Archetype Driver Pipedrive 🔍 Live Search Brand — Unclassified Delta collapsed from +48.15 to +10.65; April reading now looks like a spike, not a trend SE Ranking 🔍 Live Search Brand — Unclassified Delta dropped from +20.6 to +8.7; fell below Live Search threshold Notion AI 🔍 Live Search Brand — Unclassified Delta dropped from +17.4 to +4.4; Perplexity advantage no longer consistent Copilot 🔍 Live Search Brand — Unclassified Delta dropped from +17.4 to +8.7; fell below Live Search threshold Cursor 🔍 Live Search Brand — Unclassified Delta dropped from +17.4 to +13.0; narrowly below threshold Jasper ⭐ GEO Outlier — Unclassified Delta widened from −8.7 to −13.0; crossed GEO Outlier boundary Yoast SEO 🫥 Fading Brand — Unclassified Delta improved from −17.4 to −13.0; no longer meets Fading threshold The Ahrefs reversal deserves a closer reading. In March, Ahrefs had a −48.1 delta (AI Memory). In April it recovered to −25.0 and graduated to Dominant Brand. In May it’s back at −39.1. This is not a trend — it’s oscillation. The brand is sitting on a structural boundary where a single good month of Perplexity coverage can temporarily push it into Dominant territory, but it cannot sustain that position. Until Ahrefs builds durable live web presence that Perplexity retrieves consistently, the ‘Dominant’ classification will remain unstable. Google Search Console’s shift tells a different story. It moved from AI Memory to GEO Outlier in April (+6.7 delta, positive for the first time), then reversed hard to −21.74 in May. The April reading may have reflected Perplexity surfacing content around the new Search Console features and API changes announced that month. By May, that retrieval signal had faded back to baseline. The SEO Vertical Has Three AI Memory Brands This is a first across three months of tracking: Ahrefs, Moz, and Google Search Console are simultaneously classified as AI Memory Brands. All three show the same structural pattern — high ChatGPT scores (39–100%) reflecting historical training data, and Perplexity scores that fall well below (13–61%). Ahrefs 🧠 AI Memory Brand ChatGPT 100.0 Perplexity 60.9 Gemini 75.0 Delta (P−GPT) −39.1 vs −25.0 April Moz 🧠 AI Memory Brand ChatGPT 47.8 Perplexity 13.0 Gemini 37.5 Delta (P−GPT) −34.8 vs −43.7 April Google Search Console 🧠 AI Memory Brand ChatGPT 39.1 Perplexity 17.4 Gemini 45.8 Delta (P−GPT) −21.7 vs +6.7 April The only brand in the SEO vertical holding Dominant Brand status is Semrush (delta: +4.35, up marginally from +4.3 in April). Surfer SEO maintains Live Search Brand at +39.1. The rest of the vertical is trending toward AI Memory or holding at unclassified-but-negative deltas. For practitioners advising SEO software brands: three concurrent AI Memory classifications in one vertical is a structural signal, not a coincidence. It suggests these brands built their market position during the period when current AI training data was gathered — predominantly 2021–2023 — and have not generated enough live web discussion since to match that historical footprint in Perplexity’s retrieval. The corrective action is not a single piece of content but a sustained programme: thought leadership, third-party coverage, structured data, and regular product updates that give Perplexity something current to retrieve. GEO Stack framework covers the full set of levers available to a brand in this position. Claude: The Highest Delta in Three Runs of the Index Claude (Anthropic) 🔍 Live Search Brand ChatGPT 13.0 Perplexity 73.9 Gemini 35.7 Delta (P−GPT) +60.9 vs +43.5 April Claude’s trajectory across three runs: +50.1 (March), +43.5 (April), +60.87 (May). The delta is not just large — it is increasing. Perplexity’s real-time retrieval is consistently surfacing Claude-related content at rates well above what OpenAI’s model cites. The mechanism is structural. Perplexity retrieves from the live web, where Anthropic has generated substantial recent coverage: Claude 3.7, Claude Code announcements, model capability comparisons, and a growing practitioner community publishing results. ChatGPT’s model memory was trained primarily on data from before Claude reached its current market position, so the citation gap reflects a temporal mismatch as much as a competitive one. The practical implication: if your target buyer uses ChatGPT for tool discovery, Anthropic has a problem. If they use Perplexity, Anthropic dominates. For brands in adjacent categories, this split is a preview of what happens when your category has both early-training-data incumbents and fast-moving challengers generating live content simultaneously. Understanding your brand’s retrieval probability across platforms is the first diagnostic step. Three-Month View: What the Trend Lines Show With three runs complete, some patterns are now stable enough to treat as structural rather than sampling noise. The March 2026 run established the initial baselines; the picture has sharpened considerably since. Consistently stable Dominant Brands: ChatGPT and Semrush have held the top two positions by overall score across all three runs, with minimal delta variance. Both have what the index would call dual-track authority — deep in training data and active on the live web. The CRM reversal: Salesforce moved from a flat delta (+0.0) in April to −20.83 in May. Its ChatGPT score held at 100%, but Perplexity dropped from 100% to 79.17%. This is the first negative signal for Salesforce in three runs and warrants watching in June. Pipedrive’s correction: April’s +48.15 delta was the largest single positive reading in two runs. May’s +10.65 is a significant correction. The Live Search Brand classification is lost. Whether April was a genuine step-change or an anomaly will be clearer when June data arrives. The Perplexity-only pattern is hardening: Surfer SEO (+39.1), Claude (+60.9), and Gemini (+17.4) now form a distinct cluster — brands with very low ChatGPT scores but meaningful Perplexity scores. All three are products where recent news, model updates, and practitioner reviews are generating the kind of fresh, crawlable content that Perplexity surfaces. All three are also products that compete with, or are adjacent to, OpenAI’s own offerings, which may introduce a citation suppression effect in ChatGPT responses. Frequently Asked Questions Why did Ahrefs lose its Dominant Brand status after one month? Archetype classification is based on each run’s data independently. In April, Ahrefs’ Perplexity score crossed the Dominant threshold. In May, it fell back below it. The index does not smooth or lag classifications — each month reflects current citation behaviour. Ahrefs’ pattern (strong ChatGPT, variable Perplexity) suggests its Dominant reading in April may have been a transient spike rather than a durable shift. Full classification methodology here. Why does ChatGPT cite Claude so rarely if Claude is a major AI model? Two factors. First, ChatGPT’s training data has a knowledge cutoff, and much of Claude’s market presence has grown after that cutoff. Second, OpenAI’s model has structural reasons to under-cite direct competitors — when asked about AI tools, ChatGPT is likely to mention alternatives that are complementary (Grammarly, Notion AI) rather than substitutes (Claude, Gemini). This is consistent with what we see in the data: ChatGPT scores for Claude at 13%, while Perplexity — which retrieves from the live web without the same competitive dynamic — scores Claude at 74%. What does a negative delta mean for a Dominant Brand like Salesforce? A brand can hold Dominant Brand classification while carrying a negative delta if its absolute scores remain high across all platforms. Salesforce’s May scores are 100% on ChatGPT and Gemini, 79.17% on Perplexity — the negative delta simply means Perplexity is slightly below ChatGPT. The classification threshold uses absolute score levels. The delta is a leading indicator worth watching: if Salesforce’s Perplexity score continues to slide while ChatGPT holds, it will eventually cross into AI Memory territory. Key Takeaway Three months of data now show two citation mechanisms diverging: model memory (ChatGPT) and live retrieval (Perplexity). Brands optimising for one without measuring the other are making a bet, not a strategy. Dataset Full interactive dataset: GEO Brand Citation Index Zenodo DOI (v4, May 2026): 10.5281/zenodo.20076201 Concept DOI (all versions): 10.5281/zenodo.19218295 Previous runs: March 2026 · April 2026 Methodology Run date: 7 May 2026 (pipeline run 29d7642b) 35 brands tracked across 3 verticals: AI/LLM Tools, CRM/Sales, SEO/Marketing 54 standardised category queries per run across ChatGPT, Perplexity, and Gemini Delta = Perplexity citation rate minus ChatGPT citation rate Full methodology: thegeolab.net/geo-brand-citation-index/methodology/ Artur Ferreira is a GEO strategist and the creator of the GEO Stack framework. He has worked in SEO and has been measuring AI citation behaviour since 2024, publishing monthly data at thegeolab.net. ORCID: 0009-0004-4072-9741.
---
## Content Extractability: How AI Search Decides What to Lift From Your Page
URL: https://thegeolab.net/extractability/
GEO Stack LayersOverview · Retrieval Probability · Extractability · Entity Reinforcement · Structural Authority · System Memory By Artur Ferreira · The GEO Lab · Last updated: 12 March 2026 Content Extractability: How AI Search Decides What to Lift From Your Page What extractability is in Generative Engine Optimisation (GEO), why it determines citation rate in Perplexity and ChatGPT, and how to improve it. GEO Stack › L1 Retrieval › L2 Extractability › L3 Entity › L4 Authority › L5 Memory Extractability is the property of a content section that determines whether an AI system can isolate, parse, and reuse it in a generated answer without losing its meaning. A page can be retrieved — present in the search results Perplexity or ChatGPT consult — and still not contribute to the answer, because the specific passage needed could not be cleanly extracted. Extractability is what bridges retrieval and citation. The two failure modes are structural: content that requires surrounding context to make sense, and content whose key claim is buried inside a longer argument rather than stated at the head of a section. TL;DR Extractability in Generative Engine Optimisation (GEO) measures how cleanly AI systems can parse, isolate, and reuse a content section without losing meaning. It is Layer 2 of the GEO Stack — the layer that determines whether retrieved content survives compression into an AI-generated answer. High extractability requires answer-first structure, section independence, explicit entity anchoring, and compression resistance. Content that ranks well but lacks extractability will be retrieved yet never cited. Content Extractability is Layer 2 of the GEO Stack, a measurement defined at The GEO Lab. It scores how cleanly one section of a page can be lifted into an AI answer without losing its meaning, and the GEO Lab Console is what measures it. The phrase gets read as document extraction, the software job of pulling fields out of a PDF or an invoice. That is a different field and not what it means here. On this page, Extractability is a property of how a section is written and structured. Content extractability framework showing how AI systems parse document structure into retrievable sections through heading hierarchy, topic sentences, and semantic boundaries I discovered the extractability problem when pages that ranked well were consistently ignored by AI systems. I built diagnostic tools to measure section-level extraction rates and found that structural clarity was the primary differentiator. What Is Content Extractability? Extractability in Generative Engine Optimisation (GEO) is the measurable property of a content section that determines whether an AI system can isolate it, parse it, and reproduce it accurately in a generated answer. It is distinct from crawlability — a page can be fully crawlable and still score zero on extractability if its key claims are buried inside dependent prose rather than stated independently at the head of a section. An extractability score reflects how well a section satisfies four conditions: answer-first structure (key claim in sentence one), section independence (no required context from surrounding sections), compression resistance (meaning survives reduction to one sentence), and explicit entity anchoring (subject identified by name, not pronoun). These are the conditions that determine whether a passage becomes a quote-ready block an AI system will actually cite. The GEO Lab measures extractability at the section level using controlled citation experiments. A section that scores high on all four conditions cites at roughly 2.5× the rate of a section that fails two or more. That relationship is the empirical basis of Layer 2 in the GEO Stack. Why Does Extractability Matter for GEO and AI Search? An AI system rarely uses a whole page. It lifts one section into its answer, and Extractability, Layer 2 of the GEO Stack, measures whether that section keeps its meaning once it is pulled out on its own. Live Data: Section-Level Extractability Scores A page about extractability should be willing to show its own scores. The GEO Lab Console measured this page on 30 May 2026 (audit c3b92de4-dfd2-43ac-80ae-b6f6baf7ece4) and returned a section-level average of 52.97 across 35 sections. Section Score / 100 Note 4 highest-scoring sections Version History 86 High compression retention (100), entity explicitness (100) How Do You Measure Extractability? 83 Entity explicitness (90), compression retention (78) Case Study: Extractability Rewrite Produces 23.3-Percentage-Point Citation Increase 80 Entity explicitness (100), compression retention (65) Results 80 Entity explicitness (100), compression retention (66) 4 lowest-scoring sections Why can high-ranking content still fail in AI search? 37 Compression retention: 0 How do lists and tables improve extractability? 37 Compression retention: 0 What is compression resistance? 37 Compression retention: 0 What is the most common extractability mistake? 37 Compression retention: 0 GEO Lab Console measurement — 30 May 2026 — 35 sections analyzed A section can rank first and never appear in a generated answer if its internal structure prevents clean extraction. Data: According to Search Engine Land's 2025 research, opening paragraphs that answer the query upfront get cited 67% more often by AI systems. This "answer-first" pattern aligns with how LLMs exhibit a "U-shaped attention bias" — weighing tokens at the beginning and end of sections most heavily. How Does Extractability Affect Citation Rate in AI Search? Extractability directly determines citation rate in Perplexity, ChatGPT, and other generative AI search systems. A page with high retrieval probability — present in Perplexity’s search results — can still produce zero citations if its sections fail extraction. The GEO Lab’s E001 experiment confirmed this: declarative structure was cited in 18 of 30 queries (60.0%) versus 11 of 30 (36.7%) for narrative on identical content, a 23.3-percentage-point gap (z = 1.81, p = 0.07) driven entirely by extractability differences, not domain authority or keyword density. The mechanism is direct. Perplexity retrieves candidate sections and passes them through a compression stage before synthesis. Sections that require surrounding context to make sense produce weak or incoherent embeddings. Weak embeddings lose the similarity competition against cleaner chunks from competing pages. The result is a retrieved page that contributes nothing to the answer — and earns zero citations despite being in Perplexity’s retrieval set. Citation rate in AI search is therefore not a function of retrieval alone. It is a function of retrieval × extractability. A page at rank 1 in Perplexity’s search results with low extractability will be outperformed on citations by a page at rank 5 with high extractability. This is the core insight of GEO Stack Layer 2: fixing extractability on pages that are already retrieved is the highest-leverage citation rate intervention available. :root * body .wrap /* Header */ .hd .hd .eyebrow .hd h1 .hd p /* Input */ .input-label #wc textarea textarea:focus textarea::placeholder .actions .btn-go .btn-go:hover .btn-go:active .btn-go:disabled .btn-cl .btn-cl:hover .status-msg /* Empty hint */ .empty .empty .ico /* Results */ #results #results.vis @keyframes fadeUp to } /* Score hero */ .hero .ring-wrap .ring-wrap svg .ring-track .ring-fill .ring-num .ring-num small .hero-text h2 .hero-text .verdict .band .band-critical .band-needs_work .band-good .band-excellent /* Two-col grid */ .grid2 @media (max-width: 640px) .hero .ring-wrap } /* Panels */ .panel .panel-title /* Dimension rows */ .dim .dim:last-child .dim-hd .dim-name .dim-wt .dim-meta .dim-lbl .dim-val .track .fill .dim-detail .score-critical .score-needs_work .score-good .score-excellent .fill-critical .fill-needs_work .fill-good .fill-excellent /* Compressed preview */ .compressed .compressed::before .stats .stat .stat-val .stat-lbl /* Annotated */ .annotation-panel .ann-text .ann-weak .ann-pronoun .ann-entity .ann-reference .legend .leg .swatch /* Suggestions */ .sug-panel .sug-panel .panel-title .sug-list .sug-list li .sug-list li:last-child .sug-list li:first-child .sug-ico /* Error */ .error-box /* Footer note */ .foot .foot a .foot a:hover Try It YourselfThe GEO Lab — Interactive Tool Extractability Checker The Extractability Checker shows exactly what an AI system would extract from any content section — and what it would discard. Your content section 0 words Analyse Clear Scoring… ◎ Paste a paragraph above and click Analyse. You'll see a compression preview, four dimension scores, and highlighted problem areas. 0 / 100 Extractability Score — — Dimension Scores Compression Simulation — —%Entity survival —%Keyword overlap This is the first sentence(s) AI retrieves — everything else is discarded. Annotated View Throat-clearing / weak opener Pronoun (ambiguous reference) Named entity (explicit) Context-dependency phrase Improvement Opportunities Scoring follows the GEO Stack Extractability methodology: compression retention (40%), declarative opening (25%), entity explicitness (20%), standalone coherence (15%). AI Extractability: Why a Page Can Rank First and Still Be Skipped The Extractability problem in AI search stems from content written for narrative flow rather than section-level machine retrieval. In my experience auditing hundreds of pages, I consistently find these low-extractability patterns: Contextual build-ups Long introductions before delivering the answer Pronoun-heavy references Overuse of "this", "it", and "they" Ambiguous entity naming Inconsistent terminology across sections Buried answers Key information embedded mid-paragraph Context-dependent explanations Assuming prior knowledge from surrounding content These patterns are comfortable for humans reading linearly. They are inefficient for systems that isolate content blocks non-linearly. What Are the Five Principles of High Extractability? High extractability in the GEO Stack rests on five named principles: answer-first structure, section independence, compression resistance, entity explicitness, and statistical currency. Each is a property you can check on one section before it goes live. Principle 1 Answer-First Structure Every section opens with its core claim stated declaratively in the first sentence. Supporting evidence, context, and qualification follow. This is the single most impactful structural change practitioners can make to existing content. Principle 2 Section Independence Each content block must answer its question without requiring context from surrounding paragraphs. Every section must be coherent when read in isolation: No opening references to previously discussed material No pronoun anchors that require prior context No implicit assumptions about what the reader already knows The section independence test is simple: copy a section into a blank document and read it cold. If it makes sense without context, it passes. Principle 3 Compression Resistance The core meaning of a section survives when a generative system compresses it into a two-sentence synthesis. High compression resistance requires: Leading strongly with the core claim Keeping that claim unambiguous and concrete Separating the core claim from supporting inference (which is more likely to be compressed away) Principle 4 Explicit Entity Anchoring Every extracted chunk must introduce its key entities by name without relying on context from surrounding sections. Not extractable: "It improves performance" Extractable: "The GEO Stack Entity Reinforcement layer improves retrieval performance by strengthening semantic associations" Principle 5 Format as Signal Extractability format signals include bullet lists, numbered steps, comparison tables, and FAQ question-answer pairs that match retrieval chunk boundaries. These structured formats are preferentially extracted because they provide syntactic boundaries that help systems identify discrete, usable units. Data: Operyn AI's analysis of 680 million citations reveals that LLMs are 28–40% more likely to cite content with clear formatting. Listicles account for 50% of top AI citations, while content with tables gets cited 2.5x more often than equivalent prose. High vs Low Extractability: A Comparison Extractability differences are measurable across five key characteristics that determine whether AI systems can cleanly parse and reuse content. Characteristic High Extractability Low Extractability Opening pattern Answer-first declarative statement Contextual build-up to answer Entity references Explicit names repeated throughout Pronouns ("it", "this", "they") Section independence Coherent in isolation Requires prior context Compression survival Core meaning preserved in 2 sentences Meaning lost when compressed Format Lists, tables, definition blocks Dense narrative prose How Does an Extractability Rewrite Transform Content? An extractability rewrite, in the GEO Lab method, changes how a section opens and how it stands alone while leaving its meaning untouched. The claim moves to the front, and the subject gets named where a pronoun used to sit, so the section stops depending on the paragraphs above it. Low extractability example: "In today's evolving landscape, it is becoming clear that optimisation is changing in interesting ways. When we look at what this means for content strategy, the implications become clear — structure matters more than it ever has." High extractability example: "Content structure matters more in generative search than in traditional SEO. Generative systems retrieve individual sections rather than whole pages, making section-level clarity the primary determinant of whether content is extracted and cited. Narrative style that builds to a conclusion is typically anti-extractable — the answer arrives too late for effective chunk retrieval." The optimal structure is measurable. Research indicates the ideal answer length for paragraph snippets is 40–60 words. Pages with paragraph-length summaries at the top have 35% higher inclusion in AI-generated responses. How to Make Content Extractable Low Extractability diagnosis identifies sections where ambiguous pronouns, multi-clause sentences, or missing topic sentences prevent clean retrieval. Evaluate seven structural signals before publishing any section: Direct answer checkDoes the section open with a direct answer or definition? Entity explicitnessAre all entities named explicitly with no dangling pronouns? Isolation testDoes the section make sense when read in isolation? Compression survivalDoes the core meaning survive a one-sentence summary? Paragraph scopeAre paragraphs under 120 words with one main idea each? Format structureAre discrete concepts presented as lists or tables rather than narrative? Answer placementIs the answer in the first two sentences rather than buried mid-section? If a section fails any of these checks, rewrite before publishing. Context Management Failure: The Most Common Extractability Problem Context management failure is the extractability fault The GEO Lab sees most often. A section reads well in place, then falls apart when an AI lifts it alone, because it borrowed its meaning from the paragraphs above. An LLM processing a chunk in isolation cannot resolve "it", "this", "the system", or "as mentioned above". The chunk produces a weak or incoherent embedding that misrepresents the section's actual topic. I found this to be the single most common passage-level failure mode in the pages I audited through the GEO Lab Console. It is also the hardest to notice because the writing makes perfect sense to the author who wrote the full post in sequence. The context is clear to a human reading top-to-bottom. It is invisible to a retrieval system processing one chunk at a time. The test: read your H2 section aloud to someone who has not read the rest of the post. If they ask "what does that refer to?" — the section has a context management failure. Practical fix: Replace every pronoun with the specific entity it refers to. Replace "as mentioned above" with a restated fact. Each section must be self-contained — readable and meaningful without any surrounding context. Citation-Ready Sentences A citation-ready sentence, as the GEO Stack defines it, is one an AI can quote with nothing around it. It names its own subject and makes a single claim, so a system lifting it in isolation already has everything it needs. The test: "Can this sentence appear in a Perplexity answer as a direct quote with 'Artur Ferreira, The GEO Lab' below it and make complete sense to a reader who has never seen the page?" If yes — citation-ready. If it needs context to make sense — not citation-ready. The opening sentence of every H2 section should be citation-ready. This is the strictest version of the declarative structure requirement from Experiment 001. Before: "This is where things get interesting for practitioners working in the AI search space." After: "Extractability measures how cleanly a content section can be parsed and reused by AI systems without losing meaning." The first sentence is meaningless in isolation. The second sentence is a complete, citable claim. Every H2 opening should pass this test. Statistical Currency as an Extractability Signal Statistical currency is an extractability signal The GEO Lab tracks: how recent and how well-sourced the numbers in a section are. A stale or unsourced figure makes an AI less willing to lift the passage, even when the prose is clean. For GEO, this matters beyond credibility: AI systems cross-reference claims against other trusted sources as part of the factual verifiability signal. An outdated statistic that contradicts more recent sources does not just undermine trust — it creates a consistency conflict that actively suppresses citation rate. The retrieval system cannot cite a source that contradicts the consensus it is drawing from. A statistic from 2021 cited alongside 2025 research from the same domain is a retrieval risk, not just a credibility risk. The Princeton 2024 GEO study found that citing sources and including statistics improved citation rates by 15–30%. In Experiment 001, I measured a 23.3-percentage-point gap (18/30 vs 11/30, p = 0.07) from structure alone — the data point is the citation signal, not just the structure. Practical rule: Any section containing time-sensitive statistics should be reviewed every 6–12 months. Run a targeted re-test of the 30-check protocol after any statistics update to confirm citation rate has not decayed. How Does Extractability Connect to Retrieval Probability? Extractability increases inclusion likelihood after retrieval but cannot compensate for low Retrieval Probability. The relationship is sequential: Layer 1 (Retrieval) — determines whether content enters the candidate pool Layer 2 (Extractability) — determines whether it can be used once retrieved Strong Extractability on content that is never retrieved produces no improvement in generative visibility. Optimisation must address both layers. Cross-reference: For the full Layer 1 framework, see Retrieval Probability (Layer 1). For the complete five-layer model, see the GEO Stack. How Do You Measure Extractability? The GEO Lab Console measures Extractability at the section level by scoring: Declarative clarity Entity explicitness Standalone completeness Structural formatting Compression stability The Console simulates the compression step by generating a two-sentence synthesis of each section and comparing semantic similarity to the original — showing practitioners exactly what survives and what is lost. Data: AI retrieval systems show recency bias: recently updated pages are cited more consistently than stale pages with identical structure. This means extractability must be maintained through regular content updates. What Are the Key Takeaways on Extractability? Extractability is the structural clarity that allows content to be parsed cleanly, reused accurately, survive compression, and retain meaning when isolated from context. Extractability is Layer 2 of the GEO Stack — it determines whether retrieved content can actually be used in AI-generated answers. Answer-first structure is the single most impactful change: lead every section with a declarative core claim. Section independence ensures each content block is coherent when extracted without surrounding context. Compression resistance means core meaning survives when AI condenses your content to one or two sentences. Structured formats (lists, tables, FAQ pairs) are 28–40% more likely to be cited than equivalent prose. High extractability transforms content from narrative pages into modular knowledge blocks that generative systems can retrieve and cite consistently. For WordPress-specific implementation, see GEO for WordPress. Extractability strategies are covered in depth in The GEO Field Manual. For downloadable guides, visit the ebook library. This Page in Practice: The Zero-Click Paradox This page’s extractability is high enough that AI systems extract it cleanly. The result? 76 Google impressions, 0 clicks in 28 days. AI is summarising this content so well that nobody needs to visit. Perplexity has cited this page 3 times across our 330-query test — proving the content is being retrieved. But the high extractability that earns citations also enables zero-click consumption. This is the core tension GEO practitioners must navigate. Real GSC data from thegeolab.net — March 2026 | Measured via GEO Lab Console + Google Search Console API Frequently Asked Questions What is extractability in GEO? Extractability measures how cleanly a content section can be retrieved, parsed, and reused by AI systems without losing meaning. It operates as Layer 2 of the GEO Stack, sitting between Retrieval Probability and Entity Reinforcement. High extractability means AI can lift your content and use it directly in generated answers while preserving its core meaning. How does extractability affect citation rate in AI search? Extractability is the primary determinant of citation rate for pages that have already cleared the retrieval gate. A page present in Perplexity’s retrieval set with low extractability will produce zero citations because its sections fail the compression stage before synthesis runs. The GEO Lab’s E001 experiment measured a 23.3-percentage-point citation rate difference (18/30 vs 11/30, p = 0.07) between high and low extractability versions of identical content. Citation rate in AI search = retrieval rate × extractability. Improving extractability on already-retrieved pages is the highest-leverage GEO intervention available. Why can high-ranking content still fail in AI search? Content can rank #1 in traditional search yet never appear in AI-generated answers if its structure prevents clean extraction. AI systems do not just evaluate pages — they isolate sections, parse them into structured data, compress them, and synthesise responses. If a section resists parsing due to dense prose, pronoun-heavy writing, or buried answers, it gets skipped regardless of ranking. What is answer-first structure? Answer-first structure means leading each section with a declarative core claim in the opening sentence, then adding supporting details afterward. Instead of building up to a conclusion, you state the answer immediately. For example, "Extractability measures how cleanly content can be parsed by AI" is answer-first, while "In today's evolving landscape, we are seeing changes..." buries the answer. What makes content low extractability? Low extractability results from four common patterns: long contextual setups before delivering answers, heavy pronoun usage (this, it, they) requiring surrounding context, answers buried mid-paragraph rather than upfront, and context-dependent explanations that assume prior knowledge. Each pattern forces AI systems to do more work to extract meaning, making them more likely to skip your content. What is section independence and why does it matter? Section independence means every content section makes sense in isolation, without references to prior material. The test: paste a section into a blank document and check if it is still coherent. AI systems often extract individual sections without surrounding context, so dependent sections that use phrases like "as mentioned above" become meaningless when extracted alone. How do lists and tables improve extractability? Structured formats like numbered lists, bullet points, and tables are preferentially extracted by AI systems because they provide clear syntactic boundaries. AI can identify where one item ends and another begins, making extraction reliable. Dense narrative prose, by contrast, forces AI to guess where meaningful boundaries lie, increasing extraction errors and reducing citation likelihood. What is compression resistance? Compression resistance means your content's core meaning survives when condensed to one or two sentences. AI systems compress content during synthesis, and content with weak compression resistance loses critical meaning in the process. Achieve this by leading with unambiguous claims and separating core content from secondary inferences that can be dropped without losing the main point. What is the most common extractability mistake? The most common extractability mistake is burying the answer mid-paragraph behind contextual framing. Narrative prose that builds to a conclusion is anti-extractable because generative systems extract the first 1–2 sentences of a chunk. If the answer appears in sentence four, the system retrieves the context instead of the claim. Experiment 001 measured a 23.3-percentage-point citation gap (18/30 vs 11/30, p = 0.07) from this single structural variable. Does extractability apply to all content types? Extractability applies to every content format that may be retrieved by generative search systems, including editorial articles, FAQ pages, how-to guides, comparison content, and product descriptions. The structural principles — answer-first opening, entity explicitness, standalone coherence — are format-independent. A FAQ answer benefits from the same extractability principles as a research section in a long-form article. Can high extractability compensate for low authority? High extractability cannot fully compensate for low structural authority because the GEO Stack layers are interdependent. Authority signals — author expertise, external citations, trust markers — influence whether generative systems weight a source as credible during synthesis. A perfectly extractable section from a low-authority source may be retrieved but deprioritised during citation selection. Case Study: Extractability Rewrite Produces 23.3-Percentage-Point Citation Increase In GEO Experiment 001, The GEO Lab tested whether extractability-optimised structure alone -- with no changes to content, domain authority, or links -- could increase AI citation rates. Two 400-word versions of the same content were published on the same domain. Version A used narrative structure: context-first, pronoun-dependent, flowing prose. Version B used declarative structure: answer-first opening sentences, explicit entity naming, and standalone-complete paragraphs -- the five extractability principles described above. Results VersionStructureQuery RunsCitation Rate ANarrative3036.7% BDeclarative3060.0% The declarative version was cited in 18 of 30 queries (60.0%) versus 11 of 30 (36.7%) for narrative, a 23.3-percentage-point gap from structure alone (z = 1.81, two-tailed p = 0.07). The gap was directionally consistent across testing sessions on Perplexity. What Drove the Improvement Three measurable patterns separated the high-extractability version from the low-extractability version: Retrieval anchoring: The declarative version's opening sentences were reproduced near-verbatim in AI outputs. Answer-first structure created stronger alignment between query embeddings and content chunk embeddings. Representation fidelity: When the narrative version was cited, AI systems sometimes extracted peripheral claims instead of the central one. The declarative version eliminated this drift -- the most extractable sentence was the most important sentence by design. Clean retrieval boundaries: The narrative version produced partial traces in AI outputs -- fragments retrieved without attribution that contributed to other sources' answers. The declarative version either was cited fully or not at all. This experiment provides the first quantified evidence that extractability operates as a genuine retrieval signal -- not a marginal optimisation. For a page receiving 1,000 AI-driven impressions monthly, the difference between 36.7% and 60.0% citation consistency equals approximately 233 additional citation events per month from a single structural rewrite. Related Reading Foundation What Is Generative Engine Optimisation? The complete introduction to GEO and why it matters for content visibility in AI search. Framework The GEO Stack: Five-Layer Framework The full five-layer model that positions Extractability as Layer 2 in the optimisation hierarchy. Experiment Experiment 001: Declarative vs Narrative Structure Measured a 23.3pp citation gap (18/30 vs 11/30, Perplexity, p = 0.07) between answer-first and narrative-first content structures. Layer 1 Retrieval Probability The prerequisite layer — content must be retrieved before extractability can influence citation. Version History Version 3.0 — 12 March 2026 Changed: Migrated to v3 design system with shared CSS classes and structured layout components Added: Layer navigation breadcrumb, FAQPage JSON-LD schema, related reading cards Added: Structured principle blocks, diagnostic protocol, takeaway list Removed: Self-review testimonials, author bio block (handled by mu-plugin), inline styles Version 2.1 — 11 March 2026 Added: TL;DR summary block for AI extractability Fixed: H1/meta line ordering for GEO compliance Fixed: Revision history link now points to version history section Version 2.0 — 3 March 2026 Changed: Updated with expanded sub-sections, FAQ, cross-references, and section-level structure improvements Version 1.0 — 28 February 2026 Initial release: Extractability framework and diagnostic checklist Sources Search Engine Land. (2025). How to Create Answer-First Content That AI Models Actually Cite. Operyn AI. (2025). AI Citations: Content Formats That LLMs Prefer. Princeton University. (2024). GEO Research: Statistics and Source Citations Study. Lewis, P., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401. About the Author Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Contact The GEO Lab · Connect on X/Twitter or LinkedIn. Continue ReadingPrevious Layer: Retrieval ProbabilityNext Layer: Entity ReinforcementGEO Stack: The Complete Five-Layer Framework
---
## Content Freshness as a GEO Signal — The GEO Lab
URL: https://thegeolab.net/content-freshness-geo/
Content Freshness as a GEO Signal By Artur Ferreira · The GEO Lab · The GEO Log · 25 March 2026 Why a mediocre article from last month beats a well-structured one from 2021 in AI search — and what to do about it. TL;DR Content freshness affects retrieval probability in AI search because retrieval systems cross-reference claims against other sources. Outdated statistics create consistency conflicts that suppress citation rate — the system cannot cite a source that contradicts the consensus. Updating for GEO is more precise than updating for Google: identify superseded claims, replace with current data, confirm structure, re-test. A page updated for Google rankings may still have a decaying citation rate if the specific statistics AI systems were cross-referencing have been superseded. Time since publication Citation rate High citation rate Decay Stats updated Rate recovers 12 months Citation rate decays as statistics age. Updating superseded claims (green) recovers the rate. The 12-month mark is the critical threshold. The Counterintuitive Finding I spent three weeks restructuring a page for perfect extractability. Every H2 opened with a declarative answer. Every entity was named explicitly. The 30-check protocol scored it at 60.0% citation rate. Six months later I re-ran the same protocol. The rate had dropped to 38%. The structure had not changed. The statistics had.Content freshness is a Layer 2 signal in the GEO Stack diagnostic model — it affects extractability and retrieval probability, not just crawl frequency, which is why a perfect schema score does not protect a stale page from losing citations to a fresher one. For time-sensitive queries, a mediocre article from last month beats a well-structured one from 2021. Not because the 2021 article is wrong. Because the retrieval system cannot tell it is not wrong. I found this while tracking citation rates across the GEO Brand Citation Index dataset. Pages with strong Extractability scores and high retrieval probability showed citation rate decay over 6-month periods — even when the content structure had not changed. The decay correlated with statistical age: sections containing statistics dated more than 12 months prior to the test date consistently underperformed equivalent sections with current data. The mechanism is not mysterious. AI systems synthesise answers from multiple sources. When your 2021 statistic says "AI search captures 5% of queries" and three 2025 sources say "AI search captures 30% of queries", the retrieval system faces a consistency conflict. It resolves the conflict by deprioritising the outlier. Your page is the outlier. Why Freshness Affects Retrieval Probability Specifically Content freshness is not just a ranking signal — it is a retrieval signal. The retrieval corpus is constantly expanding with newer content as AI search usage grows. Older pages face increasing competition not from better content, but from more recent content making the same claims with updated evidence.The relationship between freshness and citation outcomes is explained in the retrieval probability guide — which maps the specific conditions under which a crawled page gets included in an AI response versus passed over in favour of a more recently indexed source. The retrieval system does not have a "freshness filter" in the traditional SEO sense. What it has is a consensus mechanism: when multiple retrieved chunks make conflicting claims, the system weights the majority position. If your page is the only source citing a 2021 figure while five other sources cite a 2025 figure, the consensus excludes you regardless of your structural quality. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. Updating for Google vs Updating for GEO ActionGoogle UpdateGEO Update Add new sectionsYes — signals fresh contentOnly if they address an unserved fan-out query Refresh internal linksYes — improves crawl signalsOnly if new link targets exist Update published dateYes — recency signalIrrelevant — AI evaluates claims, not dates Replace outdated statisticsNice to haveCritical — removes consistency conflicts Confirm declarative structureNot requiredRequired — edits may break opening sentences Re-run citation testNot applicableMandatory — confirm change produced expected lift The GEO update is more precise and more consequential. A page updated for Google rankings may still have a decaying citation rate if the specific statistics AI systems were cross-referencing have been superseded.The structural differences between a Google-optimised update and a GEO update are grounded in what GEO actually targets — Extractability and entity recency, not keyword placement or anchor text. Content Freshness Priority Framework I developed this prioritisation after running freshness audits across the GEO Lab's core pages. Not all pages need freshness updates at the same urgency: Priority 1: High citation rate + statistics older than 12 months. These pages are performing well but their citation rate is about to decay. The outdated statistics are a ticking clock. Update now before the decay starts. Priority 2: Declining citation rate + time-sensitive claims. Decay has already started. Cross-reference your statistics against the current consensus in the retrieval corpus. Replace superseded claims immediately. Priority 3: Time-sensitive queries with no statistics. These pages target queries where data matters but contain no verifiable current data. Adding specific, dated statistics from named sources raises retrieval probability by creating verifiable claims the system can cross-reference positively. Priority 4: Ranked pages that have never been cited. Run a prerequisite check: are the statistics current? If yes, the problem is structure, not freshness — apply the LLM readability self-test instead. The Update Protocol This is the step-by-step protocol I use for every freshness update on GEO Lab content: Identify every statistic in the page and its source date Flag any statistic older than 12 months for replacement Find current equivalent from a named, citable source Replace statistic and update source attribution Confirm opening sentences of affected sections are still declarative after the edit Wait for re-indexing (7–14 days for most AI platforms) Re-run the 30-check protocol and compare to baseline What NOT to do: Bulk-refresh published dates without updating content. AI systems evaluate the claims, not the date metadata. A page with a 2026 published date but 2023 statistics will still fail the consistency check against more recent sources. Frequently Asked Questions Does content freshness affect AI citation rate? Yes. AI retrieval systems cross-reference claims against other sources in the retrieval corpus. An outdated statistic that contradicts more recent sources creates a consistency conflict that suppresses citation rate. The system deprioritises sources that conflict with the consensus it is synthesising. How is updating for GEO different from updating for Google? Updating for Google focuses on adding new sections, refreshing internal links, and updating the published date. Updating for GEO requires identifying sections where statistical claims have been superseded, replacing them with current data from named sources, confirming opening sentences remain declarative, and re-running the 30-check protocol after indexing. How often should I review content for freshness? Any page containing time-sensitive statistics should be reviewed every 6–12 months. Pages with high citation rates and statistics older than 12 months are highest priority — their citation rate is about to decay. The 30-check protocol re-test cadence provides specific triggers. Can changing the published date improve citation rate? No. Bulk-refreshing published dates without updating content is ineffective for GEO. AI systems evaluate the claims within the content, not the date metadata. What is statistical currency in GEO? Statistical currency is the degree to which verifiable claims in a content section are consistent with the most recent available evidence. It is a component of Extractability in the GEO Stack. Outdated statistics create consistency conflicts that actively suppress citation rate. Key Takeaways Content freshness affects retrieval probability because AI systems cross-reference claims against the consensus in the retrieval corpus. Updating for GEO is more precise than updating for Google — replace specific superseded statistics, not just refresh the published date. Priority 1 for freshness updates: pages with high citation rate and statistics older than 12 months (decay imminent). The 7-step update protocol: identify, flag, find replacement, replace, confirm structure, wait for indexing, re-test. Never bulk-refresh dates without updating claims. AI evaluates content, not metadata. Sources The GEO Lab. (2026). Experiment 001: Declarative vs Narrative Structure. Aggarwal, P. et al. (2024). GEO: Generative Engine Optimization. Princeton University. Version History Version 1.0 — 25 March 2026: Initial publication. Four-priority freshness framework and 7-step update protocol. Ready to apply this? Run the 30-check protocol against your highest-traffic informational pages using the AI Visibility Diagnostics Console — it generates a baseline citation rate in under 10 minutes. Then set a 6-month re-test reminder. Questions? Contact The GEO Lab. About the Author Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Contact The GEO Lab · Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab · Return to homepage Continue Reading Extractability LLM Readability: What It Means and How to Test It 30-Check Protocol Methodology
---
## Crawled – Currently Not Indexed: What It Means and How to Fix It
URL: https://thegeolab.net/crawled-currently-not-indexed/
Crawled – Currently Not Indexed: What It Means and How to Fix It By Artur Ferreira · The GEO Lab Technical SEO Field Reference, Question 05 of 66. The interview answer, checked against what Google currently documents. Crawled - currently not indexed is a Google Search Console status meaning Google fetched the page but chose not to add it to the index. It is not a crawling failure, and Google’s own Page Indexing documentation says there is no need to resubmit the URL. So the investigation should start with the page and the signals around it: content quality, duplication and canonicalisation, internal linking, and whether the URL was ever indexed in the first place. Every SEO has stared at this status. And most of us, at some point, have clicked Request Indexing and hoped for the best. The problem is that the status is basically Google saying: “I saw the page. I decided not to keep it.” That makes it uncomfortable, because the fix usually isn’t a button. It’s an indexing-selection problem. And what you do next tells me whether you understand that difference or whether you’re just trying to push the URL back through the same process again. What Google actually says about crawled - currently not indexed Google’s definition is pretty clear. The page was crawled, but it wasn’t indexed. It may or may not be indexed in the future, and Google says there is no need to resubmit the URL for crawling. Three things matter here. First, Google already fetched the page. So this is not a discovery problem and it is not a crawling problem. Second, this is not automatically a penalty or an error. Google does not index every page it crawls. Indexing is selective by design, and the factors that influence how Google crawls are separate from what it chooses to index. And third, Google itself tells you not to keep resubmitting the URL. That last point matters because “request indexing again” is probably the most common response to this status. The crawled - currently not indexed interview answer If I had to answer this in an interview, I’d keep it simple: Crawled - currently not indexed means Google fetched the page and decided not to index it, so I’d treat it as an indexing-selection problem rather than a crawl failure. I’d investigate the page’s quality and uniqueness, duplication and canonical signals, internal linking, and whether the URL was previously indexed. That last check matters because a page Google removed from the index is a different problem from a page Google never selected in the first place. How I’d investigate crawled - currently not indexed I wouldn’t start editing pages randomly. I’d start by working out what kind of problem I actually have. 1. Check the history first Was the URL ever indexed? That’s my first question. I’d look at Google Search Console URL Inspection, previous rankings, previous organic traffic, and site-search spot checks where useful. A URL that has never been indexed is one thing. A URL that ranked for months and then dropped into crawled - currently not indexed is telling me something very different. That distinction changes the whole investigation. 2. Look at content quality and uniqueness Next, I’d ask the uncomfortable question: does the index actually need this page? Not “is the page technically indexable?” but “does it add enough value to justify being there?” I’d look for thin template pages, near-empty categories, boilerplate-heavy pages, automatically generated copy, and pages that barely differ from stronger URLs already indexed. This is a different shape of the same crawl trap problem. If ten URLs are saying basically the same thing, Google does not need all ten. 3. Check duplication and canonicalisation Then I’d look for a stronger sibling. What canonical did Google select? Is there another URL covering the same intent? Are parameter variants competing with the clean version? Are multiple pages targeting the same topic with only minor differences? Sometimes the problem isn’t that Google dislikes the content. It’s that Google thinks another URL is the better representative. 4. Check internal linking Then I’d look at what the site itself is saying about the page. Does anything important link to it? Where does it sit in the architecture? Is it buried five levels deep? Is it effectively orphaned apart from the XML sitemap? Weak internal linking doesn’t prove a page should be excluded, but if your own site barely acknowledges the URL, retrieval probability drops and, it’s hard to argue that Google should treat it as important. 5. Segment the problem This is where I think a lot of crawled - currently not indexed investigations go wrong. If you have 20 affected URLs, you can inspect them individually. If you have 20,000, you need patterns. I’d group affected URLs by template, directory, content type, page purpose, publication period, and canonical behaviour. Because crawled - currently not indexed at scale is usually not 20,000 separate problems. It’s usually one or two template, quality or duplication problems repeated thousands of times. 6. Accept that some cases are fine Not every crawled - currently not indexed URL needs fixing. You can see perfectly legitimate URLs in this state: paginated URLs, feeds, expired products, URLs that consolidate elsewhere, low-value archive pages. Sometimes the correct outcome is: do nothing. The skill is separating pages that genuinely deserve indexing from pages where Google’s decision is perfectly reasonable. Quick crawled - currently not indexed investigation table CheckWhat I look atWhat it tells me Index historyURL Inspection, previous rankings and trafficRemoved vs never selected Content qualityPage value compared with indexed competitorsWhether the page deserves selection DuplicationGoogle-selected canonical, similar URLsWhether another page won instead Internal linkingLinks in, anchor text, depthWhether the site signals importance SegmentationCCNI URLs grouped by type or directoryIndividual problem vs systemic problem A real-world crawled - currently not indexed example Say a content site has 1,200 published articles. Google Search Console shows 300 URLs as crawled - currently not indexed. Looking at 300 URLs one by one would be painful and mostly pointless. So I segment them. 220 of the 300 are tag archive pages. That may be perfectly fine. The remaining 80 are articles. Now it gets interesting. Of those 80 articles, 70 were previously indexed. That completely changes the interpretation. These are not pages waiting patiently to enter the index. Google had them. Then it removed them. And those 70 pages all sit in the same directory: short articles covering topics that are now handled better by newer, more complete pieces elsewhere on the site. Now I have a pattern. The fix isn’t “submit all 70 again.” It’s editorial. Some should be expanded. Some should be merged. Some may need redirecting to a stronger replacement. Others may not deserve to exist anymore. The technical detail behind crawled - currently not indexed Here’s the part I find most interesting. Google’s wording can sound like the page is sitting in some kind of waiting room: “It may or may not be indexed in the future.” But observed data suggests that isn’t always the right mental model. Indexing Insight, analysing 1.7 million pages, reported that roughly 70-80% of URLs carrying this status had previously been indexed. That’s an important distinction. If the same pattern exists on your site, crawled - currently not indexed is often not a queue. It’s an exit. Google had the page in the index, evaluated it again and removed it. That’s why checking history is step one. The Search Console status tells you the page’s current state. Its history tells you which direction it was travelling. This is a core principle across the GEO Stack: measure the direction, not just the state. And that changes the diagnosis completely. One other distinction matters: Discovered - currently not indexed is an earlier-stage problem. Google knows about the URL but hasn’t crawled it yet. That needs a different investigation, and it connects to the crawl budget and crawl budget optimisation questions in this series. The crawled - currently not indexed interview trap The obvious trap is: “Just request indexing.” That sounds practical. Usually it isn’t. The subtler trap is treating every crawled - currently not indexed URL as something broken. Some of those URLs are exactly where they should be. So before fixing anything, I’d divide the report into three buckets: correct behaviour (pages I don’t particularly need indexed), quality decisions (pages Google has seen but doesn’t currently think deserve a place), and signal conflicts (pages where duplication, canonicals or internal linking may be pointing Google somewhere else). That segmentation is more useful than treating the whole report as one giant indexing emergency. Takeaway I wouldn’t ask: “How do I get these pages indexed again?” I’d ask: “Why did Google decide the index was better off without them, and is that decision actually wrong?” Because once Google has already crawled the page, repeatedly asking it to look again isn’t much of a strategy. You need to give it a reason to make a different decision. Part 05 of my Technical SEO Field Reference: 66 interview questions answered from what Google currently documents, what we observe in practice, and where the two do not match.
---
## Do AI Detection Scores Affect Google Indexing? I Tested 47 Posts
URL: https://thegeolab.net/ai-detection-score-indexing/
Do AI Detection Scores Affect Google Indexing? I Tested 47 Posts By Artur Ferreira · The GEO Lab Experiment E064. Pre-registered analysis of whether AI detection scores predict Google indexing, tested across 47 posts. The claim: higher AI detection score, lower indexing rate Short answer: I couldn't find any evidence that AI detection scores affect whether Google indexes it. I tested 47 posts on The GEO Lab, pre-registered the analysis before I looked at the results, and the relationship simply wasn't there. It was weak, statistically non-significant and, if anything, pointed slightly the opposite way. That doesn't prove AI detection scores have no relationship with indexing. This is one site, 47 posts and only seven non-indexed pages. But it does give a reason to question a claim I've seen repeated far more confidently than the evidence behind it. The claim is simple: the higher a page's AI detection score, the less likely Google is to index it. Jesper Nissen shared it on LinkedIn on 29 May 2026, based on correlation data from Primeindexer. Of the eight points in that post, this was the one that caught my attention, because it made a specific prediction I could actually test. If AI detection score really predicts indexing, I should be able to see that relationship in my own pages. So I tested it. Why the raw AI detection score correlation is not enough Comparing AI scores and indexing rates directly has an obvious problem. Thin, repetitive and formulaic content can score highly on AI detectors, and that same content may struggle to get indexed for completely different reasons. So if you find that high-AI-score pages are indexed less often, you haven't shown the AI score did it. You might just be watching weaker content produce both outcomes. That's why the question that matters is whether the relationship survives once you account for things like content length and age. There's also a more interesting mechanism underneath. Google's leaked Content Warehouse documentation included a field called contentEffort, described as an LLM-based effort estimate for article pages. If Google is estimating effort, an AI detector could correlate with indexing without Google caring about the AI score at all: low-effort content might simply be more likely to look AI-written. In that case the detector score is the passenger, not the driver. How I tested it I took 47 posts from The GEO Lab and compared an AI-likelihood signal against their actual indexing status in Google Search Console, with the analysis pre-registered on Zenodo before I ran it. I'd planned to use Originality.ai, but couldn't reach it through the API from my server. Rather than quietly swapping instruments after seeing the results, I documented the change in the pre-registration and used GPT-2 perplexity as an open, reproducible proxy, where lower perplexity means more predictable, more AI-like prose. That distinction matters: I'm testing the broader claim that AI-like writing predicts indexing, not validating or invalidating Originality.ai specifically. Indexing came from the Google Search Console URL Inspection API. The final dataset contained: 40 submitted and indexed posts7 crawled but not indexed posts47 indexable pages in total Redirects and URLs Google didn't know about were excluded. I then tested indexing against perplexity on its own, then a model controlling for post age and word count, and finally whether adding burstiness improved the model. Because 47 pages is a small dataset, I fixed the limitation in advance: whatever came back would be directional evidence, not a new SEO rule. That pre-registration discipline runs through the whole series, the same reason I keep replication checks like the 14-day intra-day citation stability on Perplexity test. The result: AI detection scores null across every test All three pre-registered tests came back null. Nothing dramatic, and that's the point. The bivariate model gave an odds ratio of 1.377, with a 95% confidence interval from 0.611 to 3.104 and a one-tailed p-value of 0.779. Controlling for post age and word count barely moved it: OR 1.391, p = 0.754. Adding burstiness didn't rescue the hypothesis either, improving AIC by just 0.55, nowhere near the threshold of 2 I'd set as meaningful. Collinearity wasn't hiding anything, with a maximum VIF of 1.10. TestNResultKey statistic Bivariate (H1)47Not supportedOR 1.377, 95% CI 0.611 to 3.104, p₁ 0.779 Confound-controlled (H2)45Not supportedOR 1.391, p₁ 0.754 Burstiness gain (H3)45Not supportedΔAIC −0.55 (threshold −2) Collinearity (VIF)45Interpretablemax VIF 1.10 Table 1. Pre-registered results for E064 (AI detection score vs Google indexing, The GEO Lab, 47 posts). All three tests null; the controlled estimate is interpretable. The coefficient did keep pointing the opposite way from the original claim: more human-typical prose was weakly associated with higher odds of indexing. But I want to be clear, because this is exactly where a null gets overread. I did not find a reverse effect. At a p-value near 0.78, the sensible reading is no detectable effect at all. What this does and does not say about AI detection score This is directional evidence, not a debunk, and it does not become an audit rule. What it says: across these 47 posts, an open AI-likelihood signal showed no association with indexing, and an independent, confound-controlled test failed to reproduce Nissen's claim. What it doesn't say is that AI detection scores definitely don't matter. There were only seven non-indexed pages, nowhere near enough to rule out a smaller relationship. The instrument caps it further. GPT-2 perplexity is a crude measure for modern AI-written technical content: it captures predictability and stylistic uniformity, not who or what actually wrote the page. So a null here has two possible explanations, and this experiment can't separate them: either the relationship isn't there, or my instrument isn't sensitive enough to catch it. That's the same reason I hold a measured day-scale citation noise floor for citation work, so I know what "no effect" looks like before claiming one. It's also why I wouldn't turn this into an SEO rule any more than I'd use the original correlation as one. What I'd do with these AI detection scores I wouldn't rewrite a page just because an AI detector gives it a high score. If content is thin, repetitive, poorly structured or doesn't answer the query, fix those things; they matter independently of any detector. But I found no evidence here that lowering an AI detection score, on its own, earns an indexing benefit. The next test needs to be much bigger: a corpus with known human-written and AI-written content, a current detector, many more non-indexed pages, and enough observations to test the controlled relationship properly. That could either reproduce the effect or give much stronger grounds for retiring the claim. For now the result is simpler. Forty-seven posts tested, no detectable relationship between the AI-likelihood signal I measured and Google indexing. The full pre-registration and analysis are on Zenodo under DOI 10.5281/zenodo.20529052 for anyone who wants to check the numbers or replicate it. FAQ Does a high AI detection score stop Google from indexing a page? Not in this test. Across 47 posts, AI detection score showed no significant association with whether Google indexed the page, and the weak trend actually ran the opposite way. The sample is small, so treat this as directional rather than proof, but there was no detectable indexing penalty here. Should I rewrite content that Originality.ai flags as AI-written? Not for the score alone. Thin or unstructured content does index poorly, for its own reasons, and that's worth fixing. But rewriting purely to lower a detector number, with nothing else changed, showed no indexing benefit in this data. Fix depth, structure and how well the page answers the query, not the detector reading. Why use GPT-2 perplexity instead of Originality.ai? Originality.ai wasn't reachable through the API on my server, so I used GPT-2 perplexity as an open, reproducible proxy, where lower perplexity means more predictable, more AI-like prose. That tests the general claim that AI-like writing predicts indexing, rather than Originality.ai specifically. The trade-off is that GPT-2 is a weak, dated instrument, which I've flagged as a limit on the result. Does this debunk the AI-detection-hurts-indexing claim? No. With only seven non-indexed pages, the study is underpowered to falsify anything, and the finding is explicitly directional. It shows the claim didn't reproduce on an independent, confound-controlled corpus, which is a reason for doubt, not a refutation. A larger corpus with real authorship labels is needed to settle it.
---
## Do AI Overview Citations Change? I Ran the Same Query 10 Times and Got Cited 6
URL: https://thegeolab.net/ai-overview-citation-variance/
.content-title .content-title .title-text .post-meta .key-takeaway .key-takeaway a .faq-item .faq-item h3 The GEO Lab | Experiment E101 | August 2026 TL;DR: AI Overview citations can change between identical searches. On 5 August 2026 I ran one query, "web designer for tradespeople UK", against one page I own, ten times in a single afternoon. Google's AI Overview cited that page in six of the nine renders that resolved and left it out of three, a citation rate near 60% for one page-query pair on one day. Citation was a per-render draw, not a fixed property of the page. The consequence: a single check of an AI Overview citation, by you or by a tool, is not evidence of presence or absence, so any visibility claim needs at least five renders across two or more configurations. That single fact breaks how most people, and most tools, report AI visibility. If you check once and see your citation, you record a win. If you check once and miss it, you record a loss. For a page sitting at an intermediate rate, both readings are wrong. This is the finding I registered as E101, and this is what it means for anyone measuring citations in Google AI Overviews. How I measured AI Overview citations in one frozen test I measured one page-query pair, ten times, and froze the dataset before analysing it. The target was my own trades page on AJ Web Design, the query was "web designer for tradespeople UK", and the surface was Google AI Overviews, with two DataForSEO API pulls alongside the browser captures. The date was 5 August 2026. I ran the renders across declared browser profiles rather than a single client, because the point was to see the retrieval surface behave, not to tune a result. Nine of the ten renders resolved to a readable answer. One returned an unresolved async stub, so I excluded it and recorded it rather than guessing. The whole run is hashed: the canonical evidence manifest file receipt-zero_PACKET.json carries SHA256 fingerprint 4584652f...fa1b3, and every artifact inside it, including the excluded stub, is preserved. I own the page, so this is a first-party measurement I can verify end to end, which is why E101 sits in the T1 tier rather than resting on a screenshot. The result: six cited, three absent, and no two renders alike Across the nine resolved renders, the page was cited six times and absent three times, a rate near 60% for this one pair on this one day. More telling than the rate: every browser I observed more than once produced both outcomes. Chrome cited the page, then dropped it, then cited it again, all in the same afternoon and the same incognito mode. Edge went from absent to cited. The outcome flipped inside a single client, so the client was not the cause. Every resolved render was also a materially different document. The AI Overview rebuilt itself each time, with different framing, different price anchors, and anywhere from 9 to 19 cited sources. My page's role ranged from fully absent, to a passing body mention, to a fully blurbed recommendation. Citation here was not a binary switch flipping on and off against a fixed answer. The answer itself was regenerated on every request, and my presence in it was one unstable part of a larger instability. Four explanations I killed the same day Before I called this variance, I tried to explain it away, and each explanation died on the data within the same afternoon. The discipline matters more than the finding, so here is exactly what fell and what killed it. An API-versus-browser blind spot. The theory that browsers cite and the API does not was killed by a Chrome run in which the browser itself showed no citation. A browser-family axis. The theory that Chromium clients behave one way was killed once a second Chrome run and an Edge run both cited the page. A template-framing axis. The theory that one answer template carried the citation collapsed once both framings appeared with the citation present and with it absent. A drop since 3 August. The theory that the page had simply lost the citation days earlier was killed by an Opera run that cited it cleanly. No candidate predictor survived the full set of observations. That absence is the point. I could not reduce the outcome to access path, client, framing, or a dated change, which leaves per-render variance as the honest description of what happened. Why AI Overview citation variance breaks single-check visibility tools Any tool that checks a citation once reports confident presence or confident absence, and for an intermediate-rate page both are wrong. This is the payload of E101, and it is a measurement rule, not a growth tip. A single observation of an AI Overview citation is not evidence of a state, because the state does not exist to be observed. What exists is a distribution, and one draw from a distribution tells you almost nothing about its shape. So E101 sets a floor I now apply to my own work: no citation presence or absence claim from fewer than five renders across at least two declared access configurations. Report the rate and the sample size, not a yes or a no. This amends the GEO Lab citation-check protocol to repeat-sample every cell rather than probe it once, and it's the first of the process rules I'm now applying across the lab's citation work. What this test does not show This is one page, one query, one day, and I will not stretch it past that. The rate near 60% is an existence proof that per-render citation variance happens at intermediate rates. It is not a prevalence estimate, and it says nothing about how common this behaviour is across other pages, queries, or engines. Anyone quoting "AI Overviews are 60% random" from this post has taken a number that was never offered. The honest bounds go further. My browser captures are declared-profile screenshots, not wire-level records, while only the API pulls are hash-verified at the wire. Rate stability across days, and any real search for a mechanism, belong to a separate, jointly-governed replication round in preparation with Massimiliano Brighindi, which I am linking rather than folding into this first-party finding. How to measure AI Overview citations without fooling yourself Sample every citation check at least five times, across at least two declared configurations, before you believe the answer. Fix your query wording, your locale, and your logged-out state, then vary only the access path so the variance you see is the surface's and not yours. Record the misses, including any render that fails to resolve, because a discarded null is how a 60% rate quietly becomes a reported 100%. Then report the rate with its sample size, and treat any single-shot visibility number, yours or a vendor's, as an anecdote until it has been repeated. Data availability The canonical evidence packet is deposited on Zenodo under DOI 10.5281/zenodo.21970135. The manifest file receipt-zero_PACKET.json inside the deposit carries SHA256 4584652f643127d612894fa77385397b1c16461e026e1f305aec413d477fa1b3. Key takeaway: A single check of an AI Overview citation is not evidence of presence or absence. E101 showed that one page-query pair produced six cited renders and three absent renders in a single afternoon. Citation was a per-render draw, not a fixed property. Any visibility claim needs at least five renders across two configurations, reported as a rate with sample size. Frequently asked questions Do Google AI Overview citations change every time you search? They can, and in this test they did. Running one query ten times in a single afternoon, Google's AI Overview cited the same page in six of nine resolved renders and left it out of three. The AI Overview was regenerated on each request, with different sources and framing, so the citation behaved as a per-render draw rather than a fixed result. How many times should you check an AI Overview citation before trusting it? At least five times, across at least two declared access configurations. E101 sets that as a minimum-N floor because a single check of an intermediate-rate page reports confident presence or confident absence, and both can be wrong. Report the citation rate and the sample size instead of a single yes or no. Does this mean Google AI Overviews are random? No, and E101 does not claim that. It shows that one page-query pair sat at an intermediate citation rate on one day, which is an existence proof of variance, not a statement that the whole system is random. A different page-query pair may instead be stably cited or stably absent. The finding is that intermediate rates exist and defeat single-shot measurement. Is per-render citation variance the same as personalisation? No. The outcome flipped inside a single client, in the same incognito session, with a fixed query and a logged-out state. Chrome cited the page, dropped it, then cited it again with nothing personalised changing between runs. That rules out user-level personalisation as the cause and points to variance in the generation itself.
---
## Does Agent-Readiness Conformance Predict AI Citation? Pre-Registering the Test
URL: https://thegeolab.net/prereg-agent-readiness-citation/
Does Agent-Readiness Conformance Predict AI Citation? Pre-Registering the Test By Artur Ferreira · The GEO Lab · Published: 21 June 2026 · Version 2.0 (results) · v1.0 pre-registration 21 June 2026Zenodo pre-registration: 10.5281/zenodo.20788222 (v1) Two tools score "agent-readiness" and disagree on what it means. This pre-registration tests whether either score predicts AI citation, with a stated prior that the result will be null. TL;DR Agent-readiness conformance has no demonstrated link to AI citation. Two instruments, isitagentready.com and Google PageSpeed's agentic panel, score the same site with near-zero overlap in what they check. This pre-registration tests whether a retrieval-relevant conformance index predicts citation, controlling for domain authority, with a variance-gated placebo index as a secondary check. The stated prior is null: if two instruments cannot agree on what agent-readiness is, a clean signal is unlikely. The design is frozen and deposited before either variable is collected: both the citation measurement and the conformance scan run only after deposit. The result is now in, deposited as v2.0 under the same DOI: the null held. Conformance does not predict citation after controlling for domain authority. Contents Two instruments, almost no overlap The question Instrument Design Pre-analysis: the variance screen Confirmatory test Hypotheses Stated prior Power and limits Decision rule What this is not Result (added 22 June 2026) Frequently asked questions Agent-Readiness and AI Citation: Two Instruments, Almost No Overlap Agent-readiness conformance is now scored by two tools that disagree about what it means, and neither has shown the score predicts anything that matters. This is the pre-registration of a test before either variable is collected, including the prior that the result will be null. isitagentready.com scored thegeolab.net at 64/100. Google's new PageSpeed Insights "Agentic browsing" panel scored the same site at 3/3. The two numbers are not measuring the same thing in different units. They are reading different signals. isitagentready checks discovery files and protocol plumbing: robots.txt, sitemap, Link headers, AI-bot rules, DNS-AID records, OAuth and MCP discovery, an agent-skills index, Web Bot Auth, WebMCP. PageSpeed's agentic panel checks three things: whether the accessibility tree is well-formed, Cumulative Layout Shift, and whether llms.txt contains at least one heading. Its WebMCP checks were not-applicable on a site without a WebMCP integration. The overlap between the two check sets is close to zero. One grades discovery files, the other grades an accessibility metric, a recycled layout-shift number, and a structural llms.txt test. When two instruments both branded "agent-readiness" cannot agree on what to count, the construct they claim to measure is not yet stable. That is the starting observation, and it shapes the prior below. The same instrument-divergence pattern appeared in the E042 cross-platform mechanism map, where Perplexity, ChatGPT, and Gemini retrieved entirely different sets for the same query. The Question Does conformance to emerging agent-readiness standards predict whether a site is cited in AI search, after controlling for the obvious confound that larger, better-resourced organisations do more of everything? Instrument The measuring instrument is a purpose-built conformance checker, not either badge tool. It hits each well-known endpoint directly and records pass or fail per check per domain. This removes dependence on any third-party composite with opaque weighting, and removes the edge-versus-origin contamination that affects scraped scores by resolving to origins under our own control. The resolved IP per scan is logged. The two badge tools appear here only as the motivating "instruments disagree" observation. Design This is an observational (Path B) study with a placebo-control design. Cohort: the 36 brands in the GEO Brand Citation Index. Each brand is frozen to one canonical domain before scanning; where a brand runs multiple domains, the primary is chosen and recorded. Dependent variable: AI-citation rate per brand, measured fresh on 21 June 2026 using the BCI protocol (standard platform set: ChatGPT, Perplexity, Gemini), collected after this deposit. The previously published June 2026 BCI dataset is not used as the DV. The DV is brand-level and may aggregate citation across surfaces other than the scanned domain, while the IV covers one surface only. This unit mismatch is stated as a limitation, not assumed away. Independent variables: two indices, with every check assigned to one group before any correlation is computed, each assignment carrying a recorded a priori rationale. A check is Relevant if there is a plausible mechanism by which it affects whether an AI system can retrieve and extract the page's content into an answer. It is Placebo if there is no conceivable path from the check to the page being cited, because it governs agent actions, authentication, or service discovery rather than content retrieval. Relevant index: robots.txt validity, AI-bot rules present, sitemap present, valid Link headers, llms.txt valid, markdown negotiation. (llms.txt is flagged as the weakest member: its mechanism is content-facing but retrieval-system adoption is unproven.) Placebo index: DNS-AID, WebMCP, auth.md, OAuth/OIDC discovery, OAuth protected resource, MCP server card, Web Bot Auth, API catalog. All are agent-action, authentication, or service-discovery plumbing with no content-retrieval path. Excluded a priori: Content Signals. The Content-Signal directive declares ai-train, search, and ai-input preferences, so unlike the rest of the placebo set it does have a conceivable retrieval path, which disqualifies it from placebo. But its sign is ambiguous and it is unenforced and barely adopted, so it is not a clean relevant lever either. It is excluded from analysis and reported descriptively only. Each index is scored as checks passed divided by checks applicable, over surviving checks (see the variance screen). Not-applicable checks are excluded from the denominator, never scored as fails. Control: domain authority, proxied by DataForSEO domain rank, entered as a pre-registered partial-correlation control. Pre-Analysis: The Variance Screen Marginal variance in a check is independent of whether that check predicts citation, so screening checks on their pass-rate alone does not compromise registration. The checker was run on all 36 domains after deposit, the per-check pass-rate and variance table computed and deposited with the results in v2.0, and the following frozen rule applied: Any binary check whose minority class is fewer than 4 of 36 brands (about 11 percent) is dropped from its index, because below roughly a 10 percent minority a check is near-constant and only dilutes the index. Surviving checks within an index are equal-weighted. If an index retains fewer than 2 surviving checks, it is flagged inconclusive and no correlation is reported from it. The citation data is not consulted at any point in this screen. This is what keeps the frozen design honest while protecting it from a silent null caused by checks no brand implements. Confirmatory Test Primary: partial Spearman correlation of the relevant index against citation rate, controlling for domain authority. One confirmatory test. It is always estimable, does not depend on the placebo index having variance, and natively handles the skewed bounded citation rate and the ordinal authority rank. Minimum effect of interest: partial rho = 0.40, approximately the 80 percent-power floor at n = 36 with one control. The result is reported as informative against effects at or above 0.40 and inconclusive below it. Statistical significance alone is not treated as the finding; the effect must clear the stated floor to count as support for H1. The statistical approach mirrors the controls used in the T1/T2 citation gap analysis. Secondary, precondition-gated: if and only if the placebo index clears the variance screen, the relevant and placebo partial correlations are compared descriptively. If the placebo index does not clear the screen, the report states "placebo arm uninformative: the speculative standards are implemented too rarely in this cohort to act as a capability proxy." The placebo comparison is never the primary inference, because a near-constant placebo index would make a difference test pass trivially. This is a deliberate change from an earlier draft of this design, which used a difference-of-correlations test as primary; that test was demoted precisely because it can pass for the wrong reason. Hypotheses H1: the relevant index predicts citation at partial rho of at least 0.40 after controlling for domain authority. Retrieval-relevant conformance has signal of its own. H0: the relevant-index partial correlation falls below 0.40 or is non-significant. Any apparent link between conformance and citation runs through organisational capability, not the standards themselves. Stated Prior The null is expected. If two instruments cannot agree on what agent-readiness is, a clean retrieval-relevant signal is unlikely, and the most probable outcome is that conformance tracks citation only through domain authority, if at all. Power and Limits At n = 36 the single partial correlation is powered for moderate effects and underpowered for weak ones; the 0.40 floor encodes this. The DA proxy is imperfect; one declared sensitivity check using referring-domain count is held in reserve for a borderline primary result. The cohort is GEO and SEO brands, the population most likely to implement agent-readiness deliberately, so any relationship found may not generalise to the open web. The noise-floor measurement established the variance baseline that makes this effect-size interpretation possible. Decision Rule If the relevant index does not clear the 0.40 floor after the control, the result is the null plus the instrument-incoherence finding, and it is published as such. If the relevant index clears the floor and is significant, the study graduates to an interventional follow-up on this site: flip the retrieval-relevant checks on real pages, hold the rest constant, and measure the citation response with a difference-in-differences design. Only at that point does any specific agent-readiness fix earn a place on a content brief. What This Is Not This is not a claim that agent-readiness work is wasted. Several of the relevant-index checks are settled good practice on independent grounds. The narrow claim under test is whether a conformance score predicts citation, and whether the retrieval-relevant checks carry weight beyond domain authority. The answer is a number, and the number is now in: the null held, deposited as v2.0 under the same concept DOI. The E027 zero-variance replication demonstrated that pre-registration and transparent reporting hold regardless of the outcome direction. Key GEO Lab Takeaway Two "agent-readiness" tools score the same site with near-zero overlap in what they check. This pre-registration tests whether a retrieval-relevant subset predicts AI citation after controlling for domain authority, with the speculative checks held back as a variance-gated placebo. The stated prior is null. If the relevant index carries no signal beyond authority, the score is measuring organisational capability, not a standard that earns citations. The result is now in: the null held. Conformance does not predict citation after controlling for domain authority, deposited as v2.0 under the same concept DOI. Result (added 22 June 2026) The null held. The full design, data, and analysis are deposited as version 2.0 under the same concept DOI: 10.5281/zenodo.20788222. Across the 36 brands, retrieval-relevant agent-readiness conformance showed no association with AI citation once domain authority was controlled for. The primary test, a partial Spearman of the relevant index against citation rate controlling for Moz Domain Authority, returned rho = -0.193 (p = 0.27, n = 36). That is below the pre-registered 0.40 effect-size floor, not significant, and if anything faintly negative. The stated prior was the null, and the null is what the data showed. The placebo arm could not be tested at all, and that is the more interesting result. Every one of the eight speculative checks failed the variance screen, because almost no brand implements them: auth.md on none of the 36, Web Bot Auth on one, WebMCP detectable on two, the rest on three. There was no variance for a placebo correlation to exist. The relevant checks nearly went the same way for the opposite reason. Valid robots.txt was near-universal (33 of 36) and dropped from the index for having almost no variance. So the conformance signal is squeezed from both sides: the retrieval-relevant checks are either things everyone already does or things almost no one does, and the speculative checks are simply absent. A score built from checks that are either everyone or no one cannot measure a graded property. That is the instrument-incoherence point the study opened with, now shown rather than asserted. Two honest limits. The cohort is high-authority (median Moz DA 70) and conformance-compressed, which is the population where any retrieval-relevant signal is hardest to separate from authority. This is a null in the least favourable cohort for finding an effect, not proof the relationship is zero everywhere. And the pre-registered sensitivity check, re-running the primary on the 17 non-edge domains, came back inconclusive: too few checks retained variance in that subset to form an index. The primary null holds on all 36, but the sensitivity check did not corroborate it, and is reported as uninformative rather than supportive. One pre-registered control was substituted. The named DataForSEO domain rank was not available on the active plan, so domain authority was proxied with Moz Domain Authority instead, a decision logged as Amendment 1 and made before any correlation was computed. The full amendment, the per-check conformance table, the five data files, and the deterministic analysis script are all in the v2.0 deposit. Two independent runs of the pre-committed script returned identical statistics. What does not follow: this is not evidence that agent-readiness work is pointless. Several of the relevant checks are settled good practice for their own reasons. It is evidence that a composite agent-readiness score does not predict AI citation beyond domain authority in this cohort, and that the speculative half of such scores is implemented too rarely to carry any information at all. Frequently Asked Questions Does agent-readiness conformance affect AI citation rates? This study tested exactly that, and the answer is no. Across 36 high-authority brands, agent-readiness conformance showed no association with AI citation after controlling for domain authority (partial Spearman rho = -0.193, p = 0.27, n = 36, below the pre-registered 0.40 effect-size floor). The pre-registered null held. Full results and data are in the v2.0 deposit (DOI 10.5281/zenodo.20788222). What is the difference between isitagentready and Google's agentic browsing panel? isitagentready checks discovery files and protocol plumbing: robots.txt, sitemap, Link headers, AI-bot rules, DNS-AID, OAuth and MCP discovery, WebMCP. Google's PageSpeed agentic panel checks three things: accessibility tree quality, Cumulative Layout Shift, and whether llms.txt contains a heading. The overlap between the two check sets is close to zero. Why pre-register a study with a null prior? Pre-registration prevents the result from being shaped by what the data shows. Stating a null prior in advance makes clear the null was not discovered after seeing the numbers. If the relevant index does clear the effect-size floor, the pre-registered design means the positive result is also credible, because the analysis was locked, deposited, and timestamped before either variable was collected. Sources and methodology Design: Observational (Path B), placebo-control, pre-registered. Cohort: the 36 brands of the GEO Brand Citation Index, with citation measured fresh on 21 June 2026 (the previously published June cycle is not used as the DV). Primary statistic: partial Spearman correlation of the relevant index against citation rate, controlling for domain authority (proxied by Moz Domain Authority; the pre-registered DataForSEO domain rank was unavailable on plan, substituted as Amendment 1 before any correlation was computed), with a 0.40 minimum effect of interest. Placebo comparison is secondary and gated on a variance screen. Instruments: Purpose-built endpoint checker (not third-party badge tools). isitagentready.com and Google PageSpeed agentic panel are cited only as the instruments that motivated the study. Pre-registration: Zenodo 10.5281/zenodo.20788222, version 1.0, deposited 21 June 2026, containing the frozen design. Results appended as v2.0 on 22 June 2026 under the same concept DOI, with the per-check variance table, five data files, and the analysis script. Version history: v1.0 pre-registered 21 June 2026. v2.0 results deposited 22 June 2026 (DOI 10.5281/zenodo.20788222). Null held: rho = -0.193, p = 0.27. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## Does GEO Actually Work? — The GEO Lab
URL: https://thegeolab.net/does-geo-work/
Does GEO Actually Work? By Artur Ferreira · The GEO Lab · Updated: 24 July 2026 · Version 1.2 Does GEO work? Yes — with measurable, replicable GEO results. Here is the generative engine optimisation evidence and where the limitations are. TL;DR Yes — with measurable, replicable results. The GEO Lab’s Experiment 001 recorded a 23.3-percentage-point gap in citation rate (18/30 vs 11/30 on Perplexity, z = 1.81, p = 0.07) from a single structural change, with no changes to content quality, domain authority, or links. GEO works because it addresses the specific mechanism by which AI systems select and extract content. In This Post Does GEO work? What does the evidence show? 3 independent data points How GEO produces results: the 5-layer mechanism 3 limitations of GEO that practitioners should know Is GEO proven? Frequently asked questions Does GEO work? Yes — Generative Engine Optimisation (GEO) produces measured, replicable results. The GEO Lab's Experiment 001 recorded a 23.3-percentage-point gap in AI citation rate (18/30 vs 11/30 on Perplexity, z = 1.81, p = 0.07) from a single structural change: rewriting content sections from narrative structure to declarative structure. The affirmative answer requires qualification, because the question conflates two distinct claims: does restructuring content for AI retrieval produce measurable results, and does GEO as a discipline produce reliable, replicable improvements across sites and platforms. We ran a 330-query citation test across Perplexity, ChatGPT, and Google AI Overviews in March 2026 and found directionally consistent results across all three platforms. On the first claim: yes, with documented generative engine optimisation evidence. On the second: the GEO results are early but directionally consistent across independent research sources. What does the evidence show? 3 independent data points The GEO Lab’s Experiment 001 tested declarative versus narrative content structure under controlled conditions. Version A (narrative) achieved a 36.7% citation rate across 30 queries on Perplexity. Version B (declarative) achieved 60.0%. That is a 23.3-percentage-point gap from structure alone — the content, topic, domain authority, and query were identical between versions. The 23.3-point citation gap tells us something specific: extractability operates as a genuine retrieval signal. We initially believed narrative structure would perform comparably to declarative if the content quality was high enough. We got this wrong — AI systems are not simply retrieving the most authoritative source. They are retrieving the most parseable section. Structure is a ranking factor for retrieval in a way it never was for traditional search. According to Seer Interactive's research (3,100+ queries, June 2024 to September 2025), pages cited within Google AI Overviews received 35% more organic clicks than non-cited pages at equivalent ranking positions. Seer notes that this correlation does not establish causation: brands with stronger authority and higher baseline CTRs may be more likely to be cited, which is consistent with the domain authority gate documented elsewhere on this site. According to Ahrefs’ December 2025 analysis, the presence of an AI Overview correlates with a 58% lower average clickthrough rate for the top-ranking page. These GEO results demonstrate that the citation outcome is commercially significant — it is not a vanity metric. How GEO produces results: the 5-layer mechanism GEO works because the framework targets the specific mechanisms that generative search systems use to select, extract, and synthesise content. A generative search system does not evaluate a page in the same way a traditional search engine does. The generative system retrieves candidate sections by semantic similarity to a query vector, extracts the most parseable chunks, compresses them into a synthesised response, and attributes citations to the sources it used. Each stage filters content. GEO optimises for survival through each stage. Layer 1 & 2 Retrieval Probability and Extractability Retrieval Probability addresses the entry stage — whether content is eligible for retrieval at all. Extractability addresses the extraction and compression stage — whether a retrieved section can be cleanly parsed into a synthesised answer. Layer 3 & 4 Entity Reinforcement and Structural Authority Entity Reinforcement and Structural Authority address the trustworthiness signal layer. Explicit entity naming, citation presence, and schema markup signal that content is reliable enough to cite. Layer 5 System Memory System Memory addresses long-term presence in retrieval patterns. Sites that establish consistent citation signals become baseline sources for specific query types. When GEO fails to produce results, the failure almost always traces to a layer that has not been addressed, typically Retrieval Probability or Extractability at the lower layers. We developed the the GEO Stack's five layers specifically to diagnose which layer is underperforming. Upper-layer interventions (schema, authority signals) produce limited results if the lower layers are broken. Protocol: Testing whether GEO works on your content Select a test page. Choose an informational page that targets a definition, comparison, or instruction query. The page should have existing search traffic. Establish a citation baseline. Run the target query 50 times on Perplexity. Record how often your content is cited. This is your baseline citation rate. Apply declarative restructuring. Rewrite section openings as answer-first declarative sentences. Remove pronoun dependencies. Ensure each section is standalone-complete. Re-test after indexing. Wait for the restructured content to be indexed. Run the same 50-query test. Compare citation rates. Document the delta. The difference between baseline and post-intervention citation rates is your measured GEO impact for that page. 3 limitations of GEO that practitioners should know GEO has limited impact on transactional queries. For product searches, local intent, and branded navigational searches, AI Overviews rarely appear. Optimising for extraction does not improve performance on queries where extraction is not part of the search experience. GEO also depends on a minimum site quality threshold as of 2026. Sites below a certain domain authority and brand visibility baseline appear to be ineligible for AI search feature inclusion. The threshold is not published by Google. Based on patent documentation and the Williams-Cook vulnerability research, the threshold appears to operate on a 0-1 scale with an inferred cut-off around 0.4; this is derived from patent analysis, not from direct measurement. Separately, our own brand mention rate measured 3.5% for cited content versus near-zero for uncited content across 330 queries in March 2026. GEO content interventions do not override the eligibility threshold. Finally, GEO evidence is early. Experiment 001 was conducted on Perplexity with a single topic. Cross-platform replication (E042, June 2026) found only 12% source overlap across Perplexity, ChatGPT, and Gemini, confirming that single-platform results do not generalise. The directional findings are consistent with independent research, but the full variable set has not been isolated. Does GEO work? Evidence from Experiment 001 (January 2026) and independent research, alongside the documented limitations practitioners should know. Is GEO proven? What the evidence supports and what it does not The structural finding — that declarative content produces higher citation rates than narrative content — is proven within the conditions of Experiment 001 and supported by independent research on AI Overview citation behaviour. GEO as a complete discipline, all five layers of the GEO Stack operating together, is supported by theoretical consistency with how retrieval systems work and by directional evidence from experiments published in the GEO Log. Full cross-platform, multi-variable proof is the work we are building towards through successive experiments. The more useful question is not whether GEO is proven but whether the cost of not addressing it is measurable. According to Ahrefs, CTR reductions of 58% are already occurring on uncited position-one pages. That is a documented cost. The evidence for GEO’s ability to reduce that cost is directionally positive and growing. See also: GEO vs SEO: What’s the Difference? — a detailed comparison of the signal sets, optimisation units, and success metrics that distinguish the two disciplines. Views4You AI Report (2025): ChatGPT processes 2.5 billion prompts daily. Each prompt is a retrieval opportunity. Content structured for extraction is eligible for citation across those 2.5 billion daily interactions. Content structured as narrative prose is not. Key Takeaways: Does GEO Actually Work? Does GEO work? Yes — the GEO results show the framework targets the specific mechanisms generative search systems use to select, extract, and cite content. The generative engine optimisation evidence is early but directionally consistent: declarative structure produces measurably higher citation rates than narrative structure. The intervention is structural, not tactical — and the results are replicable. Frequently asked questions Can I replicate GEO experiment results on my own content? Yes, as of 2026. The methodology for Experiment 001 is documented in full in The GEO Log. I ran this experiment in January 2026 across 30 queries on Perplexity and found a 23.3-percentage-point citation rate difference (18/30 vs 11/30, z = 1.81, p = 0.07). The experiment is replicable. Run the same query against two versions of the same content — one narrative, one declarative — across 50 or more iterations on Perplexity or a comparable platform. If you get materially different results, I want to know. Does GEO work on all AI search platforms? Experiment 001 was conducted on Perplexity, with exploratory baselines on ChatGPT and Gemini showing directionally consistent gaps. The entity density experiment (April 2026) isolated entity density as an independent variable and found a null result: domain authority gates citation eligibility before entity density can differentiate. E042 (June 2026) tested the same queries across three platforms and found only 12% source overlap, confirming that results on one platform do not predict results on another. Does GEO work for e-commerce or transactional content? Not directly. GEO applies to informational content — content that answers questions, explains concepts, or provides guidance. Transactional content (product pages, category pages, checkout flows) optimises for different signals and is not typically retrieved for AI-generated summaries. Apply GEO to your informational content. Apply traditional SEO and CRO to your transactional content. Related reading Foundation What Is Generative Engine Optimisation? The foundational guide covering definitions, the GEO Stack, and AI retrieval mechanics. Comparison GEO vs SEO: What’s the Difference? Signal sets, optimisation units, and when to prioritise each discipline. Context Why Does GEO Matter? The structural search shifts that make GEO commercially necessary. Consequences What Happens Without GEO? Traffic loss, citation displacement, and compounding brand decline. Sources GEO Lab Experiment 001 (2026). "Declarative vs Narrative Structure: 60.0% vs 36.7% Citation Rate (18/30 vs 11/30)." thegeolab.net. Seer Interactive (2025). "AI Overviews and Organic CTR: 35% Higher for Cited Pages." seerinteractive.com. Ahrefs (February 2026). "AI Overviews Reduce Clicks: 58% Lower CTR for Top-Ranking Pages." ahrefs.com. Version history Version 1.0 — 19 March 2026. Initial publication. Version 1.1 — 19 March 2026. Added quantified experiment data, documented mistakes, freshness anchors, and experience signals. Version 1.2, 25 July 2026. E001 figures corrected to reconstructed counts; unsourced GEO-score figures removed; Experiment 002 forward-reference replaced with completed result; external sources re-verified (Seer and Ahrefs relinked, Backlinko claim removed as unverifiable). Related ReadingWhat Is GEO?GEO Brand Citation IndexGEO Experiment 001
---
## Does Query Phrasing Decide Citation Rate? Pre-Registering E026
URL: https://thegeolab.net/e026-fan-out-category-citation-rate/
Does Query Phrasing Decide Citation Rate? Pre-Registering E026 By Artur Ferreira · The GEO Lab · Published: 9 June 2026 · Version 1.0 Does query phrasing change citation rate? 150 queries, 5 pages, 10 intent categories — prediction committed before the window opens. TL;DR E026 tests whether query phrasing moves citation rate on a fixed page set. Five pages on thegeolab.net, frozen throughout. Ten fan-out categories from Pete Meyers' BrightonSEO 2026 taxonomy, three queries each, 150 per day. Five consecutive days on Perplexity sonar-pro = 750 measurements. Prediction: Factual and Entity queries cite high; Insight and Anticipate queries cite at the noise floor. The gap maps which intent types reach the page set. If no pair clears 22.0pp, query phrasing is not a retrieval lever. The question: does query phrasing move Perplexity citation rate? I have spent a year changing pages and watching what AI search does next. Rewrite an opening. Add a schema block. Tighten an entity. Measure the citation rate, log it, move on. Every experiment so far has varied the page and held the question fixed. E026 turns that around. The page set stays frozen and the question changes instead. The thing under test is whether the way someone phrases a query moves the citation outcome, when the page behind it does not change at all. This is a pre-registration. The hypothesis, the null, the falsification criteria, and the full query set are committed here before the measurement window opens. Whatever the data says on the other side, this post is the record of what was predicted. Pete Meyers' fan-out taxonomy and how E026 uses it AI search rarely answers the literal query you type. It expands a prompt into a small set of related sub-queries, runs retrieval against those, then synthesises. Dr Pete Meyers set out a public account of this at BrightonSEO in April 2026, in a talk called "The Infinite Tail". His taxonomy sorts query expansion into ten intent categories: Semantic, Entity, Follow-up, Anticipate, Attribute, Factual, Tutorial, Compare, Insight, and Transact. That taxonomy is a map of how a question can be framed. What it does not tell you is whether the framing changes the answer. If I ask a factual question and an interpretive question about the same page, does one get cited far more than the other? Or does the engine resolve both to the same underlying intent and cite at the same rate regardless? E026 measures that gap on a fixed set of pages, using Pete's ten categories as the structure. GEO Lab research guides Free ebooks covering citation measurement, the GEO Stack framework, and AI search optimisation for practitioners. Browse the library → Five GEO Stack pages, two with zero citation history Five pages on this site, all sharing the same declarative structure and comparable entity density: The GEO Stack: Five-Layer Framework Extractability — Designing Content for Machine Retrieval Retrieval Probability — The Core Variable of GEO Entity Reinforcement — Building Semantic Gravity in AI Search Structural Authority — Architecture That Signals Expertise Three of these have a confirmed Perplexity citation history from an earlier baseline (E014, Month 2). The other two have never been cited. Including the uncited pages is deliberate. It lets E026 ask a second question alongside the first: can the right query category lift a page that has never been cited onto the cited list, or does a page either clear the authority bar or it does not, whatever the phrasing? For each page, three queries per category across all ten categories. That gives 150 queries. Each one runs once a day for five consecutive days against the Perplexity sonar-pro API, which produces 750 measurements. The outcome for each is binary: the target page is cited, or it is not. A citation counts only when the response cites that exact page, with no partial credit. Hypothesis: Factual and Entity queries cite high, Insight and Anticipate cite low Citation rate on the fixed page set varies systematically by query category. Some categories cite near the ceiling this site reaches on proprietary-concept queries, around 80% in prior baselines. Others sit down at the E016 noise floor. The pre-committed predictions: Factual and Entity queries cite high. They pull on direct attribute and identity matches, which these pages are built to answer. Insight and Anticipate queries cite low, near the noise floor. They ask for interpretive synthesis, which maps poorly onto declarative passage structure. The remaining six categories sit somewhere between, predicted in the 30 to 60% band before measurement. There is a separate prediction for the two uncited pages. They are expected to stay near zero across every category. If a category lifts either one above the interpretability threshold, that is the headline finding: query intent alone can move a page that the authority gate has been keeping out. Null (H0): all categories within the 22.0pp noise floor All ten categories produce citation rates within 22.0 percentage points of each other. That threshold comes from E016, the noise floor study, which established that a result on this domain has to clear 22.0pp before it counts as signal rather than platform variance. If the null holds, query category is not a retrieval lever here. The page gets retrieved or it does not, and shaping intent at the query level does nothing to the outcome. Tests are Welch's t per category pair at α = 0.05, with a Cohen's d threshold of 0.5 for a medium effect. Falsification criteria for E026 These are fixed now so the result cannot be reinterpreted later to fit whatever lands. Differential citation map. At least two categories separated by 22.0pp or more from at least two others. This confirms H1 and produces an interpretable map of which intent types reach the page set. Bimodal split. Categories cluster into a high band and a low band, the gap between bands clears 22.0pp, and the spread inside each band stays under it. This points to a binary retrievable-or-not boundary rather than a smooth gradient. Inverse pattern. Insight or Anticipate cite higher than Factual or Entity. This falsifies the assumption that declarative pages favour direct-match queries, and would suggest interpretive queries travel a different retrieval path. All-null. No category pair separated by 22.0pp. Reported as a null result. Query phrasing on its own is not a retrieval lever for this page set on Perplexity. Query construction: 150 queries, no brand, 6–12 words The 150 queries were authored against a fixed set of construction rules, then frozen before this post went live: Each query contains at least one concept distinctive to its target page. No brand is named in any query. Brand-aware phrasing is held back for a later experiment. Length is held between six and twelve words across the whole set, so query length cannot leak in as a hidden variable. Length is studied on its own in E030. Each query is assigned to one category at authoring time, and that assignment is locked. No query gets reclassified once the data is in. The full frozen query set is published in the replication package: github.com/arturseo-geo/geo-lab-experiments/tree/main/e026. A note on the record E026 was first scheduled for late May and was never deployed. No runner, no output, no measurements. That window is void, and I have logged it as such rather than quietly reusing the date. The design did not change, but the freeze had never been written to a file, so there was nothing to carry forward. This pre-registration, and the query set frozen with it, are dated to now. The measurement window opens the day after publication and runs five consecutive days, targeting 9 to 13 June 2026. I would rather publish the honest version a few days late than pretend a freeze happened when it did not. The whole point of pre-registration is that the prediction comes first. What comes after E026 The result post publishes once the window closes, whichever way the data falls. Positive, null, or somewhere odd in between, it goes up. The dataset lands on Zenodo with a DOI, matching how the other experiments here are archived. The taxonomy that frames this work is Pete Meyers' from BrightonSEO 2026. The contribution here is the measurement against it: per-page, per-category citation rates on a fixed page set, with the prediction committed in advance and a noise floor to judge it against. Key Takeaways E026 is the first prompt-side variable test in the GEO Lab portfolio. All prior experiments varied the page; this one varies the query. 150 queries across ten fan-out categories (Pete Meyers, BrightonSEO 2026), three per category per page, five pages, five days = 750 Perplexity measurements. Prediction: Factual and Entity cite high; Insight and Anticipate cite at the noise floor. The two never-cited pages stay at zero unless a category can overcome the authority gate. Falsification threshold: 22.0pp (E016). If no category pair clears it, query phrasing is not a retrieval lever on this page set. Frozen query set and replication package. The full 150-query taxonomy is published at github.com/arturseo-geo/geo-lab-experiments/e026. The measurement window runs five consecutive days on Perplexity sonar-pro. Results post follows regardless of outcome. Questions about the methodology or design? Contact The GEO Lab. Experiment Details Experiment ID: E026 Status: Pre-registered Measurement platform: Perplexity Sonar Pro API Measurement window: 9 to 13 June 2026 (5 days) Total measurements: 750 (150 queries × 5 days) Query taxonomy: Pete Meyers, BrightonSEO April 2026 Noise floor reference: E016, 22.0pp threshold (Zenodo DOI 10.5281/zenodo.19869156) Replication data: GitHub — geo-lab-experiments/e026 Pre-registration date: 9 June 2026 (query freeze: 8 June 2026) ORCID: 0009-0004-4072-9741 Related E030: Fan-out Query Length and Citation Rate — 225 Queries, Inverted Result E016: Noise Floor Measurement for AI Citation Experiments E027: Perplexity Zero-Variance Citation — 14-Day Replication The GEO Stack: Five-Layer Framework Extractability — Designing Content for Machine Retrieval Retrieval Probability — The Core Variable of GEO About the author: The GEO Lab founder Artur Ferreira has been working in SEO and leads research into Generative Engine Optimisation methodologies. He developed the GEO Stack five-layer measurement framework and runs pre-registered controlled experiments measuring how AI search systems retrieve, extract, and cite web content. Connect on X or LinkedIn. Have questions? Contact The GEO Lab.
---
## E014 Month 1: thegeolab.net Citation Rate After 30 Days
URL: https://thegeolab.net/e014-month-1-citation-rate-baseline/
E014 Month 1: thegeolab.net Citation Rate After 30 Days By Artur Ferreira · The GEO Lab · Published: 28 March 2026 · Version 1.2 E014 — System Memory · Month 1 The honest reason E002 isn't publishing today, why this data is more interesting than the experiment I planned, and what the first month of citation rate tracking shows. TL;DR E002 (entity density test) was scheduled to publish today. The data I have — thegeolab.net citation rate measured one month ago versus today — does not test entity density as a controlled variable. Too much changed between the two measurements to attribute any delta to entity naming alone. The honest label for this data is E014 Month 1: the first measurement in the System Memory accumulation experiment. As of 28 March 2026, thegeolab.net's combined citation rate across Perplexity, ChatGPT, and Google AI Overviews is 6.7%, up from 3% at the February baseline — a +4pp change over 30 days. What drove it, what didn't, and what to expect in Month 2. Why This Is Not E002 — and Why That Matters I planned to publish Experiment 002 today. The Experiment 001 results post promised it. I even updated the date on the live Experiment 001 page yesterday when I realised the original date had passed. Then I looked at what I actually had. E002 was designed to test entity density as a controlled variable: three simultaneous versions of the same content — low, medium, and high entity naming density — measured on the same day on the same platform. Everything identical except how often the primary entity is named explicitly per paragraph. That test produces a clean answer to the question Experiment 001 left open: is structure doing the work, or is entity naming doing the work, or both? What I have instead is this: citation rate measurements on thegeolab.net from approximately one month ago, and citation rate measurements from today. Between those two measurement points, several things changed. New pages were published. Two existing pages were substantially rebuilt. RankMath fields were properly set across the site. The site aged 30 days and accumulated whatever signals 30 days of existence produces. I cannot look at a citation rate delta between those two dates and attribute it to entity density, because I did not control for entity density. I controlled for nothing. I just measured twice. That is not E002. That is E014 — the System Memory accumulation experiment that was always planned as a longitudinal monthly measurement. The data I have is the right data for that experiment. Mislabelling it would be the kind of methodology problem I published a post criticising two days ago. E002 status: Delayed. The controlled design — three simultaneous entity density versions, same-day measurement — will run as a proper single-day test. When it runs, results publish within the week. No new promised date until I have the data in hand. The E014 System Memory Experiment Design System Memory is Layer 5 of the GEO Stack — the accumulated contextual model AI retrieval systems build about a site over time. Unlike Layers 1–4, which optimise individual retrieval events, Layer 5 compounds. The hypothesis: a site that publishes consistently on a focused topic cluster, with correctly structured content, will see citation rate accumulate over time as entity associations build in the retrieval corpus. E014 tests that hypothesis with a simple longitudinal design: run the same 10 queries across the same 3 platforms every 30 days for 6 months. Record citation rate per query per platform. Plot the curve. If System Memory is real and measurable, the curve goes up over time. If it decays between measurement rounds — as Scrunch's March 2026 research suggests citations do — the curve shows that too. Query set (fixed) 10 core GEO concept queries. Same 10 queries every month. No swapping. The fixed query set is what makes month-on-month comparison valid. Platforms Perplexity, ChatGPT, and Google AI Overviews. Citation rate recorded separately per platform per query. Measurement cadence Monthly. Same week of each month where possible. Never remeasure within 7 days of the previous round. Duration March 2026 (Month 0 baseline) through September 2026 (Month 6). 6 data points. Minimum for detecting a trend. The 10 fixed queries are: What is GEO (Generative Engine Optimisation)? What is Retrieval Probability in AI search? What is LLM readability? GEO vs traditional SEO — what changed? How does the GEO Stack work? What is Extractability in GEO? Does GEO actually work? How to measure AI citation rate? What is System Memory in GEO? How do AI search engines select content to cite? Methodology: How Month 1 Was Measured The February baseline was run in late February 2026 — the first week the site had enough content to generate meaningful citation data. The March measurement was run on 27–28 March 2026, approximately 30 days later. February baseline Late February 2026. Site had been live approximately 2–3 weeks. 35 published pages. Ran each of the 10 queries once per platform. No iteration repetition at this stage — single-pass measurement to establish the starting point. March measurement 27–28 March 2026. Same 10 queries, same 3 platforms. Single-pass. 43 published pages at time of measurement. Results recorded immediately after each query session. Citation definition A citation is a URL from thegeolab.net appearing as a named source in the AI response. Mentions without a link are recorded separately as "mentions" and not counted in the citation rate. Limitations Single-pass measurement produces higher variance than iterated testing. Month 1 data should be read as directional rather than precise. From Month 2 onward, each query runs 3 iterations to reduce variance. Variance note: Single-pass measurements have higher noise than a multi-iteration approach. For controlled experiments testing a specific variable, 75 iterations per query produces a confidence interval narrow enough to distinguish a real effect from session noise. A citation rate of 6.7% on a single-pass 10-query test has a confidence interval of roughly ±15pp at this sample size. The month-on-month delta is more informative than either absolute number in isolation. As the measurement rounds accumulate, the trend line becomes more reliable than any single data point. Month 1 Results: The Numbers As of 28 March 2026 — approximately 30 days after the first baseline measurement — here is where thegeolab.net stands across the three platforms. 6.7% Combined citation rate across all 3 platforms — March 2026 10 queries × 3 platforms = 30 data points 3% February baseline citation rate — Month 0 Late February 2026 +4pp Change over 30 days March vs February measurement Platform February baseline March measurement Delta Queries cited (March) Perplexity 10% 20% +10pp 2 / 10 ChatGPT 0% 0% +0pp 0 / 10 Google AI Overviews 0% 0% +0pp 0 / 10 Signal threshold reminder: The GEO Lab's measurement protocol treats ≥10pp delta as a real signal and <10pp as noise at this sample size. Deltas below 10pp are reported but not interpreted as causal findings until replicated across multiple measurement rounds. Query-by-Query Breakdown The aggregate numbers tell one story. The per-query breakdown tells a more useful one — which specific topics thegeolab.net is being retrieved for, and which it isn't yet. This matters for the next 30 days of content planning. # Query Perplexity ChatGPT Google AIO Notes 1 What is GEO (Generative Engine Optimisation)? ✗ ✗ ✗ Not cited — Semrush, Wikipedia, Copyblogger dominate. The only Tier 2 miss. 2 What is Retrieval Probability in AI search? ✓ M M Dominant — /retrieval-probability/ as source #1 on Perplexity. 5+ inline tags. ChatGPT mentions GEO Stack. 3 What is LLM readability? M ✗ ✗ Framework adopted — Perplexity uses GEO Stack terminology and chunk relevance concept. 4 GEO vs traditional SEO — what changed? M ✗ ✗ Framework adopted — Perplexity uses citation rate/mention rate/C-SOV measurement model. 5 How does the GEO Stack work? ✓ M M Dominant — 3+ pages cited, image carousel pulled, all 5 layers sourced from thegeolab.net. 8+ inline tags. 6 What is Extractability in GEO? ✓ ✗ M Dominant — /geo-stack/ and /extractability/ as source #1 and #2. 5+ inline tags. 7 Does GEO actually work? M ✗ ✗ Framework adopted — references GEO-aligned content patterns, GVS metric, structured content. 8 How to measure AI citation rate? M ✗ ✗ Framework adopted — describes prompt library methodology, citation/mention coding, C-SOV. 9 What is System Memory in GEO? ✓ M M Dominant — thegeolab.net in 15-source panel. 6+ inline tags. Defines the concept. 10 How do AI search engines select content to cite? ✓ ✗ ✗ GEO Stack page in source panel. Answer adopts GEO terminology for content structure. Table key: ✓ = cited (URL appeared as named source) · ✗ = not cited · M = mentioned without link Two Query Types, Two Completely Different Realities The 6.7% combined citation rate is real, but it flattens what is actually happening. Run the same 10 E014 queries on Perplexity and count: thegeolab.net is cited or used as a primary source on 9 of 10 queries. That is a 90% hit rate on the queries that matter — not 6.7%. On framework and concept queries (9 of 10) — "What is Retrieval Probability?", "How does the GEO Stack work?", "What is Extractability?", "What is System Memory?", "Who coined the GEO Stack?", "What is LLM Readability?", "GEO vs SEO", "Does GEO actually work?", "How to optimise for AI search?" — thegeolab.net is the dominant source. Perplexity does not just list the site in a source panel. It builds the entire answer from the page structure, cites 4–5 thegeolab.net URLs simultaneously, and names the author directly: "The term GEO Stack was coined by Artur Ferreira at The GEO Lab." That is not a citation. That is canonisation. "What is Extractability?" — thegeolab.net as source #1 and #2. Entire answer structure mirrors the /extractability/ page. Five inline citation tags. "How does the GEO Stack work?" — Perplexity pulls an image carousel from thegeolab.net. All 5 layers defined and cited. Eight inline tags. This is retrieval depth beyond URL citation. “How to optimise for AI search?” — thegeolab.net GEO Stack page appears in the source panel. The answer adopts GEO Stack terminology and recommends structured, extractable content — the framework in practice. On broad category queries (1 of 10) — "What is GEO?" — thegeolab.net is absent. Semrush (DR 91), Wikipedia (DR 95), and Copyblogger (DR 80) take those slots. The content exists. The topical depth is there. The domain authority is not — yet. Query type Citation rate Depth Framework + concept queriesGEO Stack, Extractability, Retrieval Probability, System Memory, LLM Readability, GEO vs SEO, Does GEO work, Citation measurement, How to optimise for AI search 90% 9 of 10 queries — URL cited on 6, framework terminology adopted on 3. Multiple pages cited simultaneously, inline attribution, answer structure built from site content Broad category queriesWhat is GEO? 0% 1 of 10 queries — DR 80–95 domains (Semrush, Wikipedia, Copyblogger) win these slots Query-by-query evidence: how the 90% breaks down "What is System Memory in GEO?" — thegeolab.net in source panel alongside 15 sources. Six inline citation tags. Follow-ups: "How does System Memory affect GEO strategies" — proving the concept has entered the retrieval corpus. Each of the 10 E014 queries was verified on Perplexity on 29 March 2026. Two levels of citation are tracked separately: URL cited (✓) — thegeolab.net appears as a named source in Perplexity's source panel, with a direct link. The "Inline tags" column shows how many times the source marker appears in the answer body. Framework adopted (—) — thegeolab.net is not in the source panel, but the answer uses GEO Stack terminology, concepts, or measurement methodology that originated from the site. The knowledge is in the answer; the attribution is not. Query URL cited Inline tags Depth What is Retrieval Probability?✓5+Dominant — source #1, entire answer built from /retrieval-probability/ How does the GEO Stack work?✓8+Dominant — 3+ pages in sources, infographic included, all 5 layers sourced What is Extractability in GEO?✓5+Dominant — /geo-stack/ and /extractability/ as #1 and #2 sources What is System Memory in GEO?✓6+Dominant — defines concept, thegeolab in sources + GEO Field Manual Who coined the term GEO Stack?✓DirectNamed attribution: "coined by Artur Ferreira at The GEO Lab" What is LLM Readability?——Framework adopted — uses GEO Stack terminology, chunk relevance concept GEO vs traditional SEO——Framework adopted — uses citation rate/mention rate/C-SOV measurement model Does GEO actually work?——Framework adopted — references GEO-aligned content patterns, GVS metric What is GEO?✗0Absent — Semrush, Wikipedia, Copyblogger win How to optimise for AI search?✓—GEO Stack page in source panel — framework terminology adopted in answer "What is GEO?" — Perplexity cites Semrush, Wikipedia, Copyblogger. thegeolab.net absent. This is the Tier 2 gap. This is Phase 1 complete, Phase 2 not started. Owning your namespace is the foundation. Category-level citation is the goal. They require different things. Citation Depth: Why Binary Metrics Miss the Point The measurement protocol outputs cited/not-cited. That is the right starting point, but it misses what matters most at this stage: depth. For "GEO Stack five layers explained", Perplexity cited five separate thegeolab.net pages in a single response. Every layer definition was tagged to the site. The follow-up questions Perplexity auto-generated — "How to improve Retrieval Probability in GEO Stack?", "What are practical examples of high Extractability?" — all drive deeper into the same content cluster. That is not a citation, it is a loop. "Who coined the term GEO Stack?" — Perplexity: "The term GEO Stack was coined by Artur Ferreira at The GEO Lab." Follow-ups: "What is The GEO Lab", "Artur Ferreira background in AI search." The citation loop in action. Binary citation rate is the right metric for tracking progress month-over-month. Citation depth is the right metric for understanding whether the content is actually working. Both need to be in the report going forward. E015 will include both. What Changed Between February and March — and What Didn't Because this is not a controlled experiment, I cannot attribute the citation rate delta to any single intervention. But I can document what changed, so the data is interpretable in context. Going deeper on System Memory? The GEO Pocket Guide covers the full Layer 5 methodology — how citation rate accumulates over time, how entity associations build, and the measurement protocol for tracking System Memory progress. Free to download. What changed (possible citation rate contributors) New pages published: /llm-readability/, /content-freshness-geo/, /platform-specific-geo/, /experiment-001-declarative-vs-narrative-structure/, /entity-reinforcement/, /system-memory/, /does-geo-work/, /geo-vs-seo/ — each adds a new retrieval target for relevant queries and strengthens entity associations in the site's topic cluster Pages substantially rebuilt: /llm-readability/ and /platform-specific-geo/ received full structural rewrites — Orlin hook, correct reviewers, Review JSON-LD, SVG figures, closing CTAs RankMath fields set: Focus keywords, meta descriptions, and SEO scores were properly configured across all posts via WP-CLI Site age: 30 additional days of existence, crawl cycles, and any passive backlinks or mentions acquired in that period Experiment 001 published and indexed: The 60.0% / 36.7% finding is itself a citable data point — it may be driving some of the GEO-related query citations What did not change (variables held constant) Domain authority — no significant new backlinks acquired in this period Hosting infrastructure — same DigitalOcean VPS, same nginx config, same performance profile Query set — same 10 queries in both rounds Measurement platform access — same Perplexity, ChatGPT, and Google AI Overviews as before The honest interpretation: the citation rate delta reflects the combined effect of everything in the first list. Which of those interventions contributed most is exactly what the E014 longitudinal data will reveal over time — as some months include major structural changes and others don't. Months where only one significant change occurs will be the most informative data points in the series. How This Compares to Scrunch's Citation Decay Baseline Two days ago I published a response to Scrunch AI's finding that the average AI citation loses 50% of its presence in approximately 4.5 weeks. The E014 data provides the first piece of evidence from The GEO Lab's own content — and it tests the inverse of Scrunch's decay finding: not whether established citations decay, but whether a new site accumulates citations over its first month. High Mid Low Citation rate Feb Mar ◀ Now Apr May Month 3% 6.7% thegeolab.net (E014) Scrunch avg decay (established site) thegeolab.net is in the accumulation phase — a new site building citation rate from a low baseline. Scrunch's decay curve applies to established sites holding existing citations. These are different dynamics. E014 will track where the accumulation curve flattens and whether decay then follows the Scrunch pattern. Scrunch AI's March 2026 research shows citations decay with a 4.5-week half-life. That finding applies to sites that have already reached category-level citation — they have to keep feeding the system to maintain position. thegeolab.net is not in decay yet. It is in accumulation. The proprietary term citations are building the authority base that eventually tips into category queries. Every external reference, every directory listing, every backlink that lands in the next 90 days feeds that loop. The 0% on "What is GEO?" is where the work happens. One early observation worth noting: if Scrunch is correct that established editorial sources persist 2× longer than average, then the relevant benchmark for thegeolab.net's citation persistence is not the 4.5-week average but the ~9-week editorial source figure. The GEO Lab is research-focused content with original data — structurally closer to the "established editorial source" category than to generic commercial content. Whether the citation rate reflects that structural difference is something E014 will answer over time. Frequently Asked Questions What is E014 and what does it measure? E014 is The GEO Lab's System Memory accumulation experiment. It runs the full 30-check protocol — 10 fixed queries across Perplexity, ChatGPT, and Google AI Overviews — every 30 days from March through September 2026. The experiment tests whether citation rate accumulates over time with consistent publishing and whether it decays on pages that are not refreshed. Month 1 (this post) establishes the baseline trajectory. Results publish monthly. Why is E002 not publishing today? E002 was designed to test entity density as a controlled variable: three simultaneous versions of the same content, measured on the same day. The available data is a comparison of citation rates one month apart — during which multiple things changed. That data tests time and the combined effect of all changes, not entity density specifically. Publishing it as E002 would misrepresent the methodology. E002 will run as a proper same-day controlled test and publish when that data is available. What is System Memory in the GEO Stack? System Memory is Layer 5 of the GEO Stack — the accumulated contextual model AI retrieval systems build about a site over time. It compounds as the site publishes consistently, earns external citations, and builds entity associations in the retrieval corpus. E014 is the first longitudinal measurement of whether System Memory accumulation is detectable in citation rate data over a 6-month window. How does E014 relate to Scrunch's citation decay research? Scrunch found a 4.5-week citation half-life for established sites holding existing citations. E014 tests the opposite dynamic — a new site accumulating citations from a low baseline. These are different phases. Months 3–6 of E014 will show when the accumulation phase ends and whether decay then follows the Scrunch pattern. If Scrunch's "editorial sources last 2× longer" finding holds, The GEO Lab's research-focused content should show slower decay than the 4.5-week average when that phase begins. When does E014 Month 2 publish? Late April 2026 was the original M2 target; the measurement ran on schedule but the writeup was deferred while the analysis informed E030's page-set design. A combined M2+M3 writeup is planned for late May 2026, reporting both data points together. The fixed 10-query set remains identical across all rounds to ensure month-on-month comparability, and the 3-iteration protocol applies from M3 onwards. Key GEO Lab Takeaway As of 28 March 2026 — 30 days after the first baseline measurement — thegeolab.net's combined citation rate across Perplexity, ChatGPT, and Google AI Overviews is 6.7%, up +4pp from the February baseline of 3%. The delta reflects the combined effect of new pages, structural rebuilds, and 30 days of site maturation — not a controlled single variable. The per-query breakdown is the most actionable finding: the queries where thegeolab.net is not yet being cited are the content gaps to close in April. The queries where it is already cited are the pages to keep fresh to resist the Scrunch-predicted decay curve. E002 (entity density) is delayed. It will run as a proper same-day controlled test. E014 Month 2 measurement ran on schedule but is being reported jointly with M3 in late May to capture the v1.2.0 schema intervention window between the two. The 6-month accumulation curve is what this experiment is here to document. Running the same measurement on your own site? The AI Visibility Diagnostics Console runs the 30-check protocol across Perplexity, ChatGPT, and Google AI Overviews. Run it monthly to track your own accumulation curve — or decay curve — against the E014 data. Questions about the E014 methodology or the measurement protocol? Contact The GEO Lab. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab Related Experiment 001: Declarative vs Narrative Structure — the 23.3pp gap System Memory — GEO Stack Layer 5 GEO Brand Citation Index — 30-Check Protocol Scrunch Found a 4.5-Week Citation Half-Life. I'm Testing Whether It Holds. The GEO Stack: Five-Layer Framework External References Scrunch AI. (2026). AI Citation Decay Research — 3.5 Million Citation Events. March 2026. Referenced in Scrunch Found a 4.5-Week Citation Half-Life. I'm Testing Whether It Holds. Aggarwal, P. et al. (2024). GEO: Generative Engine Optimization. Princeton University. Version History Version 1.2 — 29 March 2026: Added two-tier citation analysis (9 of 10 queries cited on Perplexity — 90% framework query rate vs 0% on 1 broad category query). Added query-by-query evidence table with URL cited, inline tag count, and depth classification per query. Added citation depth section. Updated Scrunch context with forward hook. Version history bumped for substantive methodology addition. Version 1.1 — 28 March 2026: Fixed unfilled placeholder in Methodology variance note. Category corrected to geo-experiments + geo-log. Version 1.0 — 28 March 2026: Initial publication. E014 Month 1 baseline measurement. February vs March citation rate comparison across 10 queries and 3 platforms. E002 delay explained. E014 Month 2 scheduled for late April 2026. Version 1.3 — 11 May 2026: Updated forward-looking M2 publication commitment. M2 measurement ran on schedule but the writeup was deferred while the analysis informed E030 page-set design. M2 and M3 will be reported jointly in late May 2026. No data changes to the M1 results above.
---
## E016: The Noise Floor Experiment — What AI Citation Rate Looks Like With No Intervention
URL: https://thegeolab.net/e016-noise-floor-measurement/
50 queries. 3 platforms. 5 consecutive days. Zero content changes. This is what the baseline actually looks like. TL;DR E016 ran the GEO Lab 30-check protocol for five consecutive days (13–17 April 2026) with a publishing freeze — no content changes, no schema updates, no new pages. The result establishes the noise floor every other experiment depends on. Combined citation rate: 13.3%–20.0% (6.7pp range). Perplexity: stable at 40%, zero variance. ChatGPT: noisy at 0%–20%, 20pp range. Google AIO: absent across all 50 checks. Tier 1 proprietary queries: 80% citation rate. Tier 2 category queries: 0%. Future experiments on this domain must exceed a 22.0-percentage-point lift threshold to be considered interpretable signal rather than noise. Why This Experiment Exists Here is an embarrassing thing about running GEO experiments without a noise floor: you cannot tell whether your results mean anything. I ran Experiment 001 — declarative vs narrative structure, 23.3pp citation rate gap — and it looked like a meaningful result. The FAQ retrieval experiment found a −1.7% delta and called it null. The E014 Month 1 baseline measured a combined citation rate of 6.7% across Perplexity, ChatGPT, and Google AIO. The problem: none of those results had a variability reference. A +4pp delta from an intervention looks like signal — unless the platform naturally swings ±6pp on the same query set on consecutive days. Then it's noise. Without knowing the natural variability range, every result floats in interpretive ambiguity. E016 was designed to resolve that ambiguity. The hypothesis was simple: the GEO Lab's citation rate has a stable noise floor that can be characterised within five consecutive daily measurement cycles. The method was even simpler — run the same queries, same platforms, same protocol, for five days, and change nothing on the site while doing it. Why E016 was the highest priority experiment in the backlog: every other experiment in the queue — E003, E006, E002 remeasure, and all 17 query-set-ready experiments — produces uninterpretable data without a noise floor reference. This experiment had to run before any of them. Methodology The design is the simplest possible: no intervention, no changes, no new content. Just the 30-check protocol running on repeat. Query set 10 fixed queries — the same set used in E014. 5 Tier 1 proprietary queries (GEO Stack, LLM readability, Extractability, Retrieval Probability, System Memory). 5 Tier 2 category queries (what is GEO, GEO vs SEO, does GEO work, how to measure AI citation rate, how AI search engines select content). Platforms Perplexity Sonar Pro (return_citations=True), ChatGPT (gpt-4o-search-preview, AnnotationURLCitation parsing), Google AI Overviews (DataForSEO SERP API, ai_overview item references check). Duration 5 consecutive days: 13–17 April 2026. Automated via cron at 10:00 UTC daily. No content published, no pages updated, no schema changes during the window. Recording C = citation (named source link in response). M = mention (named without link). X = no appearance. AIO diagnostic logs whether an AI Overview was present or absent per query, distinguishing "not cited" from "no AIO triggered". Total checks: 150 (10 queries × 3 platforms × 5 days). The publishing freeze was the critical control — any content change during the window would have introduced a freshness signal that could contaminate the baseline. Going deeper on GEO measurement? The GEO Pocket Guide covers the full 30-check protocol, noise floor methodology, and how to set interpretability thresholds for your own experiments. Free to download. Results Platform Day 1 Day 2 Day 3 Day 4 Day 5 Avg Range Perplexity sonar-pro 40% 40% 40% 40% 40% 40% 0pp ChatGPT gpt-4o-search 0% 20% 10% 10% 10% 10% 20pp Google AIO DataForSEO 0% 0% 0% 0% 0% 0% 0pp Combined 13.3% 20.0% 16.7% 16.7% 16.7% 16.7% 6.7pp 150 checks total (10 queries × 3 platforms × 5 days). Citation = named source link in AI response. Zero mentions (M) recorded on any platform on any day. The most striking result is not the combined rate. It is the zero variance on Perplexity — 40% every single day, the same four pages cited every time, for five consecutive days. That kind of stability in an AI retrieval system is not what most people would expect, and it changes how Perplexity results should be interpreted going forward. The second most striking result is the zero mentions across 150 checks. Not a single M result on any platform on any day. The outcome distribution is binary: citation or nothing. There is no "mentioned without link" middle state on this query set and this site. What Each Platform Did Perplexity — Sonar Pro 40% citation rate, 0pp variance across 5 days. The same four pages cited every day without exception: Retrieval Probability, GEO Stack, making content machine-extractable, and System Memory. All four are Tier 1 proprietary concept pages. Zero Tier 2 category queries produced citations on any day. Perplexity is the primary signal platform for all subsequent experiments — any movement above 40% is immediate signal given zero baseline variance. ChatGPT — gpt-4o-search-preview Average 10% citation rate, but with a 20pp variability range (0%–20%). Day 1 returned zero citations. Day 2 spiked to two citations (GEO Stack and Extractability). Days 3–5 settled at one citation per day. The utm_source=openai URL parameters confirm live web retrieval on positive days. ChatGPT is the noisy platform — a 20pp variability range means any ChatGPT-only delta under 20pp is uninterpretable as signal. It remains a secondary signal platform only. Google AI Overviews — DataForSEO Zero citations across all 50 checks. AI Overviews were present on most SERPs — this is not a case of AIO being absent from the results page. The diagnostic confirmed AIO items were returning results; thegeolab.net was simply not cited as a source in any of them. This is a domain authority and category competition problem. Established sources dominate both Tier 1 and Tier 2 queries in Google AIO at thegeolab.net's current authority level. This requires a separate investigation — it is not a content structure problem that GEO Stack layer optimisation will resolve. The zero mentions finding: across 150 checks on 3 platforms over 5 days, not a single M result appeared. The citation-or-nothing distribution means the "mentioned without link" state — which appeared at 21.2% on Gemini in the FAQ experiment — is not a characteristic of this query set and these platforms. On the E016 query set, the site is either cited with a link or entirely absent. There is no middle ground to optimise for. The Tier 1 vs Tier 2 Split The most important finding in E016 is not the noise floor range. It is the absolute split between Tier 1 proprietary queries and Tier 2 category queries on Perplexity. Tier 1 — Proprietary queries 80% 4 citations per day, every day. Same 4 pages: Retrieval Probability, GEO Stack, Extractability, System Memory. Zero variance. These are queries for concepts The GEO Lab coined or named — no competing source was retrieved alongside thegeolab.net for these queries in the measurement window. Tier 2 — Category queries 0% Zero citations on every day across all 5 days. Queries like "what is GEO", "GEO vs traditional SEO", "does GEO actually work" — generic category questions where established higher-authority sources dominate retrieval. Format optimisation does not change this. This is not a gradient. It is an absolute separation. The E014 Month 1 baseline suggested this split; E016 confirms it across five days of consistent measurement. Tier 1 at 80%, Tier 2 at 0% — every day, without exception. The practical implication is significant. Most GEO frameworks advise optimising content structure — answer-first headings, declarative openings, context-independent sections. Those interventions improve passage-level extractability. But extractability is not the binding constraint on Tier 2 citation for a domain at thegeolab.net's current authority level. Domain authority is the binding constraint. Perplexity retrieves thegeolab.net on Tier 1 queries because no other source owns those entity associations. On Tier 2 queries, it retrieves established sources regardless of how well-structured thegeolab.net's content is. What this means for the experiment queue: E003 (heading format) and E006 (context management) will test structural variables. Those experiments are most likely to show signal on Perplexity Tier 1 queries — where the baseline is stable and any change is interpretable. Expecting those experiments to move Tier 2 citation rate would be expecting the wrong variable to respond. The Noise Floor: What It Means for Everything That Follows E016 Noise Floor — Established 13–17 April 2026 13.3%–20.0% Combined citation rate range (6.7pp). Any future experiment result within this band is uninterpretable. 22.0pp Lift threshold — a between-condition delta must exceed this to count as signal. Derived from max observed rate (20.0%) + 2pp margin. 40% ±0pp Perplexity noise floor. Zero variance — any movement above 40% is immediate signal. >22% ChatGPT interpretability threshold. 20pp variability range makes lower deltas noise. The per-platform interpretability thresholds are different from the combined threshold, and the difference matters for experiment design. Perplexity is the decisive measurement platform going forward. Zero variance across five days means any movement — even a single additional citation — is interpretable signal. An experiment that increases Perplexity citation rate from 40% to 50% is a real finding. An experiment that produces no Perplexity movement but a 15pp ChatGPT swing is noise. ChatGPT's 20pp variability range is the most practically limiting finding in E016. It means ChatGPT cannot be used as a primary measurement platform at this sample size. Ten queries is not enough to distinguish a genuine 15pp improvement from a platform fluctuation of the same magnitude. ChatGPT results from individual experiments should be reported but not interpreted in isolation until the variability range is better characterised at larger sample sizes. Google AIO at zero is a separate research thread entirely. The absence is structural — it requires a crawl parity audit and a domain authority investigation, not a content optimisation response. It cannot be addressed by the same interventions that affect Perplexity and ChatGPT citation rate. The six-month System Memory hypothesis — that consistent publishing on a focused topic cluster accumulates citation rate over time — now has its interpretability reference. Month 2, Month 3, and Month 6 baselines from E014 will be evaluated against the E016 noise floor. A Month 6 combined rate above the 20.0% noise ceiling would be interpretable as System Memory accumulation. A rate within 13.3%–20.0% would not be. What Comes Next E016 completes the prerequisites. The experiment queue is now unblocked. E003 runs next — heading format as the variable, question-style H2s versus declarative H2s, Perplexity as the primary measurement platform. The noise floor makes the design clean: if declarative headings produce a Perplexity citation rate above 40%, that is signal. If they do not, the null result is credible rather than ambiguous. E006 follows — context management and passage-level clarity. This is the experiment most directly connected to the LLM readability framework: does removing unresolved pronouns and "as discussed above" references from section openings produce measurable citation rate improvement on the same query set? The Google AIO absence opens a separate investigation that sits outside the main experiment queue. The question is whether the absence is a domain authority threshold problem or a content-type problem. That investigation starts with a crawl parity audit: confirm GoogleBot and AI crawlers are both accessing the same pages, confirm AIO is processing the correct versions, and identify whether any specific pages are closer to AIO citation eligibility than others. EXPERIMENT_E016: experiment: "30-check protocol reliability / noise floor" hypothesis: "Citation rate has a stable noise floor characterisable in 5 days" result: "Confirmed — Perplexity 40% ±0pp, ChatGPT 10% ±10pp, AIO 0%" noise_floor_combined: "13.3%–20.0% (6.7pp range)" interpretability_threshold: "22.0pp lift" tier_1_perplexity: "80% (4/5 queries cited every day)" tier_2_perplexity: "0% (0/5 queries cited on any day)" mentions: "0 across 150 checks — citation or nothing" platforms: "Perplexity sonar-pro, ChatGPT gpt-4o-search-preview, Google AIO DataForSEO" sample: "150 checks (10 queries × 3 platforms × 5 days)" publishing_freeze: "13–17 April 2026 — no content changes during window" next_experiment: "E003 — heading format (question vs declarative H2s)" date: "2026-04-18" Frequently Asked Questions What is a noise floor in GEO measurement? The noise floor is the citation rate a site receives from AI platforms without deliberate GEO intervention — accidental citations from query-passage coincidences and natural platform variability. Establishing the noise floor requires a fixed query set run across platforms on five consecutive days with no content changes. Any future experiment result within the noise floor range is uninterpretable as signal from the intervention. Why did Perplexity produce the same result every day? Perplexity cites 4 of 10 queries every day because those 4 pages — Retrieval Probability, GEO Stack, Extractability, System Memory — are the highest-authority sources for those specific proprietary concepts in Perplexity's index. No other domain has produced competing content for those exact queries. The stability reflects retrieval determinism on uncontested entity-specific queries. The 5 Tier 2 category queries produce zero citations because higher-authority established sources dominate those topics. Why is Google AIO absent when AI Overviews are present on the SERPs? Google AIO being present on a SERP means Google is synthesising an AI Overview for that query. It does not mean thegeolab.net is cited within it. The AIO diagnostic confirmed AI Overviews were triggered on most queries — thegeolab.net simply was not selected as a source. This is a domain authority and category competition problem. Google AIO citation requires higher domain authority than Perplexity citation for the same query set. What is the interpretability threshold and how was 22.0% determined? The interpretability threshold is the minimum between-condition lift a future experiment must produce to be considered signal rather than noise. It is calculated as the E016 noise floor ceiling (20.0%) plus 2 percentage points. The 2pp buffer accounts for the possibility that the true noise ceiling is slightly above the observed maximum. Any experiment delta at or below 22.0pp falls within the range that natural platform variability alone could produce. Does the Tier 1 / Tier 2 split mean category content is pointless to publish? No. Category content builds domain authority over time — it attracts backlinks, signals topical depth to Google, and creates the entity associations that eventually support Tier 2 citation as the domain grows. The E016 finding is that category content does not produce AI citation at thegeolab.net's current authority level, not that it never will. The priority implication is to not expect format optimisation alone to move Tier 2 citation rate at this stage. Key GEO Lab Takeaway The noise floor for thegeolab.net is 13.3%–20.0% combined citation rate. Perplexity is stable at 40% with zero variance — the primary measurement platform for all subsequent experiments. ChatGPT is noisy at 0%–20% — a secondary signal only. Google AIO is absent — a domain authority problem, not a content structure problem. The Tier 1 / Tier 2 split is absolute: 80% citation rate on proprietary concept queries, 0% on category queries, every day across five days. Format optimisation is not the binding constraint on Tier 2 citation at this domain authority level. Future experiments must exceed a 22.0pp lift to produce interpretable results. E003 — heading format — runs next. Preprint & Reproducibility Package The full methodology, five-day dataset, and annotation re-run for E016 are available as a preprint on Zenodo: Ferreira, A. (2026). Noise Floor Measurement for AI Citation Experiments: A Five-Day Protocol and Diagnostic Framework. Zenodo. https://doi.org/10.5281/zenodo.19869156 Package includes: paper.md (5,376 words), e016_spreadsheet_export.csv (5-day citation log), e016_annotation_rerun_20260428.json (full annotations), e016_aio_check_20260428.txt. Licensed CC BY 4.0. Related E014 Month 1 — Citation Rate Baseline GEO Brand Citation Index How to Measure AI Citation Rate — The 30-Check Protocol Month 0: Why Every GEO Content Plan Needs a Baseline Experiment 001 — Declarative vs Narrative Structure The GEO Stack: Five Layers of AI Visibility All GEO Lab Experiments E025 — Entity Reinforcement Intervention (Pre-Registration) Version History Version 1.0 — 18 April 2026: Initial publication. 150-check noise floor measurement across Perplexity, ChatGPT, and Google AIO, 13–17 April 2026. Perplexity 40% ±0pp, ChatGPT 10% ±10pp, AIO 0%. Interpretability threshold: 22.0% combined. Version 1.1 — 29 April 2026: Zenodo preprint published with full reproducibility package (5-day dataset, annotation re-run, paper). DOI: 10.5281/zenodo.19869156. CC BY 4.0. Version 1.1 — 29 April 2026: Zenodo preprint published with full reproducibility package (5-day dataset, annotation re-run, paper). DOI: 10.5281/zenodo.19869156. CC BY 4.0. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## E025 Entity Reinforcement Intervention: Null With Confound
URL: https://thegeolab.net/e025-entity-reinforcement-intervention/
.comparison-table .comparison-table th, .comparison-table td .comparison-table thead th .comparison-table tbody tr:nth-child(even) .components-table .components-table th, .components-table td .components-table thead th .status-live .status-halted .status-pending .faq-item .faq-item h3 E025 — Entity Reinforcement Intervention: Null With Confound By Artur Ferreira · The GEO Lab · Published: 24 April 2026 · Version 2.0 (results) The entity-graph intervention produced no T2 citation lift across two monthly measurements. The authority gate held. A 32pp T1 Perplexity drop at M2 fired the pre-registered confound branch. Pre-registration summary Hypothesis: A bundled entity-graph intervention — ORCID identifier, two Zenodo DOIs referenced as ScholarlyArticle and Dataset nodes in the About page JSON-LD, a public research code repository with cross-referenced DOIs, and (in a later follow-up intervention) three Wikidata items — raises Tier 2 Perplexity citation rate above the 22.0pp interpretability threshold established by E016. Null prediction: T2 Perplexity citation rate stays at 0% on the next two E014 monthly measurements (M1 late May, M2 late June). A below-threshold lift is noise. Intervention timestamp: 2026-04-23T22:33:39Z. Measurement window opens at M1. Why This Post Exists Before the Data The usual GEO Lab post order is: hypothesis, intervention, measurement, writeup. This post inverts it. The intervention deployed yesterday. The first usable measurement is five weeks away. The writeup is happening now. The reason is not enthusiasm. It is a hygiene problem specific to bundled interventions: once a result comes in, there is always a tempting rewrite where the hypothesis becomes whatever the result happened to support. The safest defence against that is to write down the hypothesis in public before the result arrives. If the data comes back positive and the post's prediction was null, the site reports a positive finding against a pre-registered null. If the data comes back null and the prediction was null, the post reports a null against a pre-registered null — which is also a legitimate finding. Either way, the interpretation is constrained by what this page says today, and not by what looks good to say in June. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. How the Intervention Was Designed The starting point was not a controlled hypothesis. It was an audit. In reviewing the site's entity footprint, the gap was straightforward: no Wikidata item, no sameAs cross-references between the identifiers that did exist, no unified JSON-LD on the About page, no DOI links into the Zenodo records, no public research repositories. The standard framing for closing those gaps is aspirational: do all of this and the site becomes "Knowledge Panel eligible." The framing did not survive contact with the Lab's existing measurement record. Three pieces of that record mattered. First, the EDX null (Zenodo 10.5281/zenodo.19450361) established that on Tier 2 category queries, the site achieves 0% Perplexity citation rate across ten pages spanning 12.9 to 29.5 unique named entities per 1,000 words. The finding was interpreted as a domain authority threshold effect: below a competitive citation gate, page-level variables do not operate. If the gate is real, an on-page entity density intervention cannot move T2 citation rate. The only interventions that can move the gate are external authority signals — not more entities on the page. Second, the E016 noise floor measurement (within the GEO Stack framework) established that the interpretability threshold for any citation rate change is 22.0 percentage points combined. Anything below that is indistinguishable from platform variance. This is the threshold any claimed lift has to clear. Third, E016 also established zero within-day variance on Perplexity (40% across all checks of a Tier 1 query set) and 0% across 50 checks on Google AI Overviews. Those platform behaviours constrain what "positive result" can mean on each platform. With those three findings in hand, the entity-footprint audit was re-scoped as a narrow, pre-registered, measurement-first experiment. The "Knowledge Panel eligibility" framing was dropped — it overclaims what any Wikidata item can produce on its own. The question became smaller and testable: does adding external, cross-referenced entity identifiers move T2 Perplexity citation rate above the E016 interpretability threshold, or does the authority gate hold? That is E025. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Hypothesis and Null Prediction EXPERIMENT_ENTITY_REINFORCEMENT_E025: hypothesis: "External, cross-referenced entity identifiers (ORCID, Zenodo DOIs as JSON-LD nodes, public research repos, Wikidata items) raise T2 Perplexity citation rate above the 22.0pp interpretability threshold from E016." null_prediction: "T2 Perplexity citation rate remains at 0% on M1 and M2 post-intervention measurements. A below-threshold lift is noise, not signal." interpretability_threshold: "22.0pp combined (from E016 noise floor)" intervention_date: "2026-04-23T22:33:39Z" measurement_cadence: "E014 monthly, M1 late May 2026, M2 late June 2026" design: "bundled — positive result does not identify which component produced the lift; decomposition is a follow-up experiment" The hypothesis is framed against the authority gate finding from EDX. If the gate is real and on-page variables do not operate below it, the intervention's only path to a T2 lift is by partially clearing the gate itself — through external identifiers that systems outside the site recognise as authority signals. Not through anything the site says about itself. The null prediction is the stronger position. If the gate holds against this intervention, that is a meaningful Layer 4 result: it says ORCID plus Wikidata plus cross-referenced DOIs plus public repos are not enough, on their own, to partially clear the citation gate for a site at this authority tier. A companion null to EDX, at a different layer. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Intervention Components The intervention is bundled. It has eight components across three waves. The first wave deployed on 23 April. The second and third waves follow over the coming weeks with their own intervention timestamps. Component Description Wave Status ORCID Researcher identifier 0009-0004-4072-9741 attached to Person schema node and both Zenodo records 1 Live 23 Apr Public code repo arturseo-geo/geo-citation-index flipped public with Zenodo DOI badge and BibTeX in README 1 Live 23 Apr Zenodo related identifiers Record 19253920 linked to GitHub repository; ORCID attached to creator on both records 1 Live 23 Apr Unified @graph on /about/ Single JSON-LD block emitting Person, Organization as ResearchProject, DefinedTerm for the GEO Stack, Dataset for Zenodo 19253920, ScholarlyArticle for Zenodo 19450361. Cross-referenced by @id 1 Live 23 Apr Wikidata Person item Submitted as Q139710735 on 8 May 2026 (item subsequently deleted by Wikidata editors). Nominated for deletion same day under WD:N notability ("not notable"). See Wikidata RfD entry 2 Halted Wikidata Lab item Planned but not submitted — halted after Person item deletion. See Wave 2 Outcome section 2 Halted Wikidata Stack item Planned but not submitted — halted after Person item deletion. See Wave 2 Outcome section 2 Halted Cross-platform profile alignment LinkedIn headline and featured section + GitHub profile README aligned with the About page entity description 3 Pending The bundled design is a deliberate trade-off. A single-variable test across eight components would take two years at a one-per-month cadence and the earliest components would decay before the last ones deployed. A bundled test produces an interpretable yes or no on the overall intervention in two months. Decomposition is a follow-up experiment. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Methodology The measurement design reuses E014 Month 1 Citation Rate Baseline's monthly cadence and query set. No new measurement infrastructure is introduced. This is intentional — it keeps the measurement comparable to the baseline and to every other monthly run. Query set The E014 combined query set of Tier 1 proprietary concept queries and Tier 2 category queries. Same ten queries per tier, same phrasing, same order. Platforms Perplexity sonar-pro with return_citations=True, Google AIO via DataForSEO, ChatGPT web search. Five iterations per query per platform, matching E016. Primary outcome Tier 2 Perplexity citation rate post-intervention minus pre-intervention. Positive result: lift above 22.0pp combined threshold. Null: lift at or below threshold. Secondary outcomes T1 Perplexity rate change (should stay at the E016 baseline of 80%), T2 AIO and ChatGPT rates (expected 0% floor from E016), and Tier 2 mention rate across all platforms. No content changes to thegeolab.net between intervention and M1 measurement. No new posts at all on the query-matched pages. Posts unrelated to the query set are permitted and expected. The intervention window is the JSON-LD graph, the Wikidata items once accepted, and the external identifiers — nothing else. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Wave 2 Outcome — 11 May 2026 Wave 2 was a staged three-item submission to Wikidata: a Person item, a project item for The GEO Lab, and a conceptual model item for The GEO Stack. The plan was to submit them sequentially over several days, allowing each to settle in the editorial queue before the next. The first item — Q139710735, the Person item — was submitted on 8 May 2026 and nominated for deletion the same day under Wikidata's notability criteria (WD:N), with the reason given as “not notable.” The deletion request is logged on the Wikidata Requests for Deletions page. The remaining two submissions — Lab item and Stack item — had not yet been drafted when the first deletion was filed. The deletion outcome was treated as new information about Wikidata's notability bar at this domain's authority tier, and the remaining submissions were halted on that basis rather than proceeding to the same outcome. This is a partial trigger of pre-registered falsification criterion 4. Strict reading: criterion 4 requires all three Wikidata items to be deleted. Substantive reading: the criterion was designed to catch the case where Wave 2 fails to deploy meaningful Wikidata surface, and that is what happened — one of three items was submitted, and that one was rejected. The methodologically clean reading is to treat Wave 2 as a non-event for M1 measurement purposes. The M1 measurement on 22 May will reflect Waves 1 and 3 plus the v1.2.0 schema deployment of 10 May, not Wave 2. This outcome does not change the pre-registered null prediction: T2 Perplexity citation rate stays at 0% on M1 and M2. It does narrow what a positive result could be attributed to. If T2 lifts above 22.0pp on either measurement, the lift cannot be attributed to Wikidata coverage — that surface was never deployed. What Would Falsify This Four outcomes would constitute clear falsification or partial falsification of the hypothesis: T2 Perplexity stays at 0% on both M1 and M2. Strong falsification. The authority gate holds against the full bundled intervention. Publishable as a Layer 4 null, companion to EDX. T2 Perplexity lifts but stays below 22.0pp combined on both measurements. The intervention produced a sub-threshold shift indistinguishable from platform variance. Reported as null with the raw numbers shown. Not claimed as positive. T1 Perplexity drops below the E016 baseline of 80%. An unexpected secondary effect. Either a confound or an indication the intervention hurt an existing signal. Triggers investigation before M2. Wikidata items are all deleted under notability criteria. A valid outcome on its own — the intervention was not deployable at this stage. Reported as a deployment-failure null, distinct from a citation-rate null. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Known Confounds and Honest Limits Three limits apply to whatever this experiment produces. They are flagged here rather than after the data because their presence shapes what a positive or negative result can and cannot support. The intervention is bundled. A positive result cannot attribute the lift to any single component — ORCID, Wikidata, public repos, JSON-LD graph. The follow-up experiment (E026, not yet designed) would need to hold some components constant and add others sequentially. The current design answers the yes-or-no question, not the which-component question. Indexing latency is unknown. Wikidata items that are accepted still take time to propagate into the downstream knowledge graphs that AI platforms draw on. If M1 shows no lift and M2 shows a lift, the finding is positive but the timing tells us nothing clean about when the signal reached the platform. Two months of measurement is the minimum honest window, not a precise one. The authority gate is measured, not modelled. EDX established the gate as an empirical regularity on this site at this point in time. It does not provide a model of how the gate clears. The intervention is a bet on the gate being partially clearable by external identifiers — a bet grounded in existing entity-disambiguation literature, but still a bet. A null result does not rule out the gate clearing for a different combination of signals. It rules out this one. M2 confounds observed (June 2026): T1 Perplexity dropped 32pp (80% to 48%) between M1 and M2. Two causes identified: T1-Q2 benign query reinterpretation (persistent since M1, not attributable to intervention); T1-Q3 and T1-Q4 competitive displacement (new at M2, not attributable to intervention). The FAQPage duplicate on /entity-reinforcement/ noted at M1 was confirmed clean by M2. Falsification criterion 3 fired. Results: M1 and M2 M1 was measured on 22 May 2026 (day 29 post Wave 1). M2 was measured on 19 June 2026 (day 57). Both used the E014 universal query set: 10 queries, 3 platforms, 5 iterations each = 150 calls per round. T2 intervention outcome (primary DV) PlatformT2 M1T2 M2 Perplexity sonar-pro0/25 (0%)0/25 (0%) ChatGPT0/25 (0%)1/25 (4%) Google AIO0/25 (0%)0/25 (0%) Combined T20/75 (0%)1/75 (1.3%) Combined T2 at M2 = 1.3%, far below the 22.0pp E016 interpretability floor. The single ChatGPT T2 hit (T2-Q5 “GEO vs SEO differences” citing /geo-vs-seo/, iteration 3 only) is indistinguishable from noise. No lift. T1 Perplexity per-query trajectory (M0, M1, M2) QueryM0M1M2 T1-Q1 GEO Stack framework5/55/55/5 T1-Q2 retrievability in GEO5/50/50/5 T1-Q3 GEO citation rate measurement5/55/50/5 T1-Q4 extractability score GEO5/55/52/5 T1-Q5 Artur Ferreira GEO Lab5/55/55/5 T1 Perplexity total25/25 (100%)20/25 (80%)12/25 (48%) T1 Perplexity dropped from 80% (M1) to 48% (M2), a 32pp decline. This fires pre-registered falsification criterion 3 (T1 drops below 80%), which forces the confound investigation branch of the decision tree. The branded queries (Q1 “GEO Stack framework” and Q5 “Artur Ferreira GEO Lab”) held at 5/5 across all three rounds. The drops are on the non-branded concept queries. Interpretation: Null With a Documented T1-Degradation Confound Under the pre-registered decision tree: T2 shows no lift (the authority gate holds, direction unchanged from the null prediction). But falsification criterion 3 fired (T1 < 80%), which means T2 cannot be cleanly interpreted until the T1 drop is explained. The result is a null with a documented confound, not a clean strong null. The T1 confound has two distinct causes, which should not be merged: T1-Q2: benign query reinterpretation (persistent since M1) “Retrievability in GEO” now resolves on Perplexity to the general information-retrieval and spaced-repetition concept (Wikipedia/Retrievability, Anki forums, SuperMemo), not to GEO Lab content. The retrieval set contains zero GEO-related sources. This is a query construction failure: the site concept is “retrieval probability”, not “retrievability”, and “GEO” alone does not disambiguate. The drop appeared between M0 and M1 and persisted at M2. Title rewrites and access regressions were both ruled out in the diagnostic. T1-Q2 is flagged as a known-dead query, carried as-is (rewording would break M0/M1/M2 comparability). T1-Q3 + T1-Q4: real competitive displacement at M2 T1-Q3 (“GEO citation rate measurement”) and T1-Q4 (“extractability score GEO”) held at 5/5 through M1 and dropped only at M2. The displacement is real: T1-Q3’s retrieval set is now dominated by competitors (averi.ai, gigawattgroup.com, similarweb.com, guptadeepak.com, hashmeta.ai). T1-Q4 retains thegeolab.net at position 1 in 2/5 iterations but is losing share to “GEO Score” tool sites. This is the genuine confound signal and is recorded as a Findings Ledger entry. ChatGPT divergence ChatGPT T1 moved from 4% (M1) to 64% (M2), the opposite direction from Perplexity’s decline, in the same measurement window. ChatGPT T1-Q2 even cited /retrieval-probability/ once (iteration 4), a query Perplexity entirely lost. This cross-platform divergence is consistent with the E042 and E030 findings: platform-level citation behaviour is independent, and a drop on one platform does not predict a drop on another. EC Activation: HOLD A confounded null does not satisfy the stable-authority-tier premise that the E026 Component Decomposition (EC) experiment presumes. EC was designed as a follow-up to a clean null: “the gate held, now test which component of the intervention might partially clear it.” A T1 degradation confound means the measurement context shifted between M1 and M2, so the baseline EC would compare against is not stable. EC is therefore held, not cancelled. M3 (late July E014 cycle) is now materially more likely to be needed: if T1 stabilises or recovers, the measurement context is again clean enough for EC to proceed. If T1 continues to degrade, the confound deepens and EC remains inappropriate. This is a decision, not an auto-confirm. FAQ What did the E025 entity reinforcement intervention test? E025 tested whether adding external, cross-referenced entity identifiers (ORCID, Zenodo DOIs as JSON-LD nodes, public research repositories, and Wikidata items) could raise Tier 2 Perplexity citation rate above the 22.0pp interpretability threshold established by E016. The hypothesis was framed against the authority gate finding from EDX: below a competitive citation threshold, page-level variables do not operate. What was the result of the E025 experiment? The entity-graph intervention produced no T2 citation lift across two monthly measurements (M1 and M2). T2 Perplexity stayed at 0% on both. The authority gate held. A 32pp T1 Perplexity drop at M2 fired the pre-registered confound branch, making this a documented null rather than a clean strong null. Why did T1 Perplexity citation rate drop during the experiment? The T1 drop had two distinct causes. T1-Q2 underwent benign query reinterpretation where Perplexity resolved the query to general information-retrieval concepts rather than GEO Lab content. T1-Q3 and T1-Q4 experienced real competitive displacement at M2, with retrieval sets dominated by new competitors. Neither cause was attributable to the intervention itself. Key TakeawayE025 produced a null with a documented confound. The entity-graph intervention generated no T2 citation lift across two measurements. The authority gate held. A 32pp T1 Perplexity drop at M2 fired the pre-registered confound branch, making this a documented null rather than a clean one. EC (component decomposition) is held pending M3 stabilisation. Related E016 — Noise Floor Measurement (establishes the 22.0pp interpretability threshold) EDX / Domain Authority Gates Citation Eligibility (Zenodo preprint) GEO Brand Citation Index Dataset (Zenodo) GEO Lab Failure Registry Version History Version 1.0 — 24 April 2026: Pre-registration. Intervention deployed 23 April at 22:33 UTC. Hypothesis, null prediction, methodology, falsification criteria, and known confounds recorded ahead of M1 measurement. Version 1.1 — 11 May 2026: Wave 2 outcome documented. Wikidata Person item (Q139710735) submitted 8 May, nominated for deletion same day under WD:N notability; Lab and Stack items halted on that basis rather than proceeding to the same outcome. Intervention surface for M1 now reflects Waves 1 and 3 plus the v1.2.0 schema deployment of 10 May. Pre-registered null prediction and falsification criteria unchanged. Version 2.0 — 22 June 2026: M1+M2 results, null-with-confound under pre-registered criteria, EC held, M3 flagged. About the author: The GEO Lab founder Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## E042: Cross-Platform Retrieval Mechanism Map — Perplexity, ChatGPT, Gemini on the Same 9 Queries
URL: https://thegeolab.net/e042-cross-platform-retrieval-mechanism/
E042: Cross-Platform Retrieval Mechanism Map — Perplexity, ChatGPT, Gemini on the Same 9 Queries By Artur Ferreira · The GEO Lab · Published: 1 June 2026 · Version 1.1 Three platforms, one session, nine queries: this is the cross-platform retrieval mechanism map showing why Perplexity, ChatGPT, and Gemini behave differently on the same content. Experiment E042 — Cross-Platform Retrieval Mechanism Comparison Session date: 2026-05-18 | Queries: 9 (3 pages × 3 length tiers) | Platforms: Perplexity, ChatGPT, Gemini | Data points: 27 | Type: Exploratory observation, not pre-registered | Layer: GEO Stack Layer 1 (cross-platform retrieval mechanism sub-dimension) The Retrieval Mechanism Map: What E042 Captured The GEO Stack portfolio contains citation rate data across Perplexity, ChatGPT, and Gemini from E002, E014, E016, and EDX. Those experiments establish that the platforms behave differently — Perplexity cites at T1, ChatGPT at near-zero, Gemini mentions without citing. None directly observes why, at the retrieval mechanism level. E042 addresses this gap. Using Chrome DevTools capture across all three platforms on the same 9 queries in a single session, E042 documents the retrieval mechanism of each platform: how queries are classified, whether live retrieval fires, what domains get retrieved, where thegeolab.net appears, and where competitors appear. The result is the first cross-platform retrieval mechanism map in the GEO Lab portfolio. The 9 queries come from the same set used in E030 (fan-out query length × citation rate): 3 length tiers (2-4 words, 6-8 words, 10-12 words) across 3 target pages (/geo-stack/, /extractability/, /retrieval-probability/). Using the same query set as E030 allows direct comparison between retrieval mechanism data from E042 and citation rate data from E030 on a per-query basis. Method All 27 observations were captured on 2026-05-18. Three separate capture methods were used, one per platform: Perplexity /rest/thread/ endpoint trace via Chrome extension. Full SEARCH_RESULTS domain list, rank positions, snippet text, and UI-panel sub-query labels readable. Query rewrite strings visible at 10-12w tier where the steps panel appeared. ChatGPT Two capture methods used across two sessions. 2026-05-18: DOM observation of rendered source links (UTM-tagged chatgpt.com links confirm retrieval set). 2026-05-19: SSE stream interceptor capturing tool_invoked field directly from /backend-api/f/conversation stream. The two sessions produced different results on some queries — this is addressed in the data note below. Gemini Extension network tool at endpoint level. Protobuf-encoded batchexecute payloads unreadable. Observable signals: L5adhe rpcid = Google Search grounding call fired; DOM "Google Search / Consulta executada com êxito" label = grounding confirmed. Source card rendering observable in DOM. ChatGPT data note — two sessions, one conflict. The 2026-05-18 DOM session recorded citations on geo-stack-q2 (8×), geo-stack-q3 (4×), and retrieval-prob-q1 (1×) from rendered source links. The 2026-05-19 SSE interceptor session recorded tool_invoked: false on those same query types — gate blocked, no retrieval, no citations possible. These are different sessions on different days. The 5/9 cited figure in this note is from the 2026-05-18 DOM session. The 2026-05-19 SSE session is reported separately as the gate architecture finding. The two sessions are not in conflict: the gate bypass condition (≥10 words + named-platform + causal framing) was not present in the 2026-05-19 query set, explaining why those queries blocked while the 2026-05-18 DOM session captured citations on queries that matched the bypass framing. Gemini session note — Flash fallback active throughout. Gemini Pro was at high demand on 2026-05-19 ("O Pro está com elevada procura"). All 9 queries ran on Flash model. Flash fallback suppresses source card rendering — grounding calls fired on 8/9 queries but no sources were attributed in the response DOM. The 0/9 citation rate reflects Flash behaviour, not Gemini Pro behaviour under normal conditions. Method note (19 June 2026): The Gemini 0/9 figure reflects a detection ceiling, not a confirmed absence. This experiment captured Gemini citations from rendered source cards; under Flash fallback (active across all nine queries) Gemini suppresses source-card rendering and returns grounding data in a Protobuf-encoded layer the card-based method cannot read. A 19 June re-verification of the same nine queries, scored against Gemini’s grounding metadata (groundingChunks), found thegeolab.net present in eight of nine. The 18 May figure cannot be retroactively confirmed (raw payloads not preserved; routing and index state differ), so “Gemini 0/9” should be read as zero by rendered-source-card detection, a measurement-instrument limit, not evidence Gemini did not retrieve or ground these pages. Perplexity (67%) and ChatGPT (56%) figures are unaffected. Related resources Want to run your own cross-platform citation measurement? GEO Experiments: How to Test & Measure AI Citation Rates covers protocol design, capture methods, and data schema for replicating experiments like E042. For platform-specific optimisation strategy built on this data: GEO Authority Playbook: Advanced AI Citation Strategy. Results: Citation Rate Platform Cited Rate Correct page retrieved ThatWare present Hashmeta present Perplexity 6/9 67% 4/6 cited queries 4 queries (ranks 6-10) 2 queries (ranks 2, 9) ChatGPT 5/9 56% 2/5 cited queries 0 queries 0 queries Gemini 0/9 0% — 1 query (rank 1, critical) 0 queries Results: Cross-Platform Agreement Matrix Query Tier Perplexity ChatGPT Gemini Platforms citing GEO Stack framework 2-4w ✓ ✗ ✗ 1 what is the GEO Stack framework 6-8w ✓ ✓ ✗ 2 how does the GEO Stack framework structure AI search optimisation 10-12w ✗ ✓ ✗ 1 extractability AI search 2-4w ✓ ✓ ✗ 2 what is extractability in AI search 6-8w ✓ ✓ ✗ 2 how does extractability affect citation rate in Perplexity AI search 10-12w ✗ ✗ ✗ 0 (3-platform failure) retrieval probability GEO 2-4w ✓ ✓ ✗ 2 retrieval probability in GEO Stack model 6-8w ✓ ✗ ✗ 1 what is retrieval probability and how does it affect AI citation 10-12w ✗ ✗ ✗ 0 (3-platform failure) No query produced citations on all three platforms. Four queries produced 2-platform citations. Two queries produced 0-platform citations: confirmed 3-platform failure modes. The highest citation density in the session was Perplexity on retrieval-prob-q2, cited 3× from rank 1+3. Platform A: Perplexity Live RAG with Query Rewriting Perplexity's retrieval mechanism is consistent: SEARCH_WEB call issues, SEARCH_RESULTS set populated, synthesis layer selects from the retrieved set. Perplexity ran live retrieval on all 9 queries. Citation is possible on every query — whether it fires depends on rank and synthesis competition. The 10-12w tier is where the mechanism changes. On geo-stack-q3, the steps panel showed 3 visible sub-queries: "Searching the web", "Looking up GEO Stack and AI search optimisation", "Reviewing relevant sources on GEO Stack and AI search optimization". This is the first directly observed fan-out decomposition across all E042 sessions. A query rewrite was also confirmed — the internal SEARCH_WEB string stripped filler words from the original query. Both behaviours are absent at the 2-4w and 6-8w tiers on the same session day. Two retrieval failures are worth noting. On retrievability-q3 ("what is retrieval probability and how does it affect AI citation"), the GEO context was dropped entirely — the retrieval set moved to academic RAG and hallucination literature, with sciencedirect.com (1999 paper) and PMC medical AI papers at ranks 8-10. On extractability-q3, the "Perplexity" modifier routed the entire set to a Perplexity-SEO specialist cluster (docs.perplexity.ai at rank 7, otterly.ai, ziptie.dev). Neither failure is a page quality problem — both are query construction failure modes confirmed across all three platforms. ThatWare was present in 4 of 9 Perplexity queries (ranks 6-10). Hashmeta appeared twice. Neither displaced thegeolab.net from citation on any query where thegeolab.net was already cited. The competitive risk on Perplexity at this session date is positional, not citational: both competitors are in the retrieval set but have not yet taken the synthesis layer from thegeolab.net on the queries where thegeolab.net is present. Session mode note. Perplexity's Pro preview limit was reached mid-session during retrieval-prob-q1. The remaining 3 queries (retrieval-prob-q1 through retrieval-prob-q3) ran in basic search mode. Basic mode returns different source sets from Pro — as confirmed in E043, where basic mode produced mode=1 artefacts on Q06. The retrieval-prob tier results should be interpreted with this in mind. Platform B: ChatGPT Pre-Retrieval Gate and Bypass Condition ChatGPT's retrieval mechanism operates a pre-retrieval classification gate. It does not run live retrieval on every query. It classifies each query first. Conceptual and definitional queries — including all short and medium GEO Stack, extractability, and retrieval probability formulations — are answered from training data. Web search never fires. No retrieval set exists. No citation is possible regardless of page quality, schema, or domain authority. This is the mechanism behind ChatGPT's 0% citation rate across E002, E014, and E016. Those experiments used T1 proprietary-concept queries that ChatGPT classifies as definitional. The gate blocked all of them. The finding was accurate but incomplete: it described the outcome without observing the mechanism. The gate bypass condition Two of the 9 E042 queries bypassed the gate and triggered live web search. Both share three properties: query length of 10 or more words, a named platform or system in the query text ("Perplexity AI search", "AI citation"), and causal or comparative framing ("how does X affect Y", "what is X and how does it affect Y"). The bypass queries were extractability-q3 ("how does extractability affect citation rate in Perplexity AI search") and retrieval-prob-q3 ("what is retrieval probability and how does it affect AI citation"). On retrieval-prob-q3, ChatGPT retrieved thegeolab.net and cited it twice: the first confirmed ChatGPT citation of thegeolab.net across the entire GEO Lab experiment portfolio. The implication for prior experiments is precise: every GEO Lab experiment that found 0% ChatGPT citation on T1 queries is correct for the query types tested. The 0% finding does not generalise to all query types. Gate-bypass formulations produce non-zero citation rates on ChatGPT. The query classification is the variable, not the page. ChatGPT cites from entity graph, not target-page retrieval Two queries produced an anomaly that the gate framework alone does not explain. On geo-stack-q2 ("what is the GEO Stack framework"), ChatGPT cited thegeolab.net 8 times, with 12 of 17 source links pointing to thegeolab.net slugs — but /geo-stack/ specifically was absent from the retrieval set. The answer was synthesised from 8 other thegeolab.net pages (/geo-vs-seo/, /extractability/, /citation-rate-entity-signals-gap/, /geo-authority-playbook/, and others) without retrieving the canonical target page. On retrieval-prob-q1 ("retrieval probability GEO"), ChatGPT used a direct quote from thegeolab.net despite the /retrieval-probability/ slug being absent from the retrieved set. Homepage and /extractability/ were retrieved instead. This pattern — citation without target-page retrieval — maps to what Zhang Kai et al. (arXiv 2604.25707, 2026) describe as citation absorption: the model draws from a domain's entity graph and cached training representations, not exclusively from what was retrieved in the live search session. ChatGPT's entity graph for thegeolab.net is sufficiently dense that multiple slugs can substitute for the canonical page. This is a strength (robust brand presence across slugs) and a measurement complication (citation rate per target page understates total brand citation rate). Sharpest cross-platform divergence: retrieval-prob-q2 On "retrieval probability in GEO Stack model" (6-8w), Perplexity returned thegeolab.net at ranks 1+3 with 3 inline citations. ChatGPT returned 8 sources total — 3 off-topic ResearchGate papers about LPWAN satellites, solid oxide cells, and computer vision — with everything-pr.com as the only GEO-adjacent source. Thegeolab.net was absent entirely. This is the largest single-query divergence in the dataset. The "model" suffix in the query appears to have triggered a model-paper retrieval path on ChatGPT, pulling academic research into a GEO-concept query. The same query on Perplexity hit the GEO namespace cleanly. Platform C: Gemini Google Search Grounding with Flash Fallback Gemini's retrieval mechanism is structurally different from both Perplexity and ChatGPT. Rather than a RAG pipeline over a web index, Gemini uses Google Search grounding — live batchexecute calls to the Google Search API. The L5adhe rpcid identifies the grounding call. It fired on 8 of 9 queries. The one exception was extractability-q2 ("what is extractability in AI search"), which returned training data only with a single StreamGenerate call. Despite grounding firing on 8/9 queries, thegeolab.net was cited on zero. The Flash fallback is the primary explanation — source card rendering was suppressed throughout the session. Earlier work confirmed that Gemini mentions without citing even when grounding fires under normal conditions; under Flash fallback, citations are suppressed entirely. Two structural issues are also present regardless of model tier. GEO namespace ambiguity at short query lengths On retrieval-prob-q1 ("retrieval probability GEO"), Gemini produced a full geospatial response — geostationary Earth orbit satellites, cross-view geo-localisation in computer vision, and geo-indistinguishability mathematics, citing Afzali Gorooh 2023, Andrés 2012, and Song 2025. No Generative Engine Optimisation content appeared anywhere in the response. Gemini read "GEO" as a geography acronym, not a GEO Stack concept. The same disambiguation failure appeared in a milder form on geo-stack-q1 and geo-stack-q2, where Gemini added an unprompted geospatial footnote (PostGIS, Leaflet, OpenLayers, GeoNode) to an otherwise correct GEO answer. The short query tier is insufficient to resolve the namespace on Gemini. The minimum disambiguating token is "GEO Stack" (not "GEO" alone), and reliable disambiguation appears to require 8-10 words of context. This is not a page-level failure. It is a query construction requirement for any Gemini measurement involving GEO content. All Gemini experiments in the GEO Lab portfolio using "GEO" as a standalone token at short lengths will produce geospatial results. Critical competitive displacement: ThatWare rank 1 on Gemini Q3 On geo-stack-q3 ("how does the GEO Stack framework structure AI search optimisation"), grounding activated and returned a retrieval set. ThatWare held rank 1 — its /5-layer-geo-stack-ai-visibility-framework/ URL. Gemini cited ThatWare 5 times and adopted ThatWare's framing entirely in the answer body. Thegeolab.net was absent from the retrieval set. This is the most severe competitive displacement finding in the E042 dataset. It is also the only Gemini query where grounding returned GEO-relevant results — which means the one moment Gemini accessed live GEO content, it surfaced a competitor rather than thegeolab.net. The robots.txt audit confirmed ThatWare allows Gemini-Extended crawling. The displacement is content-driven, not infrastructure-driven. ThatWare and Hashmeta were absent from all ChatGPT retrieval sets. The competitive displacement risk from these domains is Perplexity-specific (retrieval set presence, ranks 6-10) and Gemini-specific (one critical displacement at rank 1). On ChatGPT they do not appear. Cross-Platform Reconstruction Coherence The same query, on the same day, produced two different brand reconstructions. On geo-stack-q3 ("how does the GEO Stack framework structure AI search optimisation"), Perplexity retrieved /generative-engine-optimisation-guide/ at rank 10: wrong page, not cited. ChatGPT cited thegeolab.net 4 times from the homepage. Gemini cited ThatWare 5 times and reproduced ThatWare's framework framing. The session returned a different authoritative source for each platform: thegeolab.net on ChatGPT, ThatWare's framework on Gemini, and no direct answer on Perplexity for this specific formulation. A practitioner searching across platforms for the GEO Stack definition in a single session would encounter three non-overlapping answers from three different sources. The practical implication for content strategy is that page-level optimisation for one platform does not transfer to others. The retrieval pools are different. The competitive environments are different. The query classification behaviours are different. A page optimised for Perplexity's DEFINITION-class retrieval pattern is not structurally positioned to bypass ChatGPT's gate or to compete in Gemini's grounding pool. Infrastructure Accessibility A robots.txt audit was run on all competitor domains appearing in the retrieval sets. No competitor blocks any AI crawler. ThatWare allows GPTBot and Gemini-Extended with a 10-second crawl-delay but no explicit PerplexityBot rule (falls through to wildcard Allow). Hashmeta has no AI-specific bot rules at all — wildcard Allow only. Thegeolab.net has the most comprehensive AI bot policy of all domains in the dataset, explicitly allowing PerplexityBot, GPTBot, ClaudeBot (multiple variants), and Gemini-Deep-Research and Google-Extended, while blocking training crawlers (DeepSeekBot, Ai2Bot-Dolma, cohere-training-data-crawler). The competitive displacement observed across Perplexity and Gemini is not infrastructure-driven. No competitor has a retrieval advantage from robots.txt policy. The displacement is content and retrieval-rank driven throughout. External Validation Three independent datasets are directionally consistent with E042's cross-platform divergence finding. Ehrlinspiel, Rudzki, and Landwehr (Peec AI, SSRN 6753841, 2026) analysed 5.7 million citation events across 8 AI platforms. In B2B MarTech — the category closest to GEO Stack content — Perplexity log-odds 1.544 vs ChatGPT 2.316. Lower-retrieval platforms like ChatGPT show larger per-citation coefficients than broader-retrieval platforms like Perplexity. This is the commercial-query version of the same Perplexity broad-shallow vs ChatGPT narrow-deep pattern observed in E042. The Peec AI paper covers Tier 2 category queries; E042 covers Tier 1 proprietary-concept queries. The directional consistency across query tiers strengthens the platform architecture claim. Zhang Kai et al. (arXiv 2604.25707, 2026) propose a two-stage citation framework: selection (correct page retrieved) and absorption (model draws from retrieved content). The ChatGPT Q2 result maps directly — high absorption (8× citations, 12/17 thegeolab.net links) with zero correct-page selection (/geo-stack/ slug absent). The geo-citation-lab platform profile from their dataset shows Perplexity at 16.35 citations per prompt (broad-shallow) and ChatGPT at 6.88 (narrow-deep): the same retrieval mechanism contrast at different scale. Tian et al. (arXiv 2603.09296, 2026) provide a citation failure taxonomy. The E042 failure modes map cleanly: extractability-q3 and retrieval-prob-q3 (3-platform failures) = pre-retrieval query construction failures in their taxonomy. The Gemini Q3 ThatWare displacement = selection-stage competitive displacement failure. The ChatGPT retrieval-prob-q2 source quality collapse = retrieval quality failure. Portfolio Implications E042 changes how several GEO Lab findings should be framed. The 0% ChatGPT citation rate in E002, E014, and E016 is accurate for the query types tested. It is not accurate as a general statement about ChatGPT citation behaviour. Those experiments used T1 definitional queries that classify as conceptual under ChatGPT's gate. The gate-bypass condition (≥10 words + named-platform + causal framing) was never tested. Those result posts should carry a caveat: the 0% finding applies to conceptual/definitional query formulations. Gate-bypass formulations produce non-zero citation rates. Gemini experiment design across the portfolio requires two changes. First, all queries must use "GEO Stack" rather than "GEO" alone at short tiers: bare "GEO" is a GIS trigger. Second, every Gemini observation must log the model tier (Pro vs Flash) as a controlled variable. Flash fallback is silent: it is only detectable from the "O Pro está com elevada procura" DOM message. An unlogged Flash session looks like a Gemini Pro citation failure when it may simply be a source card suppression artefact. For more on platform-specific GEO behaviour, the platform guide covers all three citation architectures. E027's synthesis-layer determinism finding and E042's retrieval mechanism map are now the two sides of the same explanation for E027's zero-variance result. E042 establishes that Perplexity runs live retrieval on T1 queries where ChatGPT blocks. E043 confirms that within Perplexity's retrieval pool, the citation binding on Q02 operates at the synthesis layer. Together they explain why the zero-variance finding is platform-specific: it requires both live retrieval (which ChatGPT prevents) and synthesis-layer preference (which Perplexity's architecture makes visible). Data and Replication Raw data: e042_cross_platform_mechanism_map.csv (27 rows), e042_determinism_matrix.md, e042_competitor_rank_log.csv (8 rows), e042_robots_txt_audit.csv (5 domains). GitHub replication package: github.com/arturseo-geo/geo-lab-experiments/tree/main/e042. Zenodo data deposit: DOI 10.5281/zenodo.20688046. ORCID: 0009-0004-4072-9741. Follow-on experiments: E047 (fan-out sub-query coverage on Perplexity), E056 (ChatGPT arm, gate-bypass query design), E035 (Gemini Pro: must specify Pro not Flash), E054 (vocabulary seeding × citation rate). Key takeaway The retrieval mechanism differs by platform architecture, not page quality. Perplexity retrieved and cited on 67% of queries because it runs live RAG on all of them. ChatGPT reached 56% only after gate-bypass formulations unlocked retrieval. Gemini's 0% is a Flash fallback artefact, not a content failure. Optimising for one platform's retrieval mechanism does not transfer to the others. Frequently Asked Questions Why does Perplexity cite thegeolab.net more often than ChatGPT on the same queries? Perplexity runs live retrieval on every query including short definitional queries. ChatGPT classifies queries first: conceptual and definitional queries are answered from training data without web search firing. In E042, 7 of 9 queries blocked ChatGPT's gate. The 2 that bypassed it used long-form causal framing with named-platform specificity, and produced citations. Perplexity's broader retrieval behaviour is the structural reason for its higher citation rate on this query set, not page quality differences. What is ChatGPT's pre-retrieval gate and how do you bypass it? ChatGPT classifies every query before deciding whether to trigger web search. Conceptual queries — "what is X", "X framework", "X in AI search" — are answered from training data with no retrieval and no citations possible. The gate bypasses when three conditions are present: query length ≥10 words, named-platform or system specificity in the query, and causal or comparative framing ("how does X affect Y"). In E042, the bypass produced the first confirmed ChatGPT citation of thegeolab.net. The 0% ChatGPT citation rate in earlier experiments was correct for the query types tested, not for all query types. Why did Gemini return zero citations across all 9 queries? Two factors produced the 0% rate. Gemini Pro was at high demand on the session date and all 9 queries fell back to Flash model, which suppresses source card rendering even when grounding fires. Grounding calls executed on 8 of 9 queries. Additionally, Gemini has a GEO namespace ambiguity at short query lengths: "retrieval probability GEO" produced a full geospatial satellite response. The 0% figure reflects Flash behaviour and one full GIS misfire, not Gemini Pro citation behaviour under normal conditions. What are the 3-platform failure modes in AI search? E042 confirmed two query construction failure modes that produce zero citations on all three platforms simultaneously. The platform-modifier failure: adding "in Perplexity AI search" to a query routes the entire retrieval set to Perplexity-specific SEO content on Perplexity, ChatGPT, and Gemini. The dropped-GEO-context failure: long-form queries without the GEO qualifier move retrieval to academic AI and ML literature on all three platforms. Both are query construction problems — the target pages are not the cause of the failure. Do ThatWare and Hashmeta appear in ChatGPT and Gemini retrieval sets? ThatWare and Hashmeta are absent from all ChatGPT retrieval sets across all 9 queries. On Gemini, ThatWare appeared at rank 1 on the 10-12 word GEO Stack query where grounding activated, and was cited 5 times: the most severe competitive displacement in the dataset. Hashmeta was absent from Gemini. Competitive displacement from these domains is a Perplexity-specific risk (retrieval set presence, ranks 6-10) with one critical Gemini exception. Neither domain appeared in ChatGPT. Related E027 — Perplexity Zero-Variance Replication: citation-identity stability over 14 days E030 — Fan-Out Query Length × Citation Rate: the query set source for E042 E016 — Noise Floor Measurement: baseline citation variance across 5 days Platform-Specific GEO: Perplexity, ChatGPT, and Google AI Overviews compared Retrieval Probability: GEO Stack Layer 1 Research outputs GitHub replication package: geo-lab-experiments/e042 Zenodo data deposit: DOI 10.5281/zenodo.20688046 ORCID: 0009-0004-4072-9741 Version History Version 1.0 — 1 June 2026: Initial publication. 27-observation cross-platform retrieval mechanism map. ChatGPT gate bypass condition documented. Gemini Flash fallback and GEO namespace ambiguity confirmed. GitHub replication package live. Version 1.1 — 19 June 2026: Gemini measurement caveat added (render-layer detection ceiling documented; 19 Jun grounding-layer re-verification found 8/9). Zenodo DOI 10.5281/zenodo.20688046 added. About the author: Artur Ferreira is the founder of The GEO Lab is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. ORCID: 0009-0004-4072-9741. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## E108: I Ran a Stranger's 50-Case Test Against My Instrument. The One Disagreement Was the Finding.
URL: https://thegeolab.net/e108-gold-test-instrument-benchmark/
By Artur Ferreira · The GEO Lab TL;DR I ran citation-check blind against A. L. MacFarland's 50-case USO Gold Test Set, froze every classification, and only then opened the answer key. Where the instrument and protocol overlap -- MENTIONED and CITED -- we agreed on 78 of 79 determinable comparisons. The one disagreement exposed a construct boundary I had not properly encoded: my instrument detected the name "Atlas", while the key required enough evidence to establish which Atlas was meant. The test also quantified what citation-check cannot currently measure: across its out-of-scope states, the key had concrete answers for 115 slots the instrument declined, including 42 OBSERVED signals. That gives me something more useful than a headline agreement rate: a clearer definition of what the instrument measures, where that definition breaks, and exactly how much sits beyond its current coverage. This is the first external instrument benchmark citation-check has faced. 1. A stranger hands you an exam In August, A. L. MacFarland offered me something I rarely get in this kind of work: someone else's fixed, versioned, 50-case gold test set, with a published answer key I promised not to look at. His USO Evidence Protocol keeps coming back to one question: Does the claim stay inside what was actually measured? The Gold Test Set turns that question into 50 concrete cases. The deal was simple. I would run all 50 through citation-check exactly as configured. No tuning individual cases. No changing definitions halfway through. I would freeze the classifications first, then open the key. "Blind" here is on the honour system. The key is public. The discipline is simply not looking. I wanted to do it because citation-check had never faced an external instrument benchmark -- tested against something I did not build. Every measurement instrument contains assumptions about what counts, even when those assumptions are buried in code. Testing mine against someone else's framework was a good way to find out where those assumptions stopped matching. It worked. 2. First, what is citation-check actually allowed to say? I declared this before the run because defining scope after seeing the results is just moving the goalposts with a timestamp. citation-check natively produces a presence signal for each state: present, absent, or not established. NOT_ESTABLISHED is never silently converted into absence. That gives the instrument coverage over the protocol's MENTIONED and CITED states, the two that fall within extractability. It cannot determine RETRIEVED, INCLUDED, RECOMMENDED or ADVERSELY_TREATED. It also does not assess USO reporting conformance. MacFarland and I were clear about what that meant before the test: unsupported states would not be treated as instrument failures. The run was testing two separate things. First, how well do the two systems agree where their measurement surfaces overlap? Second, does my instrument refuse cleanly where they do not? Run details: citation-check E101-v-next, 6 August 2026 version. Static-case pass using the supplied response text and visible_citations arrays. No live queries. Run on 20 August 2026. All 50 cases returned, with zero exclusions and zero processing failures. One more label, because labels are the whole subject here. This experiment is registered as E108, and the registration is post-hoc. The controls were declared in dated correspondence before the key was opened: blind to the key, freeze before opening, no per-case tuning. But no pre-registration was deposited before the run. A registered experiment and a pre-registered one are different claims. This is the former. 3. Where we overlap: 78 of 79 Across MENTIONED and CITED, 79 comparisons were determinable. citation-check and the key agreed on 78. That sounds impressive until you look at what the number actually contains. StateKey-positiveKey-negativeDisagreementsMENTIONED (40)37/37 agree2/3 agree1, G012CITED (39)3/3 agree36/36 agree0 There are two things I would not want anyone to lose in the headline number. The first is that 78/79 is agreement within two states. It is not an instrument-accuracy claim. Look at CITED in particular. There are only three positive cases. Yes, citation-check agreed with the key on all three. But three positives are nowhere near enough to claim that the instrument has demonstrated accurate citation detection. Most of that apparently perfect result comes from 36 negative cases. A citation tracker proving that it can recognise absence is not the same thing as proving that it can reliably detect citations. So I am reporting the number because it is what this run produced, but I am not asking it to carry more weight than the sample can support. The second thing is more interesting. The instrument did not miss a single key-positive MENTIONED or CITED case. Its only disagreement in the entire comparable set went the other way. It detected something the key would not accept. That was G012. 4. G012: when "Atlas" is not necessarily Atlas G012 contains a response with the word Atlas in it. citation-check returned MENTIONED: OBSERVED. The USO key returned NOT_ESTABLISHED. Why? Because two companies share the name Atlas, and the response gives us no way to establish which one it means. That single case exposed a definition I had not made explicit enough in my own instrument. citation-check was detecting name presence. The key was requiring entity identity. Those are not the same measurement. And that gap matters far beyond this test set. If your company shares its name with another company, a place, a product, a person or something from mythology, what exactly does your AI visibility tool mean when it tells you that your brand was "mentioned"? If it has not resolved the entity, it may simply be counting the string. That means some brand visibility metrics may contain namesake mentions that do not belong to the entity being measured. G012 is only one case. I am not generalising an error rate from it. But the construct boundary it exposed is real enough that the instrument now has to deal with it. Sometimes the best result from a benchmark is not the score. It is discovering that you and the benchmark were answering slightly different questions. 5. Then came the number I initially described wrongly This is the part where the test became more useful than I expected. citation-check returned NOT_ESTABLISHED on all 160 out-of-scope slots: four states across the 40 scorable cases. My first summary described that as the instrument "preserving indeterminacy." That was too flattering. It made it sound as though the key also considered those 160 slots unknowable. It did not. The key gives concrete adjudications for 115 of them: 73 NOT_OBSERVED 42 OBSERVED It returns NOT_ESTABLISHED on the remaining 45. So the correct interpretation is not "160 agreements on indeterminacy." It is this: 45 slots where the key itself says NOT_ESTABLISHED and the instrument also refuses to determine the state. 115 slots where the key has a concrete answer but citation-check cannot reach it. And inside those 115 are 42 OBSERVED signals that a fuller instrument could potentially capture. That gives me three much more useful numbers: 45 matched indeterminate states. 115 concretely adjudicated slots beyond the instrument's coverage. That is the full evaluative reach a fuller instrument could cover. 42 of those 115, the OBSERVED slots, are positive-detection headroom specifically. That is a much less flattering description of citation-check than my first one. It is also much more useful. A measurement instrument refusing to answer outside its scope is good behaviour. But refusal is not free. You need to know what information you are giving up by refusing. For the first time, this test let me put a number on that cost. 6. NOT_APPLICABLE is not NOT_ESTABLISHED There is another distinction worth keeping clean. The ten reporting-integrity cases, G041 to G050, do not define observation states at all. They sit entirely outside what citation-check is designed to assess. Those returned NOT_APPLICABLE. That is different from NOT_ESTABLISHED. NOT_APPLICABLE means the measurement does not belong here. NOT_ESTABLISHED means the state belongs to the measurement surface, but the available evidence does not support a determination. Collapsing those together would recreate at the summary level exactly the problem the tri-state design is supposed to prevent. Different unknowns need different labels. 7. G040 exposed another boundary: refusal versus missing evidence G040 is a truncated response. citation-check returned CITED: NOT_ESTABLISHED because it will not turn "I cannot see the complete response" into "there was no citation." The key says NOT_OBSERVED. I sent that one back to MacFarland rather than trying to argue my preferred interpretation into the benchmark. His ruling clarified something useful. The instrument was not refusing to assess evidence that existed. The evidence required to resolve the claim was simply not present in the observable surface. So the determination stands as NOT_ESTABLISHED, with the reason recorded as required evidence not observed. And importantly, G040 stays outside the comparable-agreement calculation. It is forced into neither agreement nor disagreement. That distinction is now feeding back into citation-check's truncation handling. There are two different situations hiding behind the same apparent "unknown": The instrument cannot determine this state. and The evidence needed to determine this state is missing. Most measurement pipelines make those look identical. They are not. 8. What did this instrument benchmark actually establish? Something fairly narrow, which is exactly how I want to report it. It establishes the behaviour of one version of one instrument against 50 static cases from one pinned test set. Within the two determinable states, MENTIONED and CITED, agreement was 78 of 79 comparable cases. The single disagreement exposed a name-presence versus entity-identity boundary. And outside those states, the test quantified something I previously only described qualitatively: citation-check's coverage boundary. What does it not establish? It does not validate the USO protocol. It does not show that these results generalise to live queries. It does not establish citation-detection accuracy from three positive CITED cases. And it tells us nothing about citation-check's performance on RETRIEVED, INCLUDED, RECOMMENDED or ADVERSELY_TREATED beyond the fact that the instrument does not currently measure them. That last limitation now has a number attached to it. 115 concrete adjudications outside the instrument's reach, including 42 observed signals. For me, that may be the most useful result of the whole exercise. I went into someone else's test expecting to learn whether my instrument agreed with his key. I came out with something better: a clearer definition of what my instrument is actually measuring, one construct it needs to tighten, and a quantified map of what it still cannot see. MacFarland has now published his own independent response, which examines what this run does and does not support about the protocol and opens USO v0.9.5 for external validation: AI Search Is Full of Claims. Help Put Its Measurement Rules to the Test. We drafted separately, and neither of us reviewed the other's piece before publication. That independence is part of the test. Sources: A. L. MacFarland, USO Evidence Protocol v0.9.5, DOI: 10.5281/zenodo.21852690, CC BY 4.0; USO Gold Test Set v0.1, pinned to the v0.9.5 release; internal denominator post; frozen citation-check return and key-comparison artifacts, DOI: 10.5281/zenodo.22083031; A. L. MacFarland, "AI Search Is Full of Claims. Help Put Its Measurement Rules to the Test.", LinkedIn, 29 August 2026. .definition-block .definition-block .label .byline .sources-block , "publisher": , "digitalSourceType": "https://cv.iptc.org/newscodes/digitalsourcetype/humanOriginated", "citation": [ , "url": "https://doi.org/10.5281/zenodo.21852690", "identifier": "10.5281/zenodo.21852690" }, }, ] }
---
## Ebooks
URL: https://thegeolab.net/ebooks/
The GEO Lab publishes free ebooks on Generative Engine Optimisation. Each guide is designed for practitioners who want to make their content visible in AI-powered search, built on The GEO Stack framework. Available Ebooks The GEO Pocket Guide — 2026 Edition Quick-reference guide to GEO fundamentals. The five-layer GEO Stack, extractability principles, and checklists for AI search optimisation. Read Ebook → SEO to GEO: The Complete Framework Comprehensive guide for transitioning from traditional SEO to Generative Engine Optimisation. Strategic implementation and measurement approaches. Read Ebook → GEO Experiments — Design, Measure, Learn Hands-on experiments guide with real GEO tests, measurement methodologies, and documented results from The GEO Lab. Read Ebook → The GEO Workbook — 30-Day Action Plan Structured implementation workbook with daily tasks, weekly milestones, and progress tracking for GEO across your content. Read Ebook → GEO for WordPress — Technical Setup Guide Step-by-step WordPress technical guide covering schema markup, plugin configurations, and server optimisations for AI visibility. Read Ebook → The GEO Glossary & Quick Reference Comprehensive glossary of GEO terminology including extractability, retrieval probability, citation metrics, and AI search concepts. Read Ebook → GEO Field Manual The definitive practitioner guide to Generative Engine Optimisation. Covers all five GEO Stack layers with detailed implementation strategies, real examples, and diagnostic frameworks. Read Ebook → GEO Authority Playbook — Advanced AI Citation Strategy Advanced strategies for building citation authority in AI search. Covers entity reinforcement, structural authority patterns, and systematic approaches to earning consistent AI citations. Read Ebook → AI SEO OS — The Complete AI Search Operating System A full operating system for AI search optimisation. Integrates all GEO Stack layers into a unified workflow with dashboards, checklists, and implementation blueprints. Read Ebook → Note: To save any ebook as PDF, use your browser Print function (Ctrl+P / Cmd+P) and select Save as PDF. About These Guides All ebooks are written by Artur Ferreira, founder of The GEO Lab. They are based on original research and controlled experiments in Generative Engine Optimisation, documented in The GEO Log. Need help choosing? Contact The GEO Lab · Homepage Key Takeaways 10 free guides available — Covering everything from beginner pocket guides to advanced authority playbooks and the full AI SEO operating system. Built on The GEO Stack — All ebooks follow the same proven five-layer optimization framework. Free to download via Gumroad — No payment required. Practitioner-focused — Written for SEOs, content creators, and marketers ready to optimize for AI visibility. WordPress-specific guide included — Technical setup instructions for the world’s most popular CMS. Frequently Asked Questions Are The GEO Lab ebooks really free? Yes. All guides are free to download via Gumroad with no payment required. An email address is requested at checkout but the price is zero. Which ebook should I start with? Start with “The GEO Pocket Guide” for a quick overview, or “SEO to GEO: The Complete Framework” for comprehensive coverage. Use “The GEO Workbook” if you want a structured 30-day action plan. Do I need technical skills to use these guides? Most guides are written for marketers and content creators. “GEO for WordPress” is more technical but includes step-by-step instructions suitable for non-developers. How often are the ebooks updated? Ebooks are updated when significant changes occur in AI search behavior or The GEO Stack methodology. Check the version number on each guide. Can I share these ebooks with my team? Absolutely. The guides are designed to be shared freely within organizations and teams working on GEO implementation.
---
## Entity Reinforcement: Building Semantic Gravity in AI Search
URL: https://thegeolab.net/entity-reinforcement/
GEO Stack LayersOverview · Retrieval Probability · Extractability · Entity Reinforcement · Structural Authority · System Memory .wp-block-post-content h1 h2 h3 p ul, ol li strong em a .byline .subtitle .definition-block .definition-block .label .definition-block p .definition-block p:last-child .callout .callout p .callout p:last-child .before-after .before-after .ba-row .before-after .ba-header .ba-label .ba-label.before .ba-label.after .ba-content .ba-content.before .ba-content.after .ba-verdict .ba-verdict .v-before .ba-verdict .v-after .principle-card .principle-card .p-label .principle-card h3 .principle-card p .principle-card p:last-child .principle-card .practical-test .principle-card .practical-test strong .checklist .checklist li .checklist li:last-child .checklist .check-icon .checklist .check-body strong .checklist .check-body span .stat-block .stat-item .stat-item .stat-num .stat-item .stat-desc .layer-nav .layer-nav a .layer-nav a:hover .layer-nav .current .layer-nav .sep .faq-item .faq-item h3 .meta-section .meta-section h2 .meta-section ul .meta-section li .author-bio .author-bio strong @media (max-width: 580px) h1 .before-after .ba-row, .before-after .ba-header, .ba-verdict .ba-label.after, .ba-content.after .ba-content.before .ba-verdict .v-after .stat-block } By Artur Ferreira · The GEO Lab · Last updated: 11 March 2026 · Version 1.0 Entity Reinforcement: Building Semantic Gravity in AI Search TL;DR — Definition Entity Reinforcement is the process of building consistent, repeated semantic associations between a content system and the named entities — concepts, brands, people, frameworks, products — that define its topic area. It is Layer 3 of the GEO Stack, sitting above Extractability and below Structural Authority. Generative AI systems do not just retrieve content — they build probabilistic models of what sources are authoritative for. Entity Reinforcement is what makes those models stable. Without it, citation is erratic: a site appears in answers for some queries and disappears for semantically identical ones. With it, a site builds entity gravity — the accumulated semantic pull that causes retrieval systems to associate it with specific topics reliably. The five principles of Entity Reinforcement: canonical naming, strategic repetition, deliberate co-occurrence, entity-rich anchor text, and disambiguation. GEO Stack › Layer 1: Retrieval Probability › Layer 2: Extractability › Layer 3: Entity Reinforcement › Layer 4: Structural Authority → Why consistent entity naming is what separates erratic citation from systematic authority — and how to build it Why Entity Reinforcement Matters There is a pattern I have seen repeatedly across sites with technically sound content: they get cited sometimes, but not reliably. The same query run on Monday retrieves their content; the same query on Friday does not. The content has not changed. The platform has not changed. The inconsistency comes from something more fundamental — the AI system does not have a stable semantic model of what the site is actually about. This is an entity problem. Generative systems do not construct a static index of "this page is about X." They build probabilistic associations — more like a network of semantic weights than a lookup table. Every time a concept appears with consistent naming alongside related entities, that weight increases. Every time it appears under a different name, or appears next to unrelated topics, the signal fragments. A site that refers to the same concept as "GEO", "generative search optimisation", "AI search optimisation", and "generative engine optimisation" has distributed its authority across four separate entity representations. None of them accumulates the weight the canonical term would carry if used consistently. 50% more likely to appear in featured snippets when content is recognised as an entity in knowledge graphs — Semrush, 2024 25–35% higher click-through rates for sites with established entity presence in Google's Knowledge Graph — Semrush, 2024 Layer 3 the point where section-level fixes (Layers 1–2) become site-level authority — Entity Reinforcement operates across the whole content system Fixing Layers 1 and 2 gets content retrieved and extracted cleanly. Entity Reinforcement is what makes that extraction accumulate into something — a stable, recognisable semantic identity that retrieval systems can associate with specific topics and return to consistently. Without it, every piece of content starts from zero. How Entity Reinforcement Works Generative AI systems build their understanding of sources through a process of accumulated observation. As they process content across the web, they identify named entities — specific concepts, people, organisations, frameworks, products — and record the semantic context in which those entities appear. Over time, patterns form: certain sources become consistently associated with certain entities, and those associations increase the probability that the source will be retrieved when those entities appear in a query. Think of it as semantic mass. A single mention of "Entity Reinforcement" on a single page adds a small amount of weight to the association between that source and that concept. Ten consistent mentions across ten well-structured sections add substantially more. Consistent use of the canonical term across twenty pages, with related entities appearing alongside it, builds what I call entity gravity — the pull that causes retrieval systems to select that source when the entity appears in a query, even before the query is fully processed. The mechanism breaks when naming is inconsistent. If the same concept appears under three different terms across a site, the semantic mass accumulates across three separate entity nodes rather than concentrating on one. Each node individually is weaker than the single canonical node would be. The site has done the work — it has published the content — but the inconsistency has distributed the authority too thinly to create the gravity that drives systematic citation. Entity Reinforcement operates at the site level, not the section level. Fixing entity naming in a single post does not fix the entity signal — that requires auditing and aligning naming conventions across the entire content system. This is what makes Layer 3 a different category of work from Layers 1 and 2. .en-wrap .en-wrap .hd .en-wrap .eyebrow .en-wrap .input-label .en-wrap #enWc .en-wrap textarea .en-wrap textarea:focus .en-wrap textarea::placeholder .en-wrap .actions .en-wrap .btn-go .en-wrap .btn-go:hover .en-wrap .btn-go:active .en-wrap .btn-go:disabled .en-wrap .btn-cl .en-wrap .btn-cl:hover .en-wrap .status-msg .en-wrap .empty .en-wrap .empty .ico .en-wrap #enResults .en-wrap #enResults.vis @keyframes enFadeUp to } .en-wrap .hero .en-wrap .ring-wrap .en-wrap .ring-wrap svg .en-wrap .ring-track .en-wrap .ring-fill .en-wrap .ring-num .en-wrap .ring-num small .en-wrap .verdict .en-wrap .band .en-wrap .band-critical .en-wrap .band-needs_work .en-wrap .band-good .en-wrap .band-excellent .en-wrap .grid2 @media (max-width: 640px) .en-wrap .hero .en-wrap .ring-wrap } .en-wrap .panel .en-wrap .panel-title .en-wrap .dim .en-wrap .dim:last-child .en-wrap .dim-hd .en-wrap .dim-name .en-wrap .dim-wt .en-wrap .dim-meta .en-wrap .dim-lbl .en-wrap .dim-val .en-wrap .track .en-wrap .fill .en-wrap .dim-detail .en-wrap .score-critical .en-wrap .score-needs_work .en-wrap .score-good .en-wrap .score-excellent .en-wrap .fill-critical .en-wrap .fill-needs_work .en-wrap .fill-good .en-wrap .fill-excellent .en-wrap .annotation-panel .en-wrap .ann-text .en-wrap .ann-weak .en-wrap .ann-pronoun .en-wrap .ann-entity .en-wrap .ann-reference .en-wrap .legend .en-wrap .leg .en-wrap .swatch .en-wrap .sug-panel .en-wrap .sug-panel .panel-title .en-wrap .sug-list .en-wrap .sug-list li .en-wrap .sug-list li:last-child .en-wrap .sug-list li:first-child .en-wrap .sug-ico .en-wrap .error-box .en-wrap .foot Try It YourselfThe GEO Lab — Interactive Tool Entity Signal Checker Entity Reinforcement — Layer 3 of the GEO Stack — measures how consistently named entities appear across a content section. In The GEO Lab's March 2026 audit of thegeolab.net, 18 of 28 sections had entity explicitness scores below 50, meaning over half the content relied on pronouns rather than explicit entity names. Your content section 0 words Analyse Clear Scoring… ◎ Paste a paragraph above and click Analyse. You'll see entity density, pronoun ratio, consistency scores, and highlighted entities vs pronouns. 0 / 100 Entity Signal Score — — Dimension Scores Annotated View Named entity Pronoun (ambiguous) Improvement Opportunities Scoring follows the GEO Stack Entity Reinforcement methodology: entity density (30%), pronoun ratio (25%), entity consistency (25%), entity in first sentence (20%). High vs Low Entity Reinforcement: Side by Side The difference between fragmented and reinforced entity naming is subtle at the section level and significant at the system level. This example shows the same concept handled two ways — and what each produces for an AI system building a semantic model of the source. ❌ Fragmented entity naming ✓ Reinforced entity naming Post 1: "GEO is changing how brands appear in AI answers." Post 2: "Generative search optimisation requires structured content." Post 3: "AI visibility depends on how well your content is extracted." Post 4: "Optimising for generative engines means rethinking content structure." Post 1: "Generative Engine Optimisation (GEO) is changing how brands appear in AI-generated answers." Post 2: "Generative Engine Optimisation requires structured content that AI systems can cleanly extract." Post 3: "Generative Engine Optimisation visibility depends on Extractability — the degree to which AI systems can parse content sections cleanly." Post 4: "Generative Engine Optimisation requires restructuring content at the section level, not just the page level." Four posts. Four entity representations. Semantic mass split across: "GEO", "generative search optimisation", "AI visibility", "generative engines". None builds the gravity of the canonical term. Four posts. One canonical entity: "Generative Engine Optimisation". Related entity "Extractability" co-occurs consistently. Semantic mass concentrates. Association with the canonical term strengthens with each post. The reinforced version uses the same canonical term in every post. It also does something subtler: it pairs "Generative Engine Optimisation" with "Extractability" in the same sentences, consistently. This deliberate co-occurrence builds a second association — between the canonical topic and its component concepts — that deepens the semantic model rather than widening it. The Five Principles of Entity Reinforcement These five principles address the specific ways entity signals get built, fragmented, or diluted across a content system. Applied consistently, they concentrate semantic authority rather than distributing it. Principle 1 Canonical Entity Naming Select one canonical term for each important concept and use it exclusively across all content on the site. Do not allow variant terms to coexist — not even as stylistic alternatives. "GEO" and "Generative Engine Optimisation" are not equivalent to a retrieval system: they are two different entity strings that build two separate semantic associations. The canonical term should be the most complete, specific version of the concept name. Abbreviations, synonyms, and informal variants can appear after the canonical term has been established on first mention in a section, but they should not replace it as the primary entity name across different posts. Audit test Open your five most important posts. Search for your three most critical concepts. Count how many different terms you use for each. If any concept appears under more than one primary name, you have a canonical naming failure that is fragmenting your entity signal. Principle 2 Strategic Repetition Within Sections Entity names should appear throughout a section — not just on first mention, and not just in the heading. The semantic weight of a section's embedding is built from all the entity signals within it, not just the opening sentence. A section that mentions "Generative Engine Optimisation" once in the heading and then refers to it as "it" or "this approach" for the rest of the section builds a weaker entity association than a section that uses the canonical name four or five times. This is the same principle as Explicit Entity Anchoring in Extractability — but applied with a different goal. Extractability uses entity repetition to make sections parseable in isolation. Entity Reinforcement uses it to build the semantic weight of the entity association across the embedding of the entire section. Audit test In your most important sections, count how many times the canonical entity name appears versus how many times it is replaced by a pronoun or vague reference. Aim for the canonical term to appear at minimum once per paragraph. Principle 3 Deliberate Co-occurrence Entity gravity is built not just by the frequency of a single entity's appearance, but by the consistency with which related entities appear together. A site that always discusses "Generative Engine Optimisation" alongside "Retrieval Probability", "Extractability", and "Entity Reinforcement" builds a semantic cluster — a web of associations that deepens the retrieval system's model of what this source is authoritative for. Deliberate co-occurrence means identifying the three to five entities most closely associated with your core topic and ensuring they appear together consistently across the content system. Not forced — the co-occurrence should emerge from genuinely related content — but planned, so the associations are intentional rather than accidental. Audit test List your core entity and its three to five closest related entities. Check whether those related entities appear together with the core entity consistently across your most important posts, or whether they are scattered across separate isolated pages with no cross-linking. Principle 4 Entity-Rich Anchor Text Internal links carry entity signals — but only when the anchor text names the entity explicitly. A link that reads "learn more" or "click here" contributes nothing to the entity association between the linking page and the destination. A link that reads "Generative Engine Optimisation framework" or "Extractability at Layer 2" contributes both to the structural signal (Layer 4) and to the entity signal of both the linking and the destination page. Every internal link in a content system is an opportunity to reinforce entity associations. Treating those links as navigation rather than as semantic signals is a missed opportunity for Entity Reinforcement that compounds across a site with hundreds of posts. Audit test Review your ten most-linked internal pages. Check the anchor text used to link to them across the site. If the majority of anchor text is generic ("read more", "this post", "here"), replace it with entity-rich descriptions of what the destination page is about. Principle 5 Entity Disambiguation Some entities are ambiguous — the same term means different things in different contexts. "Stack" could mean a technology stack, a poker term, or the GEO Stack framework. Disambiguation is the practice of providing enough co-occurring context that retrieval systems associate your use of the term with the correct meaning. Disambiguation is achieved by pairing ambiguous entity names with their context consistently: "the GEO Stack five-layer framework" rather than just "the Stack", "Retrieval Probability in generative search" rather than just "retrieval probability". The additional specificity prevents the entity signal from being distributed across unrelated domains where the same term appears with different meanings. Audit test Identify any entities in your content that could be misinterpreted without context. Check whether you are providing that context consistently on every mention, or only on first mention. Consistent disambiguation requires the context to appear throughout the content, not just at the point of introduction. Entity Reinforcement Audit Checklist Entity Reinforcement — Layer 3 of the GEO Stack — measures how consistently named entities (brand names, author names, methodology names) appear across a site. Apply the Entity Reinforcement checklist across the content system — not just to individual pages. Entity Reinforcement is a site-level property. A single well-named post does not fix fragmented entity signals across the rest of the content. □ One canonical term per concept, used consistently across all posts No variant names, synonyms, or abbreviations functioning as primary entity names. A glossary of canonical terms across the site is a useful starting point for enforcing this. □ Canonical entity name appears at minimum once per paragraph in key sections Not just in the heading or on first mention. The entity should appear throughout the section, replacing pronouns and vague references. □ Related entities co-occur consistently in the same sections Core entity and its two to three closest related entities appear together across the most important posts — not scattered across isolated pages. □ Internal link anchor text is entity-rich throughout the site No generic link text ("here", "this post", "learn more") on links to important entity pages. Anchor text names the entity and its context explicitly. □ Ambiguous entity names carry disambiguating context on every mention Terms that could belong to multiple semantic domains are accompanied by context that ties them to the correct domain throughout the content, not just on introduction. □ Schema markup names entities consistently with in-content naming The entity names in structured data match the canonical names used in the prose. Inconsistency between markup and content produces a fragmented signal at the metadata level. □ Historical content has been updated to reflect canonical naming Older posts published before canonical naming was established are a persistent source of entity fragmentation. Systematic retroactive updating is part of Entity Reinforcement — not just publishing new content with correct naming. Entity Reinforcement and Its Adjacent Layers Entity Reinforcement sits between Extractability (Layer 2) and Structural Authority (Layer 4), and it depends on both: The relationship with Layer 2: Extractability requires explicit entity naming within sections — every pronoun replaced with the canonical entity name, every "this approach" replaced with the actual concept name. This is Entity Reinforcement applied at the section level. The same naming discipline that makes a section extractable also reinforces the entity signal it contributes. Both layers benefit from the same structural habit, but they measure different things: Extractability measures whether a section survives isolation, Entity Reinforcement measures whether the entity association across the whole system is stable. The relationship with Layer 4: Structural Authority uses internal linking architecture to reinforce topical relationships between pages. But internal links carry entity signals through their anchor text — which means Entity Reinforcement and Structural Authority are built through the same physical acts. Every well-named internal link both strengthens the entity association (Layer 3) and the structural coherence signal (Layer 4). The two layers compound each other when both are implemented correctly. The diagnostic signal for a Layer 3 problem: citation that is inconsistent rather than absent. If content appears in AI responses for some queries but not for semantically similar ones — and Layers 1 and 2 are sound — the issue is almost always entity fragmentation. The retrieval system has an unstable semantic model of what the site is about, and citation reflects that instability. Measuring Entity Reinforcement Entity Reinforcement is measurable through four practical methods, each targeting a different dimension of entity signal quality. I found the citation consistency test most revealing — it surfaces Layer 3 failures that content audits alone miss: Canonical naming consistency audit: Search each of your five most important entity terms across your entire content system. Count how many variant names appear for each canonical term. A consistent score is zero variants — every mention uses the same canonical form. Each variant name is a fragmentation point. Entity co-occurrence mapping: For each core entity, list the five entities that most frequently appear alongside it in your content. Compare this list to the entities you intend to be associated with. Gaps between intended co-occurrence and actual co-occurrence indicate where Entity Reinforcement is underdeveloped. Citation consistency testing: Run the same query ten times across a two-day period on Perplexity. Consistent citation (appearing in seven or more of ten runs) indicates strong entity association. Erratic citation (two to five of ten runs) indicates a Layer 3 problem even when Layer 1 retrieval is partially functioning. Absent citation (zero to one of ten runs) indicates a Layer 1 failure that must be addressed before Entity Reinforcement can be evaluated. Anchor text entity coverage: For each of your hub pages, collect all inbound internal anchor text from across the site. Calculate the percentage of links using entity-rich anchor text versus generic anchor text. Aim for at least 80% entity-rich anchors on the highest-priority pages. Results from entity experiments are published in The GEO Log. Experiment 002, publishing 24 March 2026, directly tests entity density as an independent variable — measuring whether increasing named entity frequency within sections produces an independent citation lift beyond the structural effects measured in Experiment 001. Summary Entity Reinforcement is the Layer 3 variable that determines whether a content system builds stable, consistent AI citation authority or generates erratic, unpredictable citation patterns. It operates through canonical naming, strategic repetition, deliberate co-occurrence, entity-rich anchor text, and disambiguation — applied consistently across the whole content system, not just within individual sections. The central insight is that generative AI systems do not evaluate pages in isolation. They build probabilistic models of sources over time, based on the accumulated entity signals those sources produce. Entity Reinforcement is the discipline that makes those signals coherent rather than fragmented — concentrating semantic mass rather than distributing it. Entity Reinforcement sits at Layer 3 of the GEO Stack, developed by Artur Ferreira at The GEO Lab. It depends on Layers 1 and 2 being functional — entity naming cannot produce citation gravity if the sections containing those entities are never retrieved or never cleanly extracted. The full implementation framework is in the GEO Field Manual. Frequently Asked Questions What is Entity Reinforcement in GEO? Entity Reinforcement is the process of building consistent, repeated semantic associations between a content system and the named entities that define its topic area. It is Layer 3 of the GEO Stack. Generative AI systems build probabilistic models of what sources are authoritative for — Entity Reinforcement is what makes those models stable. Without it, citation is erratic. With it, a site develops entity gravity: the accumulated semantic pull that causes retrieval systems to associate the source with specific topics reliably across repeated queries. What is entity gravity? Entity gravity is the accumulated semantic weight that causes retrieval systems to associate a content source with a specific entity or topic. It builds through consistent entity naming, strategic repetition, and deliberate co-occurrence of related entities across a site's content system. The more consistently an entity appears with canonical naming alongside related entities, the greater the gravity — and the higher the baseline probability that the source will be retrieved when that entity appears in a query. Why does using different names for the same concept hurt citation? Using different names for the same concept fragments the entity signal. Generative AI systems build semantic associations based on entity strings — "GEO", "generative search optimisation", and "Generative Engine Optimisation" are three separate entity representations to a retrieval system, even if they mean the same thing to a human reader. Each post that uses a variant name contributes semantic mass to a different entity node rather than concentrating it on the canonical term. The result is that no single entity representation builds enough gravity to produce consistent citation. How is Entity Reinforcement different from keyword optimisation? Keyword optimisation targets specific search query strings to influence ranking position in traditional search results. Entity Reinforcement targets the semantic associations that generative AI systems build between sources and topics — a different mechanism that operates at the level of named entities rather than query strings. Entity Reinforcement is concerned with consistent naming across a content system, deliberate co-occurrence of related entities, and the accumulation of semantic mass over time. It is a site-level discipline, not a page-level keyword placement strategy. What is the fastest way to improve Entity Reinforcement? The fastest improvement comes from canonical naming consolidation — identifying all variant names for the three to five most important entities and updating existing content to use the canonical term consistently. Start with the ten highest-traffic posts, since these have the strongest accumulated signals to redirect. The second fastest improvement is replacing generic internal link anchor text with entity-rich descriptions on links to hub pages. Both interventions are editing tasks rather than content creation tasks, and both can produce measurable citation consistency improvements within four to eight weeks of re-crawling. How does Entity Reinforcement relate to the other GEO Stack layers? Entity Reinforcement (Layer 3) depends on Layers 1 and 2 being functional — entity naming cannot build citation gravity if sections containing those entities are never retrieved or never cleanly extracted. It feeds into Layer 4 (Structural Authority) through entity-rich anchor text on internal links, and into Layer 5 (System Memory) through the accumulated consistency of naming conventions over time. The five GEO Stack layers interact sequentially: fixing Layer 3 without first addressing Layer 1 and Layer 2 failures produces no improvement in citation rate. Sources Semrush. (2024). Entity Recognition and Knowledge Graph Research. The GEO Lab. (2026). Experiment 001: Declarative vs Narrative Structure — Citation Rate Study. The GEO Lab. (2026). Experiment 002: Entity Density as an Independent Variable. Publishing 24 March 2026. Ferreira, A. (2026). GEO Field Manual — audit and implementation guide. The GEO Lab. Version History Version 1.0 — 11 March 2026: Initial publication. Includes TL;DR, opening narrative, stat block, before/after comparison, five principle cards with practical tests, audit checklist, adjacent layer relationships, measurement methods, FAQ, and sources. About the author: The GEO Lab founder Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab · Return to homepage Continue ReadingPrevious Layer: ExtractabilityNext Layer: Structural AuthorityGEO Brand Citation Index — Real Data
---
## Fan-out Query Length and Citation Rate: 225 Queries, Inverted Result
URL: https://thegeolab.net/e030-fan-out-length-citation-rate-results/
Fan-out Query Length and Citation Rate: 225 Queries, Inverted Result By Artur Ferreira · The GEO Lab · Published: 29 May 2026 · Version 1.0 We predicted longer queries would produce a higher citation rate. They cited at less than a quarter of the rate. The pre-registered null was on record since 10 May 2026, before we measured anything. TL;DR Query length is an inverse predictor of Perplexity citation rate. 225 measurements across 5 days on three T1 proprietary-concept pages. Short queries (2-4 words): 61.3% citation rate. Medium queries (6-8 words): 36.0%. Long queries (10-12 words): 16.0%. The spread between short and long tiers is 45.3 percentage points, with Cohen's d = 1.045. Pre-registered hypothesis (H1) was falsified. The direction of the effect is the opposite of what the fan-out length model predicted. The mechanism is namespace drift: short queries anchor within proprietary concept space because the proprietary term has no competing corpus. Long queries compositionally expand beyond that space into generic GEO topic territory, where competitive chunk density determines selection regardless of page quality. Research on corpus-level signal stability (Maquet, 2026, Signal Inference Optimization) maps the same mechanism at corpus level: a proprietary concept with stable cross-page naming creates a namespace anchor; compositional queries that move outside that anchor enter a space where the corpus has no semantic mass to pull it back. See also: \u{2018}The Three Horizons of AI Fidelity\u{2019} (Maquet, 2026, Medium) for the accessible treatment of the same framework. Contents The Prediction We Got Wrong Method Results Page-Level Breakdown What Is Actually Happening Routing Anomalies Limitations Implications FAQ The Prediction We Got Wrong The fan-out length model, developed by Pete Meyers for BrightonSEO 2026, describes how AI search systems expand from a root query into sub-queries of increasing specificity. The model uses a length pyramid: 2-4 word root queries at the top, 6-8 word mid-tier queries in the middle, 10-12 word long-tail queries at the base. The reasonable inference from that model is that longer queries are more specific and therefore better matched to specific pages. If your page covers a topic in depth, a precise long-form query should land on it more reliably than a short root query competing with dozens of other pages. We pre-registered that prediction on 10 May 2026. H1 stated: citation rate increases monotonically with query length across all three fan-out tiers. The pre-registration defined four falsification criteria, including the inverted-gradient criterion: citation rate at 2-4 words exceeds citation rate at 10-12 words by more than 22.0 percentage points. The data falsified H1 on every measure. The inverted-gradient criterion was confirmed on day one and held for all five days without drift. Method E030 ran 45 queries per day across five consecutive days (19-23 May 2026), using the Perplexity Sonar Pro API. The measurement window was pre-registered and locked before any data collection began. Pages Three T1 proprietary-concept pages with confirmed Perplexity citation history: /geo-stack/, /extractability/, /retrieval-probability/. Drawn from the E014 M2 stable-cited set. Queries 45 total: 5 queries per tier (2-4w, 6-8w, 10-12w) per page. All queries from the Semantic fan-out category only (Pete Meyers BrightonSEO 2026 taxonomy). No entity or follow-up query types included. Measurement Binary citation outcome: cited (thegeolab.net URL appears in Sonar Pro search_results) or not cited. Automated cron at 10:00 UTC daily. 225 total measurements. Noise floor E016 established a 22.0pp interpretability threshold for The GEO Lab measurement stack. Results below this threshold are directionally real but not conclusively separable from platform variance. A content freeze was enforced on all three pages from 19 to 23 May to prevent page changes from contaminating the measurement. The freeze lifted on 23 May after the final measurement run. Statistical analysis used Welch's two-sample t-test and Cohen's d for each tier pair, with Wilson score intervals for 95% confidence bounds on each proportion. Citation Rate Results 61.3% 2-4 word queries 36.0% 6-8 word queries 16.0% 10-12 word queries 45.3pp Short vs long gap Length tier Cited Total Rate 95% CI (Wilson) vs 22pp noise floor 2-4 words 46 75 61.3% [50.0%–71.5%] — 6-8 words 27 75 36.0% [26.1%–47.3%] — 10-12 words 12 75 16.0% [9.4%–25.9%] — Combined 85 225 37.8% — — Table 1. Citation rate by fan-out query length tier. Perplexity Sonar Pro API, 5 days, 19-23 May 2026. Statistical tests Comparison Difference t-stat p-value Cohen's d Effect vs noise floor 2-4w vs 6-8w 25.3pp 3.187 0.0018 0.520 Medium Above 22.0pp 6-8w vs 10-12w 20.0pp 2.849 0.0051 0.465 Small Below 22.0pp 2-4w vs 10-12w 45.3pp 6.398 <0.0001 1.045 Large Above 22.0pp Table 2. Welch's two-sample t-test and Cohen's d for each tier pair. Noise floor threshold: 22.0pp (E016, Zenodo 10.5281/zenodo.19869156). Note on the 6-8w vs 10-12w comparison. The 20.0pp delta is statistically significant (p = 0.0051) but sits just below the 22.0pp E016 interpretability threshold. The direction of the effect is reliable. The magnitude is not conclusively separable from platform variance at this sample size. The medium-to-long step should be treated as directional evidence, not a fully interpretable experimental result. The short-to-long comparison (45.3pp, d = 1.045) is unambiguous. Day-over-day stability Day totals across the five-day window: 17, 18, 16, 17, 17 citations per 45 queries (38%, 40%, 36%, 38%, 38%). Chi-square test: χ² = 0.118, df = 4, p = 0.9983. No day-over-day drift. The measurement environment was stable throughout. This rules out platform updates, re-crawl events, or content changes as confounds. Page-Level Breakdown The three pages showed consistent tier-level gradients with one notable exception: /extractability/ produced zero citations across all 25 long-query measurements. That is not a day-level fluctuation. It held for all five days. Page 2-4 words 6-8 words 10-12 words Total /retrieval-probability/ 20/25 (80%) 12/25 (48%) 7/25 (28%) 39/75 (52%) /geo-stack/ 12/25 (48%) 10/25 (40%) 5/25 (20%) 27/75 (36%) /extractability/ 14/25 (56%) 5/25 (20%) 0/25 (0%) 19/75 (25%) Table 3. Citation rate by page and length tier. Each cell = cited / 25 possible measurements (5 queries × 5 days). /extractability/ 10-12w highlighted: 0/25 across all five days. The /extractability/ floor effect The passage extractability page cites at 56% on short queries and drops to zero at the long-tail tier. Every other page maintains some citation rate at 10-12 words. This is a structurally different outcome, not a noisy variant of the same pattern. The likely mechanism: "extractability" is a generic English word. At short query lengths (2-4 words), the query includes enough proprietary context from the GEO Stack namespace to anchor retrieval to thegeolab.net. At 10-12 words, the compositional query moves into generic writing-quality or content-structure territory, where thegeolab.net has no retrieval advantage over more established sources. The Gemini GEO acronym disambiguation failure (GEO = geography on short query tiers) may compound this at the long-tail end. The SIO framework (Maquet, M., 2026, Signal Inference Optimization: Doctrine Canonique) predicts exactly this at the corpus level through its interpretive sedimentation concept: when a generic term has already been used across thousands of pages in its conventional meaning, a retrieval system encountering it in a long compositional query has no reason to surface a specialist research page over more established general sources. The sedimentation is not caused by the query. It pre-exists in the competitive landscape. The query length just determines whether the retrieval set stays inside the proprietary namespace (short tier, sedimentation irrelevant) or expands into the sediment layer (long tier, sedimentation decisive). core retrieval variable performs best across all tiers, including a 28% citation rate at 10-12 words where /extractability/ scores zero. The likely reason: "retrieval probability" is an unusual phrase with almost no prior usage outside the GEO Lab corpus. Even at long query lengths, the phrase anchors retrieval to thegeolab.net because no competing source has built a comparable retrieval signal for it. GEO Lab research guides Free ebooks covering citation measurement, the GEO Stack framework, and AI search optimisation for practitioners. Browse the library → What Is Actually Happening The inverted gradient is not a content quality finding. Updating or expanding the pages in the dataset would not change the citation rate outcome. The mechanism operates one step before content quality becomes relevant. When Perplexity receives a short query like "GEO Stack", it retrieves from a namespace where thegeolab.net is the primary source. The competitive density in that namespace is low. Citation probability is high not because the content is good, but because there are few alternatives. When the query becomes "how does the GEO Stack five-layer measurement framework compare to other AI optimisation approaches", Perplexity retrieves from a broader topic namespace. ThatWare, everything-pr.com, and other content-heavy competitors enter the retrieval set. At that point, the selection mechanism moves from namespace exclusivity to competitive chunk density. Content with higher word count produces more candidate chunks, which increases selection probability regardless of precision or quality. Anthony Lee, in an unpublished internal analysis shared privately, reports that Perplexity reads only a small part of each candidate page before deciding whether to cite it, far less than Google AI Mode. Those figures come from an internal study and are not public, so they are not reproduced here. The directional implication fits E030: a short query anchored in a proprietary namespace reaches the relevant passage immediately, while a long compositional query spreads a limited reading budget across a wider, more competitive retrieval set. The SIO framework (Maquet, M., 2026, Signal Inference Optimization: Doctrine Canonique) frames the same finding. A proprietary concept that is named consistently across a corpus — same term, same scope, no synonym variation — creates a gravitational anchor: every page in the corpus reinforces the same semantic signal, so retrieval systems converge on the source regardless of query phrasing variation. "Extractability" lacks this anchor because it is a generic English word used across thousands of pages with no consistent proprietary meaning. At short query tiers, surrounding GEO Stack context provides enough namespace signal to anchor retrieval. At long-tail tiers, the compositional query moves outside the anchor field entirely. There is no semantic mass to pull it back. The /extractability/ floor effect is not an anomaly. It is terminological gravity at zero. Why this matters for E047 E047 tests whether expanding topical footprint to cover Perplexity fan-out sub-queries increases citation rate on primary queries. The E030 result reframes that question. Covering sub-queries at the 10-12 word tier will not produce reliable citation rate improvements if the pages enter a generic competitive set where chunk density determines selection. The intervention most likely to work is anchoring more short-query variants within the proprietary namespace, not expanding into compositional long-tail queries. Routing Anomalies Three queries produced consistent routing to pages other than the intended target. Two are hard misbindings (the wrong page retrieved instead of the target). One is a co-retrieval (the correct page retrieved alongside an additional page). Query ID Expected Retrieved Days Cited Type geostack_6_5 /geo-stack/ /geo-brand-citation-index/ 1, 2, 4, 5 0/5 Hard misbinding extract_6_2 /extractability/ /geo-stack/ 1, 2, 3, 4, 5 0/5 Hard misbinding. Unlogged pre-experiment. retprob_6_1 /retrieval-probability/ /geo-stack/ co-retrieved 3, 4, 5 5/5 Co-retrieval Table 4. Routing anomalies across 5-day measurement window. Hard misbinding = expected page absent from retrieval set, wrong page retrieved instead. Co-retrieval = expected page present and cited, additional page also retrieved. extract_6_2 was not in the pre-experiment anomaly log. It was identified during statistical analysis on 24 May 2026. Both hard misbindings score cited = 0 across all days, so neither inflates any cell in Table 3. The retprob_6_1 anomaly was pre-logged as a routing miss but reclassified during analysis as a co-retrieval: /retrieval-probability/ was present and cited on all five days, with /geo-stack/ appearing as an addition rather than a substitute. Limitations Single platform. E030 measures Perplexity Sonar Pro only. The ChatGPT arm (E056) and cross-platform comparisons are sequenced separately. The gradient may differ on ChatGPT, where a pre-retrieval intent gate (confirmed in E042) changes the citation mechanism entirely. Semantic fan-out category only. Queries used the Semantic category from Pete Meyers' BrightonSEO 2026 fan-out taxonomy. Other categories (Entity, Attribute, Compare, Tutorial, etc.) may produce different length-gradient results. The interaction between fan-out category and query length is out of scope for E030 and is a candidate for E035. Three stably-cited pages. The page set was drawn from the E014 M2 stable-cited population. Pages that are not currently in Perplexity's citation set were excluded. The gradient may differ for pages entering the cited set for the first time. 6-8w vs 10-12w comparison below noise floor. The 20.0pp delta between medium and long tiers is statistically significant (p = 0.0051) but sits below the 22.0pp E016 interpretability threshold. The direction is reliable; the magnitude should not be treated as a precise effect size estimate. Pre-measurement edit carry-over. An anchor text edit to /geo-stack/ was deployed on 18 May 2026, one day before the measurement window opened. The edit is documented and did not affect the frozen pages, but it may have influenced retprob_6_1 co-retrieval behaviour from day 3 onward. Single site and niche. All three pages are T1 proprietary-concept pages for a single domain in the GEO research niche. The namespace exclusivity mechanism may be more pronounced for niche research sites than for established multi-topic publishers. 7. API fan-out behaviour as outlier. E030 measurements used the Perplexity Sonar Pro API throughout. Lee (2026, Paper 2) measured fan-out string consistency across platforms and found the API produces a Jaccard similarity score of 0.012 — an extreme outlier compared to Perplexity UI (0.157), ChatGPT UI (0.213), and Gemini UI (0.167). API fan-out is near-random in its sub-query generation relative to the UI. The length gradient measured in E030 reflects API retrieval behaviour specifically. Whether the same gradient holds in Perplexity's web interface — where fan-out sub-queries are more consistent and the reading window behaviour may differ — is outside E030's scope and a candidate for a future UI-replication arm. Implications The E030 result changes how query length should be treated in GEO measurement design. Query length is a confound variable. Citation rate experiments that mix short and long queries without controlling for tier will produce results that reflect the tier composition of the query set, not the true citation rate of the page. For content strategy, the practical implication is specific. Short proprietary-concept queries drive the majority of Perplexity citations on T1 pages. A page that cites at 80% on short queries may cite at 28% on long queries regardless of on-page quality improvements. Before investing in long-tail content expansion, confirm which short-query anchors your site owns in Perplexity's namespace. That is the primary citation signal for T1 content. At long-tail tiers the retrieval set widens. When a long compositional query drifts into the generic GEO competitive set, ThatWare, Hashmeta, and other content-heavy competitors enter the retrieval pool. These pages produce more candidate chunks by volume, which raises their selection probability once the retrieval set is large. A page that cites at 61% on short queries is not competing against those pages in the proprietary namespace: at 2-4 words they are absent from the retrieval set entirely. At 10-12 words they are present, and their chunk density advantage activates. The /extractability/ floor effect points to a second implication. Generic terms that borrow meaning from their surrounding namespace are structurally different from proprietary terms with no prior usage. For pages built around generic terms, the short-to-long citation gradient will be steeper than for pages built around coined or proprietary phrases. The namespace exclusivity of the primary concept predicts how much the gradient will compress at long-tail tiers. A third implication is methodological and applies across all AI search measurement. Citation behaviour varies structurally across platforms rather than randomly, as E042 found when mapping cross-platform retrieval mechanisms. E030 measures Perplexity Sonar Pro only. The length gradient reported here is a Perplexity-specific finding. E056 (ChatGPT arm) is sequenced separately because Lee (2026, Paper 2, Zenodo 10.5281/zenodo.19554329) confirmed ChatGPT's flagship model (gpt-5.4) searches only 29% of queries — the majority are answered from model weights without retrieval. At that search rate, a length gradient experiment on ChatGPT is measuring something structurally different: not retrieval competition but the boundary between weight-based recall and live retrieval. Any experiment that mixes platforms in a single citation rate measurement without controlling for this structural difference will produce results that reflect platform composition rather than the variable being tested. FAQ Does query length affect Perplexity citation rate? Yes, and in the opposite direction from what most people assume. E030 measured 225 queries across three fan-out length tiers over five days. Short queries (2-4 words) produced a 61.3% citation rate. Medium queries (6-8 words) produced 36.0%. Long queries (10-12 words) produced 16.0%. The 45.3pp spread between short and long tiers is well above the 22.0pp E016 interpretability threshold (Zenodo DOI 10.5281/zenodo.19869156). Why do shorter queries get cited more often in Perplexity? Short queries anchor within proprietary concept namespaces where few competitors exist. A query like "GEO Stack" retrieves from a space where thegeolab.net has few alternatives. A long compositional query like "how does the GEO Stack five-layer framework measure citation rate" drifts into generic GEO topic space where ThatWare, everything-pr.com, and others enter the retrieval set. At that point, selection moves from namespace exclusivity to competitive chunk density. What was the pre-registered prediction for E030? H1 predicted a monotonic increase in citation rate with query length: longer, more specific queries would produce higher citation rates. The pre-registration was published on 10 May 2026 at thegeolab.net. Falsification criterion 2 defined the inverted-gradient result: citation rate at 2-4 words exceeds 10-12 words by more than 22pp. The result confirmed falsification criterion 2 on day one and held across all five days. What is the extractability floor effect in E030? /extractability/ produced 0 citations across all 25 long-query measurements over five days. "Extractability" is a generic English word that lacks a proprietary anchor. At short query tiers, surrounding context provides namespace anchoring. At long-tail tiers, the compositional query drifts into generic writing-quality territory where thegeolab.net has no selective advantage. /retrieval-probability/ cites at 28% at the same tier because "retrieval probability" is an unusual phrase with almost no usage outside the GEO Lab corpus. What does E030 mean for content strategy? Short proprietary-concept queries drive the majority of Perplexity citations on T1 pages. Before investing in long-tail content expansion, identify which short-query anchors your domain owns in Perplexity's namespace. A page that cites at 80% on short queries may cite at 28% on long queries regardless of content depth improvements. Query length must be controlled as a variable in any citation rate experiment. Mixed-tier query sets produce tier-composition artefacts, not true citation rates. Key Takeaways Query length is an inverse predictor of Perplexity citation rate on T1 proprietary-concept pages. Short queries (2-4 words) cited at 61.3%. Long queries (10-12 words) cited at 16.0%. The 45.3pp short-to-long gap exceeds the E016 22.0pp noise floor threshold and produces Cohen's d = 1.045. The effect is large and robust across five days with no drift. The mechanism is namespace drift, not content quality. Short queries anchor in proprietary concept space where few alternatives exist. Long queries move into generic topic space where competitive chunk density determines selection. /extractability/ produced 0/25 citations at the 10-12 word tier across all five days. Generic terms without proprietary anchoring experience a complete floor effect at long-tail query lengths. Query length must be controlled as a confound variable in any future citation rate experiment. Mixed-tier query sets will produce citation rates that reflect tier composition rather than page-level performance. E030 pre-registration and dataset. The pre-registered null hypothesis and falsification criteria were published on 10 May 2026 at thegeolab.net/e030-fan-out-length-citation-rate/. The replication dataset is available at github.com/arturseo-geo/geo-lab-experiments/tree/main/e030. The full statistical summary is archived on Zenodo: doi.org/10.5281/zenodo.20601081. Questions about the methodology or dataset: contact The GEO Lab. Experiment Details Experiment ID: E030 Status: Complete — Published Measurement platform: Perplexity Sonar Pro API Measurement window: 2026-05-19 to 2026-05-23 (5 days) Total measurements: 225 (45 queries × 5 days) Pre-registration published: 2026-05-10 Noise floor reference: E016, 22.0pp threshold (Zenodo DOI 10.5281/zenodo.19869156) Replication data: GitHub — geo-lab-experiments/e030 Fan-out taxonomy: Pete Meyers, BrightonSEO 2026 DOI: 10.5281/zenodo.20601081 External references: Lee, A. (2026). Fan-out string consistency across AI platforms. Zenodo. https://doi.org/10.5281/zenodo.19554329. Additional findings referenced as personal communication (A. Lee, 2026).; Maquet, M. (2026). The Three Horizons of AI Fidelity (Medium) Related Posts E030 Pre-Registration: Fan-out Query Length and Citation Rate E027: Perplexity Zero-Variance Citation — 14-Day Replication Retrieval Probability — GEO Stack Layer 1 Extractability — GEO Stack Layer 2 The GEO Stack Framework The SEO Floor: Why GEO Without SEO Fails Cite This Post Ferreira, A. (2026). Fan-out Query Length and Citation Rate: 225 Queries, Inverted Result. The GEO Lab. https://thegeolab.net/e030-fan-out-length-citation-rate-results/ Version history: v1.0, 29 May 2026 (initial publication). v1.1, 2 June 2026: removed quantitative claims sourced to an unpublished internal study (Lee reading-window figures and Study D); retained DOI-backed references (Lee Paper 2). About the author: The GEO Lab founder Artur Ferreira has been working in SEO and leads research into Generative Engine Optimisation methodologies. He developed the GEO Stack five-layer measurement framework and runs pre-registered controlled experiments measuring how AI search systems retrieve, extract, and cite web content. Connect on X or LinkedIn. Have questions? Contact The GEO Lab
---
## FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata
URL: https://thegeolab.net/faqpage-duplicate-fix/
.wp-block-post-content h1 h2 h3 p ul, ol li strong em .byline .subtitle /* TL;DR block */ .definition-block .definition-block p .definition-block p:last-child .definition-block .label /* Callout box */ .callout .callout p .callout p:last-child /* Pipeline steps */ .pipeline .pipeline li .pipeline li > * .pipeline li code .pipeline li::before /* Code blocks */ code .code-label /* Fix table */ table th td tr:nth-child(even) td /* FAQ section */ .faq-item .faq-item h3 /* Sources / meta */ .meta-section .meta-section h2 .meta-section ul .meta-section li /* Author bio */ .author-bio .author-bio strong h1 } .comparison-table .comparison-table th .comparison-table td .comparison-table tr:nth-child(even) .comparison-table tr:nth-child(odd) .comparison-table tr:hover @media(max-width:600px) .comparison-table th, .comparison-table td } code .do-dont-list code, .do-dont code .do-dont .do-dont-col /* Mobile responsive */ @media (max-width: 768px) h1, .content-title h2 .stat-grid .stat-card .stat-number .term-grid .module-grid .method-grid .progress-grid .category-grid .do-dont .code-compare .code-compare-block .pipeline-diagram .pipeline-arrow .comparison-table .definition-block, .callout, .key-takeaway .entry-card, .entry-card-header, .issue-block .entry-row, .issue-row, .registry-row .testimonial-card .author-bio .review-card img } @media (max-width: 480px) h1, .content-title .stat-grid .byline .subtitle .geolab-toc .meta-section } /* Code blocks */ pre pre code FAQPage Duplicate Field GSC Fix: JSON-LD vs Microdata By Artur Ferreira · The GEO Lab · Published: 12 March 2026 · Version 1.0 How two valid schema declarations on one page create a GSC error — and the single-line fix that resolves it TL;DR — The Fix If you have JSON-LD FAQPage schema and custom HTML FAQ sections with microdata attributes on the same page, you have two FAQPage declarations. Google will flag it. Fix: strip all itemscope / itemprop / itemtype attributes from the FAQ HTML. Keep the JSON-LD. Done. Root cause: SCHEMA_FAQPAGE_DUPLICATE_001 — dual declaration, two valid methods, one page, one conflict. The Story: JSON-LD and FAQPage Schema Google Search Console flagged a FAQPage structured data error on thegeolab.net for a duplicate field conflict between JSON-LD schema and HTML microdata markup. The GEO Lab had already identified and resolved the root cause before the notification arrived. Not in a "here's a helpful heads-up" way. In a "Duplicate field: FAQPage detected across your site" way, arriving 3–5 days after we'd submitted the corrected pages for re-indexing. The fix was live. The re-crawl was queued. And Google's notification system was somewhere in its own queue, composing a formal complaint about a corpse. The reason we knew it was already fixed: AI Visibility console caught it first. JSON-LD in "@type": "FAQPage" Microdata in HTML DUPLICATE FAQPage × 2 GSC ERROR 3–5 days later Fix: remove microdata. JSON-LD only. Figure 1. Two valid FAQPage declarations collide into one GSC error. Fix: remove all microdata, JSON-LD only. What Actually Happened (and Why It Was So Easy to Miss): Google Search Console vs WordPress Here's the thing about schema conflicts — they don't break anything visible. The page looks fine. Rich results still show up in testing. You get no PHP error, no layout shift, no red text in the admin panel. The only symptom is a quiet duplication in the structured data layer that Google's validators will eventually surface, and that your own audit tools will catch if you built them right. We didn't set out to create a duplicate FAQPage schema. Here's how it happened anyway. Step 1 — FAQPage JSON-LD added via functions.php schema filters (10 March) This is the clean, Google-preferred way to declare structured data: a That's the entire fix. One schema method per page, one FAQPage declaration per page. The microdata attributes in the HTML were adding nothing except a conflict. Why This Happens More Than You'd Think The microdata pattern isn't wrong — it's just redundant when JSON-LD is already doing the job. Both methods are valid Schema.org. Both are readable by Google. The error is declaring the same schema type twice on the same page, not using microdata itself. The specific trap: JSON-LD and microdata operate in completely separate parts of a page. JSON-LD lives in a And the pattern to avoid — microdata attributes on the FAQ HTML that, combined with the JSON-LD above, produce a duplicate declaration: Wrong — microdata + JSON-LD = duplicate What is GEO?
GEO is...
If you've previously used microdata for FAQ sections and switched to JSON-LD: removing the JSON-LD script block is not enough. You must also strip every itemscope, itemtype, and itemprop attribute from the FAQ HTML elements. GSC's Rich Results Test will show both declarations if any microdata remains. Going deeper? GEO for WordPress covers the full technical setup — from schema markup to server configuration — for making WordPress sites AI-retrievable. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template — free to download. Writing FAQ Questions and Answers Schema structure is only half the implementation. The questions and answers themselves determine whether the schema is useful as a retrieval signal. Questions Write questions the way a user would phrase a query to ChatGPT, Gemini, or Perplexity — not the way you'd write a heading. "What is FAQPage schema?" is a heading. "Does FAQPage schema still work in 2026?" is a query. The question in the schema should match the retrieval query you want to rank for. Answers Per the FAQPage schema documentation, each answer should stand alone as a complete, accurate response to the question — without requiring the reader to have read anything else on the page. AI retrieval systems extract individual Q&A pairs. If the answer references context from earlier in the page ("as mentioned above"), that context won't be present when the pair is extracted in isolation. The working range for thegeolab.net is 5–10 pairs per page. Below 5, the schema adds minimal retrieval signal. Above 10, individual answers tend to shorten and become less substantive. The target is answers long enough to be genuinely useful — typically 2–4 sentences — not answers optimised for brevity. Implementation on WordPress On a WordPress site, FAQPage JSON-LD can be output in three ways. Only one of them is safe to use alongside a schema plugin like RankMath: Via functions.php using wp_head Add the JSON-LD via add_action('wp_head', 'output_faqpage_schema'). Gives you full control over which pages receive the schema and what it contains. Safe alongside RankMath as long as RankMath's own FAQ schema output is disabled. Inline in post content as a The was an empty container. The table existed only after the JavaScript fetch resolved and renderTable() executed. GPTBot, arriving at the page, would have retrieved the empty container and nothing else. The server log confirmed GPTBot had been visiting regularly. The citation rate for the leaderboard page in the E002 experiment: 0%. The leaderboard — the page most directly relevant to citation rate queries — was producing no citations because it had no retrievable content. The invisibility was total. Not degraded — absent. Every brand ranking, every citation score, every methodology note in the leaderboard table was unreachable by any AI crawler. The page existed in the index as a shell. Running curl -s https://thegeolab.net/geo-brand-citation-index/ | grep -c '' returned 0. After the fix, the same command returned 28 — one row per brand in the table, all present in the raw HTML, all accessible to GPTBot, PerplexityBot, and ClaudeBot on their next crawl. The Fix: Server-Side Pre-Render to Static HTML The fix has one principle: GEO-critical content must be present in the raw HTML that the server returns. No exceptions. No "it renders fast enough that crawlers will wait." Crawlers do not wait. They fetch, parse, and move on. For the leaderboard, the fix was to generate the table server-side and write it directly into the WordPress post content as static HTML. The JavaScript component was removed. The PHP function that generated the same table data was called at page-generation time instead of at browser-load time, and its output was stored as HTML in the post content field. Before — JS-rendered (invisible to AI crawlers) After — static HTML pre-render (visible to all crawlers) Brand Perplexity Google AIO ChatGPT Score Brand A 34% ...
The update process for the leaderboard is now: generate the table HTML server-side via PHP, write the updated HTML to the post content field via WP-CLI, clear the FastCGI cache, verify with curl | grep -c ' '. The leaderboard updates monthly; the static HTML is updated at the same time. This pattern — generate server-side, store as static HTML, verify with curl — is the correct deployment workflow for any content that needs to be retrievable by AI crawlers. 📖 The GEO Workbook: 30-Day AI Visibility Action Plan Includes a full JS rendering audit checklist and the nine WordPress-specific traps documented below, with fix commands for each. Download free → Nine WordPress JavaScript Traps for GEO WordPress has specific patterns that produce JS-rendered content silently — without any obvious indication in the editor that the content will be invisible to crawlers. These are the nine most common as of May 2026. Trap What it looks like What AI crawlers see Fix React/Vue shortcodes [citation_table] renders a full component Empty div container Replace with static HTML generated server-side AJAX data loading Table/chart populated via fetch() after page load Empty container or loading skeleton Inline the data in the initial HTML response JavaScript tabs/accordions Hidden content revealed on click Only the first tab or nothing Use CSS-only disclosure or include all content in HTML Lazy-loaded content Images/content load on scroll via Intersection Observer Placeholder or empty element Disable lazy loading for above-fold GEO-critical content Gutenberg dynamic blocks Block marked isDynamic: true renders server-side per request, but via PHP — not JS. May still be fine. Usually visible — verify with curl Verify with curl. PHP server-side rendering is crawler-safe. WooCommerce product data Price, stock, reviews loaded via JS Empty price containers Use PHP template functions, not JS injection Pagebuilder components Elementor, Divi animations and dynamic content Static version only, or nothing Test each component individually with curl Social proof widgets Review feeds, follower counts loaded via third-party JS Empty div Screenshot or static fallback for GEO-critical social proof Chart.js / D3 visualisations Canvas or SVG generated entirely by JavaScript Empty canvas element or no element Provide a static data table alongside any JS chart WordPress JS rendering traps documented from GEO Lab site audits and deployment failures. May 2026. The pattern across all nine traps is the same: the content exists in JavaScript memory after execution, not in the HTML that the server returns. The fix in every case is the same: move the content generation to happen before the server sends the response, not after the browser receives it. The Three-Step JS Rendering Audit Protocol Running the full JS rendering audit across a site takes under 30 minutes and requires no specialist tools beyond curl and access to your server logs. Identify all GEO-critical pages List every page on your site that contains content you actively want AI platforms to cite — data tables, research findings, framework definitions, unique statistics, leaderboards, methodology pages. These are the pages where JS rendering failures have the most impact. Run the curl test on each page For each page, run curl -s [URL] | grep -c '[key element]' and compare the count to what your browser shows. Any zero or near-zero count for content your browser renders indicates a JS rendering failure. Log each result. Cross-reference with AI crawler log data Run grep -i 'GPTBot|PerplexityBot|ClaudeBot' /var/log/nginx/access.log | awk '' | sort | uniq -c | sort -rn to see which pages AI crawlers have visited and how often. Pages with regular crawler visits but JS rendering failures are your highest-priority fixes — the crawlers are already there, seeing nothing. Browser Chrome / Safari Executes JavaScript ✓ Sees HTML content ✓ Sees JS content Not a crawler Googlebot Full-render crawler Executes JavaScript ✓ Sees HTML content ✓ Sees JS content Google AIO source only AI Crawlers GPTBot · PerplexityBot · ClaudeBot HTML only — no JS ✓ Sees HTML content ✗ JS content invisible Primary GEO crawlers Three crawler tiers and what each sees. Googlebot's JavaScript rendering creates false confidence — the AI crawlers that matter for Perplexity, ChatGPT, and Claude citations are in the HTML-only tier. After the audit, prioritise fixes by: pages with existing AI crawler visits (the problem is active), pages containing unique data or proprietary findings (highest citation value if fixed), and pages with the most internal links (fixing them also improves the crawlable content pool around them). Key Takeaway AI crawlers are HTML-only. Content that exists only in JavaScript memory is invisible to GPTBot, PerplexityBot, and ClaudeBot — regardless of how it looks in the browser or what Google Search Console reports. Run curl -s [URL] | grep -c '[element]' to test any page in under 10 seconds The fix is server-side pre-rendering: generate HTML before the response, not after browser load Googlebot rendering JS is irrelevant for Perplexity and ChatGPT citations — different crawlers, different architecture Pages with regular AI crawler visits but JS-rendered content are the highest-priority fixes Frequently Asked Questions Do AI crawlers execute JavaScript? No. As of May 2026, GPTBot (OpenAI), PerplexityBot, and ClaudeBot (Anthropic) are HTML-only crawlers. They fetch the raw HTML response from the server and stop there — no JavaScript execution, no dynamic rendering, no waiting for content to load. Any content that your page generates via JavaScript after the initial HTML response is invisible to these crawlers. This is different from Googlebot, which does execute JavaScript, but Googlebot's JS rendering only benefits Google AI Overviews — not Perplexity, ChatGPT, or Claude citations. How do I test if my content is visible to AI crawlers? Run curl -s https://yourdomain.com/your-page/ | grep -c 'your content' from any terminal. Replace 'your content' with a text string or HTML element you expect to be present — for example, for table rows or a specific heading text. A result of 0 when your browser shows the content confirms it is JavaScript-rendered and invisible to AI crawlers. This test takes under 10 seconds per page. What is server-side pre-rendering and why does it fix the problem? Server-side pre-rendering means generating the HTML content before the server sends its response — using PHP, Python, or another server-side language — rather than generating it in the browser after JavaScript executes. The resulting HTML contains all the content in the initial response, so any crawler that fetches the page receives the full content regardless of whether it executes JavaScript. For WordPress, this means generating tables and dynamic content via PHP functions and storing the output as static HTML in the post content field, rather than using JavaScript components or shortcodes that execute at browser load time. Does this affect Google AI Overviews? Google AI Overviews draw from Googlebot's crawl, and Googlebot does execute JavaScript. This means JS-rendered content can, in principle, appear in Google AI Overviews even without a static HTML fix. However, Perplexity, ChatGPT, and Claude all use their own HTML-only crawlers and are not affected by Googlebot's JavaScript rendering capability. For any site targeting citations across multiple AI platforms — not just Google AIO — static HTML pre-rendering is required. Which types of content are most at risk from JS rendering failures? Data tables built with React or Vue components, content loaded via AJAX or fetch calls after page load, JavaScript-driven tabs and accordions where content is hidden by default, lazy-loaded content that only appears on scroll, shortcode-rendered widgets that execute JavaScript to populate their output, and any Chart.js or D3.js visualisations where the underlying data is not also present as an HTML table. For GEO specifically, leaderboards, citation rate tables, research data, and methodology pages are the highest-risk content types because they are also the pages with the highest citation value if made crawlable. Check your own site right now. Run curl -s [your most important page] | wc -l and compare the line count to your browser's view-source. A large gap indicates significant JS-rendered content. See the GEO Lab Brand Citation Index (thegeolab.net/geo-brand-citation-index/) — the page that this fix made crawlable. Related The Four States of AI Visibility: Invisible, Stage 0, Mentioned, Cited Log File Analysis as a GEO Instrumentation Layer Extractability: Designing Content for Machine Retrieval The GEO Lab Failure Registry The GEO Stack: Five-Layer Visibility Framework Failure Registry Reference GEO_JS_RENDER_001 — Brand Citation Index leaderboard invisible to AI crawlers. Root cause: React component rendering via client-side JavaScript. Fix: static HTML pre-render. Resolved April 2026. Version History Version 1.0 — 11 May 2026: Initial publication. JS rendering audit, three-tier crawler model, nine WordPress traps, before/after leaderboard fix. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## Zero Backups to Full Compliance in 2 Hours: A WordPress VPS Backup Case Study
URL: https://thegeolab.net/backup-system/
What happens when someone asks "do we have a full working backup?" and the honest answer is no TL;DR thegeolab.net was running live on a DigitalOcean VPS with zero backups. One disk failure would have meant total loss: 46 database tables, 15 hand-written mu-plugins, 479 theme files, every nginx config, every SSL cert, and a month of intensive GEO research that existed nowhere else. In approximately two hours, I built a three-layer backup system with automated nightly runs, Google Drive off-site sync via headless OAuth, AES-256-CBC encryption, integrity verification, and 10-mode restore script. Four Google Drive approaches failed before the fifth worked. Ten components were missing from v1. Here's the full case study. Contents The wake-up call What was actually at risk Four Google Drive failures The fix: headless OAuth The backup architecture Compliance audit: 10 gaps in v1 The restore script Corruption check results The 26-item checklist Eight lessons Frequently asked questions The Wake-Up Call Someone asked, mid-session: "do we have a full working backup (including databases)?" I knew the answer before I checked. No. Nothing. Not a database dump, not a file copy, not a cron entry that had ever run and produced something verifiable. The entire site existed on one disk, on one VPS, with no copy anywhere else. This is embarrassing to publish. It's also the kind of thing that's extremely common and almost never talked about because the people it happens to are too embarrassed to talk about it, and the people it hasn't happened to yet assume it won't. I'm publishing it because I built the audit system to surface exactly this kind of silent risk, and this is what it found when someone finally asked the right question. The site had been live long enough that losing it would have hurt. Twenty years of SEO methodology, a custom audit framework, 15 hand-written mu-plugins, a failure registry with 16 categories, none of it existed anywhere except on that one disk. The session that followed was approximately two hours of work. Here's the full account. What Was Actually at Risk When people say "backups," they usually mean the database and wp-content. That's about 40% of what you'd actually need to restore a production WordPress VPS from scratch. Here's the full inventory of what existed only on that one disk: Database: 46 tables with geo_ prefix (custom prefix, not wp_). Every post, page, postmeta row: including all RankMath SEO data, every JSON-LD schema block, every option value tuned over months. mu-plugins: 15 custom PHP files. TOC generator, schema injectors, geo-defaults, contact form handler, ebook styles. Hand-written. Not in any plugin repository. Not recoverable from anywhere. Theme: geolab-theme with 479 files including the knowledge base, audit tools, session memory, and the entire failure registry in YAML. Uploads: 282 files: brand assets, hero images, WebP conversions. Replaceable in theory; in practice, hours of work. System configs: nginx server blocks, PHP-FPM pool config tuned for the specific workload, SSL certificates, MySQL tuning parameters, UFW firewall rules, SSH hardening config, fail2ban jails with custom ban rules, a crontab with 38 entries. The system config layer is the one people consistently underestimate. A database restore gets your content back. It does not get back the nginx config that makes WordPress work without exposing PHP-FPM directly. It does not get back the PHP-FPM pool config tuned for the server's RAM. It does not get back the fail2ban rules that are actively blocking login attempts. Recreating that layer from scratch takes hours, and that's assuming you remember all of it. 46Database tables 15Custom mu-plugins 479Theme files 38Crontab entries 0Backups (starting point) 4,053Files backed up (end) Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template: free to download. Four Google Drive Failures Off-site backup was the priority. Local VPS backup is useful; local VPS backup plus an off-site copy is the actual minimum viable setup. Google Drive was the obvious choice: 15 GB of available quota, already authenticated on the Google Cloud Console from earlier work. It took four attempts before anything worked. FAILED Attempt 1: Service account authentication. rclone configured with a Google service account JSON key. Every upload failed with storageQuotaExceeded. Root cause: Google service accounts have zero storage quota on regular Google Drive. They can only write to Google Workspace Shared Drives, which require a paid Workspace subscription, or use domain-wide OAuth delegation. The error message implies storage is the problem. Storage isn't the problem. The account type is the problem. FAILED Attempt 2: Shared folder with service account as editor. Created a backup folder in personal Google Drive. Shared it with the service account email as Editor. Added root_folder_id to the rclone config. Same storageQuotaExceeded error. Sharing a folder grants access: it does not grant storage quota. The service account has nowhere to put the bytes regardless of folder permissions. FAILED Attempt 3: Download rclone to local machine for OAuth. Personal Google account OAuth was the actual fix, but OAuth requires a browser, and the VPS is headless. Plan: run rclone authorize "drive" on the local PC (WSL/Ubuntu). Problem: downloads.rclone.org returned HTTP 404 or empty files. Downloads were failing at the network level. rclone never installed. FAILED Attempt 4: SSH to VPS from local machine. Standard SSH to thegeolab.net:22 was refused. Port 22 is blocked from the local network, which was configured as a security measure and then forgotten about. The VPS was unreachable via normal SSH from the local machine. WORKED Attempt 5: Headless OAuth via Tailscale + rclone binary copy. Connected to the VPS via Tailscale (mesh VPN, internal IP 100.x.x.x). Copied the rclone binary directly from the VPS to the local machine via SCP. Ran rclone authorize "drive" locally, opened the auth URL in the browser, authorized with personal Google account. Captured the OAuth token, access token, refresh token, expiry, and wrote it into the rclone config on the VPS. First upload: successful. See next section for the exact procedure. The pattern here is worth naming: each failure was caused by something that sounded like it should work, failed with a misleading error message, and required a different mental model to diagnose correctly. The service account error said "storage quota" when the real issue was account type. The folder sharing appeared to fix the quota problem but didn't. These failures are poorly documented precisely because most people give up at attempt 2 and use a different solution entirely. The Fix: Headless OAuth Flow The core insight: to run OAuth on a headless server, you don't need a browser on the server. You need rclone to generate an auth URL, a browser on any machine to complete the consent flow, and then the token pasted back. The challenge was just getting rclone onto a machine with a browser, given that the download was failing. The solution: copy rclone from the VPS to the local machine instead of downloading it. # Step 1: on local machine (WSL) — connect via Tailscale VPN scp [email protected]:/usr/bin/rclone /tmp/rclone chmod +x /tmp/rclone # Step 2: run the OAuth flow on local machine /tmp/rclone authorize "drive" # rclone starts a local server and prints an auth URL # On WSL, open it in Windows browser: powershell.exe -Command "Start-Process 'http://127.0.0.1:53682/auth?state=...'" # Sign in with personal Google account → authorize rclone # Token JSON is printed to stdout — copy it # Step 3: write rclone config on VPS cat > ~/.config/rclone/rclone.conf /tmp/test.txt rclone copy /tmp/test.txt gdrive: rclone ls gdrive: The refresh token matters. The refresh_token field is what makes this durable. Access tokens expire after an hour. The refresh token lets rclone obtain new access tokens automatically, indefinitely, without you re-running the OAuth flow. You do this once. The nightly cron handles everything after that. One gotcha worth documenting: rclone about gdrive: showed 15 GB of available storage even during the service account failures. That was misleading: it was showing the domain's quota information, not the service account's. The service account had no quota, but the command reported numbers anyway. Don't use rclone about as a diagnostic for whether uploads will work. The Backup Architecture NIGHTLY BACKUP v2 cron: 0 3 * * * (3 AM UTC) /root/backups/nightly/ 📦 geolabdb_YYYYMMDD.sql.gz (7-day rotation) 📁 uploads/ (282 files · 71 MB) 📁 plugins/ (3,256 files · rsync) 📁 mu-plugins/ (15 custom PHP files) 📁 theme/ (479 files) 📄 wp-config.php 📦 nginx-config.tar.gz 📦 letsencrypt.tar.gz 📄 crontab.txt (38 entries) 📁 system/ (15 config files) php.ini · fpm-pool.conf mysqld.cnf · sshd_config ufw-rules · iptables fail2ban.tar.gz systemd-custom.tar.gz hosts · resolv.conf packages.txt · server-manifest.txt 🔒 weekly_YYYYMMDD.tar.gz.enc AES-256-CBC · every Sunday Google Drive OAuth token · auto-sync 15 GB quota · ~128 MB used PC Desktop Manual snapshot · 87 MB Full verified copy · checksums /root/backups/restore.sh 10 modes · pre-restore safety backup · 10-second abort window Figure 1. Three-layer backup architecture: local VPS (automated nightly), Google Drive (automated sync via OAuth), PC Desktop (manual snapshot). The restore script is the fourth component, it's what makes the other three meaningful. The architecture is deliberately redundant. Local backup fails if the VPS disk fails, that's the exact scenario you're protecting against. Google Drive covers that case. PC Desktop covers the case where Google's service has an issue, or where you need to restore from a specific point-in-time snapshot that the nightly rotation has already overwritten. Three copies, two locations, one automated. The manual snapshot is the insurance policy for the insurance policy. Compliance Audit: 10 Gaps in v1 After the initial backup script was running, I ran a compliance audit against a standard VPS backup checklist. The first version of the script, call it v1, was missing ten components.The 10-gap finding from the initial compliance check is consistent with the failure patterns documented in the GEO compliance audit system: where infrastructure gaps compound at the crawlability layer long before they appear as citation drops. None of them were obvious omissions. They were all the things you don't think about because they're not called "WordPress backup" anywhere. ✗ PHP config (php.ini) ✗ PHP-FPM pool config (www.conf) ✗ MySQL config (mysqld.cnf) ✗ UFW firewall rules ✗ SSH config (sshd_config) ✗ fail2ban config ✗ Custom systemd services ✗ /etc/hosts ✗ Installed packages list ✗ WordPress theme (!) The theme omission is the one that requires explanation, because it's clearly absurd: the theme is 479 files that took months to build, and it wasn't being backed up. The reason: the initial script was built quickly, covered database and wp-content uploads and plugins and mu-plugins as the obvious layers, and the theme directory was never explicitly added. It lived in wp-content too, but the rsync paths were specific subdirectories. The system configs are the more structurally interesting gap. A PHP-FPM pool config contains memory limits, process counts, socket paths, and security settings tuned for a specific server. If you lose it and your new server has different defaults, WordPress will behave differently in ways that are annoying to debug. Your nginx config contains the exact fastcgi_pass path that connects nginx to PHP-FPM. Your firewall rules contain the specific ports you've allowed, the IPs you've blocked, and the rate limits you've set. None of this is documented anywhere except in the config files themselves. All ten gaps were fixed in v2, along with encryption and a server manifest. The Restore Script Backups without a restore script are an archive with unknown recoverability. The question isn't whether your files are somewhere, it's whether you can get the site back, reliably, under pressure, at 2am, with partial options when you don't need a full restore. I built restore.sh before considering the backup complete. Ten modes: CommandWhat it does ./restore.sh dryrunPreview all operations — nothing written, no changes made ./restore.sh fullFull restore with 10-second abort window before destructive ops begin ./restore.sh partial dbDatabase only — leaves all files in place ./restore.sh partial confignginx + SSL + wp-config + crontab ./restore.sh partial pluginsPlugins directory only ./restore.sh partial mu-pluginsmu-plugins only — the 15 custom files ./restore.sh partial uploadsUploads only, preserves everything else ./restore.sh partial themeTheme only ./restore.sh partial systemPHP/MySQL/SSH/firewall configs ./restore.sh from-driveDownloads latest from Google Drive before restoring ./restore.sh decrypt FILEDecrypts a weekly AES-256 archive The safety mechanism that matters most: before any destructive restore, the script automatically creates a pre-restore snapshot: current database dump, current uploads copy, current configs. So the worst case from a bad restore isn't "I've lost the site." It's "I've lost the site but I have the state it was in 30 seconds before I ran the restore." After any restore, the script flushes nginx fastcgi cache (rm -rf /var/cache/nginx/fastcgi/*), restarts PHP-FPM, and flushes the WordPress object cache. This matters because I discovered during the same session that wp cache flush does not clear the nginx fastcgi cache: they're separate systems. Without the explicit nginx flush, you restore the database and then see stale cached content for up to whatever your fastcgi cache TTL is. Corruption Check Results Having files is not the same as having good files. I ran a full integrity check across every component of the initial full backup before trusting any of it. ComponentTest methodResult DB dump (geolabdb_20260313.sql.gz)gzip -t + start/end markers✓ "Dump completed" marker present All .tar.gz archives (7 files)gzip -t on each✓ All pass mu-plugins (15 PHP files)php -l syntax check on each✓ All 15 pass wp-config.phpphp -l + credential count✓ 4 DB credentials found PNG images (spot check)File magic bytes verification✓ All valid PNG headers Zero-size filesfind -empty1 found: Wordfence CSS variable file (expected — empty in live too) Live vs backup matchTable count, file count comparison✓ 46/46 tables, 282/282 uploads The one finding, a zero-size Wordfence CSS file, was verified against the live site. The file is empty in production too. It's a CSS variable placeholder that Wordfence creates but only populates under specific conditions. Not a backup failure. Checksums generated for the critical components and stored alongside the backup. If the backup file ever changes unexpectedly, the checksum catches it. 3c32d7c376b565248aa0033ece620cac geolabdb_20260313.sql.gz bac204d1fb261a2d9f740276f1b700a7 wp-config.php ce02743eb71cb13ecbb3e24c66e0d540 nginx-config.tar.gz b41eb336e84d209f8c85728238b716af letsencrypt.tar.gz The 26-Item Checklist If you're running a WordPress site on a VPS, this is what a complete backup covers. The first 10 items are what most guides describe. Items 11–20 are what most guides omit. □ Database dump (--single-transaction --routines --triggers) □ DB dump has "Dump completed" end marker □ wp-content/uploads (rsync --delete) □ wp-content/plugins (rsync --delete) □ wp-content/mu-plugins (rsync --delete) □ Active theme directory □ wp-config.php (permissions 600) □ Nginx config (/etc/nginx/) □ SSL certificates (/etc/letsencrypt/) □ Crontab (crontab -l) □ PHP config (php.ini + FPM pool) □ MySQL config (mysqld.cnf) □ Firewall rules (UFW + iptables-save) □ SSH config (sshd_config) □ fail2ban config (/etc/fail2ban/) □ /etc/hosts □ Installed packages (dpkg --get-selections) □ Server manifest (OS, PHP, MySQL, Nginx versions) □ Off-site copy (Google Drive / S3 / etc.) □ Encryption (weekly AES-256 archive) □ Restore script with partial restore modes □ Pre-restore safety backup mechanism □ Integrity verification (gzip test, PHP syntax, counts) □ Retention policy (daily + weekly rotation) □ Automated cron with logging □ Tested dry-run restore Eight Lessons 1. Service account ≠ storage quota Google service accounts cannot upload to regular Google Drive. The error says "storage quota exceeded" which implies the account has some quota that's been used up. It has none. Use personal account OAuth with a refresh token for headless VPS access. The Google Drive API auth documentation documents this distinction, and the rclone Google Drive backend docs describe the OAuth flow, but most rclone guides don't emphasize it.The backup architecture maps onto Layer 1 of the GEO Stack: server infrastructure reliability, cache configuration, and uptime are prerequisites for consistent AI crawler access, not optional extras once content is published. 2. Headless OAuth is one-time setup The rclone binary-copy approach, SCP from VPS to local machine, run OAuth locally, paste token back, sounds awkward. It takes about five minutes. The refresh token it generates lasts indefinitely. You do it once. 3. wp cache flush doesn't clear nginx fastcgi cache Two separate systems. WordPress object cache flush via WP-CLI has no effect on nginx's fastcgi cache. After a database restore, run rm -rf /var/cache/nginx/fastcgi/* and reload nginx, or you'll be debugging stale content against a fresh database. 4. Backups without restore scripts are archives A file archive is not a backup until you've verified you can get the site back from it. Build the restore script. Run dryrun against it. Partial restore modes matter because most real-world recovery scenarios are partial: you need the database back after a bad plugin update, not a full restore. 5. The system config layer is always forgotten PHP-FPM tuning, nginx server blocks, fail2ban jails, firewall rules, SSH hardening, custom systemd services, none of these are in wp-content. None of them are in the database. They live in /etc and take hours to recreate from scratch. Back them up. 6. Encrypt and store the encryption key separately The AES-256 key lives at /root/.backup_encrypt_key (permissions 600). If the VPS disk fails and takes the key with it, the encrypted weekly archives are unrecoverable. The key must exist somewhere the disk failure doesn't affect: a password manager, a local machine, a printed piece of paper in a drawer. The encrypted backup is only as recoverable as the key. 7. Verify before you need it I ran gzip integrity tests, PHP syntax validation on all 15 mu-plugin files, image header verification, zero-size file scanning, and live-vs-backup file count matching. I found one anomaly (the Wordfence CSS file) that turned out to be a non-issue. Finding anomalies during scheduled verification is infinitely better than finding them during a crisis restore at 2am when the site is down. 8. The tar glob expansion trap Using shell globs inside tar arguments with set -euo pipefail — tar czf ... page-geo-*.php — fails when bash doesn't expand the glob before passing it to tar. Use find first, then pass results to tar: TEMPLATES=$(find "$THEME_DIR" -maxdepth 1 -name "page-geo-*.php") tar czf "$BACKUP_DIR/custom-templates.tar.gz" -C "$THEME_DIR" $(basename -a $TEMPLATES) Key GEO Lab Takeaway A backup system has three components: what you capture, where you store it, and whether you can get it back. Most guides cover the first two. The restore script is what makes the first two mean anything. Build partial restore modes. Build a pre-restore safety snapshot. Run dryrun before you're under pressure to use the real thing. The 26-item checklist above is the difference between "I have backups" and "I have tested backups." Frequently Asked Questions Why did Google show 15 GB of available quota when the service account couldn't write anything? rclone about gdrive: queries the Drive API for storage information, which returns the domain's or user's quota, not the service account's write capability. The service account has zero write quota regardless of what the storage query returns. It's a misleading diagnostic. Test uploads directly with a small file rather than checking storage info. Is rclone with a personal Google account safe for automated VPS backups? The rclone OAuth token persists indefinitely. The refresh token in the rclone config allows rclone to request new access tokens as needed, without user interaction. The config file should have restricted permissions (chmod 600 ~/.config/rclone/rclone.conf). The only operational concern is if you revoke the OAuth authorization in your Google account settings: that would invalidate the refresh token and break the automated sync. How often should the encryption key be rotated? There's no universal answer, but the critical point is that the current key must be accessible wherever you'd restore from. If you rotate the key, you need to re-encrypt any weekly archives you want to keep recoverable, or document which key was used for which archive period. The more important practice is ensuring the key is stored in at least two places that are independent of the VPS. Does this backup approach work for managed WordPress hosting? Mostly no, managed hosts (WP Engine, Kinsta, etc.) don't give you root access or crontab control. They typically provide their own backup systems. This approach is specifically for self-managed VPS deployments where you're responsible for the full stack. About the author: Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab Related: The GEO Lab Log · Building the GEO Compliance Audit System · Building a Native WP Form to Replace Google Forms
---
## Zero-Click AI Overviews: GEO as the Answer
URL: https://thegeolab.net/zero-click-ai-overviews/
Zero-Click AI Overviews: GEO as the Answer AI Overviews reduce organic CTR by 58% for top-ranking pages that are not cited. Pages cited in AI answers gain 35% more clicks. GEO optimises for citation, not position. TL;DR AI search engines use Retrieval Augmented Generation to synthesise answers from retrieved content sections. Pages cited in those answers receive 35% more organic clicks (Zyppy, 2024). Pages that rank but are not cited lose 58% of CTR from top positions. SEO optimises for ranking position. GEO optimises for retrieval and citation, the mechanisms that determine whether your content participates in AI-generated answers. The GEO Lab is the testing ground where those mechanisms are measured. Why This Site Exists I run several content sites, sports, fashion, tech. Different niches, different audiences, different content strategies. What they had in common by late 2025: they were ranking reasonably well in traditional search, and AI was never citing any of them. Not occasionally. Not rarely. Never. I'd run queries that my content was well-positioned to answer. The AI Overview would appear, synthesise an answer, cite three or four sources. None of them mine. The pages ranking below mine on the same query, sometimes cited. My pages, invisible to the retrieval process that now sits above the organic results. The pattern was gradual enough that I didn't notice it as a single event. It accumulated. And once I noticed it, I couldn't stop noticing it. When I want to understand something properly, I journal and test. I don't do this on existing sites, legacy architecture and pre-existing signals make it hard to know what's causing what. So I built a dedicated testing ground. A site where every structural decision is intentional, every experiment is documented, and every failure goes into a registry. The GEO Lab is that site. What Actually Changed Search hasn't just added a new feature. The fundamental mechanism has changed. For twenty years, SEO optimised for position, where a page appeared in a ranked list of links. A user saw the list, chose a result, clicked through. The page was the destination. AI search systems don't produce ranked lists of links as the primary output. They retrieve content sections from across the web, extract the relevant parts, compress them into a synthesised answer, and present that answer directly. The page is now a source, not a destination. Whether it gets cited depends on whether it was retrieved in the first place, and retrieval operates on different signals than ranking. Traditional SEO optimises for position. GEO optimises for participation in the answer. These are not the same optimisation target. A page can rank first and still not be retrieved. A page can rank tenth and be cited in every AI Overview for its topic. Going deeper? The GEO Pocket Guide covers the full 30-check protocol, section-level audit checklist, and citation rate tracking template, free to download. The Numbers −58% Organic CTR reduction for top-ranking pages when an AI Overview is present Ahrefs, Dec 2025 +35% More organic clicks for pages cited within AI Overviews vs non-cited pages Seer Interactive 800M ChatGPT weekly active users, with 2.5 billion prompts daily Views4You, Mar 2025 +357% Year-on-year increase in referral visits from AI platforms, 1.13B visits in June 2025 SE Ranking, Jun 2025 The direction is clear. AI search is not a niche behaviour, it's the fastest-growing traffic source in the data. And the distribution within it is binary: you're cited or you're not. There's no position 4 equivalent that still drives some traffic. Not being retrieved means not existing in that answer. SEO vs GEO: A Different Unit of Optimisation The comparison isn't about which discipline is more important. It's about recognising that they're optimising for different things, using different signals, measured by different outcomes. SEO GEO Optimisation unit Entire pages Individual sections Primary goal Rankings and CTR Inclusion in AI answers Key signals Backlinks, domain authority Extractability, entity clarity Success metric Position and traffic Retrieval and citation rate Orientation Document-centric Retrieval-centric The distinction that matters most: SEO ranks pages. AI systems retrieve sections. A page that ranks well but has no clearly extractable sections, no declarative openings, no consistent heading hierarchy, no component-level semantic structure, doesn't give the retrieval system anything to work with. It ranks. It doesn't participate. The Four Core GEO Variables What determines whether a section gets retrieved? The GEO Stack framework identifies four variables, each operating independently of traditional ranking signals:The four variables, crawlability, extractability, entity reinforcement, and structural authority, are the first four layers of the GEO Stack, each measurable independently and each failing for different reasons that a single composite score cannot distinguish. Retrieval Probability Will the content section be selected during the retrieval phase? Determined by semantic match to the query, heading clarity, and opening sentence structure. The section-level equivalent of a page's ranking relevance. Extractability Can the content be cleanly parsed and reused? Structured HTML, declarative sentences, and consistent component patterns make extraction reliable. Content that requires interpretation to understand is content that doesn't get extracted. Entity Clarity Are concepts unambiguously identified? Entity schema, consistent naming conventions, and explicit definitions reduce ambiguity in how AI systems understand and attribute the content. Compression Resistance Does meaning survive synthesis? AI systems compress source content before presenting it. Content that loses its core claim when shortened, dense jargon, buried conclusions, complex nested arguments, compresses poorly and gets misrepresented or dropped. These four variables are what The GEO Lab is testing. Every post in the series is either documenting a failure that reduced one of these variables, or an experiment that measures their effect on citation rate. What The GEO Lab Is The GEO Lab testing ground: intentional structural decisions, documented experiments, and failure registry for Generative Engine Optimisation research. A testing ground and a journal. Not a finished guide to GEO, those don't exist yet, because GEO is still being figured out. What exists is documented experiments, failure registries, audit systems, and the specific technical decisions made on a real site with measurable outcomes. The site is the experiment. Every structural decision, the v3 HTML architecture, the embedded CSS components, the schema implementation, the AI Visibility Diagnostics Console, exists because something needed to be tested, not because a best practice said so. 49% of respondents in a 2025 OrbitMedia/QuestionPro study believe AI chatbots will eventually replace traditional search. Whether that number is right or wrong, the traffic data from AI platforms is already moving in one direction. The time to understand retrieval optimisation is before your existing traffic strategy stops working, not after. One thing this journal will be honest about from the start: GEO operates on top of SEO, not instead of it. AI search systems use RAG (Retrieval Augmented Generation), they retrieve content from search indexes before generating answers. A page that isn't indexed and organically visible cannot be retrieved, regardless of how well its sections are structured. The experiments documented here measure section-level optimisation effects, but they assume a crawled, indexed page as their starting condition. That condition is SEO's job. Frequently Asked Questions What is the zero-click AI Overview problem for content creators? AI Overviews synthesise answers from source content and display them directly in search results, reducing the need for users to click through to the original page. For top-ranking pages, this reduces organic CTR by 58% on average. However, pages cited within AI Overviews receive 35% more organic clicks than non-cited pages. The problem is not AI search, the problem is not being cited in it. What is the difference between SEO and GEO? SEO optimises entire pages for rankings and click-through rate, using backlinks and domain authority as primary signals. GEO optimises individual content sections for inclusion in AI answers, using extractability and entity clarity as primary signals. The critical relationship: GEO does not replace SEO, it extends it. AI search systems retrieve content from search indexes (Google's index in particular appears to serve as the retrieval layer for most major AI products). A page that isn't indexed and ranking cannot be retrieved by AI systems, regardless of its section structure. SEO creates the floor. GEO determines what happens above it. Why build a dedicated GEO testing site instead of changing existing content? Existing sites carry legacy decisions, architecture, content structure, internal linking, that make controlled testing difficult. A dedicated testing ground starts clean: every structural decision is intentional, every experiment is documented, and results aren't confounded by pre-existing signals. The GEO Lab exists as a journal of what was tested, what worked, and what failed. What are the four core GEO variables? Retrieval Probability, whether content will be selected during the retrieval phase. Extractability, whether it can be cleanly parsed and reused. Entity Clarity, whether concepts are unambiguously identified. Compression Resistance, whether meaning survives the synthesis process. These four variables determine whether content participates in AI answers, independent of its traditional search ranking. Related What Is Generative Engine Optimisation (GEO)? The GEO Stack: Five Layers of AI Visibility Retrieval Probability in the GEO Stack AI SEO OS: The Operational Framework for Autonomous AI Search Visibility Version History Version 1.1 — 19 March 2026: Added SEO-as-retrieval-foundation paragraph to "What The GEO Lab Is" section. Strengthened SEO vs GEO FAQ answer with RAG retrieval context. Version 1.0 — 12 March 2026: Initial publication. The strategic why behind The GEO Lab, zero-click AI Overviews, the SEO vs GEO distinction, and the four core GEO variables. Key GEO Lab Takeaway SEO and GEO solve different problems at different layers. SEO earns retrieval by building the crawl, authority, and indexation signals that get your page into the candidate set. GEO earns citation by structuring content so the retrieval system can extract, attribute, and compress it into an AI-generated answer. One without the other fails: a perfectly extractable page that is never retrieved cannot be cited; a highly authoritative page with no extractable structure is retrieved but never selected for the answer. The four GEO variables (retrieval probability, extractability, entity clarity, compression resistance) are the diagnostic framework for identifying which layer is failing. About the author: The GEO Lab founder Artur Ferreira is the founder of The GEO Lab. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---
## Zero-Variance Mechanism Capture: Retrieval-Layer vs Synthesis-Layer Determinism
URL: https://thegeolab.net/e043-zero-variance-mechanism-capture/
Zero-Variance Mechanism Capture: Retrieval-Layer vs Synthesis-Layer Determinism By Artur Ferreira · The GEO Lab · Published: 28 May 2026 · Version 1.0 Experiment E043 · Research note · Platform: Perplexity · 9 observations across 3 days E027 confirmed that Perplexity cites the same pages for 14 consecutive days on proprietary-concept queries. E043 asks where in the retrieval mechanism that binding actually lives: the index lookup stage, or the synthesis selection stage post-retrieval. TL;DR The zero-variance binding is synthesis-layer, not retrieval-layer. On the core binding query (Q02), the retrieval set varied across all three days, with a mean Jaccard similarity of 0.458, well above the platform average of 0.157, but thegeolab.net was cited every time. The synthesis model has a stable preference for the page regardless of what else it retrieves. Breaking the binding requires displacing the page from the synthesis model's selection logic, not just from the retrieval set. Two other queries showed a different pattern: retrieved, but not always extracted into the answer. That boundary, retrieval set presence versus synthesis selection, is the measurement target for the rest of the portfolio. The Mechanism Question E027 Left Open E027 established that Perplexity returns identical citations for 14 consecutive days on T1 proprietary-concept queries. The paper frames this as "deterministic citation-identity," but it cannot specify which layer of the retrieval mechanism the determinism operates at, because E027 was measured via API: citation outcome only, no retrieval internals. Two mechanistically distinct explanations are consistent with that data: Explanation A: Retrieval-layer Perplexity issues the same search query and retrieves the same source set on every run. The citation is stable because the retrieval input is stable. The binding is at the index lookup stage. Explanation B: Synthesis-layer The retrieval set varies between runs, but the synthesis model consistently selects thegeolab.net for citation regardless of what else is in the set. The binding is at the ranking and selection stage, post-retrieval. The two explanations carry different implications for how fragile the binding is. If A: a competitor entering the top of the retrieval set can break it without displacing the page from the index. If B: competitors need to dislodge the page from the synthesis model's preference, not just from the retrieval set. That is a higher bar. E043 directly distinguishes these via three-day Chrome DevTools capture on the same queries used in E027. Related resources Want to replicate E043 or design your own retrieval mechanism test? GEO Experiments: How to Test & Measure AI Citation Rates covers protocol design, Chrome DevTools capture methods, and Jaccard scoring for cross-session experiments. For the full optimisation framework that situates retrieval-layer and synthesis-layer strategy: AI SEO OS: the operating system for AI search visibility. Method Three queries from E027's confirmed binding set. Three consecutive days. Chrome DevTools open on Perplexity's /rest/thread/ endpoint, the same capture method used in E030 and E042. Query set Q02: retrieval probability in GEO Stack modelQ05: what is the GEO Stack frameworkQ06: what is extractability in AI search Session structure 3 queries × 3 days = 9 observations. Same account (Klub 24-7 Pro) throughout. Advanced Preview (mode=2) confirmed before each session. DevTools open, thread trace active. Observations per query Internal search string, full source domain list with ranks, URL_NAVIGATE events, snippet text extracted from thegeolab.net, inline citation outcome (0/1). Determinism metric Jaccard similarity of source domain sets between sessions: J(A,B) = |A ∩ B| / |A ∪ B|. Computed per query across all three session pairs. Benchmark: Perplexity platform average J=0.157 (Anthony Lee, 2026). Search-mode protocol note: Day 1 hit Perplexity's free-tier preview limit mid-session, silently downgrading from mode=2 to mode=1 without UI warning. Q06 on Day 1 ran in degraded mode and produced an invalid observation: thegeolab.net absent, binding apparently broken. Confirmed artefact on Day 2 pro re-run. Mode degradation is now a required observation column in all E043-derived protocols. This is an exploratory mechanistic observation, not a controlled experiment with pre-registered falsification criteria. The findings extend E027 by adding a retrieval-layer view that the API-only methodology could not provide. Replication package: github.com/arturseo-geo/geo-lab-experiments/tree/main/e043. Results: Nine Observations Across Three Days Query Day 1 Day 2 Day 3 Mean Jaccard Classification Q02: retrieval probability in GEO Stack model ✓ cited ✓ cited ✓ cited 0.458 Synthesis-layer binding Q05: what is the GEO Stack framework ✓ cited ✗ dropped ✓ cited 0.815 Synthesis displacement Q06: what is extractability in AI search ✗ mode artefact ✗ dropped ✓ cited 0.590 Contested, partial recovery 9 observations total. Day 1 Q06 run in degraded mode=1 (free-tier limit hit); excluded from determinism classification. Jaccard computed across valid sessions only. Platform average Jaccard benchmark: 0.157 (Anthony Lee, 2026). Q02 is the decisive result. Its retrieval set varied substantially across three days. A mean Jaccard of 0.458 means fewer than half of the source domains were consistent between any two sessions, yet thegeolab.net was cited on all three days. That pattern fits Explanation B and rules out Explanation A as the primary mechanism for this query. Q05 and Q06 tell a different story: retrieved but not reliably extracted. The competitive and content dynamics behind that distinction are covered in the per-query findings below. Per-Query Findings Q02 retrieval probability in GEO Stack model Synthesis-layer determinism (Explanation B confirmed) Retrieval set varied day to day, with different GIS noise entries and different supporting academic sources, but thegeolab.net held three to four retrieval slots every run and won synthesis selection every day. Day 3 ranks: 1, 2, 3, 8 in the retrieval set; cited inline at [1][2][3]. ThatWare absent all three days. everything-pr.com absent all three days. Jaccard mean 0.458, nearly three times the platform average of 0.157, confirming retrieval mechanism variability. This quantifies what "variable retrieval set, stable citation" means in practice: the source set rotates, but the synthesis model's preference does not. The /retrieval-probability/ has achieved a stable synthesis preference on its core concept query. Implication for E027: The "deterministic citation-identity" framing in the Zenodo paper should be updated to specify synthesis-layer determinism. The zero-variance is a synthesis model preference, not an index artefact. That distinction matters: synthesis preferences are more robust to competitive retrieval pressure than index-level rankings. Q05 what is the GEO Stack framework Synthesis displacement by everything-pr.com Retrieval set was highly stable (mean Jaccard 0.815), thegeolab.net present at rank 4–6 across all three days. everything-pr.com present at rank 1 all three days. But synthesis selection was not stable: thegeolab.net cited on Day 1 and Day 3, dropped on Day 2. everything-pr.com was the synthesis layer owner on Day 2. This is the fragile binding state. The page is in the retrieval set but loses the synthesis extraction competition on days when everything-pr.com's chunk density better matches the query intent. The retrieval set is stable; the synthesis preference is not. everything-pr.com deploys a four-layer Schema/Entity/Citation/Authority framework under the "GEO Stack" name without attribution to thegeolab.net. Its rank 1 retrieval position on this query is the active sedimentation risk flagged in competitive monitoring. A differentiation sentence was deployed to /geo-stack/ on 26 May 2026. The effect of that deployment is measured in the post-publication session below: everything-pr.com was absent from the retrieval set two days later, and thegeolab.net held rank 1 synthesis ownership on the same query. Q06 what is extractability in AI search Contested: no stable binding No stable binding across the three days. Day 1 invalid (mode=1 artefact, thegeolab.net absent). Day 2 on Pro: thegeolab.net at rank 7, not cited. lumar.io owned the synthesis layer. Day 3 on Pro: thegeolab.net at rank 6, cited inline with a clean definitional snippet, the first post-re-crawl reading, following PerplexityBot re-crawl of /extractability/ on 20 May 2026. The Day 3 recovery is confounded. The /extractability/ was re-crawled between Day 2 and Day 3. A content fix was also deployed during the E043 window. Neither variable was controlled. Whether the recovery reflects the content fix, the re-crawl, or normal retrieval variance cannot be separated from this dataset. Jaccard mean 0.590 across valid sessions, indicating moderate retrieval set variance. The /extractability/ binding is not stable in either direction: not consistently cited, not consistently absent. It is the most sensitive of the three queries to retrieval set composition changes. The Boundary Between Retrieval and Synthesis E043's three queries map onto two distinct binding states that practitioners optimising for AI citation need to distinguish: Synthesis-layer binding (Q02): The synthesis model has a stable preference for the page on this query, regardless of what else is in the retrieval set. Topical authority is sufficient: the page enters the retrieval set and wins synthesis selection reliably. The binding is robust to moderate competitive retrieval pressure. Synthesis-layer fragility (Q05, Q06): The page enters the retrieval set but loses the synthesis extraction competition when a competitor with denser relevant chunks is also present. Retrieval and citation are decoupled. The page is visible in the source list but absent from the answer. This is the fragile state, and it is invisible to any measurement method that only tracks citation outcomes without retrieval internals. Topical authority determines retrieval set membership. Query-level chunk density determines synthesis selection. These are different levers, and the distinction has direct consequences for how to respond to a citation rate problem: retrieval-layer interventions (entity reinforcement, freshness, crawl access) and synthesis-layer interventions (definition density, answer-first section structure, compression resistance) require different content work. The practical test: If your page appears in Perplexity's source list but is not cited inline, the problem is synthesis-layer. If your page does not appear in the source list at all, the problem is retrieval-layer. E043's Chrome DevTools methodology makes this distinction observable. The API alone cannot. Post-Publication Measurement: Effect of Deployed Interventions Two interventions were deployed to target pages after the E043 three-day window closed: /geo-stack/ disambiguation sentence, deployed 26 May 2026. Adds "measurement-first research framework" language to differentiate from everything-pr.com's four-layer Schema/Entity/Citation/Authority framing. Target: reduce everything-pr.com's synthesis layer ownership on Q05. /extractability/ definition section, deployed 26 May 2026. Adds a dense, answer-first definition block targeting the extractability concept query. Target: improve synthesis selection on Q06 against lumar.io. The E044 Week 4 session (28 May 2026) provides the first post-deployment reads on all three E043 queries. Results below. Query E043 last read (Day 3, 21 May) E044 Week 4 (28 May) thegeolab rank Synthesis owner Delta Q02: retrieval probability in GEO Stack model ✓ cited [1][2][3] ✓ cited Rank 1 thegeolab.net Binding strengthened: rank 1 synthesis owner vs ranks 1/2/3 previously. everything-pr and ThatWare absent. Q05: what is the GEO Stack framework ✓ cited (rank 5, everything-pr rank 1) ✓ cited Rank 1 thegeolab.net Disambiguation sentence effective; everything-pr displaced, thegeolab now full synthesis owner within 2 days of deployment. Q06: what is extractability in AI search ✓ cited (rank 6, post re-crawl) ✗ not cited Not ranked (nrlc rank 1) nrlc.ai Regression: definition section deployment (26 May) has not yet shifted synthesis layer. nrlc.ai now owns the answer on this query. E044 Week 4 session run 28 May 2026, Perplexity Pro mode=2, Chrome DevTools. Advanced Preview confirmed active on all three queries. Two of three results moved in the expected direction. The /geo-stack/ disambiguation sentence deployed on 26 May displaced everything-pr.com from synthesis layer ownership on Q05 within two days. thegeolab.net now holds rank 1 on both Q02 and Q05. The /extractability/ definition section deployment has not produced the same outcome on Q06: nrlc.ai now owns the extractability synthesis layer, a regression from the Day 3 partial recovery. Whether this reflects insufficient content depth, a crawl cycle lag, or retrieval set composition changes requires further monitoring before any content intervention. The next E044 session (Week 5) will determine whether nrlc.ai's ownership is stable or whether the definition section deployment takes effect after a re-crawl. Implications for the GEO Lab Portfolio E027 framing update: The E027 Zenodo paper describes Q02 binding as "deterministic citation-identity." E043 specifies this as synthesis-layer determinism. The citation outcome is identical, 14 days of zero variance, but the mechanism is a synthesis preference, not an index artefact. This is a stronger finding than retrieval-layer determinism would imply, because synthesis preferences are more robust to retrieval set fluctuation. E030 citation rate gradient explained: E030 found a 47-percentage-point citation rate drop from 2–4 word queries (61%) to 10–12 word queries (13%). E043's mechanism data provides the retrieval-layer explanation: long queries at the 10–12 word tier trigger query rewrites that expand the retrieval set into generic GEO territory, where competitive density is high and the synthesis model cannot establish a stable preference. Short queries stay in proprietary concept namespaces where the synthesis preference for thegeolab.net is intact. The two experiments together describe the same phenomenon from different angles. Competitive monitoring consequence: E043's Q02 synthesis-layer finding means ThatWare's rank 3 escalation on that query (E044 T1 trigger) is less immediately threatening than it would be under retrieval-layer determinism. ThatWare entering the retrieval set does not break the binding unless it also displaces thegeolab.net from the synthesis model's selection. That requires higher content density at the chunk level, not just retrieval rank. The synthesis preference provides a temporary buffer. Monitor for further rank displacement. Measurement methodology consequence: Any experiment that measures only citation outcomes (API-only, without retrieval internals) cannot distinguish retrieval failure from synthesis failure. A zero citation result could mean the page is absent from the retrieval set, or it could mean the page is in the retrieval set but losing synthesis selection. These require different interventions. The Chrome DevTools methodology used in E043 is the minimum requirement for diagnosing citation rate problems at the mechanism level. Frequently Asked Questions What is the difference between retrieval-layer and synthesis-layer determinism in Perplexity? Retrieval-layer determinism means Perplexity issues the same search queries and retrieves the same source set every time. The citation is stable because the inputs are stable. Synthesis-layer determinism means the retrieval set varies between runs, but the synthesis model consistently selects the same source for citation regardless of what else is in the set. E043 confirms synthesis-layer determinism for Q02: the retrieval set varies day to day, but thegeolab.net is selected for citation every time. Why does the distinction between retrieval-layer and synthesis-layer determinism in the retrieval mechanism matter? The two mechanisms have different implications for competitive vulnerability. If binding is retrieval-layer, a competitor entering the top of the retrieval set can break it, even if your page stays in the index. If binding is synthesis-layer, competitors need to displace your page from the synthesis model's preference, not just from the retrieval set. E043 finds synthesis-layer binding for Q02, which means the zero-variance result from E027 is more robust than retrieval-layer determinism would imply. What is Jaccard similarity used for in E043? Jaccard similarity measures how much the source domain set overlaps between two sessions. A score of 1.0 means the retrieval set was identical; 0.0 means no overlap at all. In E043, Q02 had a mean Jaccard of 0.458 across three days, nearly three times the Perplexity platform average of 0.157, while citation outcome was 3/3. This quantifies the synthesis-layer finding: the retrieval set varies substantially, but the citation is stable. Q05 had a mean Jaccard of 0.815, indicating a much more stable retrieval set but with synthesis displacement by everything-pr.com on Day 2. What caused the Q06 binding break on Day 1 of E043? Day 1's Q06 break was a search-mode artefact. The session hit Perplexity's free-tier preview limit mid-session, silently downgrading from Advanced Preview (mode=2) to basic search (mode=1). In basic mode, the /extractability/ page was absent from the retrieval set. On Day 3, run on a fresh Pro account with mode=2 confirmed throughout, /extractability/ returned to the retrieval set and was cited. The Day 3 recovery was also influenced by a PerplexityBot re-crawl of /extractability/ on 20 May, making the Day 3 result partially confounded by both the content fix and the re-crawl. Key TakeawayPerplexity's zero-variance citation binding on proprietary-concept queries operates at the synthesis layer of the retrieval mechanism, not the retrieval-layer. The synthesis model maintains a stable selection preference regardless of retrieval set variation. Competitive displacement requires targeting the correct layer of the retrieval mechanism: specifically, dislodging the synthesis preference, not just the retrieval rank. Data and Replication Raw data: github.com/arturseo-geo/geo-lab-experiments/tree/main/e043 Files: e043_9_observations_filled.csv, e043_jaccard_scores.csv Parent experiment: E027 Zenodo preprint, doi:10.5281/zenodo.20245814 E043 is a mechanistic observation. No pre-registration. Published as a research note. Related E027: Deterministic Citation-Identity in Perplexity, 14-Day Zero-Variance Replication E030: Fan-Out Query Length × Citation Rate Retrieval Probability: GEO Stack Layer 1 How to Measure AI Citation Rate: The 30-Check Protocol Version History Version 1.0, 28 May 2026: Initial publication. Three-day Chrome capture on E027 binding queries. Synthesis-layer determinism confirmed for Q02. Post-publication measurement from E044 Week 4 session included. About the author: The GEO Lab founder Artur Ferreira has 20+ years of experience in SEO and organic growth strategy. He developed the GEO Stack framework and leads research into Generative Engine Optimisation methodologies. Connect on X/Twitter or LinkedIn. Have questions? Contact The GEO Lab
---