GEO · Agent Playbook

How to Program an AI Agent to Run Your GEO Maintenance

Industrial workshop lit in neon, standing in for an automated maintenance system running on a schedule.

Key Takeaways

  • An agent can own the mechanical majority of GEO: hygiene sweeps, live audits, schema validation, query mining and verification
  • Audit the live URL, never the files on disk, because production is where the surprises live
  • Search Console already contains the conversational prompts AI engines are testing against your site, and almost nobody reads them
  • The hard part is not capability, it is the guardrails: an unguarded agent fabricates confidently and at scale
  • Daily for things that compound, weekly for things that could look like scaled content abuse
  • We ran this on our own domain first and found 39 pages we did not know were published, a useless sameAs and failing video markup

Most GEO advice is a list of things to do once. Add schema, write an FAQ, fix your titles. The problem is that GEO is not a project, it is maintenance. Engines recrawl, platforms change their rules every quarter, and the content you published two years ago is still shaping how a model describes you today.

That is exactly the shape of work a well-instructed AI agent is good at: repetitive, verifiable, and ruined by human boredom. Below are the seven jobs worth handing over, the checks to put in the agent's instructions, and the three failure modes you have to write guardrails against before you let it near a live domain.

1. The hygiene sweep: find out what your domain is actually serving

Start here, before any schema work. Most brands are publishing content they have no idea exists, and an AI engine reads all of it as part of your identity.

Have the agent enumerate every public surface of the domain, not just the pages in your sitemap:

  • RSS and Atom feeds, including per-tag and per-category ones
  • CMS REST endpoints, which happily serve content you removed from the menu years ago
  • Taxonomy archives: category, tag and author pages
  • Every sitemap the domain responds to, not only the one you meant to publish
  • Whatever a leftover CMS is rendering underneath a static site, which is more common than anyone admits

This step regularly finds theme demo content, abandoned landing pages and orphaned duplicates, all of them titled with your brand name. When a model has to summarize who you are, that material counts.

A page that is not in your menu is still in your identity.

2. Audit the live site, never the repository

Files on disk tell you what you intended to publish. The live URL tells you what a crawler actually receives, after caching, rewrite rules, redirects and any CMS in the path. Audits that pass locally and fail in production are the single most common false clean bill of health.

The check list worth automating, run against every URL in the sitemap:

  • HTTP status, and whether it matches what the sitemap claims
  • Title length and whether the meaningful phrase survives truncation
  • Meta description length, and whether it is unique across the site
  • Canonical present, and pointing at itself rather than at a template leftover
  • Exactly one H1
  • Open Graph image present, because a page with no card is a page that gets shared as a bare link
  • Every JSON-LD block parses as valid JSON
  • Every question in your FAQPage markup appears in the visible text, which is the check almost nobody runs
  • No internal links pointing at pages you retired
  • No duplicate titles or descriptions

That last pair matters more than it looks. Schema that describes content a visitor cannot see is not just useless, it is a policy problem. Have the agent compare the two every single run.

3. Fix the entity graph, not just the pages

Ranking is a page-level signal. Being named by an assistant is an entity-level one, and most sites never do the second job.

Three failure patterns an agent can detect and repair:

  • Self-referential sameAs. An organization whose only external reference is its own homepage tells a model nothing it did not already have. The whole value of sameAs is pointing at profiles somebody else controls.
  • Competing duplicate entities. Separate blocks describing the same company, with the same name and logo and no identifier linking them, read as several organizations rather than one.
  • No stable identifiers. Without @id values, nothing can be cross-referenced, and every page starts the introduction over.

One organization node with a stable identifier, one person node, and everything else referencing them. That is the whole fix, and it is the highest-leverage hour in most GEO engagements.

4. Mine Search Console for the questions engines are already asking

This is the one almost nobody does, and it is free.

Pull your query data and sort it by length rather than by volume. Buried under the keyword-shaped queries you will find entire sentences: full questions, sometimes whole paragraphs of context. Those are generative search fan-out queries, the sub-questions an engine generates while assembling an answer. They tell you exactly which prompts your domain is already being tested against.

