Key points
- Two layers: anything countable goes to rules, anything that needs reading goes to a model or a person.
- One blended score collapses "reads well" and "invented a feature we don't ship" into the same number.
- Factual accuracy gets its own floor. No other dimension is allowed to compensate for it.
- Drafts that fail a hard check get one targeted rewrite, then go to a human. Don't regenerate the same page five times.
Check an AI-written article in two layers: hand the countable problems to deterministic rules, and reserve a model or a human editor for what has to be read. Keep factual accuracy on its own pass/fail line so no other score can compensate for it. A draft that fails a hard check gets one targeted rewrite, then a person.
An AI draft lands in your inbox. Most people read it once, decide it reads fine, fix two awkward sentences, and publish.
That order is backwards. What you notice on a read-through is whether the sentences flow. What you don't notice is the paragraph describing a feature you don't actually ship, or the eight hundred words of true-but-empty filler sitting in the middle. The first one brings readers to support asking where the feature is. The second one is why the page never ranks.
So order the review by "can this go out" rather than "does this read nicely."
Decide what rules can settle and what they can't
Lay the problems out and they split into two piles.
One pile is countable. Title length, number of H2s, how often the target term appears, whether there are external citations. Each has exactly one answer, any two reviewers get the same result, and the cost of checking is close to zero.
The other pile needs comprehension. Is this sentence made up? Does the structure actually answer the reader's question? Does the prose sound like a person? Rules can't express any of that.
Hand both piles to a model at once, ask for a single score, and you lose the advantage of each.
What you lose on the rules side is reproducibility. Ask a model twice about the same title and it may call it fine one time and short the next. A rule returns "title is 18 characters, the band is 20 to 60, you're 2 short." Nobody has to trust a black box to act on that, and you can rerun it after every edit for free.
What you lose on the model side is attention. Asking it to police character counts and factual truth in one pass spreads a limited judgment budget across nine mechanical questions it was never good at. Clear those with rules first and the whole output budget goes to meaning.
Layer one: nine deterministic checks
These are the nine we actually run. Each returns pass or fail plus the measured value. No scores. You can run the same list by hand; it's just slower.
Metadata
Title length. Our band is 20 to 60 characters. The cost of getting it wrong happens off-page: Google rewrites or truncates title links that don't fit the result, and share cards do the same, so an overlong title gets cut exactly where the information was. The classic failure is a model writing a full sentence as a title, with the first half spent on setup.
Description length. 70 to 160 characters. It works with the title to answer "what do I get if I click." Google may build the snippet from your meta description or pull a passage from the body instead, so the line has to stand on its own either way. Both extremes are common: a twelve-word platitude, or the opening paragraph pasted in whole, with the back half never displayed.
Heading structure. At least three H2s. This checks whether the piece was actually planned as several things rather than one. AI long-form slides easily into an undifferentiated wall where every sentence is fine but nobody can skim, and nobody can tell from a table of contents whether their question is covered. Under three H2s usually means no structure was ever decided.
Length and wording
Body length. 1,200 to 2,500 characters for Chinese, 700 to 1,500 words for English. The floor exists because 500 words rarely settle a question anyone searches for. The ceiling exists because once length runs loose, the padding ratio climbs with it. When this fails, resist "expand it a bit" and first ask whether the topic can carry the length at all.
Keyword occurrence. The target term appears 3 to 12 times. The floor confirms the article is on topic; the ceiling blocks stuffing. Below the floor usually means the model drifted mid-draft. Above it reads mechanical, with the same phrase turning up four times in two adjacent paragraphs.
Cliché density. The one people get wrong most often. We match a fixed pattern list against openers like "in today's world," "with the rise of," "it's worth noting," "in conclusion." The verdict comes from two ceilings: no more than 2 pattern categories hit, no more than 5 hits total. One stock phrase isn't a finding; a page built out of them is.
Per-sentence nitpicking trains reviewers to ignore the report after two passes. Padding is a density problem anyway: every sentence survives on its own, and only reading them in sequence shows that half the page carries no information. So this one only flags, it never blocks. Prose quality is worth a note, not a full rejection.
Sourcing and links
Image alt text. Every image in the body needs it. Alt text belongs to the small class of omissions that produce no visible symptom at all: the page renders, sighted readers see the image, and only screen reader users and image crawlers hit the wall. Both ends have explicit requirements — WCAG 2.2 makes a text alternative for non-text content a Level A criterion, and Google Images treats alt text as its main way of understanding what an image shows. Missing alt is a hard fail, because writing one sentence costs far less than the omission.
External citations. At least two. This checks whether the claims have anywhere to trace back to. In a zero-citation AI draft every assertion traces back to the model itself and a reviewer has nothing to verify against. There's a nastier failure than "no links," though: links that exist and resolve to nothing. Pair this check with a reachability test.
Internal links. At least one. This is the only soft check of the nine, for a practical reason: a team publishing its first article has nothing to link to yet. From the second one on, treat a failure seriously. Orphan pages get no circulation from the rest of your site — and only a real <a> element with an href is crawlable, so a div that navigates on click doesn't count.
Layer two: what editorial review reads for
Passing all nine only means the draft has no mechanical defects. It can still be invented end to end. What layer two is really testing is the question Google's helpful, people-first content self-assessment keeps circling: would someone finishing this page feel they'd learned enough to be done?
Layer two goes to a reader, scoring four dimensions:
- Factual accuracy. Do statements about the product, pricing, capabilities, and timing match reality?
- Structural clarity. Does the section order serve the reader's question, and does anything repeat?
- Natural language. Does it read like a person wrote it, or does the machine register show through?
- Search intent coverage. Does someone arriving with the question leave with an answer, or just with background?
Alongside the four, one separate check runs on its own: are there fabricated product claims? It isn't scored. It answers yes or no. The next section explains why.
Both a model and a person can do this layer, and ideally both do. A model is fast and never tires, but its verdict on the same draft drifts between runs, and it has no idea you're raising prices next week. A person is the reverse.
No averaging
This is the part most review designs get wrong.
The natural move is to score four dimensions, average them, and ship anything above the line. It sounds even-handed. What it actually does is make one fatal defect purchasable with points earned elsewhere.
Picture a draft that's well structured, reads naturally, and covers the intent cleanly. Three high scores. Factual accuracy is low because it describes a feature that doesn't exist. Average them and the total looks healthy, so the piece goes out. The reader hits your product page, finds nothing, and the trust you lose is not reduced by the other three dimensions being good.
An average assumes the dimensions substitute for each other. For prose and structure that roughly holds: slightly stiff writing can be offset by a clear outline. For facts it doesn't hold at all. Fluent writing never buys back an invented capability.
So auto-approval requires two conditions at once: no fabricated claims, and factual accuracy clearing its own floor. The four-dimension average has to clear its bar, and factual accuracy has to clear its own. Both, not either. A high average with factual accuracy below the line still doesn't ship.
None of that depends on tooling. It applies just as well to a human review: give reviewers two separate fields, "is anything factually wrong" and "how does it read," and refuse to accept one impression score. Once it's collapsed into a number, you can no longer read out of it what went wrong.
What happens after a failure
The verdict is half the system. The routing is the other half.
A draft that fails a hard check earns one targeted rewrite: hand back the failed checks with their measured values and ask for those spots only. Regenerating the whole piece is too random, and checks that passed the first time can fail on the next pass.
Still failing after that rewrite, it gets flagged for a human. Repeated automatic retries rarely converge. Failing twice in the same place usually means the model can't fix it: the topic may not support the required length, there may be no citable sources, or its understanding of a fact was wrong from the start.
That gives three destinations: auto-approve, one rewrite, human review. The middle one absorbs most of what would otherwise be manual work.
A sequence you can use today
With an AI draft in front of you, this order wastes the least time:
- Count the countable. Title and description length, H2 count, body length, term occurrences, image alt, external and internal links. Fix whatever fails before reading the whole thing.
- Sweep for cliché density. Run a fixed pattern list over the page and look at categories hit and total hits, not individual sentences.
- Verify facts line by line. Pull every claim about product, price, timing, and capability into a list and check each against your own documentation. Don't skip it and don't sample it.
- Ask separately whether anything is invented. Look hardest at the most confident, smoothest sentences. That's where fabrication lives.
- Only then read for prose and structure.
- Rerun from step 1 after edits. Changes move length and density, so skipping the rerun means publishing on luck.
The first four steps automate. The fifth doesn't.
Running both gates automatically
All of this works by hand. What gets skipped by hand is the first two steps, precisely because they're mechanical.
SEO article generation runs both gates as fixed stages: every draft goes through the nine deterministic checks first, reported item by item with measured values, including the ones that passed. Only then does it reach editorial review, which scores the four dimensions and runs the fabricated-claim check separately. Auto-approval takes the two conditions above, with no averaging. A hard failure triggers one targeted rewrite, and anything still failing gets marked for review instead of quietly shipping.
What the system returns is a check result, not permission to publish. Pricing, ship dates, and public commitments still need your signature.
FAQ
Why not let the model handle the nine checks too?
You can. It doesn't pay off. A model's answer to "how many characters is this title" wobbles between runs, and ten lines of code answer it definitively. Delegating it wastes judgment you need elsewhere and turns a reproducible result into a variable one.
Won't a cliché check punish normal writing?
Not if you threshold on density. Any one of these phrases used once is perfectly good English. The problem is using them by the dozen, so the verdict counts categories hit and total hits rather than whether anything was hit at all. To tighten it, add patterns to an existing category rather than creating a new one; a new category silently changes what the threshold means.
Can fact checking be automated?
Halfway. A model can extract the factual claims and compare them against product material you supply, and both steps save real time. But "we're changing prices next month" lives in nobody's documentation except your head. Keep a human signature on this layer and let the tool assemble the list to be verified.
