{"id":364683,"date":"2026-09-07T22:00:49","date_gmt":"2026-09-07T22:00:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/elevoire-media-cleaner\/"},"modified":"2026-09-07T22:00:28","modified_gmt":"2026-09-07T22:00:28","slug":"elevoire-media-cleaner","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/elevoire-media-cleaner\/","author":23535813,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Elevoire Media Cleaner","header_author":"Elevoire","header_description":"Identify unused, duplicate, and oversized media. Analyze your library and get clear insights without automatic deletions.","assets_banners_color":"6f6f6f","last_updated":"2026-09-07 22:00:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/elevoire-media-cleaner\/","header_author_uri":"https:\/\/elevoire.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"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":"elevoire","date":"2026-09-07 22:00:28","revision":3685651}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3685651,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3685651,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3685651,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3685651,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 media health overview with storage statistics","2":"Scan \u2014 start, monitor, and resume batched media scans","3":"Media Audit \u2014 searchable and filterable table of all scanned files","4":"Duplicate Groups \u2014 files grouped by identical content","5":"Large Files \u2014 oversized media with recommendations","6":"Media Detail Panel \u2014 per-file audit with usage signals and recommendations","7":"Recommendations \u2014 actionable suggestions grouped by type"}},"plugin_section":[],"plugin_tags":[279622,238093,227565,233,219749],"plugin_category":[],"plugin_contributors":[272881,269240],"plugin_business_model":[],"class_list":["post-364683","plugin","type-plugin","status-publish","hentry","plugin_tags-clean-media","plugin_tags-duplicate-images","plugin_tags-media-cleaner","plugin_tags-media-library","plugin_tags-unused-media","plugin_contributors-elevoire","plugin_contributors-hassanraza","plugin_committers-elevoire"],"banners":{"banner":"https:\/\/ps.w.org\/elevoire-media-cleaner\/assets\/banner-772x250.png?rev=3685651","banner_2x":"https:\/\/ps.w.org\/elevoire-media-cleaner\/assets\/banner-1544x500.png?rev=3685651","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/elevoire-media-cleaner\/assets\/icon-128x128.png?rev=3685651","icon_2x":"https:\/\/ps.w.org\/elevoire-media-cleaner\/assets\/icon-256x256.png?rev=3685651","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Elevoire Media Cleaner<\/strong> helps WordPress administrators understand what is in their media library and why certain files might be consuming unnecessary storage.<\/p>\n\n<p>The plugin analyzes your media library and clearly reports:<\/p>\n\n<ul>\n<li>Media files that do not appear to be referenced anywhere<\/li>\n<li>Duplicate files detected by content hash<\/li>\n<li>Oversized files that may be affecting site performance<\/li>\n<li>Missing files (records in the database where the physical file no longer exists)<\/li>\n<li>Total storage consumption broken down by file type<\/li>\n<\/ul>\n\n<p><strong>The core philosophy is: Analyze first. Explain clearly. Never make destructive changes unexpectedly.<\/strong><\/p>\n\n<p>The plugin is entirely read-only. It does not delete files, modify posts, or change any content on your site. You remain in control of every decision.<\/p>\n\n<h4>Free Features<\/h4>\n\n<p><strong>Media Library Audit<\/strong>\nScan your full media library and collect detailed information about every attachment: file name, type, size, dimensions, upload date, and usage status.<\/p>\n\n<p><strong>Unused Media Detection<\/strong>\nDetect media files that do not appear to be referenced by any content. The scanner checks post content, featured images, site options, post\/page meta, nav menus, and Gutenberg block data. Results are classified as:<\/p>\n\n<ul>\n<li>In Use \u2014 references detected<\/li>\n<li>Likely Unused \u2014 no supported references found<\/li>\n<li>Possibly Used \u2014 uncertain<\/li>\n<\/ul>\n\n<p>Files marked as \"Likely Unused\" should always be reviewed before taking any action. A file can be used by theme code, custom plugins, CSS, JavaScript, or external systems that this scanner cannot detect.<\/p>\n\n<p><strong>Duplicate File Detection<\/strong>\nFind files with identical content using a file hash comparison. Duplicates are grouped so you can compare them and decide which copies to keep.<\/p>\n\n<p><strong>Large File Detection<\/strong>\nFlag media files that exceed a configurable size threshold (1 MB, 2 MB, 5 MB, or 10 MB). Large images receive a recommendation to compress or replace them.<\/p>\n\n<p><strong>Media Statistics Dashboard<\/strong>\nSee a clean overview of your library: total file count, total storage, file type breakdown, and counts for unused, duplicate, and large files.<\/p>\n\n<p><strong>Media Audit Table<\/strong>\nA searchable, filterable, and sortable table of all scanned media. Filter by type, usage status, or size. Sort by name, size, date, or type. Paginated to handle large libraries.<\/p>\n\n<p><strong>Detailed Media Information<\/strong>\nClick any file to see a detailed audit panel: file info, dimensions, upload date, detected usage signals, and the reason the file was flagged.<\/p>\n\n<p><strong>Recommendations<\/strong>\nPlain-language, informative recommendations for each flagged file. Recommendations explain what was found and why \u2014 never aggressive or alarmist.<\/p>\n\n<p><strong>Batched Scanning<\/strong>\nThe scanner processes your media in batches of 25 to avoid PHP timeouts and server overload. You can pause, resume, and cancel scans at any time.<\/p>\n\n<h4>Accuracy Notice<\/h4>\n\n<p>Media Cleaner identifies files that do not appear to be referenced by the content and data it can safely analyze. A file marked as \"Likely unused\" may still be used by a theme, plugin, custom code, external system, CSS, JavaScript, or another mechanism that this scanner cannot detect. Always review findings carefully before taking any action.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin collects no analytics, sends no data to external servers, and makes no external HTTP requests. All scanning happens entirely on your own WordPress installation. No account, license key, or registration is required.<\/p>\n\n<h4>Pro \u2014 Coming Soon<\/h4>\n\n<p>The free plugin is a complete, standalone media auditing tool. A future Pro version is planned to add:<\/p>\n\n<ul>\n<li>Safe media deletion workflow with review and confirmation<\/li>\n<li>Trash and recovery workflow<\/li>\n<li>Advanced unused-media detection across more content types<\/li>\n<li>WooCommerce product image usage detection<\/li>\n<li>Theme and plugin asset usage detection<\/li>\n<li>CSS and JavaScript reference analysis<\/li>\n<li>Backup integration before any cleanup action<\/li>\n<li>Scheduled media scans<\/li>\n<li>Advanced duplicate detection with visual similarity<\/li>\n<li>Bulk review and cleanup tools<\/li>\n<li>Detailed cleanup history and audit log<\/li>\n<li>Exportable media audit reports<\/li>\n<li>Priority support<\/li>\n<\/ul>\n\n<p>These features are planned and not yet available. Nothing in the free plugin is intentionally withheld \u2014 the free version is a fully functional media audit tool.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>elevoire-media-cleaner<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory, or install via the WordPress Plugins screen.<\/li>\n<li>Activate the plugin from the Plugins screen.<\/li>\n<li>Navigate to <strong>Media Cleaner<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Click <strong>Start Scan<\/strong> to begin analyzing your media library.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20plugin%20delete%20my%20media%20files%3F\"><h3>Will this plugin delete my media files?<\/h3><\/dt>\n<dd><p>No. The free version is a read-only analysis tool. It never deletes, moves, or modifies any files or content on your site.<\/p><\/dd>\n<dt id=\"how%20accurate%20is%20the%20%22likely%20unused%22%20detection%3F\"><h3>How accurate is the \"Likely Unused\" detection?<\/h3><\/dt>\n<dd><p>The scanner checks multiple sources: post\/page content, featured images, site options, post meta, and navigation menus. However, it cannot detect usage in theme templates, custom PHP code, CSS files, JavaScript files, or external systems. Always review \"Likely Unused\" files carefully before taking action.<\/p><\/dd>\n<dt id=\"my%20library%20has%20thousands%20of%20images.%20will%20the%20scan%20be%20slow%3F\"><h3>My library has thousands of images. Will the scan be slow?<\/h3><\/dt>\n<dd><p>The scan runs in batches of 25 attachments per request, so it will not time out on large libraries. The total time depends on your library size and server speed. You can leave the scan page and come back \u2014 progress is saved.<\/p><\/dd>\n<dt id=\"can%20i%20cancel%20a%20scan%20and%20start%20over%3F\"><h3>Can I cancel a scan and start over?<\/h3><\/dt>\n<dd><p>Yes. You can cancel a running scan at any time from the Scan page, then start a new scan.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20product%20images%3F\"><h3>Does this work with WooCommerce product images?<\/h3><\/dt>\n<dd><p>The free version checks standard WordPress attachment references. WooCommerce-specific product image usage detection is planned for a future Pro version.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%2C%20divi%2C%20or%20other%20page%20builders%3F\"><h3>Does this work with Elementor, Divi, or other page builders?<\/h3><\/dt>\n<dd><p>The scanner checks post meta for attachment IDs and URLs, which catches many page builder references. However, serialized or custom field storage used by some builders may not be fully detected. Results should be treated as indicators, not guarantees.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>The uninstall handler removes only the plugin's own database tables and option keys. It never removes media files, posts, pages, or any user content.<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20multisite%3F\"><h3>Does this work on multisite?<\/h3><\/dt>\n<dd><p>The plugin functions on individual sites within a multisite network. Network-wide management is not currently supported.<\/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>Media library audit with batched scanning<\/li>\n<li>Unused media detection with multi-signal analysis<\/li>\n<li>Duplicate file detection by content hash<\/li>\n<li>Large file detection with configurable threshold<\/li>\n<li>Missing file detection (records with no physical file)<\/li>\n<li>Media statistics dashboard<\/li>\n<li>Searchable, filterable, sortable media table<\/li>\n<li>Detailed per-file audit panel<\/li>\n<li>Plain-language recommendations<\/li>\n<li>Settings page for threshold configuration<\/li>\n<li>Secure AJAX scan workflow<\/li>\n<li>Full uninstall cleanup<\/li>\n<\/ul>","raw_excerpt":"Identify unused, duplicate, and oversized media. Analyze your library and get clear insights without automatic deletions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=364683"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elevoire"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364683"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364683"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364683"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364683"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364683"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}