Content Analyzer

Check readability, sentence length and repetition in your draft — with the formulas shown, not hidden.

Mostly in your browser. Text you paste or upload is processed on this device and never uploaded, and the analysis always runs in your browser. The one exception is the optional URL import: it asks our server to fetch the public page you specify and extract its text. How the import fetch, cache and rate limits work.

Analyse your text

Honest limits, stated up front: every score this tool reports is an estimate from a published formula. This tool does not detect AI-written text — no tool can do that reliably, whatever it claims. It is calibrated for English only at launch.

Our server fetches the page and extracts its readable text into the box below; the analysis then runs in your browser. Imports are rate-limited for fair use: 10 imports per hour per visitor, under the same shared limits as our other server checks. Private, local and non-standard-port addresses cannot be imported.

Pasted and uploaded text never leaves your device. Only the URL import sends anything to our server, and it sends just the address, not your text.

The formulas, before you see any number

Nothing here is a black box. Flesch Reading Ease = 206.835 − 1.015 × (words ÷ sentences) − 84.6 × (syllables ÷ words). Flesch-Kincaid Grade = 0.39 × (words ÷ sentences) + 11.8 × (syllables ÷ words) − 15.59. Gunning Fog = 0.4 × [(words ÷ sentences) + 100 × (complex words ÷ words)], where a complex word has three or more syllables, excluding words whose extra syllable comes only from an -ed or -es ending and excluding proper nouns. Three further indexes measure the text differently, so their agreement means more than any single figure: SMOG = 1.0430 × √(polysyllabic words × (30 ÷ sentences)) + 3.1291, calibrated on 30-sentence samples and indicative on shorter texts; Coleman-Liau = 0.0588 × (letters per 100 words) − 0.296 × (sentences per 100 words) − 15.8, which counts letters instead of syllables; Automated Readability Index = 4.71 × (characters ÷ words) + 0.5 × (words ÷ sentences) − 21.43. The consensus grade is the median of the five grade estimates, reported with their full range — when the formulas disagree, the range is the honest answer. Reading time assumes 200 words per minute — an average adult silent-reading speed, stated so you can re-work the figure at your own speed. Syllables are counted by a documented heuristic (vowel groups, minus a silent trailing "e", with a consonant-plus-"le" exception), not by a dictionary, which is one reason every score is labelled an estimate.

How to use this analyzer

  1. Bring your text in. Paste a draft directly, upload a .txt file (read on your device, never uploaded), or import a public page's text by address — the import is the only step that uses our server, and it is limited to 10 imports per hour per visitor.
  2. Add up to three target phrases if you have them. A phrase can be one word or several. Leave the boxes empty if you are checking readability alone; density is an optional lens, not a requirement.
  3. Analyse, then read the counts before the scores. Word, sentence and paragraph counts and the reading time are facts about the text as pasted. The three readability scores are estimates built on those facts — useful for comparing drafts, meaningless as grades of quality.
  4. Work the sentence lists. Sentences over 25 words are listed in full and shaded in the preview, and possible passive constructions are shaded separately. Each long sentence is a candidate for splitting; each passive flag is a prompt to check who is doing what — not an order to rewrite.
  5. Check repetition and density. Repeated content words and repeated 2–3 word phrases show where the draft leans on the same phrasing. If a target phrase crosses the stated rule-of-thumb threshold, read those passages aloud and judge whether they sound written for a reader or for a counter.
  6. If you pasted HTML or Markdown, read the heading check. Multiple H1s, skipped levels and empty headings are flagged against the outline the tool extracted, so you can fix the structure before the page is published.

Worked example: a short gardening guide

