Reading Time is a small WordPress plugin that creates a progress bar that indicates how much you’ve scrolled on a website. It’s very useful to show the reading progress on pages or blog posts. Generally, such indicators are used on long articles and help readers understand how far they are from finishing the article. It supports the most popular browsers: Chrome, Firefox, Safari, IE8+, and mobile browsers.

Plugin Version: 2.0.3
 
WordPress plugin CodeCanyon Reading Time

Plugin Features

  • Easy to use: Install & go
  • Works with all themes
  • Full responsive, works on all devices
  • Show the progress bar only on certain pages. Assign it to just about anything you want
  • Easy to customize
  • Customizable position
  • Customizable colors
  • Customizable height
  • 8 styles available, more in next version
  • Support for mobile devices
  • Valid HTML5 code
  • Cross-browser compatible
  • Lightweight and fast
  • Native JavaScript, without jQuery
  • All major browsers supported: IE8+, Chrome, Firefox, Safari, Android browser, Opera, iOs browser
    Installation guide
  • Detailed users manual

Specifications:

Release date: 19-04-2017
Last updated: 05-01-2024
Type: Paid
License: GPL 
Subject: Style & Design
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: CodeCanyon

Rating:
4.5108225108225 1 1 1 1 1 (231 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

How to Configure CodeCanyon Reading Time for Long WordPress Content

CodeCanyon Reading Time addresses a fairly narrow but noticeable need: it adds a progress bar that clearly shows how much of a selected area the reader has already scrolled through. For an in-depth article, tutorial, case study, documentation page, or editorial piece, this is not decoration for its own sake. A small indicator helps people relate their current position to the length of the content and see that the material is not endless. This guide covers the scroll progress bar specifically, not a standalone reading-time calculator.

The sections below cover more than basic installation and color selection. The areas where the plugin actually calls for deliberate choices are the measurement boundary, placement around a sticky header, display rules, and testing on a real page. If you enable the bar everywhere with default settings, it may only be useful by accident. If you first define what the visitor is reading and where the element should stay out of the way, you can create a calm, clear navigational cue.

This guide is intended for WordPress administrators, content editors, and developers who need to hand off a finished configuration without editing plugin files. It includes a preparation sequence, ZIP installation, a detailed walkthrough of the settings panel, a knowledge-base use case, a verification test, a reversible CSS adjustment, and troubleshooting for common issues. Tab and field names that may vary between installed versions are kept in English and presented as interface elements.

The plugin does not promise higher search rankings, longer time on site, or more conversions on its own. It changes one specific part of the reading experience. The right implementation goal is therefore simple: give visitors an unobtrusive visual reference point on a long page, and make sure the indicator measures the intended content, does not overlap navigation, and does not appear where there is nothing substantial to read.

You can verify the useful outcome of this configuration visually. Open the selected long post in a regular browser window, scroll from top to bottom, then repeat the check in a private window and at a narrow viewport width. If the bar starts when expected, reaches completion near the end of the content, and does not compete with the sticky header, the setup is doing its job. If not, do not hide the problem with extra styling: first determine which area and which pages CodeCanyon Reading Time is measuring.

CodeCanyon Reading Time on a WordPress page showing reading progress for a long article
The bar connects scrolling through a specific piece of content with the reader's visible position on the page.

What the Bar Measures and Why It Is Not a Reading Timer

The product name may suggest that it calculates how many minutes an article will take to read. In 42Theme's official description, the core feature is framed differently: the indicator shows how far the user has scrolled through the page. That distinction matters because these two interface patterns use different data sources. Reading-time estimates usually depend on word count, language, images, and an assumed reading speed. A progress bar relies on scroll position and the height of the measured area.

Picture a tutorial with a large table of contents, a short introduction, a prominent ad block, and a lengthy set of instructions below. When progress is measured across the entire page, the visitor may see the bar partly filled before reaching the main content. The reverse can also happen: a long comments section or related-post collection may appear after the article, and the bar continues to fill after the meaningful content has ended. CodeCanyon Reading Time includes the Custom Selector setting for this purpose. It lets you tie the calculation to a specific area instead of the full document height.

It is therefore more useful to think in terms of a sequence rather than a formula such as "the bar equals the whole page": content container - scroll movement - indicator fill - visible confirmation of position. On a simple blog, the container may be the entire post page and no additional setup may be necessary. On a publication site with a fixed header, sidebar, author blocks, and recommendations, decide whether the reading object is the whole document or only the central article. Both choices can be valid, but each one needs to be tested in the actual template.

The indicator itself is generally placed along the very top or bottom edge of the viewport. It does not need to follow every line of text, and it does not replace a table of contents. A table of contents helps readers jump to a section, anchor links take them to a specific place, and the bar answers a different question: "how much of this selected path have I already covered?" Keeping those roles separate makes the interface feel calmer. Do not try to make one thin element show time, percentage, chapters, loading status, and a subscription prompt all at once.

The plugin includes styles, a color or gradient, shadow, height, position, and offset settings. The developer also states that it works without a jQuery dependency. These features are only useful to the extent that they preserve readability. A thick, bright bar with aggressive animation does not become more useful just because it is impossible to miss. On a content site, it is especially important for the indicator to remain visible in peripheral vision without competing with the heading, buttons, or cookie-consent messages.

There is one more practical implication. The percentage shown by the bar is not an analytics metric for a specific user's engagement. It does not prove that the text was read carefully, measure time spent in the tab, or replace analytics data. It is a visual reference point in the interface. Use it to improve reader convenience, and evaluate content performance using the data your analytics system actually collects and that your site is allowed to retain under its policies.

The standard for a good configuration is simple: the fill should reflect progress through useful content, not the page's incidental geometry. If that condition cannot be achieved in a specific template, clarify the container and display conditions first. Only then does it make sense to choose a gradient or decorative effect.

Who Benefits from This Indicator, and Who May Be Better Without It

The most natural setting for CodeCanyon Reading Time is a site where visitors genuinely read substantial content. That may be an editorial publication, an expert blog, a knowledge base, service documentation, a tutorial section, a catalog with detailed reviews, or a corporate site where important answers are not limited to one short page. In these cases, a thin bar helps readers maintain context, especially when they return to the article after a table, diagram, or long list.

The plugin can also work well in an ecommerce help section, but it is not necessarily appropriate for checkout, the cart, a contact form, or a login page. In those places, users are performing an action rather than reading a long, linear text. Scroll progress may be neutral, but more often it simply adds another moving interface element. It is much more sensible to limit display to posts, guide pages, and, where appropriate, selected content types.

For editors, one of the plugin's strengths is that it does not require manually adding an element to every article. Once configured correctly, the same behavior applies to the selected group of pages. This reduces the risk that a new article will be published without an indicator or that an older post must be edited solely for an external interface element. Automation is useful only when the display rules are clear, however: for example, "long articles and documentation," not the vague idea of "everywhere it might be useful."

This product is not the best choice if the primary goal is to show a calculated reading-time estimate next to the title, display a text label at an arbitrary point in a post, or control the estimate with images taken into account. This guide does not assume that CodeCanyon Reading Time provides those features: the confirmed product mechanism is a scroll-progress bar. For a reading-time use case with a shortcode, it is more sensible to compare specialized solutions listed later in the guide.

Use the indicator cautiously on pages with full-screen sliders, infinite content loading, complex virtual scrolling, or several independently scrollable panels. This is not because the plugin will necessarily fail, but because the meaning of "reading progress" is already ambiguous in those situations. They require a separate test: what the reader is actually scrolling, which area the browser measures, and whether that matches the editor's intended behavior.

A good rule of thumb is this: if a user can say, "I am reading this article from top to bottom," the bar can help. If the user is mainly filtering a catalog, completing a form, moving a map, or switching tabs, the benefit is questionable. Do not enable the element merely because it is available in the settings panel. First identify the visitor's task and the potential visual benefit.

Preparation: What to Check Before Installing the ZIP Archive

Before installing any third-party WordPress plugin, it is helpful not to begin with the Install Now button but to prepare a quick rollback point. Update your file and database backup according to the process used on your site, or make sure you have a staging copy. Official WordPress documentation recommends having a current backup before updating plugins, and the same habit is useful before adding a new interface element. A small progress bar may seem too minor to justify this, but conflicts are usually discovered not in the plugin itself, but in the combination of the theme, optimization tools, and scripts already in use.

Next, select two pages for testing. The first should be genuinely long, with multiple headings, images, and enough content to exceed the viewport height. The second should be short or functional, where the indicator is unnecessary. These two URLs will become your control pair. On the first, you will assess the start point, smoothness, and completion. On the second, you will confirm that the display conditions do not add an unnecessary bar to a contact page, form, archive, or another unsuitable location.

Look at the top and bottom areas of the active theme. Is there a sticky header? Does the WordPress admin bar appear while scrolling for logged-in users? Is there a consent banner, special-offer notice, accessibility panel, or another fixed element? These details directly affect your choice of Position and Offset. A bar placed at the very top without accounting for a sticky menu may sit behind it and become invisible. A large positive offset, on the other hand, can push it into the main content area.

Also note any plugins that alter scrolling or JavaScript handling: smooth scrolling, custom scrollbars, deferred script execution, file merging and minification, loading optimization, or script protection. The 42Theme changelog includes a specific compatibility fix for Custom Scrollbar. This is not a reason to expect a conflict in advance, but it is more than enough reason to include a compatibility check in the implementation plan. In most cases, it is sufficient to open a control page for a minute after clearing the cache and confirm that both features behave as expected.

If the site uses page caching, prepare a way to see the current version. Sometimes an administrator changes settings, clicks Save Changes, and then tests an old page copy from the server, plugin, or browser cache. It can then appear that the plugin did nothing. For testing, a private window after the normal cache-clearing process is useful, and if your process permits it, you can temporarily disable caching only on the staging copy. There is no need to turn off optimization on the live site without a real reason.

Clarify who will be allowed to change the rules. If an editor only needs to publish articles, they do not need access to the indicator's global settings. If the content team must manage where the bar appears, document a simple process in advance: which sections are covered, who approves exclusions, and where testing after a theme change is recorded. This is not a technical formality. A global element on the public-facing site can be changed with one setting, and clear ownership reduces the risk of accidental display in an inappropriate section.

Finally, check compatibility on the product page and in your installed WordPress environment. The CodeCanyon listing includes supported versions, but a marketplace listing always reflects the product state at the time it was updated. If your system is newer than the version named in the listing, do not assume complete compatibility in advance. First enable the plugin on a staging copy, then open the long control post and inspect the browser console. This order is more honest than promising that a simple interface plugin will work in every modern configuration.

Preparation does not require hunting for hidden server settings or changing theme code. A backup point, a pair of control pages, awareness of sticky elements, and a way to see a fresh uncached page are enough. That provides the foundation for a deliberate installation and a safe rollback.

Installing CodeCanyon Reading Time and Verifying Initial Activation

The plugin is supplied as an archive from an external marketplace, so the normal process is to upload a ZIP file through the admin dashboard rather than search the WordPress.org directory. Do not randomly unpack the archive into the site root or copy the entire purchase package there. In 42Theme's product documentation, the standard process is to select the plugin package from the downloaded bundle, open the WordPress plugin installation page, upload the archive, and activate it. Marketplace packages may also contain documentation and license files; installation requires the plugin ZIP itself.

  1. Save the original archive in a clear location and, if the package has been extracted, find the ZIP containing the plugin itself rather than the full documentation folder.
  2. Sign in to the WordPress admin dashboard with an account that is allowed to install plugins.
  3. Open Plugins > Add New and click Upload Plugin.
  4. Select the prepared ZIP file, click Install Now, and wait for the successful installation message.
  5. Click Activate Plugin, then open the installed plugins list and confirm that the plugin entry is active.

This sequence matches both the general WordPress documentation for ZIP uploads and the developer's instructions. If WordPress reports that the destination folder already exists, do not blindly delete it through a file manager. First check the plugins list and determine whether an earlier copy is already installed. Updating an existing installation and performing a clean installation are different situations. On a live site, it is safer to create a backup first and test the package in a staging environment, especially if the current version has already been configured for the theme.

After activation, do not rush to configure the color. First find the plugin settings page. With 42Theme, the interface is generally organized as a shared panel that may include General Settings, Assignments Settings, System Status, Updates, Uninstall Settings, and Custom CSS. The exact layout depends on the installed version, so follow the purpose of the tabs rather than the placement of a single button in an old screenshot.

Open the long control article in a separate tab and scroll through it. At this stage, you do not need to see a perfect appearance. The goal of the first check is more modest: determine whether the element is loading on the public-facing site after activation. If the bar is missing, do not start with CSS. Confirm that settings were saved, that the page falls under the display rules, and that the browser is not reporting a script error. This order will save time later.

If the bar appears on the page but sits behind the sticky header, that is still a good initial activation result. It means the basic loading chain is working and the problem concerns placement. Address it with Position and Offset, or in rare cases with careful styling. If the element appears on every page, including a form or cart, the basic loading chain is also working, and the next step is to limit it in Assignments Settings.

Do not enable automatic updates for this plugin simply because WordPress offers a toggle. For an external marketplace product, update availability and delivery depend on the provider's mechanism. It is much more useful to document where the original archive is stored, who performs updates, and which page is used to verify the outcome. With every update, first confirm that the plugin is active, then repeat the short scroll test, and only afterward clear the cache for visitors.

Your first configuration should be reversible. If, after activation, you cannot determine where the plugin is enabled or how to restore the previous state, stop there. Deactivating it through Plugins > Installed Plugins is usually a clear rollback point, but it should not become the default way to fix every problem. It is better to correct an incorrect assignment or offset, save a verified configuration, and deactivate the plugin only if it genuinely does not suit the site.

The Settings Panel: Creating Visibility Without Visual Noise

After installation, CodeCanyon Reading Time provides several settings that affect different aspects of the experience. Style defines the character of the line, Color controls its fill, Shadow separates it from the background, Height controls thickness, Position sets the top or bottom viewport edge, Offset moves it away from that edge, and Custom Selector defines the measurement area. A strong configuration begins by keeping these roles separate. Do not compensate for the wrong measurement area with a bright color, or for a header conflict by making the bar thicker.

Start with Position. Top placement usually works well for content where the header is not fixed or leaves a thin clear edge. Bottom placement is useful when navigation, a notice, or a sticky panel already occupies the top. There is no universal winner here: visitors notice the top edge faster, but that is also where overlaps happen most often. At the bottom, the bar may conflict with a consent panel, floating support button, or mobile navigation. Open the control post and check the beginning, middle, and end of the scroll for each option.

The Height value should be sufficient for the line not to disappear against a busy background, but it should not turn into an additional header. Begin with the smallest noticeable value that remains visible at normal screen brightness. Then check contrast. If the line is difficult to read, first adjust the color slightly or add a very subtle shadow. Increase thickness last: an overly tall bar reduces usable screen space and can make the interface feel as though it is constantly demanding attention.

In Color, you can select a solid color or gradient. For a brand with an established accent color, a restrained solid tone usually works best: it connects the bar with other interface states without creating a second independent style. A gradient makes sense if one already exists in the site's design system. There is no need to invent a rainbow fill merely to demonstrate the feature. The indicator should confirm movement through the text, not pull attention away from the hero section.

Style offers built-in options that the documentation names as Default, Rounded, Plastic, Animated, Shine, and Glow. Choose based on the surrounding interface, not the effect name. A professional knowledge base will often need nothing more than a restrained default or rounded option. A publication with a stronger design treatment can test a subtle animation. Shine and glow effects call for particular caution near banners, notices, and dynamic advertising blocks.

The Shadow setting helps separate the line from photography, a dark header, or a dense graphic background. It is easy to overdo. The shadow should serve as a boundary between interface layers, not imitate a raised button. If the page already uses strong shadows for cards and menus, an additional heavy shadow along the top edge can look like a hierarchy mistake. Try a faint outline or understated shadow first, then review the outcome over both white and dark sections of the page.

The Offset setting is especially important with a sticky header. The documentation defines it as the distance that moves the bar up or down relative to the chosen placement. The approach is straightforward: first measure the actual height occupied by the sticky element after scrolling instead of estimating it visually. Then apply a small offset so the line sits directly beside its boundary rather than underneath it. After saving, scroll from the top, from the middle, and after the sticky header appears: some themes change menu height while scrolling.

A practical map of initial settings
Setting What It Changes Safe Initial Hypothesis How to Check It
Position The viewport edge where the line appears. Choose an edge that is free of sticky elements. Scroll until the header appears and then to the end of the text.
Height The thickness of the indicator. Begin with a thin but distinguishable line. View it over light, dark, and busy backgrounds without zooming the page.
Color The fill color or gradient. Use an existing brand accent rather than a new decorative color. Compare it with buttons, links, and focus states on the page.
Shadow Visual separation from the background. Add it only if contrast is insufficient. Make sure the line does not look like a second header.
Offset Displacement from the top or bottom. Adjust in small increments after choosing the position. Check both before and after the menu becomes sticky.

Save changes in small batches with Save Changes. A good working cycle looks like this: change one setting, clear the relevant cache, open the control page, scroll through it, and note what improved or worsened. This may seem slower than changing five fields at once, but it lets you identify the cause quickly. If the bar ends up in the wrong place after several changes, you will know whether the issue is related to Position, Offset, or the display conditions.

Do not treat the preview as your only verification method. The product changelog mentions a fix for an immobile Live Preview, but even a correct preview cannot reproduce your public site's specific sticky header, cache, container dimensions, and third-party elements. The preview is useful for quickly choosing a style, while the control page tells you whether the configuration is ready to be shown to visitors.

Configuring Style Color Height Position and Offset in CodeCanyon Reading Time
It is best to test styling and placement as one sequence: a clear viewport edge, subtle contrast, and then a precise offset.

If you cannot make the style feel restrained after repeated attempts, that does not necessarily mean you need to write CSS. Return to the underlying goal. The bar may not be needed for that group of pages, or another viewport edge may suit it better. Correct the functional setup first and fine-tune the appearance afterward. This order is especially important on sites where multiple editors may later change the theme palette without knowing about the added indicator.

Custom Selector: Measuring the Article Instead of the Entire Page

Custom Selector is CodeCanyon Reading Time's most product-specific setting. It is not intended for cosmetic changes, but for changing the measurement model. If the field is blank, the plugin uses the full page height. If it contains a valid CSS selector, the bar should follow the specified section. The changelog describes this option as showing progress for a specific fragment rather than the full page height. That is what makes the plugin useful on complex layouts.

Start not by searching online for a selector, but by asking where reading begins and ends. What part of the page is the actual content? Often, it is the main article container, such as an element with a class the theme already uses for posts. Sometimes the content is built with a page builder, and one container combines the title, text, images, and author output. In another template, it may be more useful to select a nested block so that breadcrumbs, a large introductory image, related posts, and comments are excluded from measurement. There is no universal class name because it is defined by the specific theme or page markup.

A safe way to find a candidate is to open the control article in a browser, use the inspector, and select the central text area. You do not need to edit HTML. Your goal is simply to determine whether the meaningful container has a stable, unique class or ID. If the selected class appears on several decorative elements, it is a poor candidate. If the container disappears in some templates, the rule will be fragile. Document the selector in your site's internal notes and test it on two or three posts of different lengths.

Choose a selector that is as specific as necessary, but no more specific. For example, the main container class may be a good option if it appears only once on a post page. An overly long chain tied to internal wrappers often breaks after a theme update or template edit. An overly broad selector such as article may capture elements that are not the main reading content. Between those extremes, you need an option that describes the actual content area and remains consistent in the template you use.

Test the Selector Before Saving

  1. Open the long control post and visually identify the beginning and end of the central content.
  2. In the browser developer tools, select the proposed container and make sure it includes the text, headings, and intended illustrations.
  3. Check whether the container includes comments, recommendations, ad inserts, or other blocks that should not affect reading progress.
  4. Enter the CSS selector in Custom Selector, save the settings, and open the page in a fresh window.
  5. Scroll from the upper boundary of the selected area to the lower boundary and compare the bar's fill with your actual position in the content.

It is important to distinguish between two signs here. First, the bar is displayed at all. Second, it displays the correct area. If the indicator begins filling while you are still on a cover image before the article, or it ends noticeably before the final paragraph, the selector is wrong or includes the wrong outer container. Do not try to compensate with Offset. Offset controls the line's position in the viewport, not the calculation of where measurement begins and ends.

Containers on page-builder pages require extra caution. A visual editor may add several nested wrappers, while some content may use the standard block editor. Do not assume one selector works safely across all templates. If the knowledge base and blog use different markup, it is better to split assignment rules or keep full-page measurement where a shared container has not been confirmed. A deceptively precise selector is worse than an honest, simple option because the error may appear only on some publications.

On a page with very short content, the indicator may fill immediately or be nearly invisible because there is little distance to scroll. That is not a reason to artificially increase content height. The bar is intended for cases where the user actually has a reading path. It is easier to exclude short pages through assignments than to force a noticeable animation where visitors can already see all the text at once.

If the bar begins ending too early or too late after a theme update, the first suspect should not be the plugin but the changed document structure. Select the container in the inspector again, compare its beginning and end with the previous version, and confirm that the old selector still exists. This diagnosis is more useful than immediately deactivating the plugin: it explains what changed and provides a clear, reversible next step - adjust the Custom Selector field or clear it to return to full-page measurement.

Custom Selector in CodeCanyon Reading Time limits measurement to a WordPress article area
The Custom Selector approach: the content container becomes the measurement boundary, while the visible bar confirms progress through that container.

When It Is Better to Leave the Field Blank

Leave Custom Selector blank if the entire document is genuinely the content, if the theme regularly changes template classes, if editors use different post types with different markup, or if the selector you found captures unpredictable elements. This is not simplification out of laziness. A blank field means a clear model: the bar reflects the page height. For a simple blog, that model can be more accurate and reliable than a fragile link to an internal wrapper.

Assignments: Where Progress Helps and Where It Adds Unnecessary Motion

The Assignments Settings configuration answers a different question: not "what should be measured?" but "which pages should display the indicator at all?" The 42Theme documentation states that assignment selection lets you limit publication locations, while the absence of special assignments leaves the plugin available on all pages. This is a powerful setting, so change it only after you can state the rule in plain language.

For a site with guides, a good rule might be: enable the bar on long articles and static documentation pages, but do not enable it on archives, search results, contact forms, legal pages, or interactive interfaces. For an editorial publication, the rule may differ: feature articles and investigations are included, while short news items remain without a bar. The important point is to define the purpose first and only then translate it into the available conditions in the installed panel.

Do not replace verification with guesswork about the exact names of toggles. In different releases, the general assignments section may display condition groups differently. Open the panel, match the actual options to your rule, and save a screenshot or short team note. If a condition cannot express the intended rule without doubt, choose a safer restriction and verify the outcome on your control URLs.

A Practical Set of Exclusions

In most cases, it is worth separately reviewing templates where scrolling is not the same as reading: the cart, checkout, account area, full-screen catalog, map, search page, post list, and form. Not all of these will necessarily be available in assignment conditions, and not all need to be excluded on every site. The point is different: do not treat the indicator as a universal element for the entire domain. The clearer the rule, the less likely it is to unexpectedly appear on a functional page after a new content type is added.

If you want to show the bar only on a few important pages, first create a list of their URLs and confirm that those pages use the same template as your test page. With individual assignments, maintenance becomes manual: a new article will not receive the indicator until it is added to the rule. That can be acceptable for a small knowledge base. For a publication with frequent updates, it is usually more reliable to build the rule around a stable content type if the current panel supports it.

After saving assignments, always test more than the page where the bar should appear. Open two additional pages where it should not appear. This is a simple way to catch an overly broad rule. Then sign out or use a private window. The WordPress admin bar changes the top area of the viewport and may hide part of a placement error that ordinary visitors will notice.

Do not treat an exclusion as a failure. Sometimes the best configuration for a page is no indicator at all. The plugin adds value through contextual accuracy, not the number of times it appears. If people visit a page to complete one action, a calm interface is usually more valuable than another animated signal.

Assignments Settings in CodeCanyon Reading Time selecting WordPress pages for the indicator
Assignments separate long reading content from functional pages where the bar does not help the user.

Practical Use Case: A Knowledge-Base Indicator with a Sticky Header

Let us walk through a repeatable use case where the settings produce a meaningful outcome. There is a WordPress knowledge base. A user opens a long guide with headings, screenshots, and a final question section. The site header sticks to the top of the page. Related content appears below the article, followed by comments or a feedback form. The goal is to show reading progress for the main guide only, avoid covering the menu, and exclude recommendations after the text from the measurement.

Goal and Preparation

Choose one article where the main body is noticeably longer than the viewport height. Note where the title begins and where the last meaningful paragraph ends before the related-content section. Open the article while signed out and record when the header becomes sticky. Then use browser developer tools to identify the container that includes the guide content but excludes the lower cards and comments. This container will be a candidate for Custom Selector.

Before changing panel settings, confirm that the page is not affected by aggressive JavaScript optimization or an outdated cached version. If the site uses several caching layers, agree with the responsible specialist on how to view the new configuration. You do not need to disable every performance mechanism. You only need a path for local testing and for clearing the caches that actually participate in delivering the test page.

Step 1. Limit Display Locations

In Assignments Settings, create a rule that matches the knowledge-base section or content type used for guides. If the condition model in your version differs, stay focused on the original goal: the bar should appear on long reference pages and should not appear on a contact form, archive, search page, or functional interface. Save the changes, then test one knowledge-base page and one page outside that section.

Expected intermediate outcome: the indicator is present on the intended page and absent from the excluded page. If the bar appears in both places, do not move on to color styling. Return to the conditions. An error at this stage means the product is loading, but the coverage rule is too broad. It is easier to correct before connecting it to a container and styling it.

Step 2. Tie the Calculation to the Content

Enter the verified CSS selector for the content container into Custom Selector. Save the settings. Now scroll from the top boundary of the article to the last paragraph. Focus not on the exact percentage, but on whether the behavior makes sense: while you are reading the beginning, the fill should be small; around the middle of the main text, it should be roughly halfway; near the last meaningful section, it should be close to completion.

If the article has a large cover image above the text, decide in advance whether it counts as part of the path. For an illustrated guide, that may be perfectly reasonable. For a long promotional page with a large hero section, it is usually better for the bar to reflect the instructional content itself. There is no single "correct" answer for every theme. What matters is whether the selected container matches your editorial approach and the observable outcome on the page.

Step 3. Separate the Bar from the Sticky Header

Choose a Position that leaves a clear edge next to the fixed header. If top placement is preferred, use Offset for a small adjustment and repeat the check when the menu becomes sticky. If the bottom of the viewport has no persistent panel, bottom placement may create a cleaner composition. Do not copy a numeric value from another site: header height, browser zoom, and theme behavior differ.

For the first version, choose a restrained built-in Style, an accent Color, sufficient Height, and a shadow only if necessary. Your goal is to see the line without actively searching for it, but not to notice it before the article title. Change one field at a time, open a fresh page, and assess contrast, placement, and scroll behavior together.

Step 4. Test the Reader Journey

First open the article at the top. Then scroll to the middle, pause on an image or table, move to the final section, and return to the top. The bar should respond to the path without jumps caused by the sticky header appearing or by dynamic blocks. Then repeat the experience in a private window. This is useful because ordinary readers do not have the admin bar, and the browser may show a different cached copy of the styles.

Also check a narrow viewport. The goal is not to manually create a mobile version, but to verify the product's stated responsiveness in the actual template. Do not consider the test complete solely because you resized the viewport in developer tools: open the real page, make sure the header does not cover the line, and confirm that any fixed bottom panel does not conflict with the chosen edge.

Use-case summary: Assignments determines where the element is needed; Custom Selector determines what it counts as the reading path; Position and Offset determine whether the outcome can be seen without conflicting with the layout. Test these layers in that order.

How to Verify the Outcome Before Publishing Changes

Testing a progress bar should answer not "is it there?" but "does it accurately explain the user's position?" Choose observation points in advance: the top of the content, the middle of the main area, the last meaningful paragraph, the area after the article, and an excluded page. At each point, note whether the bar should be visible and what it should show. This simple plan turns a subjective impression into a repeatable test.

At the top of a long article, make sure the line is not hidden by the header and does not look partly filled because of a preceding banner. In the middle, check whether its placement changes after sticky navigation appears. At the end of the main area, confirm that the fill approaches a logical completion point. If Custom Selector is in use, scrolling through related cards and comments should not unexpectedly change the meaning of the indicator. If the field is blank, by contrast, continued progress across the full page is expected.

Check the page after the normal cache-clearing process and in a private window. This is not an obligatory ritual; it protects against a common issue: changes are saved in the admin dashboard, but the public page is still served with the previous CSS or JavaScript. If the visible state differs between a signed-in and regular window, clarify caching and fixed elements first rather than changing settings blindly.

Open developer tools only if the behavior looks wrong. The console tab can reveal an obvious JavaScript error, while the network tab can help determine whether files are being blocked. You do not need to be a developer to record the error text and when it appears. That information is more valuable than a general statement such as "the bar does not work" when contacting support. Do not modify plugin scripts in the browser as a permanent solution, however: a temporary change will not reach the site and can easily be misleading.

Do not test only in the team's current desktop browser. The official listing names supported browsers, but real themes and optimization tools may affect behavior differently. Choose the browsers and devices your visitors actually use or that are specified in the project requirements. Testing one desktop browser and one narrow viewport is usually more useful than formally opening a dozen environments without understanding what should happen in each.

Finish the test by recording the outcome: which page types have the indicator enabled, which container is used, where the line is placed, whether there is an offset for the sticky header, and which pages are excluded. If the theme is updated several months later, this record will let you quickly compare old and new behavior. This is especially important for Custom Selector, because an invisible change to a container class can alter the measurement boundary.

Testing CodeCanyon Reading Time on a long WordPress article with a sticky header
The verification test compares the beginning, middle, and end of the selected area with the actual fill of the bar.

Do not pursue mathematical precision down to a single pixel. Viewport height, loaded images, system panels, and theme behavior can slightly change visual perception. What matters more is that the user does not see an obvious inconsistency: the bar should not finish halfway through the instructions, remain nearly empty at the final paragraph, or disappear beneath the menu. If those signs appear, return to the model for the measurement area and placement.

A Small CSS Adjustment Without Editing Plugin Files

In most cases, the built-in settings are enough. CSS is worth adding only for a precise fit with the design system when a built-in style has already been selected but the bar edges need a subtle adjustment. 42Theme documents two selectors: #t42-reading-progress-wrapper refers to the container, while #t42-reading-progress refers to the filling indicator itself. This makes it possible to apply a reversible change through the panel's Custom CSS field without editing plugin files or creating an update problem.

The restrained example below is intended for a site where other interactive elements use softly rounded edges. It does not change the calculation behavior or add scripts. If your design uses strict square lines, you do not need this example at all.

/* Add this to the plugin's Custom CSS field if rounded corners fit the site design. */
#t42-reading-progress-wrapper {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

#t42-reading-progress {
  border-radius: 0 999px 999px 0;
}

