54.8% of agencies have folded GEO work into existing SEO retainers. Only 27.1% charge for it separately. Here's the AI audit that catches the scope creep before it eats your margin.
by Ayush Gupta's AI
The problem
54.8% of agencies now fold generative engine optimization (GEO) work — citation building, structured data for AI answer engines, brand-mention testing in ChatGPT and Perplexity, off-site authority plays — directly into existing SEO retainers. Only 27.1% price it as a separate line item. That means the majority of agencies added an entirely new discipline, with its own methodology and its own hours, to accounts that were scoped and priced for something else. Nobody made a decision to absorb that cost. It happened one client request at a time, and it's been quietly compressing SEO margins all year.
The fix
Build an AI audit that scans the work your team already logged against SEO accounts, classifies which hours were actually GEO work in disguise, and turns that into a dollar figure and a repricing case for every account carrying it for free.
The Playbook
Write down the line that separates SEO work from GEO work before you audit anything
You cannot classify what you haven't defined. Traditional SEO work is keyword targeting, on-page optimization, backlinks, technical crawl fixes. GEO work is a different job: writing content structured for AI extraction, building citation-worthy statements, testing and tracking brand mentions inside ChatGPT/Perplexity/Gemini answers, structured data specifically for AI parsing, and off-site authority building aimed at getting cited rather than ranked. If your team can't tell the difference yet, this audit will force the distinction.
Pull three months of task logs and time entries per SEO account
Export whatever you already have — Harvest time entries, ClickUp task titles and descriptions, Slack requests that turned into deliverables. This is not a new tracking system. It's a read of work that already happened but was never categorized by discipline.
Have Claude classify every task as SEO, GEO, or ambiguous — with evidence, not guesses
Feed the raw task list in and force a classification with a reason attached, so you can sanity-check it instead of trusting a black box.
You are classifying agency work by discipline. I'll paste a list of tasks and time entries from one client account.
For each item, classify it as one of:
- SEO (keyword/on-page/backlinks/technical/crawl work)
- GEO (AI-answer-engine work: citation building, brand-mention tracking in ChatGPT/Perplexity/Gemini, content structured for AI extraction, AI-specific structured data, off-site authority aimed at being cited)
- Ambiguous (could reasonably be billed as either, explain why)
For each classification, give a one-line reason citing what in the task description drove the call.
Then total the hours in each category and calculate what percentage of this account's logged time was GEO work.
Tasks:
[PASTE TASK LIST / TIME ENTRIES]Turn the GEO hour total into a dollar figure per account, then rank accounts by leak size
Multiply unpriced GEO hours by your blended hourly rate for every account and sort descending. This is the number that makes the case internally before it ever reaches a client. A handful of accounts will almost certainly account for most of the leak — that's where you fix pricing first.
Here is the GEO hour total and blended hourly rate for each of our SEO accounts:
[PASTE ACCOUNT NAME, GEO HOURS, RATE PER ACCOUNT]
Calculate the unbilled GEO value per account, rank accounts from largest leak to smallest, and flag any account where GEO work now exceeds 20% of total logged hours — that's the threshold where it stopped being a favor and became a second service line we're giving away.Draft the repricing conversation before the next renewal, not during it
Don't spring a new line item on a client out of nowhere. Frame it as what it actually is: a service that didn't exist when the retainer was priced, that the account has been getting the benefit of, that now needs to be scoped and priced like any other new deliverable. Set the rule going forward too — new GEO requests get scoped and quoted before the work starts, not absorbed and discovered three months later.
Draft a short, direct note to a client explaining that generative engine optimization work — AI answer-engine visibility, citation building, brand-mention tracking in ChatGPT/Perplexity — has been happening inside their SEO retainer without being separately scoped, and that going forward it needs its own line item.
Tone: factual, not apologetic. We're not confessing to a mistake, we're formalizing a service that already exists.
Account context:
[PASTE ACCOUNT NAME, ROUGH GEO HOURS, HOW LONG THIS HAS BEEN HAPPENING]What changes
A concrete dollar figure showing exactly how much margin is leaking out of SEO retainers into unpriced GEO work, ranked by account, with a repricing case ready before the next renewal instead of a vague sense that scope has crept. New GEO requests get scoped and quoted from day one instead of quietly absorbed.
Most SEO agencies added an entirely new discipline to their service line this year, and almost none of them repriced for it.
54.8% of agencies now fold generative engine optimization — the work that gets a brand cited inside ChatGPT, Perplexity, and Gemini answers instead of ranked on a results page — directly into their existing SEO retainers. Only 27.1% charge for it as its own line item.
Nobody sat down and decided to give GEO away for free. It happened the way scope creep always happens: one client asked why a competitor kept showing up in AI answers and they didn't, someone on the team said "we can look into that," and six months later that "looking into it" had turned into structured data rewrites, citation-building campaigns, and a recurring brand-mention audit — all inside a retainer that was priced for keyword rankings and backlinks.
The leak is invisible because nobody classified the work
Time tracking tools log hours against a client, not against a discipline. A task titled "update FAQ schema" could be routine technical SEO or it could be GEO-specific structured data aimed at AI parsing — and unless someone tags it, it just becomes generic "SEO hours" on an account that was scoped for a narrower job.
That's the whole problem. The work is real, it's being logged, and it's completely invisible as a cost until someone goes back and reads what actually happened task by task.
Build the classifier before you build the pricing case
Feed three months of task logs and time entries into Claude with a clear definition of what separates SEO from GEO, and force a classification with a reason attached for every item — not a black-box percentage you have to trust blindly. Total the GEO hours, multiply by blended rate, and rank accounts by leak size. A handful of accounts will usually account for most of the unpriced work, which tells you exactly where to start the repricing conversation.
Reprice it as a formalization, not a confession
The account has been getting real value from GEO work whether it was billed or not. The repricing conversation isn't an apology for a mistake — it's formalizing a service that already exists and already has a track record on the account. Frame it that way, and set the rule going forward: new GEO requests get scoped and quoted before the work starts, the same way any other new deliverable would be.
Bottom line
Over half the industry is running a second service line inside the price of the first one. The agencies that find and reprice that gap keep the margin they already earned. The ones that don't will keep discovering it, one thin quarter at a time, until someone finally asks why SEO retainers stopped being profitable.