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 trailinge, count[aeiouy]+vowel groups;+1if the word ends in-le(length > 2 and the pre-lechar 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 ###.