Top 10 v4.4.0: Lazy loading for page speed, Features tab, Tracker controls, Search settings, and more

A popular posts list below the fold costs the same as one above it: the same database query, the same thumbnails, the same weight in the page’s initial HTML, even though nobody sees it until they scroll. v4.4.0’s biggest change is getting rid of that cost for lists nobody’s looking at yet. It also adds a Features tab to strip out code you don’t use, two new tracker settings, and a settings page that finally scales past a handful of tabs.

Top 10 v4.4 banner image

Lazy loading, so below-the-fold lists stop costing anything up front (for Pro users)

I implemented this feature in Contextual Related Posts earlier this week, and it was natural to bring it to Top 10 Pro.

Find the new Lazy load popular posts setting under Settings » General. Instead of running the query and rendering the list inline, Top 10 swaps in a lightweight placeholder and fetches the real list over the REST API only when it’s about to scroll into view. Nothing about a lazy-loaded list, not the database query, not the thumbnails, not the markup, is part of the initial page load. That’s exactly the kind of below-the-fold weight that PageSpeed and Core Web Vitals audits do not like, and it’s gone from the calculation entirely. It also means a full-page caching plugin never bakes a stale list into a cached page, since there’s nothing to cache in the first place.

It applies to content, shortcodes, widgets, and the Popular Posts block, and it’s off by default so it won’t change behavior on sites that don’t need it. Override it per instance with lazy_load="0" or lazy_load="1". It doesn’t run on feeds, admin screens, AJAX, cron, WP-CLI, or AMP pages, where a live query in the response doesn’t make sense anyway.

If your popular posts list sits above the fold, you won’t see much difference. If it’s buried in a sidebar or a footer widget, or you’re chasing a better PageSpeed score, or you run a full-page cache, this is the setting to turn on first.

Turn off what you don’t use

Not every site needs the Query block, Popular Authors, or the High-traffic tracker. Until now, that code loaded anyway.

Images shows the contents of the features tab in Top 10 v4.4 that lets you toggle features on and off.

The new Features tab under Settings lets you toggle plugin features off individually: the Popular Posts and Post Count blocks, popular posts feeds, legacy widgets, the Query block, the Featured Image block, the Popular Posts Pro block, the Fast and High-traffic trackers, Pro dashboard widgets, and Popular Authors. Turn one off, and its code stops loading entirely, not just its output. Most of these toggles are Pro only. The free plugin can turn off the blocks, feeds, and legacy widgets, which covers the common case of a site that only uses the shortcode. See Free vs Pro: Top 10 for the full breakdown of what’s in each.

The Features tab is also the first thing you see when you open Top 10 settings now, since it’s the one place you’re likely to want on every install.

Two tracker settings for the situations Funnel tracking doesn’t fit

Top 10 switched to Funnel tracking as the default in 4.3: views land in a buffer table and get merged into the count tables every few minutes by WP-Cron. It’s lighter on the database, but it depends on WP-Cron actually running.

If WP-Cron is disabled or unreliable on your host and view counts stop updating, the new Tracking method setting under Settings » Counter/Tracker lets you switch back to Legacy tracking, which writes directly to the count tables on every visit, the way Top 10 worked before 4.3.

The tradeoff: Legacy tracking doesn’t populate the visits log table, so anything that reads from the log, like the visits funnel diagnostics, won’t have data to show. For Top 10 Pro users, the Fast and High-traffic trackers respect this setting too. If you change it, regenerate your High-traffic tracker config file so the change takes effect there. See Trackers in Top 10 for a full rundown of every tracker type.

Separately, the new Number format style setting under Settings » Counter/Tracker lets you switch view counts from the full locale-formatted number to an abbreviated form: 1.2k instead of 1,200, 3.4M instead of 3,400,000. It’s useful anywhere you’re showing counts in a tight space, like a sidebar widget or an admin column. Set it once in Settings, or override it per shortcode with number_format_style="abbreviated". If you need to change how the abbreviations round or which suffixes they use, the tptn_number_format_abbreviations and tptn_abbreviate_number_decimals filters are there for that.