After saving, open the control page and confirm that the fill remains even at both the beginning and end of the path. If the bar is at the bottom, the rounding may look different because of the fill direction or selected style. In that case, do not complicate the rule. Remove the block from Custom CSS, save the settings, and confirm that the built-in appearance has returned. The rollback is simple: remove only the added snippet rather than changing theme or plugin files.

Do not add an enormous z-index through CSS without a specific reason. Such a value can place the bar above modal windows, consent notices, accessibility panels, or dropdown menus. If the indicator is hidden beneath a sticky header, use Offset first, then address layer order together with the theme's behavior. CSS should not conceal a placement error that users will still notice in another template.

Do not use unverified PHP snippets or search for nonexistent product filters merely to make a more complex adjustment. For this guide, the panel settings and two CSS selectors are confirmed. That is enough for a small, safe correction. If you need to change loading behavior itself, integrate with an unusual builder, or handle a nonstandard container, consult the developer's current documentation first and test the solution on a staging copy.

Troubleshooting: When the Bar Is Missing, Inaccurate, or Conflicts with the Layout

Most progress-indicator problems are best investigated by moving from the visible symptom to a specific check. Do not begin by reinstalling the plugin, clearing every setting, or editing files. Recall which control page shows the issue, whether ordinary visitors can see it, and what changed before the symptom appeared: a new theme, cache configuration, sticky header, third-party scrolling script, or assignment rule.

