How to Add Estimated Reading Time to WordPress

Contents

In today’s fast-paced digital landscape, users crave efficiency and transparency when consuming online content. As a blogger, marketeer, designer and/or website owner, providing clear expectations and enhancing user experience are paramount to success. One effective way to achieve this is by integrating an estimated reading time feature into your WordPress blog or news posts.

In this guide, we delve into the benefits of incorporating this functionality, and practical steps to implement it using both plugins and custom code on your WordPress site.

Estimated Reading Time PHP Code

The Impact of the Estimated Reading Time Feature

Studies consistently highlight the significance of estimated reading time in shaping user behavior and improving engagement:

  • Improved User Experience: Transparency regarding the time investment required to consume content empowers users to manage their browsing time efficiently, fostering a positive user experience.

  • Enhanced Accessibility: For users with busy schedules or limited browsing time, knowing the approximate reading time allows them to prioritize content consumption effectively.

  • Increased Engagement: By setting clear expectations upfront, users are more likely to engage with content, leading to longer average time on page and decreased bounce rates.

  • Boosted SEO Performance: Search engines consider user engagement metrics, such as time spent on page, when ranking content. Providing accurate reading time estimates can contribute to improved SEO performance.

Statistics on User Behaviour

  • According to Nielsen Norman Group, users engage in “information foraging,” seeking to maximise content value by quickly assessing relevance.

  • HubSpot’s research suggests that blog posts with a reading time of 7 minutes or less tend to receive the highest engagement levels.

  • Chartbeat’s survey revealed that 55% of readers spend less than 15 seconds actively on a page, highlighting the importance of capturing and retaining user attention.

How to Setup Estimated Reading Time in WordPress with Plugins

The easiest and most straightforward way to add estimated reading time to your website is by installing a free plugin to your WordPress site. To do this there are a few options to choose from as multiple plugins offer this functionality:

  • Reading Timer WP
  • Read Meter
  • Reading Time


For this guide we will use Reading Timer WP, as it is the most widely used and has the highest ratings.

1. Install the Plugin

First of all login to the WordPress dashboard of your website then navigate to Plugins > Add New Plugin.

Then using the search bar on the right side of your screen, search for Reading Time WP.

2. Settings

Once the Reading Time WP plugin is installed, click the “Activate” blue button to activate it

Then when that is complete, navigate to the plugin settings, by looking on the left navigation and clicking on Settings > Reading Time WP.

From there you can manipulate the labels, turn the feature on and off certain pages and edit overall settings. 

3. Drop in the Shortcode

When you are pleased with the setup of your plugins settings, all you have remaining to do is to test your pages.

If you ticked any of the Post Types to Display Reading Time On then navigate to those pages to check the read time is displaying.

If you did not tick any of the Post Types to Display Reading Time On options then you’ll want to find the pages or templates you would like to add the functionality to and copy and paste the shortcode (which you can find at the bottom of the settings page) in the correct areas.

How to Setup Estimated Reading Time in WordPress without Plugins

If you are looking to avoid crowding your site with more plugins than needed and want to add the Estimated Reading Time function without using a plugin, you can do so by editing your theme files and adding some code to your functions.php file.

Here’s how to do this.

1. Find your Functions.php file

Ensure you are logged into your WordPress dashboard and utilise the left handside navigation menu to navigate to Appearance > Theme file editor.

Then using the Theme Files navigation, on the right side of your screen, find and click on your site’s Theme Functions/functions.php file, as below.

2. Copy and paste the code below

Once you are in your functions.php file, copy and paste the code below into your file (at the bottom of the existing code) and then click the Update File button.

				
					/**
 * Calculate Reading time for the content
 *
 * @param string $content
 * @return int
 */
function calculate_reading_time( $content ) {
    $word_count    = str_word_count( strip_tags( $content ) );
    $reading_speed = 200; // Adjust this value as per your audience.
    $reading_time  = ceil( $word_count / $reading_speed );
    return $reading_time;
}

/**
 * Display Reading time
 *
 * @return string
 */
function display_reading_time() {
    $content      = get_post_field( 'post_content', get_the_ID() );
    $reading_time = calculate_reading_time( $content );
    if ( 1 === $reading_time ) {
        return sprintf( __( '%s min read', 'text_domain' ), $reading_time );
    } else {
        return sprintf( __( ' %s mins read', 'text_domain' ), $reading_time );
    }
}

// Adding shortcode to display the reading time in the blog
add_shortcode( 'reading_time', 'display_reading_time' );
				
			

3. Edit your pages or templates

To finish your setup, the final step is then to call the function to display it on the pages you want to display it. 

On this example we are looking to add it to our Posts template on our site which is using Elementor and we are adding it via the Post Info element. 

Then publish your page or template and test on your live site. In our case this is the final result. 

With just a few simple lines of code, or by quickly adding a plugin, you can effortlessly incorporate estimated reading times into your WordPress articles. Your readers are sure to appreciate the gesture, and it might even enhance their engagement with your content. 

Web Design Services

Looking to elevate the quality of your web design? We offer specialised web design services helping your brand enhance its image online whilst delivering a website that perform on all fronts.