A post on r/Agentic_SEO has been making the rounds: a fully autonomous SEO pipeline where an agent picks keywords, researches, drafts, scores and publishes, and nobody writes, edits or approves anything. The author reports a large jump in impressions over about three months, straight from Search Console.
It's one site, with no control group, so the chart can't tell you whether the pipeline caused the growth. But the method is genuinely good — better than most of what gets posted about agentic SEO. I took most of it. I left out one thing, and that one thing is the subject of this post.
What is a pre-publish gate?
A script that runs before anything deploys. It blocks the deploy if something is objectively wrong, flags anything that needs judgment for a person, and records that person's decision with a reason. It never approves content on its own.
What I kept from the autonomous pipeline
Every citation gets fetched live. If the cited page is dead, or doesn't contain the number you quoted, the claim fails. This is the single best idea in the post, and it's the check that would have caught most of what I found when I audited my own GEO content.
Every number needs a source that passed the check. Not a source somewhere on the page. A source that was fetched and found to contain that number.
The model never grades its own draft. The checks are deterministic code, not another prompt asking the model whether it did a good job.
Hard rules live in code. A rule written in a prompt is a suggestion the model can talk its way around. A rule in code fails the build.
What I didn't keep
No human in the loop. A citation check can verify that a number appears on a page. It cannot verify that something actually happened to me, or that a recommendation reflects real judgment. Run a fully autonomous pipeline on personal or experiential content and it will publish plausible first-person detail that never happened — fluently, and with nobody positioned to notice.
A hard search-volume floor. Rejecting every keyword below a fixed monthly volume throws away the narrow, high-intent queries that are often the most realistic way into AI answers.
Many interlinked posts per topic, generated at once. That's scaled content on a single intent, which risks cannibalization and sits close to what Google's spam policies describe as scaled content abuse.
What the gate checks
| Check | Result | Why |
|---|---|---|
| A number isn't on the page its paragraph cites | Fail | The claim isn't supported by its own source |
| A cited source is dead | Fail | Link rot |
| Structured data doesn't parse, or FAQ markup doesn't match the visible FAQ | Fail | Google requires markup to match visible content |
| Unreplaced placeholder text | Fail | Draft text shipping as finished work |
| Overconfident language — fixed timelines, superlatives, causal verbs | Warn | Needs a human call |
| A number with no source link in its paragraph | Warn | Can't be verified automatically |
| A source that blocks automated readers | Warn | Check by hand |
The split matters. Anything a machine can check against something external becomes a hard failure. Anything that needs judgment becomes a warning a person resolves. Nothing that needs judgment gets resolved by the machine.
What the first run found
The most important result wasn't a failure. Across all three of my sites, not one paragraph put a number next to a link to its source. Twelve paragraphs had outside links, and none of those twelve contained a number. Every statistic was cited in a sources list at the bottom of the page or in a figure caption.
That meant the live citation checker — the best part of the pipeline — had nothing it could verify. The fix isn't code. It's a writing habit: link the source in the sentence that uses the number. This post is the first one I've written that way.
It also flagged four superlatives my manual audit had missed, and placeholder text on two pages that had never been replaced.
And it caught a bug in itself. Nineteen of its first twenty-two hard failures were links it had resolved against the wrong site. Before I trusted the checker, I tested it against pages where I already knew the answer: on a systematic review of 9,249 SEO documents, it found all six figures I checked and rejected two numbers that weren't there. A checker you haven't tested is just a more confident way of being wrong.
Where the human goes
Warnings don't disappear by being ignored. To clear one, I add an entry to an approvals file: which rule, which page, what text, and a reason. An entry without a reason doesn't count. The file is version-controlled, so every judgment call has a name and a date on it.
Some things can't be approved away at all — broken structured data, unreplaced placeholders, and changes to pages that are part of a running experiment. Those have to be fixed.
That's the human in the loop. Not a person rereading every draft for vibes, but a person accountable for every decision the machine can't make, on the record.
If you're building agentic SEO
Build the checks before you build the writer. Verification is the part that compounds — it protects everything you publish, including what people write by hand. Generation is the easy part now. Knowing whether what got generated is true is the hard part, and most published SEO advice has never been tested in the first place.
Frequently asked questions
A pre-publish gate is a script that runs before a page deploys and blocks it if something is objectively wrong — a number that does not appear on its cited source, a dead link, structured data that does not parse or does not match the visible page. It flags judgment calls such as overconfident language for a person to review, and records that person's decision with a reason. It does not approve content on its own.
You can automate the parts that can be verified against a source: whether a cited page exists, whether it contains the number you quoted, whether your markup is valid. You cannot automatically verify lived experience, professional judgment, or first-person claims, because there is nothing to check them against. Those need a person who is accountable for them.
Fetch each linked source at publish time, extract its text, and check that every number in the citing paragraph appears on that page, normalizing commas and decimals. Treat a missing number as a failure, a dead link as a failure, and a page that blocks automated readers as unverifiable so a person checks it by hand. This only works when the link sits in the same paragraph as the number it supports.
Sources
- Ćorluka, K. (2026). The SEO Meta Study. Ovisy. ovisy.hr/blog/seo-meta-study
- Google Search Central. General structured data guidelines.
- Google Search Central. Spam policies for Google web search.
- First-run figures are from my own gate runs across sablesearch.com, jasoncsummers.com and over30blackandnerdy.com, September 2026.