GEO And AI SEO Process
This is the process SEOValley follows to make a website eligible for retrieval, easy to quote and credible enough to be named in answers from ChatGPT, Google AI Overviews, AI Mode and Gemini. We have run search campaigns since 2000, and the same discipline applies here: fix access first, then entities, then passages, then off-site evidence, then measure. AI Powered Digital Growth only counts if you can see it in the data. Nothing below guarantees a mention. It raises the odds and makes progress measurable.
How AI Answers Pick Their Sources
Vendors do not publish their ranking code, so we work from a simplified retrieval model and test it against live answers. Most answer engines run a pipeline close to this one:
- Query rewriting. The prompt is expanded into several sub-queries. Google calls this query fan-out in AI Mode. One question can therefore pull in pages that never ranked for the original wording.
- Retrieval. Candidate documents come from a search index, usually a hybrid of keyword matching and embedding similarity.
- Passage selection. Pages are split into chunks, and the chunks that best answer each sub-query are scored. The page as a whole is not what gets judged.
- Synthesis and grounding. The model writes the answer from the selected chunks and attaches citations to the sources it relied on.
- Source weighting. When several chunks say the same thing, entities the system already trusts win. Trust comes from consistent facts, third-party mentions and reputation.
Figure 1. From Prompt To Citation
Each stage fails for a different reason, so each phase of our process targets one of them.
| Phase | Pipeline Stage It Targets | Main Deliverable |
|---|---|---|
| 1 Baseline | All stages | Prompt set and dated baseline across four engines |
| 2 Access | Retrieval | Crawler policy, firewall and rendering fixes, indexation report |
| 3 Entity | Source weighting | Canonical fact set and linked JSON-LD graph |
| 4 Passages | Passage selection | Answer-first page sections mapped to fan-out queries |
| 5 Off-site | Source weighting, grounding | Presence on the domains engines already cite |
| 6 Measure | All stages | Monthly comparison with the baseline and the next change list |
A Worked Example
To make the phases concrete, take a hypothetical prompt: Which accountant in Leeds works with small e-commerce businesses? This illustrates the method and is not a client result. An engine that fans the prompt out might ask four sub-questions, and each one lands on a different phase.
| Sub-Query | What The Engine Needs | Phase That Fixes It |
|---|---|---|
| Accountants in Leeds for online shops | A fetchable page that names the service and the city in the first screen | 2 Access, 4 Passages |
| Small e-commerce accountant fees UK | A dated fee range in a self-contained paragraph | 4 Passages |
| Is this firm legitimate and well reviewed | The same name, address and registration details on the site, the Google profile and at least two outside sources | 3 Entity, 5 Off-site |
| E-commerce VAT and marketplace tax help | A page that owns the topic and is linked from the service page | 4 Passages |
If any row fails, the engine has no chunk to quote for that sub-question and fills the gap from a competitor. Fixing three rows out of four still leaves a hole, which is why we work through every phase instead of picking the easy ones.
Phase 1
Baseline And Prompt Set
We start with measurement, because without a baseline there is nothing to improve against. We build a prompt set grouped by intent: discovery, comparison, problem-led, brand and local. Prompts use your real service names, locations and the phrasing your customers use. They are checked regularly across ChatGPT, Google AI Overviews, AI Mode and Gemini.
For every prompt we record whether the brand is mentioned, whether a URL is linked or cited, where the brand sits in the answer, how it is described, and which competitors and source domains appear. AI output is probabilistic, so we sample repeatedly and treat small movements as noise.
We pick three to five direct competitors from the prompts themselves, not from a guess, because the brands an engine names beside you define your real market. Each prompt is also tagged by intent, so we can see whether you are absent from high-intent comparison prompts, where a mention is worth the most, or only from broad discovery ones.
Phase 2
Access And Rendering Audit
If a retrieval bot cannot fetch the page, nothing downstream matters. We test the live site, not the CMS settings. That means a robots.txt policy for each crawler, a check that your CDN or firewall is not challenging bots that robots.txt allows, raw HTML inspection to confirm the main content is server-rendered (most AI fetchers do not reliably run JavaScript), and clean canonicals, redirects and indexation in both Google and Bing. Bing matters because its index feeds Copilot and other assistants.
We also read the response headers and meta directives on every target URL. A stray X-Robots-Tag: noindex, a nosnippet or a tight max-snippet value can keep a page out of AI features even when it ranks. We diff the raw HTML against the rendered DOM, and any heading, price or answer that exists only after scripts run is moved into the server response.
Server logs show what the bots actually do, which no dashboard does. For every verified crawler we pull request counts, the status-code mix (200, 301, 403, 404, 5xx), time to first byte at the median and the 95th percentile, how often it re-fetches robots.txt and sitemap.xml, and the share of requests that land on target pages rather than on parameter and faceted URLs. A bot that spends most of its requests on filters and session URLs is not reading your service pages. Any 403 or 5xx on a target URL becomes a ticket the same week. We also compare the date a new page is first fetched with the date it first appears in an answer, which gives your site’s real recrawl lag.
| User Agent | Operator | What It Does | Our Default |
|---|---|---|---|
OAI-SearchBot | OpenAI | Builds the index behind ChatGPT search | Allow |
ChatGPT-User | OpenAI | Fetches a page when a user asks for it | Allow |
GPTBot | OpenAI | Collects data for model training | Your decision |
PerplexityBot | Perplexity | Indexes pages for Perplexity answers | Allow |
Claude-SearchBot | Anthropic | Indexes pages for Claude search results | Allow |
ClaudeBot | Anthropic | Collects data for model training | Your decision |
Google-Extended | Control token for Gemini training and grounding. Search and AI Overviews follow Googlebot | Your decision | |
Googlebot, Bingbot | Google, Microsoft | The indexes that feed AI Overviews, AI Mode and Copilot | Allow |
Bot names change, so we check each vendor’s current documentation before every audit. A typical policy and a quick firewall test look like this:
# robots.txt
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: GPTBot
Disallow: /members/
# firewall check: a 403 or a challenge page means a rule is blocking the bot
curl -s -o /dev/null -w "%{http_code}\n" -A "OAI-SearchBot" https://example.com/service-page/A user-agent string can be faked, so we verify real bot traffic against each vendor’s published IP ranges or reverse DNS before writing any firewall rule. We also publish a sitemap.xml and an llms.txt, and submit changed URLs through IndexNow so Bing and the other participating engines recrawl quickly.
Phase 3
Entity Graph And Structured Data
Answer engines resolve a brand as an entity. When the name, address, services or founding facts differ between your site, your Google Business Profile and your listings, confidence drops and the engine falls back to a competitor it can describe cleanly. We define one canonical fact set and publish it as linked JSON-LD with stable @id values:
- Organization or LocalBusiness with
sameAspointing to your real profiles. - Service nodes that reference the organization through
provider. - Person nodes for named authors, plus Article markup with an accurate
dateModified. - BreadcrumbList on every page, and FAQPage only where it matches questions visible on the page.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Ltd",
"url": "https://example.com/",
"sameAs": [
"https://www.linkedin.com/company/example",
"https://www.google.com/maps?cid=0000000000"
],
"areaServed": "AU"
}Figure 3. The Entity Graph We Publish
sameAs, and every one of them must carry the same name, address and service facts.Google retired FAQ rich results in May 2026, but the markup is still valid and assistants still read it, so we keep it lean. Schema never carries a claim that the page does not show. We validate every template, then compare the rendered output with your profiles and listings line by line.
Outside the site, we align the Google Business Profile, major directories and social profiles to the same fact set, and where the brand meets the notability bar we support entries in public knowledge bases. Engines reconcile these sources, so one outdated phone number or an old trading name is enough to split the entity in two.
Phase 4
Passage Engineering
Because engines retrieve chunks, we write for chunk retrieval. For each prompt we pick one target page and expand the prompt into its likely fan-out sub-queries. Each sub-query gets its own section, written to these rules:
- A question-style heading, followed by a direct answer of roughly 40 to 60 words.
- Self-contained paragraphs. No “as mentioned above”, because the chunk may be read alone.
- Specific, dated facts: price ranges, timelines, service areas, certifications.
- Comparison tables with explicit column headers for comparison prompts.
- A definition sentence (“X is…”) the first time a term appears.
- A named author, a visible last-updated date, and descriptive internal link anchors.
Retrievers typically split a page into chunks of a few hundred tokens, cut at headings or at a fixed window, and turn each chunk into an embedding that is compared with the query. Vendors do not publish their exact settings, so we design for the worst case: any section may be read alone. A chunk that opens with its heading and states the answer in the first sentences sits closest to the question. A section that spends 200 words on history before it answers dilutes its own embedding. We keep each section to one topic and split long ones under a new heading.
Figure 2. How One Section Reads As A Chunk
Buried Answer
Answer-First Section
We also move anything important out of images, tabs, accordions that load on click and PDF-only files, because those are the places a fetcher most often misses. Pages that lose rankings from a rewrite are rolled back, so the Google side of the campaign is never traded for the AI side.
Passages do not work alone. We group pages into topic clusters and link them with descriptive anchors, so the retriever finds related chunks on your domain for every sub-query and each chunk points back to the page that owns the topic. Embedding-based retrieval rewards a page that covers one subject thoroughly more than a page that touches five.
Nothing ships until it clears five gates:
- The schema validates and mirrors text visible on the page.
- No
noindex,nosnippetor canonical error was introduced. - The answer is present in the raw HTML response, not only after scripts run.
- Core Web Vitals did not regress on the changed template.
- A rollback copy of the page is stored before the change goes live.
Phase 5
Off-Site Evidence
Engines cross-check what a site says about itself. From the prompt runs we extract the source domains cited for each prompt, then check whether you are present, accurate and well reviewed on them. Sources cited across several engines and several prompts come first.
The work is outreach to relevant sites, press releases on news sites, articles on industry and article sites, business and review listings, and honest, disclosed answers in the communities that assistants quote. Each placement gets a stable URL, a consistent brand name and a link to the page that owns the topic, and we re-check the live source after publication, because sites edit or remove content. Names, services and facts match Phase 3 exactly. Where a cited source is a review platform or directory, we also work on the profile itself: complete categories, current services, photos and a steady flow of genuine reviews. We do not buy hidden text, fake reviews or prompt injection. They break each engine’s policies, and the damage outlasts any short gain.
Phase 6
Measurement And Iteration Loop
Every month we re-run the prompt set and compare it with the baseline. Each prompt runs several times on different days, and we report a range instead of a single reading, because one run can differ from the next for reasons that have nothing to do with your site. These are the numbers we report:
| Metric | How We Calculate It |
|---|---|
| Mention rate | Prompts where the brand appears, divided by prompts run, per engine |
| Citation rate | Prompts where one of your URLs is linked, divided by prompts run |
| Share of voice | Your mentions divided by all tracked-brand mentions across the set |
| Answer position | Order of the brand among the options the answer names |
| Framing | How the answer describes you, with inaccuracies flagged for correction |
| AI referral sessions | GA4 sessions from referrers such as chatgpt.com, perplexity.ai, gemini.google.com and copilot.microsoft.com, grouped in a custom channel |
Because answers vary between runs, a single reading proves little. The size of the sample sets how much movement we can trust. For a share measured across n independent samples, the 95 percent margin of error is about 1.96 × √(p(1 − p) ÷ n), and it is widest at p = 0.5. A set of 40 prompts run five times gives 200 samples, so a mention rate can wobble by almost seven points either way with no change on your side. That is why we report ranges and only call a month better when the change falls outside the band. Runs of one prompt are not fully independent, so the real margin is wider than the chart shows. We treat the chart as a floor.
Figure 4. How Much A Mention Rate Can Move By Chance
Google counts AI Overviews and AI Mode clicks inside normal Web search totals in Search Console, so they cannot be separated. We read impressions and clicks on your target queries beside the prompt data instead. We also annotate Google core updates and major model releases, because both move results independently of our work. Then we change the page or source with the biggest gap, wait for a recrawl, and test again. You can read more about this in our guide to measuring AI visibility when there is no rank to track.
What Measured Progress Looks Like
These are real figures from one of our client campaigns, an Australian home builder, taken from its published case study. The AI numbers are links from AI answers counted on 10 November 2026. The Google numbers are monthly counts of searches where the site ranks. The programme combined technical fixes, content, outreach and local SEO, so the charts show what the whole programme moved, not what the AI work did alone. The full figures are in the case study.
Figure 5. Links From AI Answers To The Site, By Assistant, 10 November 2026
Figure 6. Searches Ranking In Google’s Top 5 And Top 10, Dec 2024 To Nov 2026
What We Do Not Promise
No agency controls a model. We do not guarantee mentions, citations, positions or traffic from any AI engine, and we do not promise a date. We do promise that the phases above are done in order, documented, and measured against your baseline every month, and that anything we cannot verify is reported as unverified.
See how this fits our AI SEO service, or read how an Australian home builder was measured in AI answers.
Frequently Asked Questions
Do I Need Special Markup To Appear In Google AI Overviews?
No. Google states that the same fundamentals apply: the page must be indexed and eligible to show a snippet. Markup helps machines read the page, but clear passages, working access and trusted entity facts do most of the work.
Should I Block GPTBot?
Blocking GPTBot stops training collection, not ChatGPT search, which uses OAI-SearchBot. Blocking the search bots removes you from eligibility. We set the search policy to allow and leave the training policy to you.
Does llms.txt Work?
No major engine has confirmed it as a ranking or retrieval signal. It costs little to publish, so we add it as hygiene, but we never rely on it.
How Do You Measure AI Visibility Without A Rank?
We run a fixed prompt set repeatedly and report mention rate, citation rate, share of voice and answer position against a dated baseline, alongside AI referral sessions in GA4.
Is AI SEO Separate From Traditional SEO?
They overlap heavily. Crawl access, indexation, content quality and off-site authority feed both. AI SEO adds entity consistency, passage design and prompt-level measurement on top.
How Long Does It Take?
Recrawls take days to weeks, and off-site evidence builds over months. Timing depends on your site and market, so we report monthly against the baseline and do not promise a date.
+91 9893014167
1 (888) 316-3286
+44 20 3807 2189