The Bar Is Missing from a Page Where It Should Appear

Symptom: the plugin is active, but no visible line appears on the long control post. Likely causes: the page is not included in Assignments Settings, settings were not saved, the public copy is coming from cache, or an optimizer has altered the plugin script. Sometimes the line exists but is completely covered by a header with the same background.

What to check: first open the plugins list and confirm active status. Then make sure the panel rules actually include the control page. Save the settings, clear only the cache relevant to the test, and repeat the check in a private window. If there is still no visible line, temporarily choose another edge through Position and use a small neutral color to separate a display problem from a contrast problem.

How to fix it: narrow or correct the conditions, return to a clear built-in style, and check JavaScript exclusions in the optimizer on a staging copy. If the console contains an error, save its text for a developer or support representative. When to roll back: if enabling the plugin causes a noticeable failure on a public page and the cause cannot be safely isolated, deactivate it through the plugins list, return to the backup point or staging configuration, and do not experiment in the live environment.

The Indicator Ends Before the Text or Keeps Going After It

Symptom: the bar is already full at the last meaningful paragraph, or it continues growing through recommendations and comments. Likely cause: Custom Selector captures a container that is too small or too large, or the markup of the selected area changed after a theme update. The issue is unrelated to line height and cannot be fixed by changing the color.

