Plugin Directory

Test out the new Plugin Directory and let us know what you think.
!This plugin hasn’t been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Word Stats

A suite of word counters, keyword counters and readability analysis for your blog.


  • Fix: Prepared query wasn't working on the dashboard.
  • Fix: Provisional fix for dashboard stats in WordPress +3.8


  • Fix: PHP 5.5 compatibility issue.
  • Fix: Strip shortcodes.
  • Fix: Provisionally raised max_execution_time to 5 minutes on load_report_stats to avoid timeouts when viewing all time stats.
  • Fix: Added isset checks on worker state function to avoid Illegal string offset warnings on upgrade.
  • Fix: Option boxes width.
  • Fix: Both LIX and the average readability index now floor at 0
  • Fix: Dash submenu is not disabled during stats collection -- will just alert that counting is underway
  • Fix: Stats collection alert was displayed with 0 posts left.
  • Fix: Changed some paths so they still work when Word Stats is installed in a folder different from default
  • Removed pre 4.4.1 version upgrade code.
  • Replaced the Donate button with a LinkedIn link.
  • Tentatively added a timeout check to the stats collection worker


  • Fix: 'Undefined index' notices in debug mode due to using $_GET variables before checking if they were set.
  • Fix: 'Undefined variable' notice due to word_stats_report_styles action being loaded when the worker was still busy collecting stats and add_submenu_page was disabled, therefore $page not being defined for the action.


  • Fix: Forcing a recount of all posts to clear bad stats.


  • Fix: Some posts were showing 0 words counted upon saving due to bad html entity decoding. A custom entity decoding dictionary has been added to address this.
  • Fix: Several fixes/minor improvements to the server side counting patterns.
  • Fix: Added Chinese ideograms to the list of recognized word characters.
  • UTF-8 character documentation moved out of basic-string-tools.php to basic-string-tools.md.


  • Fix: datepicker plugin had stopped working.
  • Fix: Reports page was displaying an incorrect period start date.
  • Design: Datepicker theme matches better the admin user interface.
  • Minimum WP version required raised to 3.1.


  • Fix/Code: Word Stats uses now WP Cron instead of admin side AJAX calls to work on caching the word stats. Removes javascript bug that prevented caching from starting.
  • Fix: Dashboard/shortcode/widget total word counts are now recounted every time. Fixes several inconsistencies due to caching/bugs.
  • Fix: The caching worker function was echoing debug output.
  • Fix/Code: set_time_limit replaced with ini_set to prevent warnings.
  • Fix: Bad HTML formatting in the regular expressions description.
  • Design: Removed decimal from readability index column values. Changed column title, made values bold.
  • Code: Tested with WP 3.5.
  • Code: Plugin options grouped in arrays.
  • Code: Replaced get_option calls and constants by global variables.
  • Code: Cleaned and simplified code and updated documentation.
  • Code: Removed functions assign_thresholds and get_cached_totals.
  • Code: Added Word_Stats_Admin::options_section and Word_Stats_Admin::options_field to generate html for the options page.
  • Code: ws_diagnostics_table renamed to diagnostics_table.
  • Code: graph-options.php's include moved from view-report-graphs.php to word-stats.php. Options are stored in an array instead of a function.
  • Code: Simplified get_ignored_keywords.
  • Code: The caching worker updates on its state more often.


  • Fix: Some non word characters (square brackets, equals) weren't being removed from keywords.


  • Fix: PHP array_keys() warnings being thrown when keywords list was empty.


  • Fix: Keywords with double quotes weren't being split nor escaped, causing the stats page to stop loading due to javascript error.


  • Feature: Common ignored keywords apply to the live stats too.
  • Fix: 'All authors' option in the reports page wasn't functional.
  • Fix: Keywords weren't counted separatedly for each author.
  • Fix: "they're" and "third" keywords not being ignored.


  • Feature: The reports page can now display aggregate stats for all authors.
  • Fix: Invalid argument error in basic-string-tools.php


  • Fix: bst_match_regarray() in basic-string-tools.php now returns false instead of error when the first argument isn't an array.
  • Basic test on 3.4.2


  • Fix: Enabled all access by default to conform with WordPress guidelines.


  • Fix: Wrong second argument passed to legacy versions of get_html_translation_table.


  • Fix: Version check boolean expression evaluated false only when both versions were equal.


  • Fix: Parse error: get_html_translation_table takes only two arguments in PHP < 5.3.4.


  • Feature: English and Spanish common words can be ignored for keyword counts (when supported, defaults to the blog's language setting).
  • Feature: Keyword settings and diagnostics are now relative to density per 1000 words. Default settings have been adjusted.
  • Feature: Keyword counts are cached in the 'word_stats_keywords' post meta.
  • Feature: Post word count is cached in the 'word_stats_word_count' post meta.
  • Feature/Fix: Posts that are already diagnosed as too short aren't listed as having no relevant keywords or being too simple/too difficult.
  • Fix: Added AJAX call to make the script work in the initial caching for all posts in the background. Should prevent timeouts when displaying all time stats shortly after installing the plugin.
  • Fix: Uninstall loop to delete custom fields was too slow in production servers, replaced with SQL query.
  • Fix: Admin notices were being displayed in the wrong place in the stats and diagnostics page.
  • Fix: English contractions and Catalonian interpuncts aren't split into different words.
  • Fix: Count unpublished default set to disabled.
  • Fix: Missing Unicode support for ignored keywords made patterns like [eé] not match the accented character.
  • Fix: Proper html entity decoding when counting keywords.
  • Fix: Posts with empty titles showed no link in the diagnostics tables.
  • Fix: Added check to prevent loading plugin script files directly.
  • Fix: Some upgrades from pre 3.1 versions ran during fresh installs, preloaded the ignored keywords list with one empty regexp.
  • Fix: Difficulty threshold settings weren't stored, apparently due to a limit in the length for setting keys.
  • Fix: Wrong counter was being used in the diagnostics table for difficult posts.
  • Fix: Greedy regexp was gluing together keywords at end and beggining of line.
  • Fix: Forward slashes weren't excluded from cached keywords.
  • Fix: Missing translation string for "Ignore these keywords:" in settings page.
  • Fix: Graphs area is hidden and a notice is displayed when JavaScript is off.
  • Code: Notices use now the WordPress built in admin_notices action.
  • Code: Capitalized class names to follow WordPress standards.
  • Code: Renamed core class from word_stats_readability to Word_Stats_Core. Moved functions from word_stats_counts to Word_Stats_Core.
  • Code: Diagnostics table template moved to view-diagnostics-table.php.
  • Code: Stats page graphs template moved to view-report-graphs.php.
  • Code: Live stats template moved to view-live-stats.php.
  • Code: Simplified some redundant code.

Requires: 4.1.0 or higher
Compatible up to: 4.1.0
Last Updated: 2 years ago
Active Installs: 2,000+


4.3 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 0,1,0