toolkit

Content quality · Playbook

Content quality — content-quality standards (the thresholds, verbatim)

Ported from superaudit’s content checks. This is the reference for the exact numbers oranguru grades on. Detection matches superaudit; the FAIL/REVIEW mapping (placeholder + thin → FAIL, the rest → REVIEW) is oranguru’s own.

Readability — Flesch–Kincaid

Fed the whole-page visible text (needs 50+ words, and at least one sentence, else skipped).

avgWordsPerSentence = words / sentences
avgSyllablesPerWord = syllables / words
grade       = 0.39 * avgWordsPerSentence + 11.8 * avgSyllablesPerWord - 15.59   (Flesch–Kincaid grade)
readingEase = 206.835 - 1.015 * avgWordsPerSentence - 84.6 * avgSyllablesPerWord (Flesch Reading Ease)
  • Sentences = runs of [.!?]+, after neutralising common abbreviations (Dr. Mr. Mrs. Ms. Inc. Ltd. etc. e.g. i.e. vs.) and decimal numbers.
  • Syllables — per word (lowercased [a-z]+): strip one trailing e, count [aeiouy]+ vowel groups; +1 if the word ends in -le (length > 2 and the pre-le char isn’t a vowel); minimum 1.

Reading-ease bands: ≥90 Very Easy · ≥80 Easy · ≥70 Fairly Easy · ≥60 Standard · ≥50 Fairly Difficult · ≥30 Difficult · else Very Difficult.

Grade → verdict: 6–12 = ideal (PASS-contributing). Below 5, 5–6, 13–14, and 15+ are all REVIEW (too simple / a little simple / technical / very difficult). oranguru never FAILs on reading level.

Content length / thin content

Word count (whole-page visible-text tokens) vs a per-page-type threshold:

--type fail (< → FAIL, “thin”) warn (< → REVIEW, “light”) ideal (≥ → clean)
procedure 600 1000 1500
service 400 800 1200
location 300 600 1000
blog 400 800 1200
homepage 200 500 800
about 200 400 700
(generic — default) 150 300 500

Over 8,000 words → REVIEW (may be padded or poorly organised).

H1 ↔ title

Normalize both (lowercase + collapse whitespace). Exact match → REVIEW (vary them to widen keyword coverage). One containing the other, or distinct → fine. No fuzzy scoring.

Placeholder / lorem-ipsum → FAIL

30 patterns, searched in body text, <title>, meta description, and image alt (alt uses only the 7 lorem-ipsum patterns). Two ignore-patterns suppress body hits for legitimate references (a lorem-ipsum generator article; a quoted “lorem ipsum”).

Lorem group: lorem ipsum, dolor sit amet, consectetur adipiscing, sed do eiusmod, tempor incididunt, ut labore et dolore, magna aliqua. Generic: [placeholder], [insert … here], [your … here], [add … here], [edit this], [todo], [tbd], [coming soon]. Sample/dummy: sample text, dummy text, example content, placeholder text. Template leftovers: your company name, company name here, your name here, website name, your tagline here, call to action text. Plus xxx+ and ###.