The harness

  • MCP server
  • The rules
  • Git delivery
  • Editorial calendar
  • All features

What it knows

  • Measured topics
  • SERP brief
  • Evidence bank
  • Cannibalization stop
  • Internal links

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Learn

  • Claude SEO
  • All courses
ServicesAgentsPricingBlog

EN/ES

Log inCreate account
Create account

Your agent writes. The rules decide. You approve.

EN/ES

Product

  • Features
  • MCP server
  • Editorial calendar
  • SERP brief
  • Evidence bank
  • Git delivery

Agents

  • Slack (eve)
  • Claude
  • ChatGPT
  • Cursor
  • Grok Bot
  • Codex & VS Code
  • Setup guides

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Compare

  • Outrank
  • Surfer SEO
  • Jasper
  • Frase
  • Writesonic
  • Copy.ai
  • All alternatives

Company

  • Blog
  • Pricing
  • Services
  • Case studies
  • AI info
  • Write skill
  • llms.txt
  • Log in
  • Create account

Learn

Claude SEOAll courses
Featured onFeatured on CodeHypeVerified on directreeFeatured on SaaSearch

Privacy·Terms·Support·© seodraft

October 25, 2026· Written by Chorch

Prompts vs deterministic checks for SEO drafts

Learn why SEO draft prompts drift, how deterministic checks act like unit tests, and steal a checklist for keyword, evidence, filler, and cannibalization.

On this page

  1. Why prompts alone fail for SEO-shaped posts
  2. Treat the rules as tests
  3. What is worth checking in code
  4. Same draft, same verdict
  5. A public demo (optional)
  6. A short checklist you can steal
  7. Where prompts still help

In short

Treat SEO draft checks like unit tests: same Markdown, same verdict. Prompts handle tone; code blocks keyword, evidence, filler, and cannibalization.

Most AI writing advice for blog posts is still a prompt: "sound human", "add keywords", "don't hallucinate", "write for developers". Prompts drift. The same draft can pass on Tuesday and fail on Wednesday depending on model mood, temperature, or which system message you forgot to paste.

If you are a developer who ships a technical blog between features, that drift is expensive. You are not an SEO specialist. You still need posts that answer a real question, cite facts you can stand behind, and do not cannibalize last month's URL under a new title. Hoping the model "gets it" is not a process.

The other shape is boring on purpose: treat draft checks like unit tests. Same input, same verdict. A model can rewrite the prose. It cannot argue the checker into a pass. That is the debate this post is about for prompts vs deterministic checks. seodraft is where we run that idea for our own product blog; you can steal the checklist without using our stack. For our own SEO we use OpenSEO skills together with the OpenSEO MCP server, claude-seo to a lesser extent, and seodraft to manage quality and the editorial process.

Why prompts alone fail for SEO-shaped posts

Prompts alone fail for SEO-shaped posts because a prompt encodes preference without a hard measurement.

"Make sure the keyword is in the title" is clear until the model buries a synonym and you call it good enough. "Don't use AI filler" is clear until the list of banned phrases lives only in your head. "Don't invent stats" is clear until a confident "studies show" slips through because the model has seen that cadence a million times.

SEO and answer-engine friendly posts also care about structure a prompt rarely pins down:

  • Does the first sentence under every H2 actually answer that H2?
  • Did you already publish this intent under another slug?
  • Can every number name who measured it and when?

Those are predicates. Predicates belong in code, or in a fixed checklist a human runs twice. Google Search Central (updated October 1, 2026): "It is critical to manually factcheck and review all AI-generated content for accuracy and trustworthiness before publishing. This review also applies to metadata like <title> elements, meta description elements, structured data, and alternate texts for images, which can appear in Search results."

Treat the rules as tests

A useful rule has four parts:

  1. A name you can put in a brief ("filler phrases", "answer first").
  2. A definition a human and an agent can both read.
  3. A measurement (counts, string matches, presence), never a vibe score.
  4. A fix written as steps: delete the phrase, move the answer under the H2, name who measured the number.

When a draft fails, the output should name sentences, the rule each one broke, and the fix. That is what an agent (or a tired human at 23:00) can act on without guessing.

Some checks only advise. Some block. Be explicit which is which. Classifier-style notes ("this contrast looks like a straw man") can advise. Deterministic hits on a filler list or a missing answer-first sentence should block if you care about consistency. On October 8, 2026, seodraft's rules counted 887 words in our English draft on human approval of AI content, flagged it with the thin-content advisory (threshold 900) and let it pass.

What is worth checking in code

None of these promise rankings or traffic. They only decide whether a draft is ready for a human to review.

Keyword placement

The topic phrase shows up where a reader and a crawler look first: title, intro, and at least one H2, without stuffing the rest of the body. Placement is countable. Density games are beside the point.

An answer under every H2