What to check: in the browser inspector, select the element defined by the selector and compare its actual boundaries with the beginning and end of the article. Check a second post using a different template. If the container includes recommendation blocks, comments, or an ad area, it does not match your reading model. If the old selector no longer finds an element, the cause is probably in the template.

How to fix it: choose a stable main-content container, replace the selector, and repeat the test from beginning to end. If no stable container exists, clear Custom Selector and return to honest full-page measurement. When to roll back: if several content types have incompatible markup, do not apply one fragile selector to all of them. Restrict assignments or abandon area-based measurement for that group.

The Bar Is Hidden Under a Sticky Header or Overlaps Another Element

Symptom: the line disappears specifically after scrolling, sits beneath the menu, or crosses a bottom consent panel. Likely cause: an occupied viewport edge was chosen, the sticky header changes size, or Offset does not match the element's actual height. More complex themes may also involve layer order.

What to check: observe the page in three states: before the header becomes sticky, after it becomes sticky, and near the bottom of the content. Repeat the test as a regular visitor without the admin bar. Check whether the chosen edge contains a banner, chat widget, or bottom mobile navigation. How to fix it: first change Position or select a small Offset. Only if there is physically no free edge should you discuss layer order with the theme developer. When to roll back: remove any added CSS if it places the bar over modal windows or interferes with navigation clicks.