Then have the agent do three things on a schedule:

  1. Pull the last 90 days of queries and isolate the conversational ones
  2. Check which of them have no direct answer anywhere on your site
  3. Write that answer, first 40 to 60 words responding to the question with no preamble, and publish it with matching structured data

Demand-proven, zero guesswork, and impossible to mistake for keyword stuffing because every question came from a real impression. Our own answers hub is built this way.

5. Check the schema fields that fail silently

Invalid JSON is loud. Missing required properties are quiet: the markup parses, you assume it works, and the feature has been disqualified for months.

Worth auditing on every run: video objects without an upload date or thumbnail, article markup without an author or publisher reference, product markup without price or availability, and any property set to null, which is not the same as omitting it and often invalidates the whole item. Have the agent check the required properties for each type it emits, not just that the block parses.

6. Write the guardrails before you write the tasks

Here is where agent-run GEO goes wrong, and it is never about capability.

An agent with a content quota and no evidence discipline will invent a case study. Not maliciously: it is completing a pattern, and "agency page with proof section" is a very strong pattern. The prohibition has to be specific and it has to live in the agent's standing instructions rather than in whichever prompt you happened to type:

  • No client results, percentages, testimonials or customer counts, ever, unless handed the source
  • Every platform claim verified against official documentation in that same run, never from memory, because this field changes quarterly
  • Never promise a position in AI answers. No engine sells one
  • If the honest answer is "this cannot be measured yet", that is the answer
  • If a step fails, leave the task unmarked and log the error. Never record success that was not verified

Vague instructions like "be accurate" do nothing. Named prohibitions work.

An unguarded agent does not lie occasionally. It fabricates consistently, in your brand voice, on a schedule.

7. Make verification part of the task, not an afterthought

The final instruction is the one that makes the rest trustworthy: the agent does not get to say something is done until it has confirmed it from the outside.

Fetch the live URL again. Confirm the status code. Confirm the new text is actually in the response. Re-parse the structured data. Submit a real form submission, including the failure case, rather than assuming the handler works. Then, and only then, mark the job complete.

What this found on our own domain

Fair question to ask of any checklist: did the people publishing it actually run it. We ran this one against cipionmarketing.com in September 2026, and it is worth being specific about what turned up, because the size of the findings is the argument.

We ran this checklist against our own domain and found the following:

  • Thirty-nine pages we did not know were published. A WordPress install was still running underneath the static site, invisible because the static files won whenever one existed and the CMS quietly handled everything else. It was serving theme demo content under our brand name: "Hello world!", and "Typography: Choosing Fonts for Maximum Impact" nine separate times as near-duplicates. Every one of them titled with the agency name.
  • The same content through two more doors. Those posts were also being served through the RSS feeds and the CMS REST API, so a crawler that never touched a page still collected them.
  • A sitemap advertising the junk. The CMS sitemap listed all of it, was declared in our own robots.txt, and had been submitted to Search Console.
  • A sameAs pointing at nothing. Our organization markup listed exactly one external reference: our own homepage. Technically valid, completely useless.
  • Video markup silently disqualified. Four video entries were missing the required upload date and thumbnail. Search Console had been returning a failing verdict on those rich results, and nobody had looked.
  • The wrong crawler allowed. Our robots.txt named GPTBot but not OAI-SearchBot, which is the agent that actually powers search inside ChatGPT. We had permitted training and omitted retrieval.
  • Twenty-five truncated titles and nine truncated descriptions. Over the length Google displays, so the meaningful part was being cut.
  • A stray "BE" on twenty-eight pages. A CSS rule for the navigation chevron had lost a backslash in some earlier edit, leaving a control character where the arrow should be. Visible to every human visitor, on almost every page, for an unknown length of time.
  • Index residue from an old compromise. A July intrusion had left e-commerce spam URLs in Google's index. They now return 410 Gone, which is the correct signal, but the engine takes weeks to let go.

