What belongs in an AI visibility monthly retainer vs a one-time audit
A one-time audit is the baseline plus prioritized fixes. A monthly retainer is prompt-panel tracking, entity hygiene, page jobs, and citation recovery.
William Spurlock Founder — Spurlock Studios 31 MIN
A one-time AI visibility audit is a baseline plus a prioritized fix list. A monthly retainer is the work that does not finish at the readout: prompt-panel tracking, entity hygiene, page-job rewrites, and citation recovery. If you buy a retainer to get a second PDF of the same findings, you bought a report subscription. If you buy an audit and expect ChatGPT or Google AI Overviews to start citing you next Tuesday with nobody shipping HTML, you bought a diagnosis and called it treatment.
This spoke sits under the Answer Engine Optimization playbook. Definitions live in what AI visibility actually is. How to score the work lives in measuring AI search visibility. Lane work is on /visibility. I have been SEO certified since 2021. I will not invent a monthly fee or a client citation-recovery percentage in this post. The object you buy is the decision. The price is a separate conversation.
The short answer
- Audit: freeze the current state, name eligibility blockers, rank the fixes, hand you a 30/60/90. Then it stops.
- Retainer: run a frozen prompt panel, keep entity facts aligned, rewrite page jobs, and recover citations after losses. That is weekly labor, not a recap.
- Buy the audit first if you cannot answer “are we even eligible, and which five URLs matter.”
- Buy the retainer when the ranked list exists and the failure mode is “nobody ships.”
- Do not judge either object on restored 2022 informational CTR. Judge citations, brand search, and conversions on protectable URLs.
| You are buying | Done looks like | Wrong cousin |
|---|---|---|
| One-time audit | Baseline + prioritized fixes, dated, owned | A content calendar disguised as diagnosis |
| Monthly retainer | Prompt-panel tracking, entity hygiene, page jobs, citation recovery | A monthly reprint of the audit PDF |
| Neither yet | Eligibility and Search Console exist; offer is real | Paying for screenshots of someone else’s niche |
The audit finds the work. The retainer is the work. Mixing those two sentences is how retainers turn into theater.
What belongs in a one-time AI visibility audit?
A baseline you can defend, plus a ranked list of fixes you can staff. Not a 40-post outline. Not a vendor “AEO grade.” Not a promise that Google will cite you.
The audit answers four questions in writing: Are we eligible to be quoted. What do answer engines currently say about us. Which URLs can carry the answer. What do we do first, second, and not at all this quarter.
| Audit artifact | What it contains | What it is not |
|---|---|---|
| Eligibility pass | Indexing, snippet rules, noindex / nosnippet accidents, robots, canonicals | A crawl of the whole internet |
| Prompt-panel v0 | 25–40 frozen buyer prompts, dated screenshots, mention vs citation vs absent | One ChatGPT chat from a sales call |
| Entity map | Legal name, NAP, offer sentence, About vs schema vs footer vs GBP if you have one | A brand workshop |
| Page-job list | Protect vs reinvent vs demote, with owners | A blog calendar |
| Prioritized fixes | Ranked tickets: page, fact, schema, corroboration, technical | “Do AEO” as a vibe |
| 30/60/90 | Sequence with a kill criterion | A retainer proposal stapled to the back |
Google’s AI features documentation still says a supporting link in AI Overviews and AI Mode must be indexed and snippet-eligible. There is no special Overview markup. An audit that skips URL Inspection is a mood board.
Checklist — the audit is complete only if:
- Frozen prompt set written down (same wording next month)
- Each priority prompt labeled mentioned / cited / absent / wrong-fact
- Eligibility blockers named with the URL that fails
- Five or fewer first-wave URLs, not fifty
- Each fix has an owner and a “done looks like”
- You can read the ranked list out loud in five minutes
If the deliverable cannot be staffed without a translator, it is not a baseline. It is a brochure.
A ranked fix list should look like tickets, not themes. Example shape — not a client result, not a promise these pages will get cited:
| Rank | Ticket | Done looks like | Owner |
|---|---|---|---|
| 1 | Homepage nosnippet accident | Answer block snippet-eligible; Inspection clean | Developer |
| 2 | About vs schema city mismatch | One city in HTML and JSON-LD | Developer + operator |
| 3 | Money page has no scope table | Citeable inclusion/exclusion table live | Content + operator |
| 4 | Comparison URL is a listicle | Criteria table + handoff to pricing | Content |
| 5 | Identity prompts invent a package | Offer sentence matches pricing HTML | Operator |
Refuse these as “audit deliverables”:
| Vendor line | Why it is not an audit |
|---|---|
| Six months of “implementation included” | That is a retainer wearing the audit’s name |
| A 40-post editorial calendar | That is content ops, and it usually skips the five URLs that matter |
| An “AEO score” with no prompt list | You cannot re-run it |
| A citation guarantee | Nobody honest can sign it |
| A monthly fee quoted in the audit deck | Price the object after you know the object |
What belongs in an AI visibility monthly retainer?
Four jobs that recur. Prompt-panel tracking. Entity hygiene. Page jobs. Citation recovery. If a line item does not map to one of those four, it is classic SEO, design, or reporting — label it honestly or cut it.
A retainer exists because answer engines rewrite themselves. Same prompt, different day, different sources. A one-shot screenshot is an anecdote. A panel is a ritual.
| Retainer workstream | Monthly output | Kill it when |
|---|---|---|
| Prompt-panel tracking | Same 25–40 prompts, scored mention / citation / accuracy, with SERP or answer screenshots | The prompt set changes every week so nothing trends |
| Entity hygiene | Diff of name, city, offer, pricing facts across About, schema, footer, profiles | You “rebrand copy” without updating schema |
| Page jobs | Shipped HTML on ranked URLs: answer-first lead, one citeable table, handoff to a protectable URL | You open twenty outlines and ship zero |
| Citation recovery | Tickets for lost citations, wrong facts, and competitor takeovers on money prompts | You only log the loss and never change a page |
What the retainer may also include, if you name it as SEO rather than magic:
| Adjacent work | Keep if | Do not relabel as AEO |
|---|---|---|
| Technical SEO floor | Indexing, speed, canonicals still break citations | “AI crawl optimization” with no Inspection |
| Classic rank tracking | Money queries still have blue links | Using rank as the only scoreboard |
| Content ops | You are shipping the ranked pages | A volume calendar to “outrank the model” |
| Digital PR / corroboration | A fact needs a second source | Buying links and calling them citations |
Operator rule: if the monthly email is screenshots with no shipped URL, you are renting a report. Reports do not get you cited.
A month of retainer labor, if it is real, looks like a calendar — not a vibe.
| Week | Tracking | Hygiene | Page jobs | Recovery |
|---|---|---|---|---|
| 1 | Full panel run; red cells filed | Diff Home / About / money / schema | Ship or explicitly defer URL A | Confirm last month’s losses on a second capture |
| 2 | Spot-check money prompts only | Fix the one fact that drifted | URL A indexed; start URL B | Smallest HTML change for a lost citation |
| 3 | Full panel | Recheck external profiles you control | Ship URL B | Re-run the recovered prompt |
| 4 | Monthly rollup: mention vs citation vs shipped changelog | Freeze sentences if a campaign wants to “improve” them | Changelog to the operator | Kill or keep each open recovery ticket |
RACI you can paste into the SOW:
| Job | Agency / freelancer | In-house operator | Developer |
|---|---|---|---|
| Prompt panel | Runs and scores if hired for it | Owns the prompt list; vetoes new prompts | None, unless a tool must be instrumented |
| Entity hygiene | Diffs and tickets | Freezes identity and offer sentences | Ships schema and NAP |
| Page jobs | Drafts the citeable object | Approves the offer and the CTA | Ships HTML, not a tag-manager banner |
| Citation recovery | Logs the loss; proposes the smallest change | Decides protect vs reinvent | Inspection and deploys |
| Classic SEO floor | Only if labeled SEO | Still your Search Console | Still your canonicals |
If the SOW has a RACI with three empty columns, you hired a narrator.
How do you decide audit vs retainer without a price slide?
Start from what you cannot currently name. If you cannot name eligibility, current answers, or the first five URLs, you need an audit. If you can name all three and the pages still have the old job, you need a retainer. Price comes after the object. I will not invent a monthly number here.
Decision table:
| Question | If no | If yes |
|---|---|---|
| Can you show a dated prompt log for 25+ buyer prompts? | Audit — you have no baseline | Maybe retainer — the log has to keep moving |
| Can you name eligibility blockers with URLs? | Audit | Retainer can keep Inspection in the weekly loop |
| Do you have a ranked fix list with owners? | Audit | Retainer ships the list |
| Has anyone shipped HTML on those URLs in 30 days? | Audit if the list is fiction; retainer if the list is real and idle | Retainer — the bottleneck is labor, not knowledge |
| Are answer engines inventing your city, price, or offer? | Audit to map the conflict | Retainer — entity hygiene is weekly |
| Did you lose a citation on a money prompt this month? | Audit if you never measured | Retainer — citation recovery is the job |
| Is the site not snippet-eligible or not in Search Console? | Neither. Fix eligibility first. Then audit. | Proceed |
Procedure:
- Write the four questions you actually care about buyers asking. If you cannot, you are not ready for a retainer.
- Run those four prompts today, manually, on the surfaces you sell against (Google AI Overviews / AI Mode, ChatGPT, Perplexity — pick the ones your buyers use).
- If you are surprised by the answers, buy the audit. Surprise is the baseline you do not have.
- If you are not surprised, and the same five URLs have been “on the list” for a quarter, buy the retainer or staff it in-house.
- If the site is
noindex, login-walled, or missing from Search Console, stop. Eligibility before either object.
Failure mode: a founder buys a retainer because a competitor “does AEO,” then receives a dashboard login and no page diffs. That is not a strategy miss. That is buying the wrong SKU.
When is a one-time audit enough?
When the constraint is knowledge, not cadence. An audit is enough if a competent in-house person can take the ranked list and ship it, and you only need an outside hammer to settle the argument.
| Situation | Audit is enough | You still need a retainer |
|---|---|---|
| First time measuring AI visibility | Yes — you need a baseline | After the list exists and week four still has zero HTML |
| Executives want an external ranked list | Yes — politics, not a year of agency | If nobody on staff will own the prompt panel |
| One eligibility mess (nosnippet, canonical loop) | Often yes, plus a developer week | Only if the mess recurs across templates |
| Entity facts already agree | Audit can be thin | Retainer still for panel + page jobs |
| You publish quarterly and can staff two URLs a month | Audit + internal ops | Retainer if that staffing is imaginary |
| Competitors own every category answer | Audit names the gap | Retainer is how you contest it month after month |
Checklist — stop at the audit when all of these are true:
- Search Console is verified
- Prompt-panel v0 exists and will be re-run by a named owner
- Ranked fix list is five to fifteen tickets, not a novel
- Someone on payroll can edit HTML, schema, and internal links
- Leadership accepted protect vs reinvent vs demote
- You have a date for the first two shipped URLs
An audit that “includes three months of implementation” is a retainer with a costume. Split the SOW. Pay for diagnosis. Then pay for shipping, or staff it. Mixing them hides which one failed.
When does a retainer start earning its keep?
After the ranked list exists, and the failure is time. Answer engines drift. Entity facts rot. Citations disappear without a ticket. A retainer earns its keep when those four workstreams would otherwise die between other jobs.
It does not earn its keep as “someone to blame when ChatGPT is rude about us.” Models will be wrong. The retainer is whether you notice in a week and change a page, or notice in a quarter and rewrite the homepage in a panic.
| Signal | Retainer is justified | Still an audit / DIY problem |
|---|---|---|
| Prompt answers change week to week on money queries | Tracking is a job | You have never frozen the prompts |
| Schema, GBP, and About disagree after every campaign | Entity hygiene is a job | One cleanup would actually stick |
| Informational URLs still written as click farms | Page jobs are a job | You have not decided protect vs reinvent |
| You were cited, then replaced | Citation recovery is a job | You never logged citations in the first place |
| In-house SEO is at capacity on classic rank + tech | Extra hands on the four workstreams | You have no SEO owner at all — hire or audit first |
| Leadership wants a monthly scoreboard that is not CTR | Ritual plus tickets | They want a fake ROAS number |
I will cite receipts I can defend: SEO certified since 2021, 500+ automations built, 20,000+ hours on agentic systems, 35,000+ hours saved for clients, hundreds of production sites. I will not invent “retainers recover X% of citations in 90 days.” If a vendor says that, ask for their frozen prompt set and their definition of a citation. Then wait.
What does prompt-panel tracking include month to month?
The same prompts, the same scoring columns, a dated artifact, and tickets. Not a new tool login. Not a share-of-voice percentage invented from one screenshot. The measurement spoke is the full scoreboard; this section is what you are paying a retainer to do with the panel.
Procedure every week (or every other week if the set is large — never “whenever we remember”):
- Open the frozen list. Do not add five trendy prompts and drop five money prompts.
- Run each prompt on the surfaces you committed to. Same device class notes. Dated capture.
- Score four columns: mentioned, cited (URL credited), accuracy of the fact, competitor set present.
- File a ticket for every regression: lost citation, new wrong price, new wrong city, new competitor occupying the answer.
- Ship or explicitly defer the ticket. A sparkline with no owner is theater.
| Panel column | Pass | Fail |
|---|---|---|
| Prompt text | Identical to last run | Rewritten so the trend is fake |
| Surface | Named (AI Overviews, AI Mode, ChatGPT, Perplexity) | “AI” as one bucket |
| Mention | Brand or product named | You squint at a synonym |
| Citation | Your URL or a clearly credited source | A mention without a source treated as a link |
| Accuracy | Offer, geo, pricing match the live site | “Close enough” |
| Ticket | URL + owner + due date | “Monitor” |
Google’s Search generative AI performance report (June 2026) is impression-led for AI Overviews and AI Mode, rolling out to a subset of properties, and it does not replace the panel. It does not show ChatGPT. If your property does not have the report yet, do not invent a workaround metric. Keep the manual log.
Checklist for the retainer’s tracking line:
- Prompt count frozen (write the number down)
- Owner named
- Cadence named (weekly / biweekly)
- Mention and citation are separate columns
- Search Console Web + gen-AI report if present, not instead of the panel
- Every red cell becomes a ticket or an explicit defer
If the agency cannot show last week’s table, they are not tracking. They are performing.
Why entity hygiene is not a one-week cleanup
Because campaigns, designers, and sales decks keep rewriting the facts. An audit can map the conflicts. A retainer keeps About, schema.org markup, footer, profiles, and the money page saying the same name, offer, and place. Models stitch those pages together. They do not pick your favorite Figma frame.
| Fact | Where it usually drifts | What breaks in the answer |
|---|---|---|
| Legal / brand name | Homepage metaphor vs About vs schema name | Two companies, or a nickname the model treats as a different org |
| Offer sentence | Ads vs service page vs pricing | Cited for a package you do not sell |
| City / service area | Footer vs GBP vs location page vs old Webflow | The wrong town in the Overview |
| Price or “from” figure | Blog vs pricing vs PDF | Invented retainers — including yours |
| Founder / credential | LinkedIn vs About vs byline | E-E-A-T theater with mismatched years |
| Canonical domain | www vs apex vs shop subdomain | Citation to the zombie host |
Cleanup procedure the audit starts and the retainer repeats:
- Freeze one identity sentence and one offer sentence. Put them in a doc the designer cannot “improve” without a ticket.
- Diff Home, About, money page, FAQ/proof, contact/location, JSON-LD, and the external profiles you actually control.
- Ship the diffs in one deploy where you can. Staggered deploys are how you teach two cities for a month.
- Re-run the identity prompts on the panel. File remaining inventions as corroboration or leftover third-party junk.
- Next month, diff again. New campaign landing pages are the usual recidivists.
Checklist — entity line in the retainer:
- Single offer sentence in HTML on Home and the money URL
-
Organization/LocalBusiness/Personmarkup matches visible text - No leftover domain serving the old NAP
- Pricing claims either dated or removed from citeable passages
- Credentials you cite are ones you would repeat on a sales call (SEO since 2021 is mine; do not borrow it)
An audit that “fixes schema” once, then leaves the homepage in metaphor, is a half-cleanup. The retainer is there because someone will change the metaphor again.
What page-job work does the retainer ship that the audit only flags?
The audit labels protect, reinvent, or demote. The retainer changes the HTML. Informational pages that still exist to farm clicks will lose the argument with AI Overviews even if they rank. Money pages that read like glossaries will get quoted for a definition and skipped for the sale.
| Page job | Audit output | Retainer output |
|---|---|---|
| Protect (pricing, demo, audit, high-intent service) | “Do not turn this into a blog” | Fast, accurate, unblocked; facts match the panel |
| Reinvent (what-is, how-to, comparison) | “Needs a citeable object” | Answer-first lead, table or procedure, handoff to a protectable URL |
| Demote | “Two quarters, no citation, no brand, no leads” | Merge, 301, or noindex with a written reason |
| Ignore this quarter | Explicit defer | Stays deferred — no stealth blog sprint |
Rewrite skeleton the retainer actually ships (one URL at a time):
- Lead answer in the first 60 words — the decision or definition, dated if it includes a number.
- One citeable object — table, numbered procedure, or bounded checklist.
- Entity facts that match About / schema.
- A next step that is not “read more blog.”
- Request indexing only after fetched HTML contains the answer.
- Log the URL on the prompt panel for the queries it is supposed to win.
| Do not ship as “page jobs” | Why |
|---|---|
| Twenty outlines, zero HTML | The audit already produced a list |
| New cluster to “feed the AI” | Volume is how you dilute the entity |
| Accordion-only FAQ | If it is not in the fetched HTML, it is not a source |
nosnippet on the answer block | You opted out of the job |
| Homepage redesign as week one | Usually politics; rarely the citation |
Two URLs shipped beats twelve in Notion. The retainer’s page-job KPI is shipped HTML on the ranked list, not “content in progress.”
What is citation recovery after the first loss?
A ticket, a page change, a corroboration check, and a re-measure — not a vibe that “AI is random.” You cannot recover a citation you never logged. That is why tracking sits in the retainer instead of in a quarterly audit.
Recovery procedure:
- Confirm the loss on the same prompt, same surface, two captures if the first looks fluky. One miss is noise. A week of absence on a money prompt is a ticket.
- Check eligibility: still indexed, still snippet-eligible, still the canonical you think it is. Use URL Inspection, not a sitemap assumption.
- Check extractability: is the fact still in the first 60 words and in a table, or did a redesign bury it in a widget.
- Check truth: did you change price, city, or package so the old cited sentence is now false. If yes, the model may have dropped you for being stale. Update the passage.
- Check competitors: who got the slot. What object did they publish that you lack.
- Ship the smallest page change that restores a citeable unit. Re-run the prompt for two more cycles before you declare failure.
- If you never earned the citation, this is not recovery. It is the original page-job ticket from the audit. Do not relabel it.
| Loss type | Likely cause | First move |
|---|---|---|
| Cited last month, absent now, page unchanged | SERP/answer churn or competitor object | Re-extract; add the missing table; do not panic-publish |
| Cited last month, absent now, you redesigned | Extractability or nosnippet | Restore the lead and the table in HTML |
| Mentioned, never cited | You are a named entity without a source URL the system trusts | Strengthen the URL and internal links; do not buy a mention dashboard |
| Cited with the wrong fact | Entity drift | Hygiene first; then the passage |
| Cited on a zombie domain | Canonical / migration | 301 and Inspection; then panel |
Google does not owe you a citation. Recovery is you remaining eligible, extractable, and true. The retainer is the cadence that notices the drop while the URL still has a chance.
What usually fails when teams buy the wrong object?
They buy a retainer as a second audit, or an audit as a citation SLA. Both fail in public, then someone declares “AEO does not work.”
| Failure | What it costs | What you do instead |
|---|---|---|
| Retainer = monthly PDF of the same findings | Burn rate, no HTML, execs freeze the budget | Split SOW: audit once, then ship or staff |
| Audit = “we will get you cited this month” | You paid for a promise nobody can honestly make | Audit for baseline + ranked fixes only |
| Panel that changes prompts every run | Fake trends, no recovery tickets | Freeze 25–40, add only with a written reason |
| Rank tracker relabeled as AI visibility | You miss ChatGPT and Overviews | Panel + GSC; rank is a cousin metric |
| Page-job work that is only blog volume | Diluted entity, still no citeable table | Two reinvented URLs, then stop |
| Entity cleanup once, campaign undoes it | Wrong city in the answer for a quarter | Retainer hygiene or a freeze on rogue landing pages |
| Citation “recovery” with no prior log | You cannot tell loss from never-won | Audit’s prompt-panel v0 first |
| Success defined as old informational CTR | Every honest week looks like failure | Citation rate, brand search, protectable conversions |
The expensive version is political: leadership bought a retainer to avoid staffing an owner. The agency cannot merge your schema. Your designer cannot freeze the offer sentence. Ninety days later everyone has screenshots and no shipped URL. That is not an AI problem. That is an ownership problem with an invoice.
In-house version of the same failure: you run a one-time audit, celebrate the deck, and put the tickets in a backlog behind a rebrand. The audit did its job. You used it as interior design.
How to read a vendor SOW before you sign:
| Line in the SOW | Treat as | Ask this before you pay |
|---|---|---|
| “Monthly AI visibility report” | Report subscription until they name the four jobs | Where is the shipped-URL changelog? |
| “Includes strategy and implementation” | Mixed object — split it | What is the audit artifact vs the monthly artifact? |
| “Proprietary AEO platform access” | Tooling, not labor | Will you still get a CSV of the prompt panel if we leave? |
| “Ongoing optimization” | Empty | Name the URLs and the cadence |
| “We monitor ChatGPT weekly” | Tracking only | Who files the ticket when the answer is wrong? |
| “SEO retainer, now with AEO” | Classic SEO until proven | Show last month’s mention vs citation columns |
If they cannot answer those in one call, you are not buying visibility work. You are buying a slide.
How do you measure whether the retainer is working?
With the frozen panel, Search Console, and pipeline on protectable URLs. Not with restored CTR. Not with a vendor letter grade. The dedicated method is measuring AI search visibility; this is the acceptance test for the contract.
| KPI | Source | Review | Kill / change criterion |
|---|---|---|---|
| Prompt-panel citation rate | Manual log | Weekly | 0% on money prompts for a quarter → change pages or stop |
| Mention accuracy (offer / geo / price) | Same log | Weekly | Repeated wrong facts after hygiene tickets → entity SOW is failing |
| Shipped ranked URLs | Git / CMS changelog | Weekly | Zero HTML in 30 days → you bought a report |
| GSC gen-AI impressions (if present) | Search Console | Weekly | Useful as reach, not as clicks; do not invent CTR from it |
| Brand queries | Search Console | Weekly | Free-fall after you deleted explainers → you cut demand |
| Protectable conversions | Analytics / CRM | Weekly | The number that pays rent |
| Eligibility regressions | URL Inspection | Weekly | New noindex / canonical loops → technical line is failing |
Checklist at each monthly review:
- Same prompt set as month one (or a dated changelog if you added two)
- Citation and mention graphed separately
- List of URLs shipped, not “in design”
- List of recovered vs still-lost money prompts
- No slide that claims a return-on-ad-spend for citations
- No slide that quotes a viral Overview CTR study as your result
As of August 2026, public CTR studies on AI Overviews disagree on magnitude. They are not a retainer KPI. Quote them only as context. Your panel and your Search Console are the decision.
If informational sessions fall while citation rate, brand search, and protectable conversions hold, the retainer may still be doing the job. If all four fall, you have a demand problem or you bought screenshots.
Monthly review agenda (30 minutes, one page):
- Prompt-panel deltas: gained citation, lost citation, still absent, new wrong fact.
- Shipped HTML: URLs, date live, Inspection status.
- Entity diffs: what a campaign tried to change; what you froze.
- Recovery tickets: open, shipped, abandoned with a reason.
- Pipeline on protectable URLs — not blog sessions.
- Decision: continue, cut a workstream, or end the SOW.
| Review outcome | Evidence | Next month |
|---|---|---|
| Keep | Panel owned; ≥1 URL shipped; facts more accurate | Same four jobs |
| Cut tracking theater | Screenshots, no tickets | Fire the report line; keep shipping |
| Cut page-job fiction | Outlines only | Pause retainer until a developer week exists |
| End | Zero HTML and a rotating prompt set | You have a PDF. Stop paying for it |
What should you sequence in 30, 60, and 90 days?
Audit in the first stretch if you lack a baseline. Retainer workstreams after the list is real. Do not staff a year on day two. Do not skip the week-one eligibility check because it is boring.
| Window | If you are starting from zero | If the audit already exists |
|---|---|---|
| Days 1–10 | Eligibility + Search Console + prompt-panel v0 | Re-run the panel; throw out stale tickets |
| Days 11–30 | Audit readout: baseline + prioritized fixes; ship zero or one obvious technical fix | Ship two ranked URLs (page jobs); freeze entity sentences |
| Days 31–60 | Decide: in-house vs retainer vs stop | Weekly panel; entity diffs; first recovery tickets |
| Days 61–90 | Only buy a retainer if HTML shipped and the panel is still owned | Show citation / mention trend + shipped changelog, or kill the SOW |
If you only have a week, skip the retainer conversation entirely.
Week-only checklist:
- Skip: buying a six-month retainer, a new blog calendar, llms.txt theater, AI-only schema
- Do: URL Inspection on the homepage and one money URL
- Do: run 15 buyer prompts once, by hand, and write mentioned / cited / wrong
- Do: freeze the identity sentence and the offer sentence
- Do: book an audit if the answers shocked you, or staff two URL rewrites if they did not
- Stop at the end of the week. Do not “start the retainer” with no baseline
Ninety days with a retainer and no shipped URL is not a slow start. It is the wrong object. End it.
Staffing decision after the audit, before a retainer invoice:
| You have | Next object | Do not |
|---|---|---|
| Developer + operator who can ship two URLs a month | Keep the work in-house; re-audit in a quarter if the panel dies | Pay for screenshots of work you can do |
| Operator, no developer | A sprint or developer week, then decide | A visibility retainer that cannot merge schema |
| Developer, no operator | Audit already failed — nobody owns the sentences | Retain an agency to “be the founder” |
| Neither, messy eligibility | Eligibility fix, then audit | A six-month AEO package |
| Both, list idle for 90 days | Retainer on the four jobs, with a 90-day kill switch | An open-ended “optimization” SOW |
Procedure for the kill switch, written into the contract:
- Month 1 must include the frozen prompt file and at least one shipped ranked URL, or the SOW converts to a wind-down.
- Month 2 must show mention and citation as separate columns, not a blended “visibility score.”
- Month 3 must show either a recovered money prompt, a documented reason it is still absent, or a page-job change aimed at that prompt.
- If those three fail, you end. You do not “give it another quarter” because the dashboard looks expensive.
When is this not worth doing yet?
When the site cannot be a source, the offer is fiction, or nobody will own the panel. Paying for either object in that state buys a PDF about a wall.
| Blocker | Why audit and retainer both stall | What to do first |
|---|---|---|
Sitewide noindex, login wall, or nosnippet on answers | Not snippet-eligible | Remove the accident; read AI features |
| Domain not in Search Console | You cannot measure | Verify the property |
| Legal name in flux | You will teach two entities | Freeze the name, then write |
| No offer you will take next month | Money page is fiction | Pause marketing pages |
| Duplicate live hosts (old site + new site) | Models cite the zombie | 301 the zombie |
| No one can edit HTML | Schema and leads will stay wrong | Get a developer week or a sprint, not a visibility retainer |
| Success must be “old CTR back” | You will fire the honest report | Change the scoreboard first |
| You want a citation SLA | Nobody honest will sign it | Buy baseline + shipping, not a guarantee |
Proceed only if:
- You can name the offer you will take
- Canonical domain is clear
- Search Console exists or will this week
- Someone can change server-rendered HTML
- You will accept mention / citation / conversions as the scoreboard
- You will not demand a monthly fee quoted from a blog post (this one will not give you one)
If those boxes are empty, fix the business constraint. Then an audit. Then a retainer only if the list would otherwise rot. The booking path for the diagnosis is a visibility audit. The system map is the AEO playbook.
Bravery is not a citation SLA.
FAQ
What belongs in an AI visibility monthly retainer vs a one-time audit?
A one-time audit is the baseline plus a prioritized fix list: eligibility, a prompt-panel v0, an entity map, protect-versus-reinvent labels, and a ranked 30/60/90. A monthly retainer is prompt-panel tracking, entity hygiene, page-job rewrites, and citation recovery — the labor that repeats after the readout. If the monthly artifact is the same PDF, you bought a report subscription.
How do I measure whether an AI visibility retainer is working?
Score a frozen prompt panel (mention vs citation vs accuracy), count shipped URLs on the ranked list, and watch brand search plus conversions on protectable URLs. Use Search Console generative-AI impressions if the property has them; they are not clicks and they are not ChatGPT. Do not use restored informational CTR or a vendor letter grade as the acceptance test.
What usually fails first when teams try this?
They buy a retainer before they have a baseline, or they treat the audit as a citation guarantee. The next failure is a prompt set that changes every week, so nothing can trend, and a month of screenshots with zero HTML. Ownership fails before the model does.
How long does this take to show results?
Eligibility issues can show up in days once Inspection is clean. Panel accuracy often moves in weeks after entity and lead-answer fixes. Citations are not guaranteed and are not on a published SLA — Google’s docs treat indexing and serving as never-promised. Re-measure on the same prompts at two weeks and eight weeks; do not invent a day-count.
What should I skip if I only have a week?
Skip buying a retainer, skip a new blog calendar, and skip AI-only markup. Spend the week on Inspection, 15 handwritten prompts, and freezing the identity and offer sentences. Book an audit if the answers shocked you, or staff two URL rewrites if they did not — then stop.
When is this not worth doing yet?
When the site is not snippet-eligible, Search Console is missing, the legal name is mid-rebrand, or you do not have an offer you will take. Also skip it if success must be “get our old CTR back” or a signed citation guarantee. Fix eligibility and the scoreboard first; then buy a baseline, then buy shipping.
CTA
If you cannot name the baseline, buy the audit. If you can name it and nobody is shipping, buy the four retainer jobs — not a monthly reprint of the same PDF.
Lane: /visibility · Book a visibility audit.
What questions does this article answer?
- What belongs in an AI visibility monthly retainer vs a one-time audit?
- A one-time audit is the baseline plus a prioritized fix list: eligibility, a prompt-panel v0, an entity map, protect-versus-reinvent labels, and a ranked 30/60/90. A monthly retainer is prompt-panel tracking, entity hygiene, page-job rewrites, and citation recovery — the labor that repeats after the readout. If the monthly artifact is the same PDF, you bought a report subscription.
- How do I measure whether an AI visibility retainer is working?
- Score a frozen prompt panel (mention vs citation vs accuracy), count shipped URLs on the ranked list, and watch brand search plus conversions on protectable URLs. Use Search Console generative-AI impressions if the property has them; they are not clicks and they are not ChatGPT. Do not use restored informational CTR or a vendor letter grade as the acceptance test.
- What usually fails first when teams try this?
- They buy a retainer before they have a baseline, or they treat the audit as a citation guarantee. The next failure is a prompt set that changes every week, so nothing can trend, and a month of screenshots with zero HTML. Ownership fails before the model does.
- How long does this take to show results?
- Eligibility issues can show up in days once Inspection is clean. Panel accuracy often moves in weeks after entity and lead-answer fixes. Citations are not guaranteed and are not on a published SLA — Google’s docs treat indexing and serving as never-promised. Re-measure on the same prompts at two weeks and eight weeks; do not invent a day-count.
- What should I skip if I only have a week?
- Skip buying a retainer, skip a new blog calendar, and skip AI-only markup. Spend the week on Inspection, 15 handwritten prompts, and freezing the identity and offer sentences. Book an audit if the answers shocked you, or staff two URL rewrites if they did not — then stop.
- When is this not worth doing yet?
- When the site is not snippet-eligible, Search Console is missing, the legal name is mid-rebrand, or you do not have an offer you will take. Also skip it if success must be “get our old CTR back” or a signed citation guarantee. Fix eligibility and the scoreboard first; then buy a baseline, then buy shipping.
Last reviewed
AI Visibility
AI Visibility Cannabis visibility when the ad accounts are banned
Google and Meta will not take the usual spend. The models still answer dispensary, cultivator, and brand questions — if the site can be read and the cart can clear a 21+ order.
AI Visibility When ChatGPT names the franchise, not your shop
Run the best-HVAC-near-me prompt panel. If the model names a national franchise, fix corroboration and entity facts — not another blog calendar.
AI Visibility How do I get cited by Perplexity specifically
Allow PerplexityBot, put a liftable answer and unique numbers in HTML, then log numbered sources on a frozen prompt panel. There is no bought citation rate.
AI Visibility Does Wikipedia or Wikidata help AI recommend my brand
Wikipedia is not a paid AI lever. Notability plus independent sources decide the page; a real Wikidata item helps entity consistency, not a promotional stub.
Will's Journal in your inbox.
What I learned this week building for shops, floors, and houses.
You're on the list.
Sign-up failed — try again.
By subscribing, you agree to the Privacy Policy.