The fastest way to see the word count of any post or page in WordPress: click the document overview icon (the small lines icon at the top-left of the block editor) and look at the Outline tab. You’ll get word count, character count, heading count, paragraph count, block count, and estimated reading time, all in one panel.
That’s the quick answer. The longer version covers how to see word count in the classic editor, how to get a site-wide total across every post, how to display the count on the front end of your site, how WordPress actually counts words (it’s a little weirder than you’d think), and a few developer-side tricks for grabbing the count programmatically.
How to See the Word Count in the Block Editor
In the modern block editor (Gutenberg), word count lives in the document overview panel. To open it:
- Open any post or page in the editor.
- Click the document overview icon at the very top-left of the editor (the icon that looks like three horizontal lines stacked next to each other).
- Click the Outline tab inside the panel that opens.

The Outline panel shows six stats:
- Words: the total word count of the current post or page
- Characters: total character count including spaces
- Headings: how many H1-H6 headings exist in the content
- Paragraphs: how many paragraph blocks
- Blocks: total block count (paragraphs, headings, images, lists, all of them)
- Time to read: estimated reading time at ~250 words per minute
The same panel doubles as a navigation outline of every heading in your post, which is genuinely useful on long articles where jumping to a specific H2 saves scrolling.
Word Count and Estimated Reading Time
The “time to read” estimate WordPress shows next to the word count uses a fixed assumption of roughly 250 words per minute. That’s a rough average for English prose; technical writing reads slower (closer to 200 wpm), light fiction reads faster (closer to 300 wpm).
If you want to display reading time on the front end of your site for visitors, you can calculate it yourself with the same 250 wpm convention. See the “How to Display Word Count on the Front End” section below for a working PHP snippet that handles both word count and read time.
Word Count in the Classic Editor
If you’re still using the Classic Editor plugin, the word count is right at the bottom-left of the editor window, updating live as you type.

No clicks required. The classic editor just shows it. This is the same place TinyMCE displays word count by default and has worked the same way since WordPress 2.5.
Site-Wide Word Count Across Every Post
The block editor and classic editor both show the count for the post you’re currently editing. If you want a total word count across your entire site, or the average post length, or to sort posts by word count, you need a plugin.
The WP Word Count plugin is the most popular option. After installation, it adds a “Word Count” screen under the Tools menu that shows total word counts for posts, pages, custom post types, and individual authors. It can sort your content by word count so you can find your longest (or shortest) posts at a glance.