Behavior Became Choppy or Disappeared After Enabling Optimization

Symptom: everything worked normally before, but after changing cache settings, file merging, or deferred JavaScript handling, the bar disappeared, updates in jumps, or generates a console error. Likely cause: the optimizer changed the order, execution timing, or availability of a required script. This is a typical situation for client-side interface elements, but it does not prove that the specific product is defective.

What to check: on a staging copy, temporarily disable only the affected optimization option, clear the cache, and repeat the control path. Compare the browser console and network requests before and after. Official WordPress recommendations for diagnosing conflicts suggest isolating changes: temporarily exclude the suspected factor, then re-enable factors one at a time. How to fix it: if the causal relationship is confirmed, configure an exclusion for the plugin script in your optimizer or consult its documentation. When to roll back: if the exclusion noticeably harms performance across the site and no supported solution exists, deactivate the indicator or limit it to critical pages rather than compromising the global optimization strategy.

Conflict with Custom Scrollbar or Another Scrolling Tool

Symptom: after another scrolling tool is installed or updated, scrolling behaves unusually, the bar updates incorrectly, or two similar interface elements appear on the page. The Reading Progress changelog notes a Custom Scrollbar compatibility fix, so a joint test is justified. That does not mean every current custom scrollbar will necessarily conflict.

