SiteTell
// the data

The 13 structural AI writing tells, ranked by how often they actually appear

We scanned 97 domains and 10,126 pages with a deterministic writing ruleset. These are the 13 structural tells it checks for, ordered by the share of sites carrying each one, with what each looks like and what to do about it.

data measured September 14, 2026ruleset 2026-09-12
About these figures
They were produced under ruleset 2026-09-12, which changed on September 16, 2026. A scan you run today uses the newer one, so your score may differ from what these figures imply. See the current dataset.

Most advice about spotting AI writing is a list of words. Someone noticed that a chatbot says a lot, and the word went on a blacklist. That advice is not wrong, but it covers the smaller half of the problem.

When we scanned 97 domains and 10,126 pages, 58% of everything the ruleset flagged was structural: not a word choice at all, but a habit of shape. Sentences that all run the same length. A closing paragraph that restates the three before it. Punctuation that thins out because every clause has been split into its own sentence.

Those habits are harder to notice and much harder to fix, because you cannot search for them. Below are the 13 the ruleset checks for, ordered by the share of sites carrying at least one.

How this was measured

Every figure here comes from scans people ran themselves between 2026-08-14 and 2026-09-14, one scan per site, the most recent. No site is named. These are other people's sites, crawled from a URL someone pasted in, and none of their owners agreed to appear in a write-up.

Two limits worth stating before the numbers rather than under them. The sample is self-selected: these are sites whose owner already suspected their copy read as generic, so the rates here are almost certainly higher than the web at large. And frequencies are ordered by share of sites rather than raw instance count, because one 390-page site can produce thousands of hits and drag every ranking with it.

The full dataset, including score distributions and the confounds we got wrong the first time, is at the data.

The ranking

#RuleShare of sitesInstances
1redundant_closing_paragraph66%2,209
2em_dash_frequency63%2,757
3rule_of_three_pattern63%2,436
4vocabulary_diversity60%2,105
5punctuation_density53%856
6listicle_heavy51%1,524
7sentence_length_variance41%494
8generic_opener_pattern22%165
9dangling_ing_puffery18%213
10nominalization_pattern17%61
11latinate_word_ratio12%28
12paragraph_symmetry10%306
13glyph_led_bullets6%191

One caveat attaches to row 2. On 2026-09-12 the em dash rule changed from one flag per page to one flag per offending sentence, moving from 24.2 flags per scan to 89.5. The 2,757 total therefore mixes two definitions and understates the current rate. Its reach, 63% of sites, is unaffected either way.

Why is a redundant closing paragraph the most common tell?

Because models are trained to round things off. The check triggers when a page's final paragraph repeats more than 60% of its significant words from earlier in that same document, which is precisely what a summary does. It surfaced on 66% of domains, ahead of every other structural pattern, and almost nobody names it.

The reason it survives editing is that it feels like courtesy. You have explained three things, so you remind the reader what they were. But a reader who reached your last paragraph does not need the first one repeated, and a reader who did not reach it will never see the summary anyway.

Flagged — redundant_closing_paragraph
Suggested rewrite
Illustrative examples throughout. Nothing here is quoted from a scanned site.

The fix is usually deletion. If the closing paragraph has nothing in it that is not already above, cut it and let the page end on its last real point.

Does using em dashes mean AI wrote it?

No, and this is the check people argue with most. Plenty of careful human writers deploy the em dash well. It keys on density rather than presence: roughly one per 500 words is enough to trip it, a rate few authors reach by choice and most models reach by default.

Sixty-three percent of domains carried it. The instruction the rewrite engine receives is explicit about what must survive untouched:

This sentence overuses the em dash. Rewrite it so NO em dash remains, using a comma, a semicolon, a colon, or by splitting into separate sentences. If the dash is legitimate typography rather than prose (a date range, a version or metadata line, a citation), return the sentence unchanged.

That last clause exists because the first version of the rule flagged changelogs and pricing tables, where a dash between two numbers is not prose at all.

What is the rule of three, and why does it read as generic?

It triggers once a document uses four or more three-item lists, as in the shape . A trio has a cadence that sounds finished, so prose reaches for three whether or not three things exist. Sixty-three percent of domains carried it.

A single triplet is fine. The tell is repetition: after the rhythm has landed four times, your reader stops hearing content and starts hearing metre.

Flagged — rule_of_three_pattern
Suggested rewrite

The directive the fix engine works from says to rewrite with two items, or four, or to recast the sentence as prose without the triplet cadence. Four is often the honest answer, because there usually were four.

What does low vocabulary diversity actually measure?

