Top 10 Pro v4.3: Buffered Tracking, WP-CLI Support and more
High-traffic posts expose a problem most view counter plugins run into sooner or later. Every page view updates the database immediately, which works fine on smaller sites. Once several posts start receiving concurrent traffic, those writes start competing with each other, queries slow down, and counts drift.
I’ve been meaning to fix this in Top 10 Pro for a while. Version 4.3 finally does it. Buffered tracking is in. I’ve also added a full WP-CLI suite, feed view tracking, and a handful of fixes that came up while testing on bigger sites.

Buffered Visit Tracking
Until now, every page load would update the count tables directly using two SQL queries. Busy sites could end up with multiple requests competing to update the same rows simultaneously — that’s where the slowdown came from.
Version 4.3 changes this completely. Now, page views write to a lightweight log table first. A scheduled background job rolls those visits up into the main count tables every five minutes. Loading a page no longer has to wait for a count update.
If your site is quiet, you probably won’t notice much. If it’s busy, you will. The aggregation job locks the row count at the start of each run, so visits don’t get double-counted if jobs overlap.
Buffered tracking adds two new database tables: Visits Log and Visits Funnel. If either is missing, the counts won’t process right. Top 10 Pro checks for this on every admin page load and displays a warning with a “Create missing tables” button if any tables are missing. If you see that notice after updating, sort it out before traffic comes back.
Read about the various Trackers in Top 10.
WP-CLI Support
I’ve added a full wp top10 command suite to Top 10 Pro. This is only in the Pro version.
The commands cover counts, database operations, cache management, settings, cron jobs, and popular posts queries. Every destructive command supports –dry-run so you can preview changes before committing. There’s also --force for automated workflows where confirmation prompts aren’t useful. On multisite, you get –network for network-wide operations and –blog-id=<id> to target a specific subsite.
If you know your way around the Tools page, the CLI commands will feel familiar. They map closely to what’s already in the dashboard.
See the Top 10 CLI reference for all available commands and arguments.
Feed View Tracking
Until now, visits from RSS and Atom feed readers weren’t tracked. That meant view counts missed the full audience on sites with active feed subscribers.
Version 4.3 adds a Track Feed Views option under Counter Settings. Once you turn it on, feed requests count the same as standard page views. The setting is off by default, so existing installs aren’t affected by the upgrade.
At a Glance Dashboard Widget
The At a Glance widget in the WordPress dashboard now shows current-hour and today’s total views for Top 10. Handy for a quick sanity check without opening the full dashboard.
Performance and Maintenance Improvements
Scheduled maintenance used to delete old daily records in one big query. On large databases, this could hit execution time limits. Version 4.3 now deletes in batches, so there’s no risk of timeouts.
I’ve added a new index on the daily counts table to speed up maintenance queries. If you’re already running Top 10, you’ll need to apply this manually: go to Top 10 → Tools and run Recreate Primary Key.
Bug Fixes
There are several fixes in this release. Here are the ones most likely to affect existing installs:
- Caching was effectively off. The caching check pointed to the wrong setting, so posts were never served from cache, no matter how you configured it. If Top 10 Pro felt slow, this was almost certainly why.
- Upgrade routines were skipped without warning. The plugin recorded the new database version before running the upgrade routines, so reactivating after an update could miss required steps. The upgrade sequence is now fixed.
- Daily counts used server time instead of the site’s timezone. If your site wasn’t on UTC, visits could end up on the wrong day. Counts now use the WordPress timezone you’ve set.
- Dashboard totals didn’t match the charts. The “Total visits for this period” number only summed the top 20 displayed posts, not the full dataset. That’s now fixed.
Other fixes in this release:
- Popular posts ordering no longer gets overridden by plugins that modify posts_orderby.
- Deactivating the plugin now clears cron jobs and disables autoloading for the settings option.
- Removed an incorrect wpmu_drop_tables filter that tried to drop network-wide tables when a multisite subsite was deleted.
- Daily queries now work correctly on MySQL servers with ONLY_FULL_GROUP_BY enabled.
- Paginated popular posts with identical view counts now sort consistently.
Upgrade Notes
After updating:
- Go to Top 10 → Tools and run Recreate Primary Key to apply the new database index.
- Check for any missing tables or admin notices, and use Create missing tables if they appear.
Buffered tracking is the new default, so ensure you’re creating the missing tables. Without those, the tracking will completely break down.
Life is good.

