{"id":296960,"date":"2026-08-16T14:39:18","date_gmt":"2026-08-16T14:39:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/media-library-audit\/"},"modified":"2026-08-16T14:38:58","modified_gmt":"2026-08-16T14:38:58","slug":"unkfrank-media-library-audit","status":"publish","type":"plugin","link":"https:\/\/ms.wordpress.org\/plugins\/unkfrank-media-library-audit\/","author":1186522,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.1.1","stable_tag":"3.1.1","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Unkfrank Media Library Audit","header_author":"Unkle Frank's Workspace","header_description":"Scan your media library and see which images are actually in use and which are orphaned. Detects usage across post content, featured images, ACF fields, WooCommerce galleries, Gutenberg, Divi\/Elementor and other page builders, widgets, term & user meta, the Customizer, and site logo\/icon.","assets_banners_color":"15273f","last_updated":"2026-08-16 14:38:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.1.1":{"tag":"3.1.1","author":"UnkFrank","date":"2026-08-16 14:38:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3649844,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3649844,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3649844,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3649844,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[238093,240099,233,274088,146945],"plugin_category":[],"plugin_contributors":[78154,275987],"plugin_business_model":[],"class_list":["post-296960","plugin","type-plugin","status-publish","hentry","plugin_tags-duplicate-images","plugin_tags-image-cleanup","plugin_tags-media-library","plugin_tags-orphaned-images","plugin_tags-unused-images","plugin_contributors-freemius","plugin_contributors-unkfrank","plugin_committers-unkfrank"],"banners":{"banner":"https:\/\/ps.w.org\/unkfrank-media-library-audit\/assets\/banner-772x250.png?rev=3649844","banner_2x":"https:\/\/ps.w.org\/unkfrank-media-library-audit\/assets\/banner-1544x500.png?rev=3649844","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/unkfrank-media-library-audit\/assets\/icon-128x128.png?rev=3649844","icon_2x":"https:\/\/ps.w.org\/unkfrank-media-library-audit\/assets\/icon-256x256.png?rev=3649844","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Media Library Audit<\/strong> scans your entire WordPress site and shows you which images are actually being used \u2014 and which are just taking up space.<\/p>\n\n<p>Run a scan from <strong>Media \u2192 Library Audit<\/strong> to get a visual report of:<\/p>\n\n<ul>\n<li><strong>Orphaned images<\/strong> \u2014 files referenced nowhere on your site<\/li>\n<li><strong>In-use images<\/strong> \u2014 with links to exactly where each one appears<\/li>\n<li><strong>Reclaimable disk space<\/strong> \u2014 how much you'd save by removing the unused ones<\/li>\n<\/ul>\n\n<p><strong>Deep detection.<\/strong> An image is counted as in-use across:<\/p>\n\n<ul>\n<li>Posts, pages, and custom post types<\/li>\n<li>Featured images<\/li>\n<li>ACF image &amp; gallery fields<\/li>\n<li>WooCommerce product galleries<\/li>\n<li>Gutenberg blocks and galleries<\/li>\n<li>Divi, Elementor, Beaver Builder, WPBakery and other page builders<\/li>\n<li>Widgets and the Customizer<\/li>\n<li>Taxonomy term meta and user profile meta<\/li>\n<li>Site logo and favicon<\/li>\n<\/ul>\n\n<p><strong>Scanning is free and strictly read-only<\/strong> \u2014 it scans and reports, and never changes your site.<\/p>\n\n<p>Removal, backup, duplicate detection and the Recycle Bin are provided by a separate plugin, available from https:\/\/wp-media-audit.com<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin uses Freemius, a licensing and software-update service, for its optional usage-data opt-in and for update checks. The scanner works fully without it.<\/p>\n\n<p>Data sent to Freemius, and when:<\/p>\n\n<ul>\n<li>On activation, the plugin shows an optional opt-in prompt for anonymous usage data. You can skip it, and the free features still work. If you opt in, it shares your site URL, your WordPress and PHP versions, and your admin email address to help improve the plugin.<\/li>\n<li>During update checks, it contacts Freemius to see whether a newer version is available.<\/li>\n<\/ul>\n\n<p>Your media files, image contents, and scan results are never sent to Freemius or anywhere else \u2014 all scanning happens on your own server.<\/p>\n\n<p>Freemius terms of service: https:\/\/freemius.com\/terms\/\nFreemius privacy policy: https:\/\/freemius.com\/privacy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress: <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, choose the ZIP, then <strong>Install Now \u2192 Activate<\/strong>.<\/li>\n<li>Go to <strong>Media \u2192 Library Audit<\/strong> and click <strong>Run Scan<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20scanning%20change%20anything%20on%20my%20site%3F\"><h3>Does scanning change anything on my site?<\/h3><\/dt>\n<dd><p>No. Scanning is strictly read-only \u2014 it only reports.<\/p><\/dd>\n<dt id=\"will%20the%20scan%20time%20out%20on%20a%20large%20library%3F\"><h3>Will the scan time out on a large library?<\/h3><\/dt>\n<dd><p>No. It scans in batches with a progress bar, so it handles thousands of images.<\/p><\/dd>\n<dt id=\"how%20do%20i%20remove%20the%20unused%20images%3F\"><h3>How do I remove the unused images?<\/h3><\/dt>\n<dd><p>This plugin reports only; it never modifies your library. Removal, backups and the Recycle Bin are handled by a separate plugin available from https:\/\/wp-media-audit.com<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20of%20my%20images%20or%20data%20anywhere%3F\"><h3>Does the plugin send any of my images or data anywhere?<\/h3><\/dt>\n<dd><p>No. Scanning is entirely local to your site \u2014 your media files and library contents are never transmitted anywhere. The only external connection is to Freemius (see \"External services\" below), and that never includes your media.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Admin CSS and JavaScript are now registered and enqueued as separate asset files instead of being printed inline.<\/li>\n<li>All functions, constants and hooks now use the unkfmla_ prefix to avoid collisions with other plugins.<\/li>\n<li>Cleanup, backup, duplicate-detection and Recycle Bin code is no longer part of this plugin.<\/li>\n<\/ul>\n\n<h4>3.0.9<\/h4>\n\n<ul>\n<li>The licensing SDK is now managed as a Composer dependency and installed to vendor\/freemius\/wordpress-sdk, so it is identifiable as a third-party library. No functional changes.<\/li>\n<\/ul>\n\n<h4>3.0.7<\/h4>\n\n<ul>\n<li>Updated the licensing SDK integration for full WordPress.org compatibility.<\/li>\n<\/ul>\n\n<h4>3.0.6<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Unkfrank Media Library Audit\" for a distinctive name on WordPress.org.<\/li>\n<\/ul>\n\n<h4>3.0.5<\/h4>\n\n<ul>\n<li>Updated the \"Tested up to\" version and minor code cleanup for WordPress.org.<\/li>\n<\/ul>\n\n<h4>3.0.4<\/h4>\n\n<ul>\n<li>Moved the bundled licensing SDK to the standard vendor directory for WordPress.org compatibility. No functional changes.<\/li>\n<\/ul>\n\n<h4>3.0.3<\/h4>\n\n<ul>\n<li>Added a clear disclosure of the Freemius licensing connection and confirmed that media files never leave your site.<\/li>\n<li>Minor housekeeping for WordPress.org.<\/li>\n<\/ul>\n\n<h4>3.0.2<\/h4>\n\n<ul>\n<li>Every Pro endpoint now verifies the license before doing any work.<\/li>\n<li>The Recycle Bin auto-purge no longer runs without an active license, so nothing is deleted while restore is unavailable.<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Updated the Freemius SDK to 2.13.4.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Consolidated the free scanner and the Pro cleanup tools into a single plugin.<\/li>\n<li>Licensing, seat limits, renewals, and automatic updates are now handled by Freemius.<\/li>\n<li>Removed the previous standalone license system.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Detection engine \u2014 ACF, WooCommerce, Gutenberg, Divi, Elementor and other page builders, term\/user meta, site identity.<\/li>\n<li>Chunked scanning with a progress bar (no timeouts on large libraries).<\/li>\n<\/ul>","raw_excerpt":"Find unused and duplicate images in your WordPress media library and see how much disk space you can reclaim. Scanning is free and read-only.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296960"}],"author":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/unkfrank"}],"wp:attachment":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296960"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296960"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296960"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296960"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296960"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}