I have been having some issues with my blog and hosting provider. I noticed on one of my blogs that the top posts widget wasn’t working and was stuck on the same top posts.
I initially thought it might be a cron job not working, but after undertaking some research it looked like the culprit might be an expired transient.
I hear you asking, what on earth is an expired transient?
Well an expired transient in WordPress is a cached piece of data whose expiration time has passed, but the database row remains unremoved in one of the database tables.
WordPress uses transients to store time-sensitive data like API responses or heavy query results, or in this case data about top posts.
So, if your Top Posts Widget isn’t updating, your site may have an expired transient that is not being deleted as it should be.
I found the following solution worked for me using a plugin. To solve the issue, try the following steps:
Install the Transients Manager plugin.
Search for any transient that starts with
jetpack_restapi_stats_cache_
followed by a random string of characters.
Delete any of these transients.
Then look to see if your Top Post Widget has been refreshed.
After using the Transients Manager plugin I deactivated it.
After checking the top post widget was working correctly for a week, I removed the plugin.

