{"id":373363,"date":"2026-10-16T16:10:51","date_gmt":"2026-10-16T16:10:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cleanflow-cleanup-optimization\/"},"modified":"2026-10-16T16:10:27","modified_gmt":"2026-10-16T16:10:27","slug":"cleanflow-cleanup-optimization","status":"publish","type":"plugin","link":"https:\/\/lug.wordpress.org\/plugins\/cleanflow-cleanup-optimization\/","author":21029920,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"CleanFlow - Cleanup & Optimization","header_author":"DITS Agency","header_description":"Review-first cleanup for WordPress data and old out-of-stock WooCommerce products.","assets_banners_color":"","last_updated":"2026-10-16 16:10:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"ditsagency","date":"2026-10-16 16:10:27","revision":3750753}},"upgrade_notice":{"1.0.1":"<p>Improves WordPress.org compatibility, input handling, and old product URL validation.<\/p>","1.0.0":"<p>Initial release of CleanFlow with manual WordPress and WooCommerce cleanup workflows.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"CleanFlow cleanup dashboard with available scan groups.","2":"Scan results showing found items and reasons for selection.","3":"Cleanup preview and keep list before running an operation.","4":"WordPress revisions and temporary data cleanup settings.","5":"WordPress revisions and temporary data cleanup results.","6":"Basic cleanup history."}},"plugin_section":[],"plugin_tags":[3786,153,84,6243,286],"plugin_category":[45,50,59],"plugin_contributors":[244243],"plugin_business_model":[],"class_list":["post-373363","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-database","plugin_tags-media","plugin_tags-revisions","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-ditsagency","plugin_committers-ditsagency"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/cleanflow-cleanup-optimization.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>CleanFlow helps you clean unnecessary WordPress data without manually working with the database.<\/p>\n\n<p>The plugin is built around a simple principle: <strong>show what can be cleaned, explain why it was selected, and let you review the action before anything is removed.<\/strong><\/p>\n\n<p>CleanFlow follows a review-first workflow:<\/p>\n\n<ol>\n<li>Scan for items that may be safe to clean.<\/li>\n<li>See what was found and why.<\/li>\n<li>Review the results and mark anything you want to keep.<\/li>\n<li>Preview what CleanFlow will do.<\/li>\n<li>Confirm and run the cleanup manually.<\/li>\n<\/ol>\n\n<p>The Free version focuses on complete manual cleanup. Core safety features such as previews, keep lists, and cleanup history are part of the free workflow.<\/p>\n\n<h4>WordPress Cleanup<\/h4>\n\n<p>Clean common WordPress data that can accumulate over time:<\/p>\n\n<ul>\n<li>Old post and page revisions<\/li>\n<li>Unused auto-saved drafts<\/li>\n<li>Spam comments<\/li>\n<li>Items in Trash<\/li>\n<li>Expired temporary WordPress data<\/li>\n<\/ul>\n\n<p>For revisions, you can keep a selected number of the most recent revisions instead of removing everything.<\/p>\n\n<p>Age limits and keep lists help you control which data is included in a cleanup.<\/p>\n\n<p>Regular saved drafts are not automatically removed.<\/p>\n\n<h4>Media Library Analysis<\/h4>\n\n<p>CleanFlow Free includes a careful media review workflow.<\/p>\n\n<p>The initial media module can identify:<\/p>\n\n<ul>\n<li>Media Library records whose original file is missing from disk<\/li>\n<li>Unattached media where no known use was found in supported places<\/li>\n<\/ul>\n\n<p>Known-use checks include media attached to posts, featured images, WooCommerce product galleries, common page content, and common custom-field references.<\/p>\n\n<p>Media scan results show found links, such as pages, posts, products, featured-image usage, gallery usage, and custom-field references, so you can review why a media item may or may not be safe to remove.<\/p>\n\n<p>Media review is intentionally careful. \"No known use found\" does not guarantee that a file is unused by every theme, builder, shortcode, custom field, or external integration.<\/p>\n\n<p>You can review media items, mark individual media items to keep, preview actions, and manually confirm cleanup before any media record or file is deleted.<\/p>\n\n<h4>WooCommerce Product Cleanup<\/h4>\n\n<p>CleanFlow also provides a cleanup workflow for WooCommerce stores with products that remain out of stock for extended periods.<\/p>\n\n<p>You can identify products that have continuously remained out of stock for:<\/p>\n\n<ul>\n<li>30 days<\/li>\n<li>60 days<\/li>\n<li>90 days<\/li>\n<li>A custom period<\/li>\n<\/ul>\n\n<p>If a product becomes available again, its out-of-stock timer is reset.<\/p>\n\n<p>Before taking action, you can:<\/p>\n\n<ul>\n<li>Review matched products<\/li>\n<li>See why each product was selected<\/li>\n<li>Review found links from pages and related product media<\/li>\n<li>Exclude individual products<\/li>\n<li>Exclude product categories<\/li>\n<li>Preview planned actions<\/li>\n<li>Preview actions before cleanup<\/li>\n<li>Move products to Trash<\/li>\n<li>Permanently delete products with separate confirmation<\/li>\n<\/ul>\n\n<p>Product availability is checked again immediately before a cleanup action.<\/p>\n\n<p>If the original date when a product became unavailable is unknown, CleanFlow starts tracking from the first recorded check.<\/p>\n\n<p>Orders and purchase history are not cleaned by the WooCommerce product cleanup module.<\/p>\n\n<p>The initial WooCommerce cleanup workflow focuses on simple products. Variable products are not included in the first release of this module.<\/p>\n\n<h4>Old Product URLs<\/h4>\n\n<p>When removing an outdated WooCommerce product, CleanFlow allows you to manually configure a redirect to a relevant replacement product or another appropriate page.<\/p>\n\n<p>A redirect is not required.<\/p>\n\n<p>When there is no suitable replacement, the old product URL can show a not-found or removed page instead of being automatically redirected to an unrelated category or page.<\/p>\n\n<p>If a previously removed product becomes available again at its original URL, its associated redirect can be disabled.<\/p>\n\n<h4>Preview First. Delete Second.<\/h4>\n\n<p>Cleanup should not require blind trust.<\/p>\n\n<p>CleanFlow is designed to show found items before destructive actions are performed.<\/p>\n\n<p>You can review:<\/p>\n\n<ul>\n<li>What CleanFlow found<\/li>\n<li>Why it was selected<\/li>\n<li>What action is planned<\/li>\n<li>Which items are marked to keep<\/li>\n<\/ul>\n\n<p>A preview lets you check planned actions without actually deleting data.<\/p>\n\n<p>Cleanup runs in smaller batches, with limits per run. Conditions are checked again before destructive actions.<\/p>\n\n<p>If an operation cannot be safely confirmed or a critical error occurs, the action should stop rather than continue blindly.<\/p>\n\n<p>Where WordPress provides a Trash workflow, CleanFlow uses it to make recovery possible before permanent deletion.<\/p>\n\n<h4>Cleanup History<\/h4>\n\n<p>CleanFlow keeps a basic cleanup history with actions and issues. The history can be exported to CSV, and clearing it requires explicit confirmation.<\/p>\n\n<p>For WooCommerce product cleanup, the log can also record:<\/p>\n\n<ul>\n<li>Products moved to Trash<\/li>\n<li>Products permanently deleted<\/li>\n<li>Reasons for cleanup actions<\/li>\n<li>Old product URL rules created during the cleanup workflow<\/li>\n<\/ul>\n\n<p>For media cleanup, the log records media records and files selected for cleanup and the reason each item was selected.<\/p>\n\n<p>Where available, result details and history exports include found links to pages, posts, products, media, content references, and custom-field references.<\/p>\n\n<p>This provides a clearer record of what happened during previous cleanup operations.<\/p>\n\n<h4>Free Means Manual Control<\/h4>\n\n<p>CleanFlow Free is designed as a functional manual cleanup tool, not simply a limited preview of the paid version.<\/p>\n\n<p>The Free workflow includes:<\/p>\n\n<ul>\n<li>Cleanup scanning<\/li>\n<li>Result previews<\/li>\n<li>Reasons items were selected<\/li>\n<li>Action previews<\/li>\n<li>Tabbed admin screens for cleanup workflow, settings, old product URLs, and cleanup history<\/li>\n<li>Keep lists<\/li>\n<li>Age-limit settings<\/li>\n<li>Manual cleanup<\/li>\n<li>Media Library analysis and manual media cleanup<\/li>\n<li>Safety checks<\/li>\n<li>Basic exportable cleanup history<\/li>\n<\/ul>\n\n<p>You decide what gets cleaned and when.<\/p>\n\n<h4>What CleanFlow Does Not Do<\/h4>\n\n<p>CleanFlow is focused on controlled cleanup and optimization workflows.<\/p>\n\n<p>It is not intended to replace:<\/p>\n\n<ul>\n<li>Backup plugins<\/li>\n<li>Caching plugins<\/li>\n<li>Image compression tools<\/li>\n<li>Antivirus or security plugins<\/li>\n<li>Full SEO plugins<\/li>\n<\/ul>\n\n<p>CleanFlow does not clean WooCommerce orders or users.<\/p>\n\n<p>Always maintain a current backup before performing irreversible cleanup operations.<\/p>\n\n<h4>Built to Grow<\/h4>\n\n<p>CleanFlow is being developed in stages.<\/p>\n\n<p>The initial Free releases focus on WordPress cleanup, WooCommerce product cleanup, and careful Media Library analysis.<\/p>\n\n<p>Future development is planned around additional cleanup and analysis workflows, including deeper media checks and more advanced automation.<\/p>\n\n<p>Planned features are not included in the current version unless explicitly stated in the changelog.<\/p>\n\n<h4>CleanFlow Pro<\/h4>\n\n<p>A future CleanFlow Pro version is planned to focus primarily on automation and reusable cleanup workflows.<\/p>\n\n<p>Planned Pro capabilities include:<\/p>\n\n<ul>\n<li>Scheduled cleanup<\/li>\n<li>Separate rule profiles for different data types and product groups<\/li>\n<li>Email reports<\/li>\n<li>More advanced cleanup history<\/li>\n<li>Multi-step cleanup workflows<\/li>\n<li>Advanced bulk operations and integrations<\/li>\n<\/ul>\n\n<p>Core safety checks are intended to remain part of both Free and Pro workflows.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cleanflow<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install CleanFlow through the WordPress Plugins screen.<\/li>\n<li>Activate <strong>CleanFlow - Cleanup &amp; Optimization<\/strong> through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open the CleanFlow screen in the WordPress admin area.<\/li>\n<li>Choose what CleanFlow should scan, set age limits, and add any items you want to keep.<\/li>\n<li>Run a scan and review what CleanFlow found.<\/li>\n<li>Use the preview before confirming cleanup.<\/li>\n<\/ol>\n\n<p>Before permanently deleting data, make sure you have a current backup of your website.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20cleanflow%20automatically%20delete%20data%3F\"><h3>Does CleanFlow automatically delete data?<\/h3><\/dt>\n<dd><p>The Free version is designed around manual cleanup. You review what CleanFlow found and confirm cleanup actions yourself.<\/p><\/dd>\n<dt id=\"can%20i%20preview%20what%20will%20be%20removed%3F\"><h3>Can I preview what will be removed?<\/h3><\/dt>\n<dd><p>Yes. The preview step is a core part of the cleanup workflow.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20delete%20normal%20saved%20drafts%3F\"><h3>Does CleanFlow delete normal saved drafts?<\/h3><\/dt>\n<dd><p>No. The WordPress cleanup workflow targets auto-drafts. Regular saved drafts are not automatically removed.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20recent%20revisions%3F\"><h3>Can I keep recent revisions?<\/h3><\/dt>\n<dd><p>Yes. The revisions cleanup is designed to allow a selected number of recent revisions to be retained.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20remove%20all%20temporary%20wordpress%20data%3F\"><h3>Does CleanFlow remove all temporary WordPress data?<\/h3><\/dt>\n<dd><p>The initial cleanup workflow targets expired temporary WordPress data rather than blindly removing all temporary data.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20work%20with%20woocommerce%3F\"><h3>Does CleanFlow work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The WooCommerce module is designed to identify simple products that have continuously remained out of stock for a selected period and allow you to review and clean them manually.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20an%20out-of-stock%20product%20becomes%20available%20again%3F\"><h3>What happens if an out-of-stock product becomes available again?<\/h3><\/dt>\n<dd><p>Its tracked out-of-stock period is reset. Product availability is also checked again before a cleanup action is performed.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20delete%20woocommerce%20orders%3F\"><h3>Does CleanFlow delete WooCommerce orders?<\/h3><\/dt>\n<dd><p>No. Orders and purchase history are not part of the WooCommerce product cleanup workflow.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20support%20variable%20products%3F\"><h3>Does CleanFlow support variable products?<\/h3><\/dt>\n<dd><p>The first WooCommerce cleanup release focuses on simple products. Variable product support is planned for a later Free update after its cleanup workflow has been validated separately.<\/p><\/dd>\n<dt id=\"are%20product%20images%20deleted%20together%20with%20products%3F\"><h3>Are product images deleted together with products?<\/h3><\/dt>\n<dd><p>Product cleanup does not automatically delete product images. Media review is handled as a separate manual workflow where each media item is reviewed before cleanup.<\/p>\n\n<p>Product scan results can show found featured images, gallery images, attached media, and page\/post references before you decide whether to trash or delete a product.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20know%20if%20every%20media%20file%20is%20unused%3F\"><h3>Does CleanFlow know if every media file is unused?<\/h3><\/dt>\n<dd><p>No. The Free media workflow checks known places, shows found links, and flags media items for review. A file may still be used by unsupported builders, shortcodes, custom fields, theme options, or external systems.<\/p><\/dd>\n<dt id=\"does%20cleanflow%20automatically%20redirect%20deleted%20products%3F\"><h3>Does CleanFlow automatically redirect deleted products?<\/h3><\/dt>\n<dd><p>No. Old product URL rules are intentionally controlled by the user. You can configure a redirect when a relevant replacement exists, but CleanFlow does not force unrelated redirects.<\/p><\/dd>\n<dt id=\"is%20cleanflow%20a%20database%20optimization%20plugin%3F\"><h3>Is CleanFlow a database optimization plugin?<\/h3><\/dt>\n<dd><p>CleanFlow can remove unnecessary WordPress data, but its main focus is controlled cleanup rather than low-level database maintenance. It does not blindly delete unknown tables or settings.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20backup%3F\"><h3>Do I need a backup?<\/h3><\/dt>\n<dd><p>A current backup is strongly recommended before any irreversible cleanup operation. CleanFlow is not a backup system.<\/p><\/dd>\n<dt id=\"what%20will%20cleanflow%20pro%20add%3F\"><h3>What will CleanFlow Pro add?<\/h3><\/dt>\n<dd><p>The planned Pro version focuses on automation, including scheduled cleanup, reusable rule profiles, and email reports. Additional advanced workflows may be added later.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Improved WordPress.org compatibility checks and input handling.<\/li>\n<li>Moved CleanFlow admin styles into a dedicated stylesheet.<\/li>\n<li>Prepared translations for delivery through translate.wordpress.org.<\/li>\n<li>Improved validation for replacement URLs used by old product URL rules.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Added cleanup for old WordPress revisions.<\/li>\n<li>Added auto-saved draft, spam comment, Trash, and expired temporary-data cleanup workflows.<\/li>\n<li>Added configurable age limits and keep lists.<\/li>\n<li>Added cleanup previews.<\/li>\n<li>Added manual batch cleanup and exportable cleanup history.<\/li>\n<li>Added WooCommerce simple-product cleanup based on continuous out-of-stock periods.<\/li>\n<li>Added WooCommerce product and category keep lists.<\/li>\n<li>Added Trash-first product removal workflow with separate permanent deletion confirmation.<\/li>\n<li>Added manual old URL rules for removed products.<\/li>\n<li>Added Media Library review for missing files and unattached media with no known use found.<\/li>\n<li>Added found-link visibility for product and media scan results.<\/li>\n<li>Added tabbed admin screens for workflow, settings, old product URLs, and cleanup history.<\/li>\n<li>Added stronger safety rechecks before cleanup actions.<\/li>\n<\/ul>","raw_excerpt":"Clean WordPress safely. Review what CleanFlow finds, understand why each item was selected, and stay in control before anything is deleted.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/373363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=373363"}],"author":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ditsagency"}],"wp:attachment":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=373363"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=373363"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=373363"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=373363"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=373363"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=373363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}