5,233 GPL Products · Updated DailyPRO Versions Available · Instant Download
Revision Retention 1.2.0 – WordPress Plugin

Revision Retention

v1.2.0 Updated 3 days ago Live Demo ↗
Download Revision Retention 1.2.0
Free download · version 1.2.0

Description

At a glance

Revision Retention v1.2.0 — free WordPress plugin download. Key facts: updated September 29, 2026 · requires WordPress 6.7+ & PHP 8.2+.

WordPress keeps post revisions forever unless you set WP_POST_REVISIONS, and even then the only thing you can set is a count that applies to the whole site and only takes effect while a post is being saved. A site that has been running for a few years ends up with tens of thousands of revisions nobody will ever open, slowing down queries and padding out every backup.

This plugin gives revisions a retention policy instead:

  • Always keep the newest few. A floor that is never crossed, however old those revisions are.
  • Remove what is older than a threshold. Anything past the floor and past the age you pick, from a week up to five years.
  • Set both per post type. Long history for posts, a short leash on pages, nothing at all for a custom post type that churns.
  • Clean up what is already there. A scheduled sweep works through the site in batches, so an old site with a large wp_posts table is cleaned up over several quiet runs rather than one heavy one.

The two numbers work together

This is the part worth understanding, because it is what keeps the plugin safe to switch on:

  • Always keep is a floor. The newest N revisions of a post are never deleted, whatever their age.
  • Remove older than is a ceiling, and it only applies to what is left above the floor.

So a page that was last edited three years ago, with forty revisions and a policy of keep 5, remove older than 365 days, keeps its five most recent revisions and loses the other thirty-five. It does not lose its whole history just because all of it is old.

Setting Always keep to -1 means every revision is retained and that post type is never swept, whatever the age threshold says.

Autosaves are never touched. An autosave is somebody’s unsaved work rather than a point in the history.

Enable revisions where WordPress does not

Some post types ship without revision support, so nothing is recorded at all. The settings screen lists every eligible post type with a checkbox to switch revisions on for it. It applies from the next time such a post is saved.

On a schedule

The sweep runs in the background at an interval you choose. Every run books the next one itself: another batch in a minute while there is work left, or the next full run at your interval once the site is clean. A sweep that gets interrupted continues where it stopped instead of starting over.

There are also Preview and Run one batch now buttons on the settings screen. Preview reports what the policy would remove without deleting anything.

A log of every sweep

The log is on from the start, and every sweep that removes revisions gets an entry on the Logs tab: whether the schedule, somebody on the settings screen, or WP-CLI ran it, who that was, how many revisions it removed from how many posts, and per post type. A sweep spread over many batches is one entry. The tab shows them on a timeline, with a bar per day for the last month. Entries are kept for as long as you choose, from a week to a year, and older ones are deleted daily. Previews are never logged, and the log can be switched off on the Logs tab.

Each site keeps its own log, next to its own revisions. On multisite the network screen’s Logs tab shows every site’s log together on one timeline, with each entry naming the site it ran on and linking to that site’s own log.

From WP-CLI

# What is the policy, and what has it still got to do?
wp revision-retention status

# The rule and the stored revisions of every post type.
wp revision-retention post-types

# See what would go, without deleting anything.
wp revision-retention run --dry-run

# Apply the policy to pages only.
wp revision-retention run --post-type=page --yes

On multisite

The network admin sets the defaults for every site, under Network Admin Settings Revision Retention. A switch there decides whether sites may override them. When they may, each site’s own screen inherits every field it leaves empty and shows the network value behind it; when they may not, that screen reports the policy and nothing more.

Settings travel the other way too. Once you have a policy on one site that you want everywhere, Save as network default on that site’s screen makes it the default for the whole network and drops the site’s own copy, so the site simply inherits what it already had. Sites with settings of their own keep them; only the defaults underneath move. The button only appears for a network administrator, since it decides what every other site starts from.

When the network keeps the policy to itself, a site’s screen can still Preview — reading what the policy would take away costs nothing — but only a network administrator can actually sweep that site. Otherwise a network could switch the scheduled sweep off and a site administrator could still delete by hand, which is the opposite of what locking the policy is for.

The network screen can Preview every site, walking the whole network and reporting what the policy would remove without deleting anything, Sweep every site now, which does the same and deletes as it goes, site after site, with a progress bar and an entry in each site’s log, and Schedule a sweep on every site, which leaves the work to WP-Cron on each site instead. Both pass over the sites that have switched the sweep off. The sweep itself always runs per site, under whatever policy that site ends up with.

Its Logs tab brings the log of every site together, so you can see what was removed across the network, where, and by whom, without opening each site in turn.

For developers

// Never touch these posts, whatever the policy says.
add_filter( 'revision_retention_excluded_posts', fn( $ids ) => [ ...$ids, 42, 108 ] );

// Decide the rule for a post type in code.
add_filter( 'revision_retention_rule', function ( $rule, $post_type ) {
    return 'page' === $post_type ? new Retention_Rule( 20, 90 ) : $rule;
}, 10, 2 );

// Change which post types can have a policy at all.
add_filter( 'revision_retention_eligible_post_types', $callback );

Deletion goes through wp_delete_post_revision() rather than a bulk query, so post meta and term relationships are cleaned up the way WordPress expects and other plugins see the hooks they are listening for.

Development happens at github.com/acato-plugins/revision-retention.

Frequently asked questions

What do I get when I download Revision Retention?

Revision Retention 1.2.0 is the latest version. It is a WordPress plugin you can download here free of charge under the GPL license, with the complete feature set included and no trial limitations.

Does Revision Retention cost anything?

No. Revision Retention 1.2.0 is 100% free — the full GPL version, not a trial or demo. There are no download limits, no accounts to create, and no upsells during the download.

How do I install Revision Retention 1.2.0?

Download the ZIP file from this page, then in your WordPress dashboard go to Plugins → Add New → Upload Plugin, choose the file, click Install Now, then Activate. The plugin works immediately after activation — no license key or extra setup is required for the core features.

What are the requirements for Revision Retention?

Revision Retention 1.2.0 requires WordPress 6.7 or higher and PHP 8.2 or higher. Most modern WordPress hosts already meet these versions. Running older versions may cause features to break, so update WordPress and PHP first if your site is behind.

When was Revision Retention last updated?

Version 1.2.0 was last updated on September 29, 2026. This page is refreshed automatically, so the download here always matches the newest version we have verified.

Is the Revision Retention download safe?

The file is sourced directly from the official WordPress.org repository — the same file the developer published. It is served unmodified, so what you install here is byte-identical to the official release.

Version: 1.2.0
Updated: October 1, 2026

Technical details

Version1.2.0
Last updatedSeptember 29, 2026
Requires WordPress6.7 or higher
Requires PHP8.2 or higher
AuthorAcato
Tagscleanup, database, performance, post-types, revisions
Demo Revision Retention

Download Revision Retention

Download Revision Retention WP Plugin

Official Page ↗

Note: if the download does not start, disable your ad blocker and try again.

Leave a Comment