None of that is exotic. It is the ordinary accumulation of a domain that has been alive for a few years and touched by several people. The point is that a marketing agency selling AI visibility had all of it on its own site, and the reason we found it is that we pointed the checklist at ourselves instead of assuming.

If you have never audited your own domain from the outside, assume the same list is waiting for you.

What we are not going to tell you is that it fixed our rankings. The cleanup is days old. The spam URLs are still sitting in the index. Our own baseline before any of this was roughly thirty impressions a day, and the honest position is that we have a clean starting line and no results yet. We will publish the comparison when there is one worth publishing, with the dates attached.

That is the standard we would apply to anyone else's case study, so it is the one we apply to ours.

What the agent cannot do

Everything above is mechanical. Three things are not, and no amount of instruction-writing fixes them.

It cannot tell you what is true about your business. Which claims you can defend, which results you own, what you actually deliver. It will happily write a confident sentence about any of it.

It cannot judge whether a page should exist. This is the expensive one. A page can pass every technical check on this list, validate perfectly, load fast, and still be a page you should never have published, because of a contract you signed, a market you are not allowed to serve, or a positioning decision the agent has no way to know about. Technical validity and business correctness are different questions, and only one of them is automatable.

It cannot originate the strategy. Which questions are worth owning, which sector you are credible in, what your actual differentiation is. Agents are extraordinary at executing a decision and useless at making one.

Which is the honest summary of this entire article: the checklist is the surface. It is genuinely worth running, and you should run it. The part that decides whether any of it produces revenue is the judgment layer sitting on top, and that does not come from a prompt.

Want the judgment layer applied to your domain?

The AI Visibility Snapshot is a free first-party baseline: where your brand currently stands across ChatGPT, Perplexity, Claude, Gemini and Google AI, with the findings written up whether or not you hire us.

Get the snapshot →

Common questions

Did you run this checklist on your own site?

Yes, in September 2026, and it found thirty-nine pages published by a forgotten CMS under our own brand, an organization sameAs that pointed only at our own homepage, four video entries with missing required fields that Search Console had been failing, and a robots.txt that allowed training but not retrieval. We have published the full list rather than the flattering summary, and we are not claiming ranking results yet because the work is days old.

Can an AI agent actually do GEO work, or is it just writing content?

It can do the mechanical majority of it: crawling your own live site, checking schema validity, comparing structured data against visible content, pulling Search Console queries, finding orphaned pages and verifying fixes afterwards. What it cannot do is decide what is true about your business, or judge whether a page should exist at all.

What is the first GEO job to hand an agent?

A domain hygiene sweep. Before any schema work, have it enumerate everything your domain actually serves: feeds, REST API endpoints, taxonomy archives, old CMS pages and sitemaps you forgot you submitted. Most brands are publishing content they do not know about, and an AI engine reads all of it as part of your identity.

How do I stop an AI agent from inventing statistics in my content?

Write the prohibition into its standing instructions, not into each prompt, and make it specific: no client results, no percentages, no testimonials, no customer counts. Then add the rule that every platform claim must be verified against official documentation in that same run, never from memory. Vague instructions like "be accurate" do nothing.

Should the agent check my site files or the live site?

The live site, always. Files on disk tell you what you intended to publish. The live URL tells you what a crawler actually receives, after caching, redirects, rewrite rules and the CMS you forgot was running underneath. Audits that pass on disk and fail in production are the most common false clean bill of health.

What does an agent get wrong most often in GEO?

Three things. It confuses technical validity with business correctness, so a perfectly marked-up page that should never have been published passes every check. It reports success it did not verify. And it applies a rule narrowly when the spirit of the rule was broader. All three are instruction problems, not capability problems.

How often should the agent run?

Split it. A daily job for something that compounds and cannot spam, such as answering one real question from your own Search Console queries. A weekly or monthly job for full audits and new long-form content. Daily auto-published articles on a domain are how you trigger the scaled content abuse policies, not how you rank.