WP-PostRatings support, if you’re running it

If you run the free WP-PostRatings plugin alongside Top 10, you can now show each post’s rating next to it in the popular posts list. The new Show WP-PostRatings rating setting under Settings » Posts list is off by default, and it only does anything when WP-PostRatings is actually active. You can display either the star rating, rendered using WP-PostRatings’ own templates, or the plain average score. Override it per shortcode with show_ratings="stars" or show_ratings="score", and customize the markup with the tptn_ratings filter.

Settings page rebuild

The Features and tracker settings above are new, but the settings page itself needed to catch up to how many options Top 10 now has.

Tabs moved from horizontal to a vertical layout, which scales better as tabs get added and stays out of the way of the content next to it. It reverts to horizontal tabs automatically on smaller screens. Checkbox settings now render as toggle switches instead of plain checkboxes. And every setting that’s been changed from its default gets a small indicator dot, with a legend explaining what it means, so you can scan a tab and immediately see what you’ve touched versus what’s still at the default. The default value itself is shown below each setting’s description, so you don’t have to dig through the docs to check.

I’ve also added a search box that lets you find a particular setting. It hunts through the setting name as well as the description. I absolutely love this feature as it makes it super easy to find the settings now.

None of this changes what the settings do. It’s purely about finding your way around a settings page that’s grown a lot since 4.0.

Other improvements

The [tptn_list] shortcode now accepts every registered setting as an attribute, including ones added in this release, even before they’ve been saved anywhere. number_format_style and show_ratings above are two examples, but this applies broadly: if it’s a Top 10 setting, it’s a shortcode attribute.

Admin styles and scripts are now versioned with the plugin version, so your browser picks up the new admin CSS and JS after an update instead of serving a stale cached copy.

Bot detection for the “Do not track bots” tracker setting now uses the Crawler-DetectOpens in a new window library as the primary check, alongside the built-in pattern list Top 10 already had. Crawler-Detect is actively maintained against new bots and crawlers, which the built-in list on its own wasn’t keeping up with.

Bug fixes

Fast and High-traffic trackers were tracking bots. The “Do not track bots” setting never reached these two trackers, so bot and crawler traffic was recorded regardless of how you had that setting configured. They now check it as every other tracker does.

The Views column said “Custom (N days)” while it only ever counted today. The post list Views column and the Dashboard widget labeled their count using the site-wide Custom period setting, even though both only ever counted a single day. The label now reads “Daily,” matching the data. The Views column had a second, separate bug: its underlying query and sort order were pulling the full Custom period range instead of just today; both now count today only. The Popular Posts submenu is different, since it genuinely supports a period filter there, so its label now tracks whichever range is actually applied instead of defaulting to the site-wide setting.

Other fixes in this release:

  • Admin banner should no longer cause a horizontal scrollbar on Top 10’s admin pages.
  • Left thumbnail style no longer stacks the thumbnail above the text in narrow containers such as sidebar widgets; it stays side by side unless there genuinely isn’t room.
  • New Fix Cron Schedules tool under Top 10 » Tools clears and reschedules the maintenance and aggregation cron jobs if they stop running.
  • The Tools page and an admin notice now surface WP-Cron scheduling errors, such as “The maintenance cron could not be rescheduled as the cron event list could not be saved,” directly in the dashboard instead of leaving them buried in the PHP error log.

Upgrade notes

  1. Update Top 10 or Top 10 Pro to 4.4.0.
  2. [Pro] If your popular posts list is below the fold, turn on Lazy load popular posts under Settings » General.
  3. If you’re on Legacy tracking or plan to switch to it, check the Settings » Counter/Tracker tab and confirm the Tracking method is set the way you want.
  4. [Pro] If you use the High-traffic tracker and change any tracker-related setting, regenerate the High-traffic tracker config file from Settings » Counter/Tracker so it stays in sync.
  5. Visit Settings » Features and turn off anything you don’t use.

Life is good.

Keep on publishing! Keep on tracking! Keep them engrossed!

Leave a Reply

Your email address will not be published. Required fields are marked *