Description
Nuvora Reading Time & Progress Bar is a lightweight, developer-friendly plugin that adds two things readers love:
- A reading time badge β shown before/after your post content.
- A scroll progress bar β a sleek bar at the top (or bottom) of the screen that fills as the reader scrolls.
β¨ What makes it different?
AI-assisted reading time adjustment
Posts with lots of headings, bullet lists, and short paragraphs are scanned faster by readers. The plugin detects structure in your content and intelligently reduces the estimate β labelled “AI-adjusted” so readers know.
Per-post overrides via meta box
Override the calculated reading time for any post. Hide the badge or progress bar per-post, right from the editor.
Accessibility-first design
– Semantic role="progressbar" with live aria-valuenow updates
– Meaningful aria-label on every element
– Keyboard-focusable progress bar
– Fully respects prefers-reduced-motion
– Screen-reader-friendly badge with word count in ARIA label
Minimal & performant
– No jQuery dependency (vanilla JS)
– No external assets, fonts, or CDN calls
– No database writes beyond settings
– No user tracking whatsoever
– ~1.5 KB JS / ~1.2 KB CSS (gzipped)
Elementor Widget included
– Drag and drop the Reading Time widget directly in Elementor
– Full widget controls for badge display and styling
– Works seamlessly with Elementor’s responsive settings
Developer-friendly
– Template tags: rte_the_reading_time(), rte_get_reading_time()
– Filters: rte_badge_html, rte_show_badge, rte_ai_adjustment_factor
– CJK (Chinese/Japanese/Korean) content support
– Per-post type configuration
π Settings
- Custom WPM (words per minute) β default 238
- Enable/disable AI-assisted adjustment
- Badge position: before content, after content, or both
- Choose which post types show the badge and/or progress bar
- Customise badge label text (use
{time}placeholder) - Pick progress bar color, height (1β10 px), position (top/bottom)
- Optional percentage tooltip on hover
- Respect
prefers-reduced-motiontoggle
π§ Template Tags
Use in your theme:
<?php rte_the_reading_time(); // echoes "5 min read" ?>
<?php $data = rte_get_reading_time(); echo $data['minutes']; ?>
πͺ Filters
Customise badge HTML:
add_filter( ‘rte_badge_html’, function( $html, $result ) { return $html; }, 10, 2 );
Disable badge conditionally:
add_filter( ‘rte_show_badge’, ‘__return_false’ );
Tweak AI adjustment factor (0.75β1.0):
add_filter( ‘rte_ai_adjustment_factor’, function( $factor, $html ) { return 0.85; }, 10, 2 );
Screenshots
Installation
- Upload the
nuvora-reading-time-progress-barfolder to/wp-content/plugins/ - Activate the plugin through Plugins in WordPress admin
- Go to Settings Reading Time to configure
FAQ
-
Does this plugin use any external services?
-
No. Everything runs locally on your server. No API calls, no tracking.
-
Does it work with the Block Editor (Gutenberg)?
-
Yes, fully compatible with both the Block Editor and Classic Editor.
-
Can I use it on Pages, not just Posts?
-
Yes. In Settings, check “Page” under “Show badge on” and “Show progress bar on”.
-
Does it support WooCommerce products or custom post types?
-
Yes. Any public post type will appear in the settings checkboxes.
-
What does “AI-assisted adjustment” mean?
-
The plugin analyses your post’s structure (heading density, list ratio, average paragraph length). If it detects highly structured, scannable content, it applies a small reduction factor (up to 25% faster). No external AI service is used β it’s a smart local heuristic.
-
How can I override the reading time for a specific post?
-
Open the post in the editor. Find the Reading Time meta box in the sidebar. Enter a number (in minutes) to override the auto-calculated value, or leave it blank to use auto.
-
Can I hide the badge/progress bar for one post only?
-
Yes. Use the checkboxes in the Reading Time meta box.
Reviews
Contributors & Developers
“Nuvora Reading Time & Progress Bar” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Nuvora Reading Time & Progress Bar” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.
- Reading time badge with AI-assisted adjustment.
- Scroll progress bar with ARIA support.
- Per-post meta box overrides.
- CJK content support.
- Template tags and developer filters.





