squirrelscan
GitHub

Flesch reading ease: measuring how hard a page is to read

squirrel computes a Flesch reading ease score and a Flesch-Kincaid grade level from the page text, and reports both without judging them.

What the Flesch scores are

Flesch Reading Ease and Flesch-Kincaid Grade Level are two formulas over the same two inputs: average sentence length and average syllables per word. The reading ease formula can produce values outside 0 to 100; squirrel clamps and rounds the reported score into that range, higher being easier. Grade level maps the same inputs onto a US school year.

They measure sentence and word length, not clarity. A page of short sentences made of jargon scores well, and a precise technical explanation scores badly for being precise. That is why this rule reports the numbers as information and never fails: the right score depends entirely on who the page is for.

What squirrel checks

The rule runs on every crawled page over the body text with scripts, styles and noscript excluded. It splits sentences on ., ! and ?, takes words as runs of letters, and estimates syllables with a vowel-group heuristic. It emits up to two checks:

  • Skipped when there is no <body>. Message: No body content to analyze.
  • Info when the text has fewer than 5 sentences or fewer than 100 words. Message: Content too short for readability analysis.
  • reading-level reports info with the result. Message: Readability: Moderate (Grade 9.4), with Flesch score: 58/100 as the value. The label is Easy at 70 or above, Moderate from 50, Difficult from 30, and Very Difficult below that.
  • sentence-length reports info when the average sentence exceeds 25 words. Message: Average sentence length is high, with 28 words/sentence as the value.

Severity info, weight 3. The syllable count is an approximation, so treat the grade level as a rough band rather than a measurement.

How to fix it

Shorten the sentences that are long because they contain three ideas, and leave the ones that are long because the idea is long. Break up paragraphs, and use headings and lists where the content is genuinely a list.

Technical content for expert readers scoring as Difficult is not a problem. Compare the score against the audience, not against a target.

Rule IDcontent/reading-level
CategoryContent
ScopePer-page
Severityinfo
Weight3/10

Enable / disable

Disable this rule

[rules]
disable = ["content/reading-level"]

Disable all Content rules

[rules]
disable = ["content/*"]

Enable only this rule

[rules]
enable = ["content/reading-level"]

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.

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 reading ease score and grade level. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.

Type to search…

↑↓ navigate↵ openesc close