{"id":296983,"date":"2026-04-30T00:24:38","date_gmt":"2026-04-30T00:24:38","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/olivero-media-audit\/"},"modified":"2026-05-19T15:53:07","modified_gmt":"2026-05-19T15:53:07","slug":"oliverodev-media-audit","status":"publish","type":"plugin","link":"https:\/\/es-ec.wordpress.org\/plugins\/oliverodev-media-audit\/","author":23475617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.2.7","stable_tag":"3.2.7","tested":"6.8.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"OliveroDev Media Audit \u2013 Media Library Cleaner & Optimizer","header_author":"Alexis Olivero","header_description":"Identifies which media library files are in use in WordPress content and allows you to delete unused ones.","assets_banners_color":"31405c","last_updated":"2026-05-19 15:53:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/oliverodev.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":197,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.2.1":{"tag":"3.2.1","author":"oliverodev","date":"2026-04-30 00:27:34"},"3.2.2":{"tag":"3.2.2","author":"oliverodev","date":"2026-05-04 03:37:32"},"3.2.3":{"tag":"3.2.3","author":"oliverodev","date":"2026-05-04 03:54:54"},"3.2.4":{"tag":"3.2.4","author":"oliverodev","date":"2026-05-04 17:20:45"},"3.2.5":{"tag":"3.2.5","author":"oliverodev","date":"2026-05-19 13:55:57"},"3.2.6":{"tag":"3.2.6","author":"oliverodev","date":"2026-05-19 14:07:07"},"3.2.7":{"tag":"3.2.7","author":"oliverodev","date":"2026-05-19 15:53:07"}},"upgrade_notice":{"3.2.7":"<p>New: See exactly where each file is used, real-time scan progress, safer delete confirmation modal, and CSV export of unused files.<\/p>","3.2.6":"<p>Important fix: resolves false positives that caused unused media files to appear as &quot;Used&quot;. Upgrade recommended for all users.<\/p>","3.2.5":"<p>Minor update. Hides the PRO upgrade banner when the PRO add-on is already active.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3537480,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3537480,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.2.1","3.2.2","3.2.3","3.2.4","3.2.5","3.2.6","3.2.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3537480,"resolution":"1","location":"assets","locale":"","width":1920,"height":1307},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3537480,"resolution":"2","location":"assets","locale":"","width":1920,"height":1135},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3537480,"resolution":"3","location":"assets","locale":"","width":1920,"height":1557},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3537480,"resolution":"4","location":"assets","locale":"","width":1920,"height":1352}},"screenshots":{"1":"Dashboard with total library size, files in use, and storage to recover.","2":"Unused Files tab \u2014 full list of unreferenced media ready for cleanup.","3":"Media Library tab \u2014 full library view with used\/unused status and file details.","4":"Settings \u2014 configure batch size, scan frequency, and file type filters."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[227565,253777,233,254768,219749],"plugin_category":[],"plugin_contributors":[261471,261470],"plugin_business_model":[],"class_list":["post-296983","plugin","type-plugin","status-publish","hentry","plugin_tags-media-cleaner","plugin_tags-media-cleanup","plugin_tags-media-library","plugin_tags-media-optimizer","plugin_tags-unused-media","plugin_contributors-alexis-olivero","plugin_contributors-oliverodev","plugin_committers-oliverodev"],"banners":{"banner":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/banner-772x250.png?rev=3537480","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/icon-256x256.png?rev=3537480","icon_2x":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/icon-256x256.png?rev=3537480","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/screenshot-1.png?rev=3537480","caption":"Dashboard with total library size, files in use, and storage to recover."},{"src":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/screenshot-2.png?rev=3537480","caption":"Unused Files tab \u2014 full list of unreferenced media ready for cleanup."},{"src":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/screenshot-3.png?rev=3537480","caption":"Media Library tab \u2014 full library view with used\/unused status and file details."},{"src":"https:\/\/ps.w.org\/oliverodev-media-audit\/assets\/screenshot-4.png?rev=3537480","caption":"Settings \u2014 configure batch size, scan frequency, and file type filters."}],"raw_content":"<!--section=description-->\n<p><strong>Is your WordPress media library full of files nobody is using?<\/strong> Over time, images, documents, and other uploads accumulate without ever being referenced in posts, pages, or theme settings. OliveroDev Media Audit scans every corner of your site and tells you exactly which files are safe to delete \u2014 so you can recover disk space without breaking anything.<\/p>\n\n<p><strong>Smart detection that actually works.<\/strong> Most media cleaner plugins miss references stored in page builders, widgets, or serialized data. OliveroDev Media Audit checks post content, post meta, term meta, user meta, theme mods, widget options, and more \u2014 all in a single optimized scan \u2014 to reduce false positives and keep your site intact.<\/p>\n\n<h4>What you get for FREE<\/h4>\n\n<ul>\n<li><strong>Media library scan<\/strong> \u2014 Identify unused images, documents, videos, and audio files in your WordPress uploads.<\/li>\n<li><strong>Dashboard overview<\/strong> \u2014 See used vs. unused file counts and the total storage you can recover at a glance.<\/li>\n<li><strong>Safe, controlled cleanup<\/strong> \u2014 Review every file before deleting. No surprises, no bulk wipes you didn't authorize.<\/li>\n<li><strong>Batch scanning<\/strong> \u2014 Scans run in configurable batches to avoid server timeouts, even on large libraries.<\/li>\n<li><strong>Automatic background scans<\/strong> \u2014 Schedule recurring WP-Cron scans (hourly, daily, weekly) to keep your library clean over time.<\/li>\n<li><strong>File type filtering<\/strong> \u2014 Focus on images, documents, videos, audio, or archives depending on what you need to clean.<\/li>\n<li><strong>Image format support<\/strong> \u2014 JPEG, PNG, GIF, WebP, and SVG all covered.<\/li>\n<li><strong>Zero configuration required<\/strong> \u2014 Install, run a scan, and start recovering space.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Go to <strong>Tools \u2192 OliveroDev Media Audit<\/strong> in your WordPress admin.<\/li>\n<li>Click <strong>Start New Scan<\/strong>. The plugin checks every attachment in your library against all content on your site.<\/li>\n<li>Review the results. Files marked <strong>Unused<\/strong> are not referenced anywhere on your site.<\/li>\n<li>Delete unused files individually \u2014 or switch to the <strong>Unused Files<\/strong> tab to work through the full cleanup list.<\/li>\n<\/ol>\n\n<h4>What it checks<\/h4>\n\n<p>The detection engine searches for media references in:<\/p>\n\n<ul>\n<li>Posts, pages, and custom post types (including draft and private)<\/li>\n<li>Post meta and serialized data (including Gutenberg block attributes)<\/li>\n<li>Theme options and customizer settings (logo, header image, background image)<\/li>\n<li>Widget data and sidebar configurations<\/li>\n<li>Term meta and user meta<\/li>\n<li>WordPress options table<\/li>\n<li>Featured images (post thumbnails)<\/li>\n<li>Site icon setting<\/li>\n<li>All registered image sizes (thumbnails, medium, large)<\/li>\n<\/ul>\n\n<h4>PRO: Go deeper<\/h4>\n\n<p>The <strong>PRO add-on<\/strong> (available separately) unlocks integrations with the most popular WordPress tools:<\/p>\n\n<ul>\n<li><strong>Deep Detection<\/strong> for Advanced Custom Fields (ACF), Divi Builder, Elementor, WooCommerce product images, and more.<\/li>\n<li><strong>Storage Analysis<\/strong> with visual charts \u2014 see MB\/GB breakdown by file type, identify your heaviest content.<\/li>\n<li><strong>Intelligent Trash System<\/strong> \u2014 move files to trash before permanent deletion for an extra safety layer.<\/li>\n<li><strong>One-click Bulk Cleanup<\/strong> \u2014 delete all unused files in a single operation.<\/li>\n<li><strong>Extended file type support<\/strong> \u2014 full coverage for documents (PDF, DOC, XLS), video, audio, and archive files.<\/li>\n<li><strong>Advanced automation<\/strong> \u2014 fine-grained scheduling and cleanup triggers.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/checkout.freemius.com\/product\/23055\/\">Get PRO \u2192<\/a><\/p>\n\n<h4>Who is this plugin for?<\/h4>\n\n<ul>\n<li><strong>Site owners<\/strong> who want to free up hosting disk space without hiring a developer.<\/li>\n<li><strong>Agencies<\/strong> managing multiple WordPress sites that accumulate unused uploads over time.<\/li>\n<li><strong>Developers<\/strong> who need a reliable way to audit a client's media library before a migration.<\/li>\n<li><strong>WooCommerce stores<\/strong> where product images are frequently updated or deleted from the catalog.<\/li>\n<li><strong>Bloggers and content creators<\/strong> who upload many images and want to keep their library organized.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect any personal data, make external HTTP requests, or send usage statistics anywhere. All scanning happens locally on your server.<\/p>\n\n<!--section=installation-->\n<p><strong>From the WordPress plugin directory:<\/strong><\/p>\n\n<ol>\n<li>Search for \"OliveroDev Media Audit\" in <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Tools \u2192 OliveroDev Media Audit<\/strong> and run your first scan.<\/li>\n<\/ol>\n\n<p><strong>Manual installation:<\/strong><\/p>\n\n<ol>\n<li>Download the plugin ZIP from WordPress.org.<\/li>\n<li>Upload the contents to <code>\/wp-content\/plugins\/oliverodev-media-audit\/<\/code>.<\/li>\n<li>Activate from <strong>Plugins<\/strong> in your WordPress admin.<\/li>\n<li>Open <strong>Tools \u2192 OliveroDev Media Audit<\/strong> and run your first scan.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20safe%20to%20use%20on%20a%20live%20production%20site%3F\"><h3>Is it safe to use on a live production site?<\/h3><\/dt>\n<dd><p>Yes. The plugin reads content to determine whether a file is in use; it never deletes anything automatically. You review the results first and choose which files to remove one at a time.<\/p><\/dd>\n<dt id=\"will%20it%20detect%20media%20used%20in%20elementor%20or%20divi%3F\"><h3>Will it detect media used in Elementor or Divi?<\/h3><\/dt>\n<dd><p>The free version searches all post content, including raw Elementor and Divi data stored in post meta. The PRO version adds dedicated deep-detection integrations for these builders to catch edge cases in their proprietary storage formats.<\/p><\/dd>\n<dt id=\"can%20it%20detect%20images%20used%20in%20acf%20%28advanced%20custom%20fields%29%3F\"><h3>Can it detect images used in ACF (Advanced Custom Fields)?<\/h3><\/dt>\n<dd><p>The free version scans post meta values and will find most ACF image references stored as attachment IDs or URLs. The PRO version includes a dedicated ACF integration for complete coverage of repeaters and flexible content fields.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20unused%20images%20in%20wordpress%3F\"><h3>How do I find unused images in WordPress?<\/h3><\/dt>\n<dd><p>Install the plugin, go to <strong>Tools \u2192 OliveroDev Media Audit<\/strong>, click <strong>Start New Scan<\/strong>, and open the <strong>Unused Files<\/strong> tab when the scan finishes. Every file listed there was not found in any post, page, or site setting.<\/p><\/dd>\n<dt id=\"how%20long%20does%20a%20scan%20take%3F\"><h3>How long does a scan take?<\/h3><\/dt>\n<dd><p>It depends on your library size. The scan runs in batches (configurable from 1 to 200 files per batch) directly in your browser via AJAX, so it won't time out even on large libraries with thousands of files.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20a%20file%3F\"><h3>What happens when I delete a file?<\/h3><\/dt>\n<dd><p>The plugin calls WordPress's native <code>wp_delete_attachment()<\/code> function, which removes the attachment post, all registered image sizes, and the original file from your server. This is the same process WordPress uses in the media library.<\/p><\/dd>\n<dt id=\"can%20i%20recover%20a%20deleted%20file%3F\"><h3>Can I recover a deleted file?<\/h3><\/dt>\n<dd><p>No. Deletion is permanent. If you need a safety net before bulk cleanup, the PRO version includes an intelligent Trash System that lets you move files to a staging area before committing to deletion.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>The free version scans product descriptions, product gallery meta, and variation image meta. The PRO version adds dedicated WooCommerce detection to cover featured product images and gallery references more reliably.<\/p><\/dd>\n<dt id=\"will%20deleting%20unused%20media%20affect%20my%20seo%3F\"><h3>Will deleting unused media affect my SEO?<\/h3><\/dt>\n<dd><p>Only if those files were indexed by search engines and linked from external sites. For files that are truly unused (not referenced in any post or page on your site), there is no SEO impact. If you are unsure, review each file individually before deleting.<\/p><\/dd>\n<dt id=\"where%20does%20the%20plugin%20appear%20in%20the%20wordpress%20admin%3F\"><h3>Where does the plugin appear in the WordPress admin?<\/h3><\/dt>\n<dd><p>Go to <strong>Tools \u2192 OliveroDev Media Audit<\/strong>.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multisite%3F\"><h3>Does it support multisite?<\/h3><\/dt>\n<dd><p>The plugin is designed for single-site installations. Multisite compatibility is on the roadmap.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20automatic%20scans%3F\"><h3>Can I schedule automatic scans?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Tools \u2192 OliveroDev Media Audit \u2192 Settings<\/strong> and choose a scan frequency: hourly, twice daily, daily, or weekly. The scan runs in the background via WP-Cron.<\/p><\/dd>\n<dt id=\"what%20file%20types%20does%20the%20free%20version%20support%3F\"><h3>What file types does the free version support?<\/h3><\/dt>\n<dd><p>Images: JPEG, PNG, GIF, WebP, SVG. The PRO version extends this to PDF, DOC, DOCX, XLS, XLSX, MP4, MP3, ZIP, RAR, and more.<\/p><\/dd>\n<dt id=\"i%20found%20a%20false%20positive%20%E2%80%94%20a%20file%20shown%20as%20%22unused%22%20that%20i%20know%20is%20in%20use.%20what%20should%20i%20do%3F\"><h3>I found a false positive \u2014 a file shown as \"unused\" that I know is in use. What should I do?<\/h3><\/dt>\n<dd><p>Do not delete it. The free version covers the most common storage locations. If you are using a plugin or theme with a custom database structure, the file may be referenced in a table the free version does not scan. The PRO version covers the most popular third-party tools. You can also filter the detection using the <code>oliverodev_media_audit_is_media_used<\/code> WordPress filter hook.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.2.7<\/h4>\n\n<ul>\n<li>New: \"Where is it used?\" button on every Used file \u2014 shows the exact posts, pages, or theme settings referencing each file.<\/li>\n<li>New: Real-time scan counter \u2014 displays \"Scanning X of Y files \u00b7 Z remaining\" during active scans.<\/li>\n<li>New: Delete confirmation modal \u2014 shows file thumbnail, name, and size before permanent deletion instead of a plain browser dialog.<\/li>\n<li>New: Export CSV \u2014 download a spreadsheet of all unused files directly from the Unused Files tab.<\/li>\n<\/ul>\n\n<h4>3.2.6<\/h4>\n\n<ul>\n<li>Fix: Removed false positive detections caused by overly broad serialized-integer patterns (<code>i:N;<\/code>, <code>,N,<\/code>, <code>,N\"<\/code>) being matched in postmeta, usermeta, termmeta, and options tables.<\/li>\n<li>Fix: Removed unreliable exact-integer postmeta match that incorrectly flagged files as used when unrelated meta keys (e.g. <code>_edit_last<\/code>, counters) happened to store the same number as a media ID.<\/li>\n<li>Improvement: JSON and HTML id-based patterns (<code>\"id\":N<\/code>, <code>data-id=\"N\"<\/code>, etc.) are now scoped exclusively to post_content where Gutenberg blocks live, eliminating false positives in meta tables.<\/li>\n<\/ul>\n\n<h4>3.2.5<\/h4>\n\n<ul>\n<li>Hide the \"Get PRO\" banner when PRO is already active via license integration.<\/li>\n<\/ul>\n\n<h4>3.2.4<\/h4>\n\n<ul>\n<li>Maintenance release for WordPress.org package compliance and metadata alignment.<\/li>\n<\/ul>\n\n<h4>3.2.3<\/h4>\n\n<ul>\n<li>Fixed PRO upgrade link to Freemius checkout.<\/li>\n<\/ul>\n\n<h4>3.2.2<\/h4>\n\n<ul>\n<li>Added animated PRO upgrade banner in dashboard.<\/li>\n<li>Added link to upgrade to PRO version.<\/li>\n<\/ul>\n\n<h4>3.2.1<\/h4>\n\n<ul>\n<li>Improved WordPress.org submission compatibility and plugin metadata.<\/li>\n<li>Added plugin text domain loading.<\/li>\n<li>Refreshed compatibility metadata.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Refactored scanning architecture for improved performance.<\/li>\n<li>Updated compatibility metadata.<\/li>\n<\/ul>","raw_excerpt":"Find and delete unused media files in your WordPress media library. Smart scanning, safe cleanup, and storage optimization \u2014 completely free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296983"}],"author":[{"embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/oliverodev"}],"wp:attachment":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296983"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296983"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296983"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296983"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296983"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}