{"id":346369,"date":"2026-08-13T14:53:48","date_gmt":"2026-08-13T14:53:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wonderful-revision-cleaner\/"},"modified":"2026-08-13T14:53:39","modified_gmt":"2026-08-13T14:53:39","slug":"wonderful-revision-cleaner","status":"publish","type":"plugin","link":"https:\/\/nn.wordpress.org\/plugins\/wonderful-revision-cleaner\/","author":23357214,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Wonderful Revision Cleaner","header_author":"Wonderful Plugins","header_description":"Safely clean up outdated post revisions and their leftover metadata. Preview exactly what will be removed with a dry run, then delete by age or by keeping only the newest revisions per post.","assets_banners_color":"","last_updated":"2026-08-13 14:53:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wonderfulplugins.eu\/wonderful-revision-cleaner","header_author_uri":"https:\/\/wonderfulplugins.eu","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wonderfulplugins","date":"2026-08-13 14:53:39"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3645622,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3645622,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3645622,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1-de.jpg":{"filename":"screenshot-1-de.jpg","revision":3645622,"resolution":"1","location":"assets","locale":"de","width":2316,"height":1450},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3645622,"resolution":"1","location":"assets","locale":"","width":2316,"height":1450}},"screenshots":{"1":"The Revision Cleaner page under Tools: set your rules, preview exactly what would be removed, then delete safely."}},"plugin_section":[],"plugin_tags":[3786,153,187,247,6243],"plugin_category":[52,54,59],"plugin_contributors":[247385],"plugin_business_model":[],"class_list":["post-346369","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-database","plugin_tags-optimization","plugin_tags-performance","plugin_tags-revisions","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-wonderfulplugins","plugin_committers-wonderfulplugins"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/wonderful-revision-cleaner\/assets\/icon.svg?rev=3645622","icon":"https:\/\/ps.w.org\/wonderful-revision-cleaner\/assets\/icon.svg?rev=3645622","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wonderful-revision-cleaner\/assets\/screenshot-1.jpg?rev=3645622","caption":"The Revision Cleaner page under Tools: set your rules, preview exactly what would be removed, then delete safely."}],"raw_content":"<!--section=description-->\n<p>Over time WordPress stores a copy of every edit as a <em>post revision<\/em>. On busy sites this quietly bloats the <code>wp_posts<\/code> and <code>wp_postmeta<\/code> tables with thousands of rows you will never look at again \u2014 slowing down the database and inflating backups.<\/p>\n\n<p><strong>Wonderful Revision Cleaner<\/strong> gives you a simple, safe way to clean them up. You decide the rules, preview precisely what would be removed, and only then delete.<\/p>\n\n<h4>Two cleanup rules<\/h4>\n\n<ul>\n<li><strong>Keep newest revisions per post<\/strong> \u2014 keep only the <em>N<\/em> most recent revisions of each post and remove the rest (for example, keep 5).<\/li>\n<li><strong>Delete revisions older than X days<\/strong> \u2014 remove any revision older than a chosen age (for example, 30 days).<\/li>\n<\/ul>\n\n<p>Each rule has its own checkbox and both can be combined: a revision is removed as soon as at least one enabled rule applies. With no rule enabled, nothing can be deleted at all.<\/p>\n\n<h4>Safety first<\/h4>\n\n<ul>\n<li><strong>Dry run \/ preview<\/strong> \u2014 before anything is deleted, the preview shows exactly how many revisions match, how many posts are affected, and how many revision metadata (<code>postmeta<\/code>) and term-relationship rows would be cleaned up. Nothing is touched until you explicitly confirm.<\/li>\n<li><strong>Backup reminder<\/strong> \u2014 the tool reminds you to back up your database, because deleting revisions is permanent and can only be undone from a backup.<\/li>\n<li><strong>WordPress-native deletion<\/strong> \u2014 revisions are removed through the official <code>wp_delete_post_revision()<\/code> function, which also cleans up their metadata correctly. There are no raw <code>DELETE<\/code> queries against your tables.<\/li>\n<li><strong>Batched with a progress bar<\/strong> \u2014 very large sites are cleaned up in automatic batches so a single request never runs away; a progress bar runs the whole job to completion without freezing your browser. (If JavaScript is disabled, it falls back to one batch per click.)<\/li>\n<\/ul>\n\n<p>It is the ideal maintenance tool for blogs, magazines, and any content-heavy WordPress site that has accumulated years of revisions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wonderful-revision-cleaner<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Go to <strong>Tools &gt; Revision Cleaner<\/strong> in your admin dashboard.<\/li>\n<li><strong>Back up your database.<\/strong><\/li>\n<li>Set your cleanup rules, click <strong>Preview (dry run)<\/strong> to see exactly what would be removed, then click <strong>Delete revisions now<\/strong> when you are ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20delete%20anything%20besides%20revisions%3F\"><h3>Will this delete anything besides revisions?<\/h3><\/dt>\n<dd><p>No. It only removes rows whose post type is <code>revision<\/code>, together with the metadata and term relationships that belong to those revisions. Your published posts, pages, and their current content are never touched.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20do%20not%20set%20any%20rule%3F\"><h3>What happens if I do not set any rule?<\/h3><\/dt>\n<dd><p>Nothing is deleted. With neither checkbox ticked the preview simply reports that no rule is active, and the cleanup does nothing. This is the safe default.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20cleanup%3F\"><h3>Can I undo a cleanup?<\/h3><\/dt>\n<dd><p>Not from within the plugin \u2014 deleting revisions is permanent. That is why the tool always shows a preview first and reminds you to keep a current database backup. If you need to reverse a cleanup, restore your backup.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%20or%20contact%20any%20external%20service%3F\"><h3>Does it slow down my site or contact any external service?<\/h3><\/dt>\n<dd><p>No. The plugin runs only when you open its Tools page and click a button. It performs no background tasks, adds no front-end code, and never contacts any external service \u2014 all data stays on your own server.<\/p><\/dd>\n<dt id=\"my%20site%20has%20hundreds%20of%20thousands%20of%20revisions.%20will%20it%20time%20out%3F\"><h3>My site has hundreds of thousands of revisions. Will it time out?<\/h3><\/dt>\n<dd><p>Deletion runs in batches of 1,000 revisions, so a single request never runs away. The progress bar chains the batches automatically until nothing matching is left. Without JavaScript each click deletes one batch and the tool reports how many matching revisions remain, so you can click again until it reaches zero.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Safely clean up outdated post revisions and their leftover metadata \u2014 preview exactly what will be removed with a dry run before deleting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346369"}],"author":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wonderfulplugins"}],"wp:attachment":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346369"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346369"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346369"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346369"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346369"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}