The sample is a 5-paragraph guide titled "How to water a small garden". Load it and the analyzer reports exactly these headline numbers — computed by this tool's own analysis code from exactly this text: 221 words, 1,092 characters, 17 sentences, 5 paragraphs, 270 syllables by the heuristic count, an average sentence length of 13.0 words, and a reading time of about 1 minute at the stated 200-words-per-minute assumption. Its scores are a Flesch Reading Ease of 90.3 ("very easy"), a Flesch-Kincaid Grade of 3.9 and a Gunning Fog of 5.6 with only 2 complex words — a genuinely plain-English draft, and the sentence distribution shows why: 6 sentences of 6–10 words, 5 of 11–15 and 6 of 16–20, with no sentence over 25 words. The three additional indexes agree with that picture: SMOG 5.9, Coleman-Liau 4.3 and an Automated Readability Index of 3.0, giving a consensus grade of about 4 (the five grade formulas span 3.0 to 5.9).

Two findings show the tool's judgement aids at work. The passive-voice indicator flags two constructions — "is lost" and "was soaked" — and both are true passives, though both are also perfectly natural in context, which is why the tool calls them indicators rather than errors. The keyword check, with the targets set to "small garden" and "water", counts "small garden" twice for a density of 1.81% — under the 2% multi-word threshold — but counts "water" nine times for a density of 4.07%, above the 3% single-word rule of thumb. A guide about watering that never repeats "water" would be unreadable, so the flag is doing its real job: not accusing the draft of stuffing, but pointing at the one word worth a second look. The repeated-phrase list makes the same point from another angle, surfacing "the soil" three times.

What this analyzer does, and why it matters

Most readability tools return a number and stop. A number alone cannot tell you what to fix, and it invites the worst response to a low score: swapping words at random until the needle moves. This analyzer is built the other way round. It starts from the observable facts of your draft — how many words, sentences and paragraphs it has, how long its sentences run, which words and phrases it keeps returning to — and derives its established scores from those facts with the formulas printed beside them. When a score disappoints, the same report shows you the sentences responsible, highlighted in a preview, so the edit is a decision about specific lines rather than a negotiation with an algorithm.

The sentence-level findings are where the practical value sits. Long sentences are listed in full because length is where comprehension quietly fails: a 40-word sentence may be grammatical and still lose a reader halfway through. The passive-voice indicator is labelled a heuristic everywhere it appears because that is what it is — a search for a form of "be" followed by a past participle — and honest labelling is the difference between a prompt and a false accusation. Repetition analysis works the same way: a repeated phrase is sometimes exactly right, in a legal definition or a product name, and sometimes an accident of drafting. The tool surfaces the pattern with counts; the writer, who knows the intent, decides.

Two refusals define the tool as much as its features. It will not tell you whether a machine wrote your text, because that judgement cannot be made reliably from surface features, and tools that claim otherwise are selling certainty they do not have. And it will not collapse your draft into a single grade with no workings, because the workings are the part you can act on. What it offers is a fast, private, checkable account of a draft's shape — in the browser, with the maths shown — so that the human decisions about clarity stay with the human.

Common misunderstandings and limitations

  • Scores are estimates, not measurements of quality. The formulas count syllables and sentence lengths. They cannot detect a wrong fact, a broken argument or a dull paragraph, and a text can score "very easy" while saying nothing. Equally, necessary technical vocabulary lowers a score without lowering the writing.
  • This tool does not detect AI-written text. Readability statistics look the same whoever or whatever produced the words. Any service claiming to identify AI text from such signals is overstating what the evidence supports; we state the limit rather than sell the claim.
  • English only at launch. The sentence splitter, syllable heuristic, stopword list and participle patterns are all English-specific. Pasting another language will produce numbers, but they will not mean what the labels say.
  • The syllable counter is a heuristic. It counts vowel groups with a silent-"e" adjustment. It is right for most everyday words — "queue" counts 1, "beautiful" 3, "syllable" 3 — and wrong for some names, loanwords and irregular spellings, which nudges every derived score slightly. Comparing two drafts with the same counter is fair; treating one score as absolute is not.
  • The passive indicator both misses and over-flags. It catches the regular be + participle pattern, including a common irregular-participle list, and misses passives built any other way. An active sentence that happens to fit the pattern will occasionally be flagged — "was happy" is correctly ignored because "happy" is not a participle, but no pattern match is a grammar parse.
  • Density thresholds are rules of thumb. The 3% (single word) and 2% (multi-word phrase) flags are conventions for prompting a second look, not limits published by any search engine. Natural, reader-first repetition of an essential term is good writing, not stuffing.
  • Sentence splitting follows punctuation. Text with no sentence punctuation is treated as one long sentence — which is itself useful information about the draft — and abbreviations such as "e.g." can split a sentence early. The heading check needs HTML or Markdown input; plain prose has no heading structure to check. URL imports inherit the limits of text extraction: pages built entirely by scripts, or behind logins, may import incompletely or not at all.