What to check: reproduce the problem on one long post, then disable only the second tool on a staging copy. If the symptom disappears, turn it back on and review both plugins' settings, especially display conditions and scroll handling. How to fix it: update both products according to your safe update process, clear the cache, and leave enabled only the visual element that users need. When to roll back: if the two tools duplicate one another's role, it is better to keep one understandable indicator than search for a complicated styling coexistence.

Troubleshooting CodeCanyon Reading Time for conflicts involving the header cache and Custom Selector
Troubleshooting follows a causal sequence: page symptom, assignment and container checks, cache or conflict isolation, and a repeat test.

If the site stops opening after a plugin update or activation, do not try to fix the public page by guessing. WordPress documentation recommends safely isolating conflicts: temporarily disable plugins in a staging environment, test the default theme, and re-enable elements one at a time. Record the reproduction steps, page URL, error text, and environment versions for the responsible developer. That kind of report helps more than a series of random reinstalls.

Questions That Come Up When Configuring a Reading Indicator

Does CodeCanyon Reading Time show the exact time remaining until the end of an article?

There is no basis for claiming that for this product. Its confirmed feature is a graphical bar that reflects scroll progress through the page or through the area selected with Custom Selector. If the site's primary need is a text-based reading-time estimate in minutes, compare specialized solutions with that feature and test their calculation model with your own content.