The free version covers basic stats; a paid pro version adds reading-time analytics and per-author breakdowns.
If you don’t want to install a plugin, you can also get the same data from WP-CLI (see the developer section below) or by writing a one-off function that loops through every post and runs str_word_count() on each.
How to Display Word Count on the Front End of Your Posts
If you want visitors to see the word count or estimated reading time on your posts (common for long-form blogs and publications), drop this snippet into your theme’s functions.php file or a custom plugin:
function smartwp_get_word_count() {
$content = get_post_field( 'post_content', get_the_ID() );
$word_count = str_word_count( strip_tags( $content ) );
return $word_count;
}
function smartwp_reading_time() {
$word_count = smartwp_get_word_count();
$minutes = ceil( $word_count / 250 );
return $minutes . ' min read';
}
Then call either function inside your post template (or a shortcode, or a block pattern):
<p>Word count: <?php echo smartwp_get_word_count(); ?></p>
<p><?php echo smartwp_reading_time(); ?></p>
A few notes on the snippet:
strip_tags()removes HTML before counting, so block markup and inline tags don’t inflate the count.str_word_count()is PHP’s built-in word counter; it splits on whitespace, which gives results very close to what the block editor reports.- The reading-time calculation rounds up with
ceil()so a 251-word post shows “2 min read” rather than “1 min read.” - Shortcodes (
[contact-form], etc.) get counted as words by default. If you want to exclude them, runstrip_shortcodes()before counting.
How WordPress Counts Words (and What It Misses)
The block editor uses the official @wordpress/wordcount JavaScript package to compute word counts. It’s slightly more sophisticated than a simple “split on spaces” approach:
- Counts as words: normal English-style words separated by spaces, hyphenated compound words (well-known counts as one word), contractions (don’t is one word).
- Doesn’t count: HTML tags, URLs in href attributes, image alt text, block markup syntax.
- Counts oddly: shortcodes are counted (
[contact-form-7]is one “word”), embedded URLs in paragraph text count as words, and numbers count as words (a date like May 24, 2026 counts as three words).
The package supports three counting strategies: words (default), characters_excluding_spaces, and characters_including_spaces. For Chinese, Japanese, and Korean text where spaces don’t mark word boundaries the same way, it falls back to a character-based count automatically.
The small differences between editors matter most when you’re optimizing content for specific word-count targets (Yoast’s “minimum X words” warnings, freelance writing rates per word, SEO content briefs that specify a target). The block editor count is canonical; everything else is an approximation.
Get Word Count via WP-CLI (Developer Method)
If you have shell access to your server, WP-CLI gives you the fastest way to grab word counts for any post, or for every post in your site, without touching the admin:
# Word count for a single post by ID
wp post get 123 --field=post_content | wc -w
# Word count for every published post on the site
wp post list --post_type=post --post_status=publish --field=ID | \
xargs -I {} sh -c 'echo "Post {}: $(wp post get {} --field=post_content | wc -w) words"'
# Total words across all posts
wp post list --post_type=post --post_status=publish --field=ID | \
xargs -I {} wp post get {} --field=post_content | wc -w
These pipe the raw post content through wc -w (the standard Unix word count utility), so the results include HTML tags as “words.” For cleaner numbers, pipe through sed 's/<[^>]*>//g' first to strip tags.
Frequently Asked Questions
How do I see the word count in the WordPress block editor?
Click the document overview icon at the top-left of the editor (it looks like three stacked horizontal lines), then click the Outline tab. The panel shows word count along with character count, heading count, paragraph count, block count, and estimated reading time.
Where is the word count in the WordPress Classic Editor?
The Classic Editor displays word count in the bottom-left corner of the editor window, updating live as you type. There’s no click required, the count is always visible. This has been the default since WordPress 2.5.
How does WordPress count words exactly?
The block editor uses the @wordpress/wordcount JavaScript package, which strips HTML and block markup, then splits on whitespace and other word boundaries. Hyphenated compounds (well-known) count as one word, contractions (don’t) count as one word, and shortcodes count as one word each. Numbers in a date like “May 24, 2026” count as three separate words. For CJK languages (Chinese, Japanese, Korean), it switches to a character-based count automatically.
Can I see the word count for my entire WordPress site?
Yes, but not from the editor. Install the WP Word Count plugin to get total counts across all posts, pages, custom post types, and authors, with sorting and per-author breakdowns. If you’d rather not install a plugin, WP-CLI can compute the same totals from the command line. See the WP-CLI section in this guide.
How do I show the word count on the front end of my WordPress posts?
Add a small function to your theme’s functions.php (or a custom plugin) that calls str_word_count(strip_tags($content)) on the current post’s content, then echo the result wherever you want it to appear in your template. The “How to Display Word Count on the Front End” section above includes a complete drop-in snippet with both word count and reading-time helpers.
How is reading time calculated in WordPress?
The block editor’s “time to read” estimate uses roughly 250 words per minute as the reading speed, rounded up to the nearest minute. So a 1,200-word post shows “5 min read.” Custom reading-time displays you add to your theme can use the same convention or adjust the words-per-minute number for your audience (200 wpm is conservative for technical content, 300 wpm is generous for light reading).
Does Yoast SEO use its own word count?
Yes. Yoast SEO computes its own word count from the rendered content for its readability and length analysis. The number can differ slightly from the block editor’s count because Yoast applies its own content-extraction logic before counting. For most posts the two numbers are within a percent of each other; treat the block editor’s count as the canonical one.
What’s the difference between word count in the editor and word count of the published post?
The editor counts the raw block content. The rendered published post can include dynamically-generated text (related posts, author bios, comments, schema-injected snippets) that the editor word count doesn’t see. If you’re measuring “how much content is on the public page” you want a front-end word count (the PHP snippet in this guide does that). If you’re measuring “how much you wrote” you want the editor count.
Wrapping Up
For most writers, the document overview icon in the block editor is all you’ll ever need. For site-wide stats, the WP Word Count plugin handles totals across every post. For developers who want to show word count or reading time to visitors, the PHP snippet above is a drop-in solution that works with any theme.
For more dev-side WordPress utilities and helpers, see our 15 useful WordPress code snippets, the functions.php guide, and our WP-CLI commands reference.



10 Responses
Thanks for the information, I was facing counting word by work, but thanks to you for the info.
Glad to help!
Sorry, but the WP Word Count plugin counts 15% more words than there are. It’s way off! But unfortunately it is the most precise I found so far. Others are off by up to 100%!
Developers can’t count anymore. Or at least – they don’t test their software before releasing it.
All of a sudden the i icon has disappeared. I did uninstall some plugins, but I’m sure this i icon is a basic feature in Wordpress.
What can I do to let is show again?
I just found out that the icon has been removed in the latest update 🙁
https://wordpress.org/support/topic/missing-info-icon-in-block-editor/#post-16657727
Thanks for pointing that out, I updated the article to show it correctly after the WordPress 6.2 update.
I’ve been looking for this and all I was seeing were the previous methods. You just solved it for me. Thanks
nice.
What do we do now that the WP Word Count plugin is closed due to an unresolved security issue? I need to count the words on a complete website to determine the cost of translating it.
Nice blog; thank you for sharing this.