Frequently asked questions

Can this tool tell whether my text was written by AI?

No — and be suspicious of any tool that says it can. This analyzer measures surface features: sentence lengths, syllable counts, repetition. Human and machine writers produce overlapping values on all of them, so no threshold separates the two reliably. What the tool can do is show you whether a draft reads clearly, whoever wrote it — which is usually the question that actually matters.

Which reading speed does the reading time assume?

200 words per minute, stated beside the result and in the formulas section above. That is a widely used average for adult silent reading of ordinary prose. Dense technical text is read more slowly, familiar material faster, so treat the figure as a planning estimate: double the words and you roughly double the minutes, at whatever speed your audience really reads.

Why is my keyword flagged when the text reads naturally?

Because the flag is a rule of thumb doing a narrow job: a single word above 3% density, or a multi-word phrase above 2%, earns a second look — nothing more. The worked example flags "water" at 4.07% in a guide about watering, where the repetition is the topic itself. Read the flagged passages as a reader would; if they sound natural, keep them. The thresholds are not search-engine rules, and this tool does not report you to anyone.

Is my text uploaded or stored?

Pasted text and .txt uploads are processed entirely in your browser and discarded when you close the tab — nothing is sent anywhere. The one exception is the URL import, which by its nature asks our server to fetch the address you give it and extract the page's text; imports are limited to 10 per hour per visitor for fair use. The analysis of imported text still happens in your browser.

Why does my long, punctuation-free draft show as one sentence?

Because the sentence splitter can only work from sentence-ending punctuation — full stops, question marks, exclamation marks and ellipses. A block of text without them is, formally, one sentence, and the report treats it that way: one very long sentence, which also drags every readability score. Add the punctuation your reader needs and the analysis becomes meaningful.

Can I analyse text in another language?

Not meaningfully at launch. The syllable heuristic assumes English spelling patterns, the stopword and participle lists are English, and the Flesch and Fog formulas were calibrated on English school texts. The tool will still count words and characters in another language, but the scores, passive flags and repetition lists would be misleading, so we label the tool English-only rather than pretend otherwise.

Related tools

Word Counter

Count words, characters, sentences and paragraphs, with reading and speaking times and one-to-three-word keyword density.

AI and Content Productivity

JSON Studio

Format, validate, minify, query and compare JSON in your browser, with precise line-and-column errors.

Developer Tools

Regex Tester

Test patterns against sample text with match highlighting, capture groups and a safe one-second timeout.

Developer Tools

Related articles

How to Improve Content Readability

Readability improves through editing, not score-chasing: shorten the longest sentences, cut complex words where a plain one works, and use Flesch, Flesch–Kincaid and Fog scores as diagnostics — with a before/after passage scored by the published formulas.

By AtoZTools Editorial Team · Last reviewed 2026-10-24

How to Check Facts in AI-Assisted Writing

A repeatable fact-check for AI-assisted drafts: extract every checkable claim, verify each against a primary source, record the verdict, and fix or flag what fails — demonstrated on a real paragraph with two planted-style errors caught.

By AtoZTools Editorial Team · Last reviewed 2026-10-24

How to Write Better Prompts and Reusable Templates

Better prompts are built, not found: state the objective, give the context the model cannot guess, set constraints, show one example, and specify the output format — then turn what works into a reusable template with slots.

By AtoZTools Editorial Team · Last reviewed 2026-10-24