Why should I configure Assignments before choosing a color?

Because Assignments Settings determines where the element exists. If the bar appears on a cart, form, search page, or short page, a perfect color will not fix the wrong role. Limit coverage first, then select the measurement area, and only afterward configure the visible style.

Can I show progress only for the central text and exclude comments?

That is exactly the use case for Custom Selector, provided your theme has a stable main-content container. Find it in the real markup, test its boundaries across several posts, and compare the bar fill with the final meaningful paragraph. Do not use an invented universal selector or copy a class from another template.

Why is the line not visible even though the plugin is active?

First check active status, assignment rules, whether changes were saved through Save Changes, and a fresh uncached copy of the public page. Then check whether a sticky header is hiding the line. If the issue appeared after JavaScript optimization, test its impact on a separate site copy rather than disabling every performance mechanism in the live environment.

Do I need to add custom CSS?

Usually not. The built-in Style, Color, Shadow, Height, Position, and Offset settings cover the basic configuration. CSS is appropriate for a small reversible adjustment when you need to align edges or a soft shadow with the design system. The documentation confirms the container and fill selectors, so use them in the Custom CSS field rather than editing plugin files.

Is the plugin compatible with my theme, page builder, and caching setup?

The developer states that it works with themes and lists several popular plugins and builders, but that statement does not replace testing in your specific environment. The product page reflects the state at the time it was updated. For a new WordPress version, a custom template, a sticky header, or an optimizer, the proper path is a staging copy, a long control page, a private window, and a repeat check after clearing the cache.

