Text Tools
Markdown Word Counter
Count words in Markdown with code blocks, frontmatter, link URLs, and image syntax stripped. Headings, links, tables, and per-section breakdown.
Counting mode
Counts prose, keeps link text and inline code.
Prose words
0
Source words
0
Reading time
0 sec
225 wpm
Speaking time
0 sec
150 wpm
Strip rules
Average silent reading is around 200 to 250 wpm.
Average conversational speech is around 130 to 160 wpm.
Document structure
- Prose characters
- 0
- Prose chars (no spaces)
- 0
- Source characters
- 0
- Source lines
- 0
- Sentences
- 0
- Paragraphs
- 0
- Headings
- 0
- Links
- 0
- Images
- 0
- Image alt words
- 0
- List items
- 0
- Tasks
- 0 (0 done)
- Blockquote lines
- 0
- Tables
- 0
- Fenced code blocks
- 0
- Fenced code lines
- 0
- Fenced code chars
- 0
- Inline code spans
- 0
- HTML tags
- 0
- Footnotes
- 0
Heading levels
H1
0
H2
0
H3
0
H4
0
H5
0
H6
0
Words per section
No headings yet. Add a line starting with #, ##, or ### to see a per-section word breakdown.
Markdown is parsed locally in your browser. The prose word count strips the syntax you select above so the number matches what a reader would actually consume.
How to use
- Paste or type Markdown into the input. Load sample fills the editor with a small post if you want to see the counts before pasting your own.
- Pick a counting mode chip: Blog post for everyday content, Strict prose for narrative only, Count everything for parity with a plain word counter, or Text to speech for voice scripts.
- Toggle the Strip rules to customize a mode. Frontmatter, fenced code, indented code, inline code, link URLs, image syntax, HTML tags, footnotes, tables, and alt text can each be flipped on or off.
- Adjust reading and speaking words-per-minute if your audience reads or speaks faster or slower than the defaults.
- Read the headline cards (prose words, source words, reading time, speaking time) and the document structure panel. The per-section table breaks the prose count down by heading.
- Use Copy summary to copy the full numeric report, or Copy CSV to export the per-section breakdown into a spreadsheet.
About this tool
Markdown Word Counter measures Markdown the way readers experience it. A plain word counter treats every token in the source as a word, so URLs, fenced code blocks, frontmatter keys, image syntax, footnote definitions, emphasis markers, table separators, and HTML tags all inflate the count. Substack, Medium, Hugo, Jekyll, Ghost, MkDocs, Docusaurus, and most static-site generators compute reading time on the prose only, and that is the number writers care about. This tool reports both: the raw source word count for the unprocessed file, and the prose word count after stripping the Markdown syntax you select. Counting is governed by ten transparent toggles: strip frontmatter (YAML --- ... --- and TOML +++ ... +++), skip fenced code blocks (``` and ~~~), skip 4-space indented code blocks, skip inline code spans, drop link URLs while keeping link text, skip image syntax (with or without alt text), strip HTML tags, skip footnote definitions and markers, skip pipe tables, and count image alt text. Four presets cover the common workflows: Blog post (the default, drops code and URLs but keeps inline code and link text), Strict prose (drops everything that is not narrative text), Count everything (matches a plain word counter for parity), and Text to speech (a clean voice script with code, URLs, images, tables, and HTML removed). Beyond word counts the tool reports document structure stats: characters with and without spaces, sentences, paragraphs, source lines, heading counts per level H1 to H6, link count, image count, image alt word count, list items, GitHub task list items (with done count), blockquote lines, fenced code blocks (count, lines, characters), inline code spans, pipe tables, HTML tags, and footnotes. Reading time uses your configurable speed (default 225 words per minute for silent reading) and a separate speaking time uses a slower rate (default 150 wpm) for podcast and voiceover prep. A per-section breakdown lists every ATX or Setext heading with its prose word count, indented by level so the document outline is visible at a glance, and a Copy CSV button exports the table for editing in a spreadsheet. The full numeric summary can be copied to clipboard with one click. Everything runs in your browser; the Markdown is parsed locally so the source never leaves your device. Useful for blog authors hitting a word target, technical writers measuring README density, ghostwriters quoting per-word jobs, documentation teams enforcing length budgets, podcast hosts checking script length, content briefs comparing draft size, and any workflow where the source word count and the reader word count must match.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Word Counter
Live word, character, sentence, paragraph, and reading time stats.
Open tool
TextCharacter Counter
Detailed character, letter, number, space, and line counts.
Open tool
TextReading Time Calculator
Estimate reading time for any text with reader profile, language, and complexity factors.
Open tool
TextMarkdown to Plain Text
Remove Markdown formatting and get clean readable plain text.
Open tool
TextMarkdown Editor
Live markdown editor with toolbar, preview, table of contents, and .md or .html download.
Open tool
TextMarkdown TOC Generator
Build a GitHub-style Markdown table of contents from any document.
Open tool