Thin content: the 300 word floor and what to do below it
A page under a few hundred words rarely answers the question it ranks for. squirrel counts the words and reports against two thresholds.
What thin content is
Thin content is a page with too little substance to be worth returning as a search result. Word count is a proxy for it rather than the thing itself: a 200-word page that answers a question completely is fine, and a 2000-word page that says nothing is not.
The count is still useful as a floor. Below a few hundred words a page usually is not answering anything, and a site with many of them dilutes its own crawl budget. Google’s guidance is about helpfulness rather than length, so treat the number as a prompt to look at the page.
What squirrel checks
The rule runs on every crawled page and reads the word count the parser computed. It emits a single check named word-count:
- Warn below
min_words, 300 by default. Message:Thin content: 140 words (min 300), with the count as the value and the threshold as the expected value. Severity warning, weight 4. - Info below
warn_threshold, 500 by default. Message:Content could be longer: 420 words. - Pass otherwise. Message:
Good content length: 1240 words.
The 300-word floor is also a precedence boundary. content/thin-vs-site-norm never reports a page below 300 words, so at the default min_words the two rules cannot both raise a finding on one page. That boundary is the fixed constant, not the configured option, so raising min_words above 300 opens a band where both can fire.
Pages kept out of search
A page marked noindex (a <meta name="robots"> tag or an X-Robots-Tag header containing noindex) is never offered to a search engine, so thin content on it is not a finding: login, sign-up and dashboard pages are short by design. Such a page gets one skipped check, Skipped: page is set to noindex via robots meta tag (or via X-Robots-Tag header), instead of its usual result, and skipped checks do not count toward the score. Pages are skipped only on a site that is itself being indexed. When the homepage is noindex too (a staging site or preview deployment) nothing is skipped. See pages kept out of search. Contact and legal pages are not skipped yet: that needs a page type from a classifier model, which squirrel does not use to relax a verdict unless the label is model-sourced and confident.
How to fix it
Expand the page to answer the question it exists for, consolidate it into a fuller page and redirect, or noindex it if it exists only for navigation.
A category or listing page is short by design. Those are worth excluding rather than padding.
| Rule ID | content/word-count |
| Category | Content |
| Scope | Per-page |
| Severity | warning |
| Weight | 4/10 |
Options
| Option | Type | Default | Description |
|---|---|---|---|
min_words | number | 300 | Minimum word count |
warn_threshold | number | 500 | Word count for optimal content |
Configuration example
[rule_options."content/word-count"]
min_words = 150
warn_threshold = 400Enable / disable
Disable this rule
[rules]
disable = ["content/word-count"]Disable all Content rules
[rules]
disable = ["content/*"]Enable only this rule
[rules]
enable = ["content/word-count"]enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.
Related rules
- content/thin-vs-site-norm: the same question asked against your own site’s median.
- content/quality: an LLM read of whether the words are worth anything.
- content/reading-level: how hard the words are to read.
- crawl/indexability: noindexing a page that cannot be made worthwhile.
Content findings ship in every audit next to the SEO, performance and agent experience rules. See Fix SEO issues with AI for how an agent works through a report.
References
Check your site
Run squirrel audit https://example.com and open the Content section of the report. Each page is reported with its word count. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.