What should I do if the theme changes and progress is now inaccurate?

Check Custom Selector. A theme update may have changed or removed the container class used to measure the content. Compare the actual boundaries of the selected element with the text, replace the selector with a stable one, or clear the field to return to full-page measurement. Then repeat the check across several content templates.

When is it better not to use this kind of indicator?

When the page is mainly intended for an action rather than linear reading: checkout, login, a form, a dynamic catalog, a map, or short utility information. Also avoid a global rule if the site has no stable, understandable concept of primary content and the measurement area cannot be selected predictably across different templates.

When CodeCanyon Reading Time Is a Good Choice

This plugin is a good fit for a site that publishes long-form content and wants to add a calm guide to movement through the text without manually inserting it into every post. Its strength is not the number of effects, but the combination of three practical decisions: identify the right pages through assignments, choose the measurement boundary through Custom Selector, and place the bar correctly alongside the existing interface through Position and Offset.

The best implementation path is straightforward but requires discipline: create a backup point, install the archive using the standard process, choose a long and an excluded control page, configure coverage first, then the area, and then the style. Verify the outcome while signed out and after clearing the cache. If the plugin conflicts with the theme, script optimization, or scroll handling, do not hide the symptom. Isolate the change on a staging copy and return to the last configuration you clearly understand.

When you need a reading bar for articles, documentation, or editorial content rather than a complex minute calculation or an editorial label at an arbitrary location, CodeCanyon Reading Time remains a logical candidate to test. Before deploying it on the live site, go to the download page, save the original archive, and download CodeCanyon Reading Time to test it in your own environment.

After testing, keep a short note alongside the settings describing the selected pages, container, and offset. This small piece of documentation turns a thin line on the page into a maintainable solution. If it remains useful to readers and understandable to the next administrator, the configuration has been done correctly.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.