{"id":337434,"date":"2026-08-06T05:41:48","date_gmt":"2026-08-06T05:41:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/image-sweep-media-cleaner\/"},"modified":"2026-08-06T05:41:25","modified_gmt":"2026-08-06T05:41:25","slug":"sweepify","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/sweepify\/","author":23498196,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.3","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Sweepify \u2013 Images Cleaner","header_author":"ExertPro","header_description":"Safely scan, detect, and clean unused, orphaned, duplicate, and oversized media files with a modern dashboard. Nothing is ever permanently deleted without your review.","assets_banners_color":"","last_updated":"2026-08-06 05:41:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/search\/sweepify\/","header_author_uri":"https:\/\/exertpro.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"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":"exertpro","date":"2026-08-06 05:41:25"}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3636107,"resolution":"1","location":"assets","locale":"","width":900,"height":534},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3636107,"resolution":"2","location":"assets","locale":"","width":900,"height":534},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3636107,"resolution":"3","location":"assets","locale":"","width":900,"height":534},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3636107,"resolution":"4","location":"assets","locale":"","width":900,"height":534},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3636107,"resolution":"5","location":"assets","locale":"","width":900,"height":534},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3636107,"resolution":"6","location":"assets","locale":"","width":900,"height":534}},"screenshots":{"1":"Dashboard showing media statistics and recoverable storage estimate.","2":"Scan page with live progress bar during a background scan.","3":"Tabbed scan results with image previews, file sizes, and confidence scores.","4":"Bulk action bar for selecting and trashing, restoring, ignoring, or permanently deleting files.","5":"Settings page with scan, safety, and exclusion configuration options."}},"plugin_section":[],"plugin_tags":[238093,253777,274598,274599,146945],"plugin_category":[],"plugin_contributors":[269539,267320,173473],"plugin_business_model":[],"class_list":["post-337434","plugin","type-plugin","status-publish","hentry","plugin_tags-duplicate-images","plugin_tags-media-cleanup","plugin_tags-orphan-media","plugin_tags-storage-optimization","plugin_tags-unused-images","plugin_contributors-azizul96","plugin_contributors-exertpro","plugin_contributors-suvronur","plugin_committers-exertpro"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/sweepify.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-1.jpg?rev=3636107","caption":"Dashboard showing media statistics and recoverable storage estimate."},{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-2.jpg?rev=3636107","caption":"Scan page with live progress bar during a background scan."},{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-3.jpg?rev=3636107","caption":"Tabbed scan results with image previews, file sizes, and confidence scores."},{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-4.jpg?rev=3636107","caption":"Bulk action bar for selecting and trashing, restoring, ignoring, or permanently deleting files."},{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-5.jpg?rev=3636107","caption":"Settings page with scan, safety, and exclusion configuration options."},{"src":"https:\/\/ps.w.org\/sweepify\/assets\/screenshot-6.jpg?rev=3636107","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Sweepify \u2013 Images Cleaner<\/strong> gives you a safe, professional media management dashboard to reclaim disk space and keep your WordPress media library clean \u2014 without ever risking your live content.<\/p>\n\n<p>Every cleanup action goes through a protected trash first. You can restore any file at any time before permanently deleting it.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Unused image detection<\/strong> \u2014 scans posts, pages, widgets, menus, theme mods, featured images, and site options<\/li>\n<li><strong>Orphaned media detection<\/strong> \u2014 finds attachment records without files (phantom) and files on disk without attachment records (untracked)<\/li>\n<li><strong>Duplicate detection<\/strong> \u2014 identifies duplicate files using MD5 hash comparison<\/li>\n<li><strong>Oversized image flagging<\/strong> \u2014 configurable file size (MB) and pixel dimension thresholds<\/li>\n<li><strong>Obsolete thumbnail detection<\/strong> \u2014 finds thumbnail sizes no longer registered in your theme<\/li>\n<li><strong>Elementor deep scan<\/strong> \u2014 scans Elementor JSON data, backgrounds, galleries, and templates (requires Elementor)<\/li>\n<li><strong>WooCommerce scanning<\/strong> \u2014 scans product images, galleries, variations, and category thumbnails (requires WooCommerce)<\/li>\n<li><strong>ACF field scanning<\/strong> \u2014 scans image, file, and gallery fields (requires Advanced Custom Fields)<\/li>\n<li><strong>Safe cleanup workflow<\/strong> \u2014 Scan \u2192 Review \u2192 Trash \u2192 Restore \u2192 Permanent Delete<\/li>\n<li><strong>Plugin-controlled trash<\/strong> \u2014 trashed files are moved to your uploads directory and can be restored at any time<\/li>\n<li><strong>Ignore list<\/strong> \u2014 exclude specific attachments, file paths, or folders from all scans<\/li>\n<li><strong>Background processing<\/strong> \u2014 scans run in small chunks via WP-Cron to avoid timeouts on large sites<\/li>\n<li><strong>Live progress bar<\/strong> \u2014 real-time scan progress via REST API polling<\/li>\n<li><strong>Safety Mode<\/strong> \u2014 prevents accidental permanent deletion; all cleanup goes through trash first<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Go to <strong>Sweepify<\/strong> in your WordPress admin menu<\/li>\n<li>Click <strong>Start New Scan<\/strong><\/li>\n<li>Wait for the background scan to complete (progress bar shows live status)<\/li>\n<li>Review results by category: Unused, Duplicates, Broken, Oversized, Thumbnails<\/li>\n<li>Select files and click <strong>Move to Trash<\/strong><\/li>\n<li>Restore any file from trash if needed<\/li>\n<li>Only permanently delete when you are confident<\/li>\n<\/ol>\n\n<h4>Safety First<\/h4>\n\n<p>Sweepify never permanently deletes anything automatically. Every file goes through a protected trash folder inside your uploads directory (<code>uploads\/wpic-trash\/<\/code>). You can restore any trashed file at any time.<\/p>\n\n<p>Permanent deletion requires a timed confirmation token and, if Safety Mode is enabled, an extra confirmation step in Settings.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong> in your WordPress admin<\/li>\n<li>Search for <strong>Sweepify<\/strong><\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<li>Go to <strong>Sweepify<\/strong> in your admin menu to run your first scan<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file<\/li>\n<li>Go to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong><\/li>\n<li>Upload the zip file and click <strong>Install Now<\/strong><\/li>\n<li>Click <strong>Activate Plugin<\/strong><\/li>\n<li>Go to <strong>Sweepify<\/strong> in your admin menu<\/li>\n<\/ol>\n\n<h4>After Activation<\/h4>\n\n<ol>\n<li>Navigate to <strong>Sweepify<\/strong> in the left admin menu<\/li>\n<li>You will see the <strong>Dashboard<\/strong> with your current media library statistics<\/li>\n<li>Click <strong>Start New Scan<\/strong> to begin<\/li>\n<li>The scan runs in the background \u2014 you can leave the page and come back<\/li>\n<li>When complete, click <strong>View Last Scan Results<\/strong> to review detected issues<\/li>\n<li>Use the tabs to filter by issue type: Unused, Duplicates, Broken, Oversized, Thumbnails<\/li>\n<li>Select items and use the bulk action buttons to Move to Trash, Restore, Ignore, or Delete Permanently<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<p>Go to <strong>Sweepify &gt; Settings<\/strong> to configure:<\/p>\n\n<ul>\n<li><strong>Chunk Size<\/strong> \u2014 how many attachments are processed per background job (default: 100)<\/li>\n<li><strong>Max File Size<\/strong> \u2014 file size threshold for oversized detection (default: 2 MB)<\/li>\n<li><strong>Max Dimension<\/strong> \u2014 pixel dimension threshold for oversized detection (default: 3000px)<\/li>\n<li><strong>Safety Mode<\/strong> \u2014 toggle to require extra confirmation before permanent deletion (default: ON)<\/li>\n<li><strong>Trash Retention<\/strong> \u2014 how many days trashed files remain restorable (default: 30 days)<\/li>\n<li><strong>Excluded Folders<\/strong> \u2014 folder paths (relative to uploads) to skip during scanning<\/li>\n<li><strong>Excluded MIME Types<\/strong> \u2014 file types to skip entirely (SVG, GIF, PDF, MP4, MP3)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20plugin%20delete%20my%20images%20automatically%3F\"><h3>Will this plugin delete my images automatically?<\/h3><\/dt>\n<dd><p>Never. Every action requires your explicit review and confirmation. Files are moved to a protected trash folder first and can be restored at any time.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20use%20on%20large%20sites%3F\"><h3>Is it safe to use on large sites?<\/h3><\/dt>\n<dd><p>Yes. Scans run in small background chunks to avoid memory exhaustion and request timeouts. You can configure the chunk size in Settings.<\/p><\/dd>\n<dt id=\"where%20do%20trashed%20files%20go%3F\"><h3>Where do trashed files go?<\/h3><\/dt>\n<dd><p>Trashed files are moved to <code>wp-content\/uploads\/wpic-trash\/<\/code> and remain there until you permanently delete them or the retention period expires.<\/p><\/dd>\n<dt id=\"can%20i%20restore%20trashed%20files%3F\"><h3>Can I restore trashed files?<\/h3><\/dt>\n<dd><p>Yes. Go to the Scan Results page, switch to the Trash tab, select the files you want to restore, and click Restore.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. If Elementor is active, the scanner will deep-scan all Elementor page data, templates, backgrounds, and galleries to ensure those images are not incorrectly flagged as unused.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. If WooCommerce is active, the scanner will scan product images, product galleries, variation images, and category thumbnails.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20advanced%20custom%20fields%20%28acf%29%3F\"><h3>Does it work with Advanced Custom Fields (ACF)?<\/h3><\/dt>\n<dd><p>Yes. If ACF is active, the scanner will detect images stored in ACF image, file, and gallery fields and exclude them from being flagged as unused.<\/p><\/dd>\n<dt id=\"what%20is%20safety%20mode%3F\"><h3>What is Safety Mode?<\/h3><\/dt>\n<dd><p>Safety Mode is enabled by default. When active, it blocks permanent deletion so all cleanup must go through the trash first. You can disable it in Settings &gt; Safety if you want to allow direct permanent deletion after trashing.<\/p><\/dd>\n<dt id=\"what%20does%20the%20confidence%20score%20mean%3F\"><h3>What does the confidence score mean?<\/h3><\/dt>\n<dd><p>Each detected item has a confidence score (0\u2013100%) indicating how certain the scanner is that the file is safe to remove. Higher scores mean the file is more likely genuinely unused. Always review before deleting.<\/p><\/dd>\n<dt id=\"will%20it%20affect%20my%20site%20performance%20during%20a%20scan%3F\"><h3>Will it affect my site performance during a scan?<\/h3><\/dt>\n<dd><p>No. Scans run in the background via WP-Cron in small chunks. Your site remains fully functional during a scan.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Unused, orphaned, duplicate, oversized, and thumbnail scanning.<\/li>\n<li>Background processing with live progress bar.<\/li>\n<li>Safe trash workflow with restore capability.<\/li>\n<li>Elementor, WooCommerce, and ACF integration.<\/li>\n<li>Ignore list for attachments, paths, and folders.<\/li>\n<li>Safety Mode and timed confirmation for permanent deletion.<\/li>\n<\/ul>","raw_excerpt":"Safely scan, detect, and clean unused, orphaned, duplicate, and oversized media files. Nothing is permanently deleted without your review.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337434"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/exertpro"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337434"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337434"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337434"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337434"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337434"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}