The first sentence under each heading answers that heading on its own: at least a short full sentence, never a question, never an opener that postpones the answer ("before we begin", "it depends", "as we saw").

That first sentence is often what an answer engine extracts. If the honest answer is a condition, put the condition and the outcome in the same sentence.

Evidence you accepted

Cite only numbers, cases, and lessons from a bank you approved, or from a source you can name. Unsourced "studies show 73%" fails even when the grammar is fine. Fix: name who measured it and when, replace it with a figure you measured, or delete it. The current workflow saves the brief before the body and requires every evidence item in the brief to reach the article.

No filler phrases

Keep a fixed bilingual list of empty openers and stock closings (the «in today's…» opener, «it's important to…», «delve…», «game-chang…», and the Spanish twins). Any hit fails. Fix: delete the phrase; if the sentence collapses, delete the sentence. Practitioner tips that turn Google's helpful-content docs into a reusable guidelines.md go in the same direction: Wu Chenmu's note on building a niche checklist and reusing it every write is a useful pattern, even when you encode the blocking lines in code.

Cannibalization hard stop

If the draft targets a topic that already has a page (or the same intent in different words), stop. This one should not be advisory. After two failed redrafts, mark the slot failed. Do not let the agent grind until the overlap is vaguely rephrased. We wrote a separate walkthrough for how to fix keyword cannibalization on a small blog.

Other useful checks: intro length, generic "Conclusion" closings, sentence variety, thin sections. Pick a small set and make the blocking ones boringly reliable.

Same draft, same verdict

That sentence is the whole claim for deterministic checks.

  • No temperature on the checker.
  • No "try again and see if the model likes it".
  • No human editor re-scoring the same file differently on Friday.

If you paste the same Markdown twice, you get the same findings. A rewrite that only rearranges filler still fails. A rewrite that adds your measurement and puts the answer under the H2 can pass.

After two failed redrafts, stop. An agent that can retry forever will eventually produce something that looks green and still says nothing.

A public demo (optional)

If you want to feel the shape without building a checker tonight, there is a free AI slop checker that runs a slice of these ideas on any pasted draft. No account. Text is not stored. It does not rewrite your prose and it does not return an "AI detection score". It returns sentences that broke a named rule, with the rule and the fix. English and Spanish in the same pass. There is also a JSON POST at /api/slop if you want to wire it into a script.

That is a demo of editorial rules, and a complement to keyword placement, evidence banks, or cannibalization against your URLs. Those need your own pages and your own facts. For a broader Google-aligned pass, see our AI content quality checklist.

A short checklist you can steal

Even with zero new tools, brief an agent (or yourself) like this:

  1. Put the answer in the first sentence under every H2.
  2. Cite only numbers you can name (who, when) or delete them.
  3. Ban a fixed filler list; fail on any hit.
  4. Refuse a draft that overlaps an existing URL on the same intent.
  5. Run the same checker twice on the final file. If the findings change, your process is not deterministic yet.

Steal it into a repo as CONTENT_RULES.md if that is your culture. Or encode the blocking ones in a small script. The format matters less than the refusal to negotiate.

Where prompts still help

I still use prompts for tone and for "write like our docs". I do not trust prompts alone for pass or fail on SEO structure.

Where do you land? Pure prompts and a human skim? A markdown checklist? Real asserts in CI before a post can merge? I am especially curious if anyone fails a PR when a draft overlaps an existing slug.

If you want the agent you already pay for to write against a fixed checklist, try seodraft: the agent writes, the rules decide, and you approve.

Frequently asked questions

Why do SEO writing prompts drift?
A prompt encodes preference without a hard measurement. Model mood, temperature, and a forgotten system message can make the same draft pass on Tuesday and fail on Wednesday.
What should a deterministic draft rule include?
A name, a shared definition, a countable measurement (counts, string matches, presence), and a fix written as steps. Blocking rules fail the draft; advisory notes stay optional.
Which checks are worth putting in code?
Keyword placement, an answer under every H2, evidence you accepted, a fixed filler list, and cannibalization as a hard stop. None of these promise rankings; they decide if a human should review.
Where can I try a slice of these rules for free?
Paste a draft into seodraft's AI slop checker at seodraft.app/tools/ai-slop. It returns named rule hits and fixes, without storing the text or returning an AI detection score.

About the author

Chorch · Founder of seodraft

Chorch builds seodraft. He has spent more than fifteen years building digital businesses, and he answers seodraft's support himself at chorch@seodraft.app.

XLinkedInGitHub

All posts

Your agent writes. The rules decide. You approve.

Turn the AI you already use into a complete SEO agent: measured topics, your own evidence, and rules that check every draft.

Create account

7 days free, no card needed. Then $9/month if you subscribe.

Log inCreate account
Create account
Create account

7 days free, no card needed. Then $9/month if you subscribe.

  • Log in
  • Create account