{"id":334786,"date":"2026-07-14T04:23:47","date_gmt":"2026-07-14T04:23:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/media-audit\/"},"modified":"2026-08-21T10:28:44","modified_gmt":"2026-08-21T10:28:44","slug":"mgcora-unused-media-finder","status":"publish","type":"plugin","link":"https:\/\/fi.wordpress.org\/plugins\/mgcora-unused-media-finder\/","author":20501623,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"MGCora Unused Media Cleaner","header_author":"Madan G.C., Bishal Shrestha","header_description":"Find and safely remove unused media files (images, video, audio, PDFs, and more) from your WordPress media library to reclaim storage.","assets_banners_color":"6d7d92","last_updated":"2026-08-21 10:28:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.madangc.com.np","rating":0,"author_block_rating":0,"active_installs":0,"downloads":244,"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":"madan1gc","date":"2026-07-14 04:23:14"},"1.0.1":{"tag":"1.0.1","author":"madan1gc","date":"2026-08-11 11:34:35"},"1.0.2":{"tag":"1.0.2","author":"madan1gc","date":"2026-08-17 04:04:42"},"1.0.3":{"tag":"1.0.3","author":"madan1gc","date":"2026-08-21 10:28:44"}},"upgrade_notice":{"1.0.3":"<p>Confirms compatibility with WordPress 7.1 and fixes scheduled scans: changing the frequency now takes effect, and pending scans are cleared on deactivate\/uninstall.<\/p>","1.0.2":"<p>Closes false-positive gaps for WooCommerce product galleries, ACF Gallery\/Relationship fields, and Yoast\/RankMath social images; adds CSV export, optional scheduled scans, and fixes two settings that previously had no effect.<\/p>","1.0.1":"<p>Fixes a false positive where media used as a taxonomy term (category, tag, or custom taxonomy) thumbnail or in a term description could be wrongly marked as unused.<\/p>","1.0.0":"<p>Initial release of MGCora Unused Media Cleaner.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3641876,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3641876,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3641956,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3641956,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3641956,"resolution":"1","location":"assets","locale":"","width":1005,"height":748},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3641956,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3641956,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3641956,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3641956,"resolution":"5","location":"assets","locale":"","width":1200,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3641956,"resolution":"6","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Dashboard overview with media usage stats and reclaimable storage.","2":"Scanner with selectable scan depth (Quick, Standard, Deep) and live progress.","3":"Media List showing used\/unused status with filtering and bulk actions.","4":"Media detail view listing exactly where a file is used.","5":"Trash with restore and permanent-delete actions.","6":"Settings: Safe Mode, scan depth, post types, backup, email report, and scheduled scan options."}},"plugin_section":[],"plugin_tags":[227565,253777,233,146945,219749],"plugin_category":[52],"plugin_contributors":[271438,271439],"plugin_business_model":[],"class_list":["post-334786","plugin","type-plugin","status-publish","hentry","plugin_tags-media-cleaner","plugin_tags-media-cleanup","plugin_tags-media-library","plugin_tags-unused-images","plugin_tags-unused-media","plugin_category-performance","plugin_contributors-madan1gc","plugin_contributors-rainynewt","plugin_committers-madan1gc"],"banners":{"banner":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/banner-772x250.png?rev=3641956","banner_2x":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/banner-1544x500.png?rev=3641956","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/icon-128x128.png?rev=3641876","icon_2x":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/icon-256x256.png?rev=3641876","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-1.png?rev=3641956","caption":"Dashboard overview with media usage stats and reclaimable storage."},{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-2.png?rev=3641956","caption":"Scanner with selectable scan depth (Quick, Standard, Deep) and live progress."},{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-3.png?rev=3641956","caption":"Media List showing used\/unused status with filtering and bulk actions."},{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-4.png?rev=3641956","caption":"Media detail view listing exactly where a file is used."},{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-5.png?rev=3641956","caption":"Trash with restore and permanent-delete actions."},{"src":"https:\/\/ps.w.org\/mgcora-unused-media-finder\/assets\/screenshot-6.png?rev=3641956","caption":"Settings: Safe Mode, scan depth, post types, backup, email report, and scheduled scan options."}],"raw_content":"<!--section=description-->\n<p>Deleting unused media is easy. Deleting it without breaking your site is the hard part, and that is what this plugin is built for.<\/p>\n\n<p>Most cleanup tools call a file unused if they cannot find it in your post content. That misses media stored by page builders, custom fields, product galleries, taxonomy thumbnails, widgets, and theme settings, which is how cleanup tools end up deleting images that were still on your pages.<\/p>\n\n<p>MGCora Unused Media Cleaner checks all of those places, and then checks again at the moment you delete, so a file that is still referenced anywhere is not removed. Nothing is deleted without your confirmation, removals are backed up by default, and anything you remove can be restored.<\/p>\n\n<p>It covers your entire media library, not just images: video, audio, PDFs, and other documents are classified the same way. Works on personal blogs, business sites, WooCommerce stores, and agency portfolios alike.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Scan your entire WordPress media library<\/li>\n<li>Detect used and unused media of every type (images, video, audio, PDFs, and documents)<\/li>\n<li>Identify media used in posts, pages, and custom post types<\/li>\n<li>Detect featured images<\/li>\n<li>Scan media references stored in post meta (incl. page builders, ACF, WooCommerce galleries, and Yoast\/RankMath SEO images)<\/li>\n<li>Detect images used as taxonomy term thumbnails or in term descriptions<\/li>\n<li>Batch scanning for large media libraries<\/li>\n<li>Optional scheduled scans (daily\/weekly) via WP-Cron, with an emailed summary<\/li>\n<li>Export scan results to CSV<\/li>\n<li>Fast and lightweight performance<\/li>\n<li>Safe deletion workflow with restore-from-trash<\/li>\n<li>Clean and easy-to-use interface<\/li>\n<li>Built with WordPress coding standards<\/li>\n<\/ul>\n\n<h4>Why Use MGCora Unused Media Cleaner?<\/h4>\n\n<ul>\n<li>Free up server storage<\/li>\n<li>Keep your media library organized<\/li>\n<li>Reduce unnecessary backups<\/li>\n<li>Improve website maintenance<\/li>\n<li>Remove media with confidence<\/li>\n<li>Avoid deleting files that are still in use<\/li>\n<\/ul>\n\n<h4>Safe by Design<\/h4>\n\n<p>MGCora Unused Media Cleaner never assumes a file is safe to delete without checking where it is being used. Every scan is designed to minimize false positives by verifying media references before a file is marked as unused. You stay in complete control and can review the results before deleting anything.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Bloggers<\/li>\n<li>Business websites<\/li>\n<li>WooCommerce stores<\/li>\n<li>Agencies<\/li>\n<li>Developers<\/li>\n<li>Content creators<\/li>\n<li>Membership websites<\/li>\n<li>Portfolio websites<\/li>\n<\/ul>\n\n<h4>Source Code<\/h4>\n\n<p>The admin interface (<code>build\/index.js<\/code>) is a compiled JavaScript bundle built with <code>@wordpress\/scripts<\/code>. Its human-readable source ships with the plugin in the <code>src\/<\/code> directory, and <code>assets\/css\/admin.css<\/code> is compiled from <code>assets\/css\/admin.scss<\/code>. To rebuild both from source, run <code>npm install<\/code> followed by <code>npm run build<\/code> (see <code>package.json<\/code> for the exact build scripts).<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>MGCora Unused Media Cleaner runs entirely on your own server. It does not make any external HTTP requests, does not collect or transmit any data, and does not \"phone home.\" All scan data is stored in your site's own database and is removed when you uninstall the plugin.<\/p>\n\n<h4>Roadmap<\/h4>\n\n<p>Future releases will add support for:<\/p>\n\n<ul>\n<li>Additional page builders<\/li>\n<li>Storage reports<\/li>\n<li>One-click cleanup<\/li>\n<li>Advanced usage reports<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mgcora-unused-media-finder<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the Plugins screen in WordPress.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to Media \u2192 Unused Media to run your first scan.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20safe%20to%20use%20on%20a%20production%20site%3F\"><h3>Is this safe to use on a production site?<\/h3><\/dt>\n<dd><p>Yes. Every deletion requires explicit confirmation, and deleted files are moved to a trash folder where they can be restored. You can also enable Safe Mode in Settings to block bulk deletion entirely, and Backup Before Delete (on by default) keeps a copy of each removed file.<\/p><\/dd>\n<dt id=\"how%20does%20the%20scan%20work%3F\"><h3>How does the scan work?<\/h3><\/dt>\n<dd><p>The scanner analyzes your post content, featured images, post meta (including page builders and ACF fields), WooCommerce product galleries, SEO plugin social images (Yoast and Rank Math), taxonomy term thumbnails and descriptions (categories, tags, and custom taxonomies), widgets, menus, and theme customizations to build a complete picture of which media files are in use. Files not found in any of these sources are flagged as unused.<\/p>\n\n<p>Whatever the scan concluded, the same checks run again against the live database at the moment you delete a file. So even if a scan is old, or something started using a file after the scan finished, that file is not removed.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20page%20builder%3F\"><h3>Will it work with my page builder?<\/h3><\/dt>\n<dd><p>Page builders such as Elementor, WPBakery, and Beaver Builder store their media references in post meta, which the scanner reads, matching both attachment IDs and file paths (including resized versions such as image-300x200.jpg and CDN-rewritten URLs).<\/p>\n\n<p>If a builder or plugin stores references in an unusual way, the honest answer is that no tool can promise to recognize every possible format. That is exactly why this plugin re-checks at delete time, keeps a backup of every removed file, offers restore-from-trash, and has a Safe Mode that blocks bulk deletion entirely. Review the flagged list before deleting, and start with a small batch if you are unsure.<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20scan%20results%3F\"><h3>Can I export the scan results?<\/h3><\/dt>\n<dd><p>Yes. The Media List screen has an Export CSV button that exports the current scan, honoring whichever status filter you have applied, including the file name, status, size, type, and where each file was found in use.<\/p><\/dd>\n<dt id=\"can%20scans%20run%20automatically%20on%20a%20schedule%3F\"><h3>Can scans run automatically on a schedule?<\/h3><\/dt>\n<dd><p>Yes. In Settings you can set scans to run daily or weekly via WP-Cron, in addition to running them manually. Pair it with the email report to get a summary after each run.<\/p><\/dd>\n<dt id=\"i%20turned%20on%20email%20reports%20but%20no%20email%20arrives\"><h3>I turned on email reports but no email arrives<\/h3><\/dt>\n<dd><p>That is almost always the site's mail configuration rather than the plugin. WordPress sends mail through PHP's built-in mail() function by default, which many hosts do not deliver reliably.<\/p>\n\n<p>Use the Send Test Email button in Settings to check. It reports the actual result, and Settings also shows whether the last report was sent or failed, along with the error. If sending fails, install an SMTP plugin to route mail through a real mail service.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20files%20other%20than%20images%3F\"><h3>Does it work with files other than images?<\/h3><\/dt>\n<dd><p>Yes. MGCora Unused Media Cleaner scans your entire media library (images, video, audio, PDFs, and other documents) and classifies each file as used or unused the same way.<\/p><\/dd>\n<dt id=\"will%20it%20delete%20files%20automatically%3F\"><h3>Will it delete files automatically?<\/h3><\/dt>\n<dd><p>No. MGCora Unused Media Cleaner only flags unused media. You review the results and choose what to remove, and removed files can be restored from the trash.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1.<\/li>\n<li>Fix: changing the scheduled scan frequency (for example daily to weekly) did not take effect \u2014 the original schedule kept running while Settings showed the new one.<\/li>\n<li>Fix: pending scheduled scan batches were not cleared when the plugin was deactivated or uninstalled, leaving stale WP-Cron entries behind.<\/li>\n<li>Docs: corrected the Installation steps, which still pointed at the old \"MGCora\" menu name instead of Media \u2192 Unused Media.<\/li>\n<li>Docs: the FAQ now covers page builder support, CSV export, scheduled scans, and what to do when report emails do not arrive.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: media used only in a WooCommerce product image gallery, an ACF Gallery\/Relationship-style field, a Yoast SEO social image field, or a RankMath social image field could be wrongly marked as unused. The safety net used both during scanning and at delete time now checks all of these.<\/li>\n<li>New: \"Post Types to Scan\" and \"Send Email Report After Scan\" settings now actually take effect (previously saved but unused).<\/li>\n<li>New: export the current scan results (used or unused) to a CSV file from the Media List screen.<\/li>\n<li>New: optional scheduled scans (daily\/weekly) via WP-Cron, in addition to running scans manually.<\/li>\n<li>The Media submenu item is now labeled \"Unused Media\" instead of \"MGCora\".<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: images used as taxonomy term thumbnails (e.g. category\/destination\/product-category images) or embedded in term descriptions were incorrectly flagged as unused. The scanner and the delete-time safety check now also look at term meta and term descriptions across all taxonomies.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Find and safely remove unused media (images, video, audio, PDFs, and more) from your WordPress media library to reclaim storage.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/334786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=334786"}],"author":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/madan1gc"}],"wp:attachment":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=334786"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=334786"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=334786"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=334786"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=334786"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=334786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}