Markdown Word Counter
Count words, links, and readability — paste Markdown and go
Writer-focused analytics without spreadsheets: structure counts, reading-time estimates, and a readability signal tuned for Markdown-heavy workflows — all offline-first with one-click summaries you can paste anywhere.
Document counts
- Words
- 18
- Reading time
- ~1 min
- Paragraphs
- 6
- Lines
- 15
- Characters
- 194
- Chars (no spaces)
- 161
Structure
- Headings
- 2
- Links
- 1
- Images
- 0
Readability
Fairly difficult
Flesch-style estimate from sentence and word length (code blocks stripped). Higher is easier to read.
Why count words in Markdown?
Markdown ships inside README files, knowledge bases, blogs, and course scripts — but most CMS dashboards only show counts after import. Pasting here first saves rework:
- SEO & growth — verify titles, intros, and meta-length budgets before publishing pipelines strip formatting.
- Education & hiring — enforce syllabi length or challenge briefs using the same source files students submit.
- Developer docs — balance tutorials vs reference sections before reviewers spend time on wording that must be cut.
- Invoices & contracts — snapshot counts when billing per deliverable or milestone.
How to use this counter
- Paste Markdown into the left pane (sample content loads automatically).
- Scan Document counts for words, characters, lines, paragraphs, and reading time.
- Review Structure for headings, outbound links, and embedded images.
- Read Readability when tuning tone for non-expert audiences.
- Click Copy summary to paste a plain-text roll-up into tickets, email, or Notion.
Need deeper linting or formatting? Open the Markdown formatter after counting.
What each metric means
| Metric | What it measures |
|---|---|
| Words | Prose tokens after ignoring fenced + inline code; punctuation cleaned lightly |
| Characters | Full Unicode length of your Markdown source |
| Lines | Number of newline-separated rows (every carriage return adds another logical line) |
| Paragraphs | Blocks separated by blank lines — mirrors most static-site parsers |
| Reading time | Words ÷ ~220 WPM, rounded up to at least 1 minute |
| Headings | ATX titles (# … ######) outside code fences |
| Links / images | GFM-style [label](url) & , excluding fenced examples |
The live preview stack inside our editor shares this counting logic — whatever you see here matches the editor status bar so teams stay aligned.
Understanding readability at a glance
Higher scores usually mean shorter sentences and simpler words — great for onboarding docs or newsletters. Lower scores often signal specs, legal prose, or deeply technical HOWTOs. Use the score alongside domain expertise: a challenging topic might need sophisticated vocabulary even if the number dips.
When you're finished iterating, export polished Markdown via Markdown to HTML or Markdown to PDF without losing your counts snapshot — paste them into release notes or changelog entries for transparency.
Frequently asked questions
- We strip fenced code blocks and inline code, strip image/link syntax down to visible labels where applicable, and tokenize the remaining prose — closer to how editorial tools reason about "article words" than a raw character split.
- No. Code fences are removed before readability math runs, so documentation-heavy posts aren't penalized for keyword-heavy snippets.
- It's a Flesch Reading Ease–style estimate (206.835 − factors × sentence & word length). Rough bands: 90–100 very easy, 60–80 comfortable for general audiences, 30–50 harder technical prose. It's guidance, not a grade — pair it with real readers when it matters.
- We split on blank-line boundaries in the Markdown source. Docs treats visual breaks differently and hides formatting characters — paste plain Markdown here when you need apples-to-apples against repositories or static-site generators.
- Copy summary works great for briefs and stakeholder updates. For actual meta body text, follow with the [Markdown to Plain Text](/tools/markdown-to-plain-text) tool so CMS fields receive a single paragraph without stray syntax.
- No. Everything executes locally in your browser — nothing is sent to our servers.