Thin Content vs Site Norm
Finds pages far shorter than the site's own norm for their page type
Finds pages far shorter than the site’s own norm for their page type
| Rule ID | content/thin-vs-site-norm |
| Category | Content |
| Scope | Site-wide |
| Severity | warning |
| Weight | 3/10 |
How it works
There is no universal “enough words” number, so this rule never uses one. It groups the crawled pages by page type (article, product, category, docs, and so on), computes the median and MAD (median absolute deviation) of the word count within each group, and flags only the pages that sit far below their own group.
A 200-word product page on a site whose products all run to 200 words is normal. A 200-word article on a site whose articles median 1,800 words is not, and that is the only case this rule reports.
It stays quiet unless it has grounds to speak:
- Fewer than 10 crawled pages: no site norm exists, so the rule is skipped.
- Fewer than 8 pages of a given page type: that type is dropped, not guessed at.
- A page type whose word counts do not cluster (under 70% of its pages within 50% of the median): the type is legitimately varied, so nothing in it is a deviant.
- Pages under 300 words: those belong to Word Count, which stays absolute-only. The two rules never both flag the same page.
A flagged page must be both under half its group’s median and more than three robust deviations below it, so template-uniform pages with small natural variation are never reported.
Solution
These pages are much shorter than the other pages of the same type on your own site, which is a stronger thin-content signal than any absolute word count: your articles set the expectation for what an article on this site looks like. Either expand each page to the depth its siblings have, consolidate it into a fuller page, or noindex it if it exists only for navigation. If a page is deliberately short (a stub, a redirect landing page), that is fine: the point is that it does not match what the rest of its page type promises.
Enable / Disable
Disable this rule
[rules]
disable = ["content/thin-vs-site-norm"]
Disable all Content rules
[rules]
disable = ["content/*"]
Enable only this rule
[rules]
enable = ["content/thin-vs-site-norm"]
disable = ["*"]