The share of distinct words in a document. Below 35% across at least 150 words, this one trips. Sixty percent of domains carried it, and it comes closest of anything here to measuring directly whether a page says several things or one thing several ways.

Thin diversity rarely indicates a small vocabulary. It indicates prose that has circled. Copy written to fill a section, rather than to land a point, restates its noun every second sentence because the author ran out of material.

Why would too little punctuation be a problem?

This one runs opposite to every other. It trips below four commas, semicolons or parentheses per 100 words, and 53% of domains carried it.

Short-sentence style is a genuine convention, taught widely and handled beautifully by some authors. It also happens to be what you get when a model gets asked for something punchy, because clipped independent clauses are the safest output available. Subordination demands a commitment about which idea hangs off which. Full stops never do.

Flagged — punctuation_density
Suggested rewrite
Nothing is struck through here because no individual phrase is at fault. The rule reads the whole page's punctuation rate.

The instruction the rewrite engine receives for this rule ends with a warning to itself: "Note this is the opposite direction to most rules: more punctuation, not less."

The remaining seven

Six of the thirteen accounted for most of what we found. The rest fire less often, but two of them are close to unambiguous when they do.

listicle_heavy (51%) triggers when over half a document's extracted blocks are list items rather than prose. Bullets themselves cause no harm; an absent argument connecting them does.

sentence_length_variance (41%) measures how widely sentence lengths spread, tripping below a coefficient of variation of 0.35 across six sentences or more. Human writing is lumpy. It runs long, then stops short. Generated prose gravitates toward a comfortable middle and settles.

generic_opener_pattern (22%) catches filler preambles. The ruleset hunts for openers shaped like , , and . Its directive is the bluntest of the set: lead with your actual point, deleting the preamble.

dangling_ing_puffery (18%) is the participle clause bolted onto the end of a sentence to make it sound consequential. Watch for a comma followed by one of these:

Dangling -ing puffery

nominalization_pattern (17%) catches a verb buried in a noun with a carrier verb attached, as in where the word is simply "analyse".

latinate_word_ratio (12%) fires on formal vocabulary used where a plain word would do: , , , .

paragraph_symmetry (10%) and glyph_led_bullets (6%) close the list. The former trips when paragraph lengths spread by less than a coefficient of 0.25, which happens whenever every section got generated against an identical brief. The latter catches bullets led by an emoji or symbol instead of a word.

Three rules that produced no data

The ruleset has 16 structural rules. Only 13 appear above, and the gap is worth explaining rather than hiding.

negative_parallelism, which catches the figure, was fully implemented but had only ever existed in a local seed file with no route to the hosted database. It contributed zero of the 23,000 flags in this window, reaching production on 2026-09-16, well after these figures were measured. Across the corpus we have re-scored since, it turns out to be common.

excessive_bolding and equivocation_seesaw are live and did fire, but on too few sites in this window to report a rate we would stand behind.

What to do with this

Rank order and priority order differ. A document carrying one generic preamble sits in better shape than one whose sentences all run 18 words, even though preambles are far easier to act on.

For a starting point, the closing paragraph is the cheapest win available. Most common tell we found, one delete key to resolve, and unlike a vocabulary hit it never argues back.

Questions people actually ask

Does flagging mean my copy was written by AI?

No. The score is not an AI probability. Plenty of flagged writing is human and simply generic, which is a separate problem with its own cost. The ruleset measures whether a page reads as specific and trustworthy, not who typed it.

How many rules are there in total?

Around 105 active rules. Sixteen are structural, measuring shape and rhythm, and the rest are vocabulary rules matching specific words and phrases. Structural rules produced 58% of all flags in this dataset.

Why rank by share of sites instead of by how many times each rule fired?

Because instance counts are dominated by site size. One 390-page site can generate thousands of hits for a single rule, which would reorder the whole list on its own. Share of sites is far steadier across samples.

Is a high number of flags always bad?

Not on its own. Some rules match common English words, so a share of hits are ordinary usage rather than a tell. That is why every flag shows the exact sentence and the rule that fired, so you can disagree with any individual one.

Can I check my own site against these rules?

Yes. Type a domain into the box on our home page and the crawler walks it, up to 400 pages, with no account and no card. Results land at a shareable link in roughly twenty seconds.

Want to know which of these your site does?

SiteTell crawls every page and flags the exact sentences, with the rule that fired next to each one. Free for the whole site.

Scan your site free
SiteTell

The read a careful editor would give your site, run in twenty seconds. Built by Rally Digital.

PRODUCT
COMPANY
LEGAL
© 2026 Rally Digital