{"id":388085,"date":"2026-10-21T23:05:52","date_gmt":"2026-10-21T23:05:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/modulefest-mediavault-media-library-manager\/"},"modified":"2026-10-28T23:47:40","modified_gmt":"2026-10-28T23:47:40","slug":"modulefest-media-library-manager","status":"publish","type":"plugin","link":"https:\/\/wol.wordpress.org\/plugins\/modulefest-media-library-manager\/","author":23575759,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.24.0","stable_tag":"4.24.0","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"ModuleFest Media Library Manager","header_author":"ModuleFest","header_description":"Find unused media, clean it up safely through a recycle bin, organise files into folders and tags, optimise images and back up to your own cloud storage.","assets_banners_color":"fefeff","last_updated":"2026-10-28 23:47:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/modulefest.com\/product\/modulefest-media-library-manager\/","header_author_uri":"https:\/\/modulefest.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":235,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.22.10":{"tag":"4.22.10","author":"modulefest","date":"2026-10-21 23:05:32","revision":3759164},"4.23.0":{"tag":"4.23.0","author":"modulefest","date":"2026-10-22 07:12:02","revision":3759455},"4.23.2":{"tag":"4.23.2","author":"modulefest","date":"2026-10-24 13:29:23","revision":3763325},"4.24.0":{"tag":"4.24.0","author":"modulefest","date":"2026-10-28 23:47:40","revision":3771856}},"upgrade_notice":{"4.24.0":"<p>First WordPress.org release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3759164,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3759164,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3759164,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3759164,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.22.10","4.23.0","4.23.2","4.24.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3759164,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3759164,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3759164,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3759164,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3759164,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3759164,"resolution":"6","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"The KPI Dashboard with library health metrics and the health score.","2":"The Media Manager: unused files found by a scan, ready to review.","3":"The Recycle Bin with retention countdowns and bulk restore.","4":"The Tools screen: image resizer, compressor, Smart Replace and finders.","5":"Grid overlays marking used and unused files in the Media Library.","6":"The Help Centre with How-To scenarios and flowcharts."}},"plugin_section":[262246],"plugin_tags":[29161,227565,130330,233,219749],"plugin_category":[],"plugin_contributors":[284350],"plugin_business_model":[],"class_list":["post-388085","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-image-optimization","plugin_tags-media-cleaner","plugin_tags-media-folders","plugin_tags-media-library","plugin_tags-unused-media","plugin_contributors-modulefest","plugin_committers-modulefest"],"banners":{"banner":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/banner-772x250.png?rev=3759164","banner_2x":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/banner-1544x500.png?rev=3759164","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/icon-128x128.png?rev=3759164","icon_2x":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/icon-256x256.png?rev=3759164","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-1.png?rev=3759164","caption":"The KPI Dashboard with library health metrics and the health score."},{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-2.png?rev=3759164","caption":"The Media Manager: unused files found by a scan, ready to review."},{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-3.png?rev=3759164","caption":"The Recycle Bin with retention countdowns and bulk restore."},{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-4.png?rev=3759164","caption":"The Tools screen: image resizer, compressor, Smart Replace and finders."},{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-5.png?rev=3759164","caption":"Grid overlays marking used and unused files in the Media Library."},{"src":"https:\/\/ps.w.org\/modulefest-media-library-manager\/assets\/screenshot-6.png?rev=3759164","caption":"The Help Centre with How-To scenarios and flowcharts."}],"raw_content":"<!--section=description-->\n<p>ModuleFest Media Library Manager shows you exactly where every file in your Media Library is used, finds the files nothing uses any more, and lets you clean them up safely. Nothing is deleted straight away: files go to a Recycle Bin first, and you can restore them at any time until the retention period you choose runs out.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=jx0FE3sY9Jo<\/p>\n\n<h4>Everything here is free<\/h4>\n\n<p>Every feature described on this page is included in this plugin. Nothing is hidden or held back, and the plugin never asks you to register.<\/p>\n\n<h4>Video guides<\/h4>\n\n<p>Seven short narrated videos show each part of Media Library Manager: an overview, getting started, the deep scan, the recycle bin, image tools, duplicates, folders and cleanup rules, and the audit log. Each Media Library Manager screen and help topic links to its own video, and the About page and Help Centre list them all. They open on YouTube in a new tab; nothing is loaded from YouTube inside your WordPress admin. Watch them all in order in <a href=\"https:\/\/www.youtube.com\/playlist?list=PLZXVPPJ2xeaI\">the Media Library Manager playlist<\/a>.<\/p>\n\n<h4>More from ModuleFest<\/h4>\n\n<p>Media Library Manager is made by <a href=\"https:\/\/modulefest.com\/\">ModuleFest<\/a>. Our other free plugins are listed on <a href=\"https:\/\/wordpress.org\/plugins\/author\/modulefest\/\">our WordPress.org profile<\/a>, for example <a href=\"https:\/\/wordpress.org\/plugins\/modulefest-petgroomer\/\">ModuleFest Pet Groomer<\/a> and <a href=\"https:\/\/wordpress.org\/plugins\/modulefest-petwalker\/\">ModuleFest Pet Walker<\/a>, and on Media Library Manager's <strong>About ModuleFest<\/strong> screen. Nothing is installed unless you choose to install it yourself from WordPress.org.<\/p>\n\n<p>If you'd like Media Library Manager tips and update notes by email, the About ModuleFest screen has an optional <strong>Get news for Media Library Manager<\/strong> sign-up. Nothing is sent unless you tick its box and press Subscribe, and no part of the plugin depends on it. Full guides: <a href=\"https:\/\/modulefest.com\/help\/modulefest-media-library-manager\/\">modulefest.com\/help\/modulefest-media-library-manager<\/a>.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Media usage map<\/strong> \u2013 every file shows where it is used: posts, pages, blocks, featured images, galleries, page builders and theme settings.<\/li>\n<li><strong>Unused media scanner<\/strong> \u2013 a batched, resumable deep scan finds files nothing references, with a live progress bar and time estimate. Filter results by type, date, size, folder or tag.<\/li>\n<li><strong>Recycle Bin<\/strong> \u2013 move files to the bin instead of deleting them. Choose how long they stay (7, 30, 90 days or your own period), restore them individually or in bulk, and export the bin to CSV or a printable report.<\/li>\n<li><strong>KPI Dashboard<\/strong> \u2013 30+ library health metrics in five sections, with a health score, threshold alerts, drag-to-reorder cards and a scheduled refresh.<\/li>\n<li><strong>Grid overlays<\/strong> \u2013 14 styles mark used and unused files on every Media Library thumbnail, in colours you choose.<\/li>\n<li><strong>Virtual folders and tags<\/strong> \u2013 organise media into folders and tags without moving files on disk, and filter the Media Library by tag.<\/li>\n<li><strong>Cleanup rules<\/strong> \u2013 rules that run on your schedule (every hour, twice a day, daily or weekly, at the time you choose), such as \"move unused PDFs older than a year to the Recycle Bin\", with a preview before they run.<\/li>\n<li><strong>Image tools<\/strong> \u2013 resize and compress images (one at a time, in bulk, or by right-clicking in the Media Library), with optional WebP. The original is backed up first and can be restored.<\/li>\n<li><strong>Smart Replace<\/strong> \u2013 swap one image for another everywhere it is used.<\/li>\n<li><strong>Alt text generator<\/strong> \u2013 suggests alt text from the file name, title and caption for images that have none.<\/li>\n<li><strong>Unused image sizes<\/strong> \u2013 finds resized copies left behind by themes and plugins you no longer use, keeps any copy your content still points at, and moves the rest to a bin you can restore from.<\/li>\n<li><strong>Finders<\/strong> \u2013 duplicate files, broken file records, dead links in your content and a compression advisor.<\/li>\n<li><strong>Cloud backup and import<\/strong> \u2013 connect your own Google Drive, Dropbox, OneDrive, Amazon S3 (or S3-compatible storage), FTP\/SFTP or WebDAV, back files up before they are deleted, and import files into the Media Library.<\/li>\n<li><strong>Weekly digest email<\/strong> \u2013 a summary of your library sent to the address you choose.<\/li>\n<li><strong>Audit trail<\/strong> \u2013 every Media Library Manager action is logged, with filters and CSV export.<\/li>\n<li><strong>Built-in help<\/strong> \u2013 a help drawer on every screen, step-by-step How-To scenarios and a searchable Help Centre.<\/li>\n<\/ul>\n\n<h4>Privacy and external services<\/h4>\n\n<p>Media Library Manager sends no analytics, usage data or site details anywhere, and never contacts our servers on its own. The only time it contacts ModuleFest is when you ask for our newsletter (see \"ModuleFest newsletter sign-up\" below).<\/p>\n\n<p>Otherwise it only connects to an outside service when you set that service up yourself, using your own account and your own API keys. Each one is listed below.<\/p>\n\n<p><strong>Google Drive (Google LLC)<\/strong>\nUsed for cloud backup and cloud import, only after you add your own Google OAuth client ID and secret and click Connect. When you sign in, your browser is sent to Google to approve access; Media Library Manager then exchanges the returned code for an access token at oauth2.googleapis.com. After that, when you back up, browse, import or create a folder, Media Library Manager sends the file (its contents, name and type) or the folder request to www.googleapis.com. Nothing is sent until you connect, and nothing is sent after you disconnect.\nTerms: https:\/\/policies.google.com\/terms \u2013 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Dropbox (Dropbox, Inc.)<\/strong>\nUsed for cloud backup and cloud import, only after you add your own Dropbox app key and secret and click Connect. Sign-in happens on www.dropbox.com; tokens are exchanged at api.dropboxapi.com. When you back up, browse, import or create a folder, the file contents, name and folder path are sent to api.dropboxapi.com and content.dropboxapi.com.\nTerms: https:\/\/www.dropbox.com\/terms \u2013 Privacy: https:\/\/www.dropbox.com\/privacy<\/p>\n\n<p><strong>Microsoft OneDrive (Microsoft Corporation)<\/strong>\nUsed for cloud backup and cloud import, only after you add your own Microsoft app client ID and secret and click Connect. Sign-in happens on login.microsoftonline.com. When you back up, browse, import or create a folder, the file contents, name and folder path are sent to graph.microsoft.com.\nTerms: https:\/\/www.microsoft.com\/en-us\/servicesagreement \u2013 Privacy: https:\/\/www.microsoft.com\/en-us\/privacy\/privacystatement<\/p>\n\n<p><strong>Amazon S3 and S3-compatible storage (Amazon Web Services, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces)<\/strong>\nUsed for cloud backup, only after you enter your own access key, secret, bucket and region. When a file is backed up, its contents and name are sent to the bucket endpoint you entered (for AWS, s3..amazonaws.com). Requests are signed locally with your keys.\nAWS terms: https:\/\/aws.amazon.com\/service-terms\/ \u2013 AWS privacy: https:\/\/aws.amazon.com\/privacy\/\nCloudflare: https:\/\/www.cloudflare.com\/terms\/ and https:\/\/www.cloudflare.com\/privacypolicy\/ \u2013 Backblaze: https:\/\/www.backblaze.com\/company\/policy\/terms-of-service and https:\/\/www.backblaze.com\/company\/policy\/privacy \u2013 Wasabi: https:\/\/wasabi.com\/legal\/terms-of-use and https:\/\/wasabi.com\/legal\/privacy-policy \u2013 DigitalOcean: https:\/\/www.digitalocean.com\/legal\/terms-of-service-agreement and https:\/\/www.digitalocean.com\/legal\/privacy-policy<\/p>\n\n<p><strong>FTP \/ SFTP and WebDAV servers<\/strong>\nUsed for cloud backup and import, only after you enter the address and login of a server you control (for example your own host, a Nextcloud instance or a Hetzner Storage Box). Files are sent to and read from that server only. Its terms and privacy policy are those of whoever runs it.<\/p>\n\n<p><strong>WordPress.org plugin details (About ModuleFest screen)<\/strong>\nThe \"More free plugins from ModuleFest\" box on Media Library Manager's About ModuleFest screen links to our other plugins. \"View details\" opens WordPress's own plugin details window, which WordPress loads from WordPress.org (api.wordpress.org) only when you click it. Nothing is sent by Media Library Manager itself. WordPress.org privacy policy: https:\/\/wordpress.org\/about\/privacy\/<\/p>\n\n<p><strong>ModuleFest newsletter sign-up (support.modulefest.com)<\/strong>\nWhat it is: ModuleFest's newsletter for Media Library Manager (tips, new features and update notes).\nWhat is sent: your name, your email address, this site's address (home URL), the plugin name and version, and the wording of the consent box you ticked.\nWhen: only when you tick the consent box and press Subscribe on the \"Get news for Media Library Manager\" card (Media Library Manager \u2192 About ModuleFest). Nothing is sent on activation, on a schedule, when you dismiss the card, or in the background, and Media Library Manager does not keep your email address.\nWhy: to send you the newsletter you asked for. ModuleFest emails you a confirmation link first; you can unsubscribe at any time from any newsletter or at https:\/\/modulefest.com\/newsletter\/?leave=1\nPrivacy policy: https:\/\/modulefest.com\/privacy\/ \u2013 Terms: https:\/\/modulefest.com\/terms\/<\/p>\n\n<p><strong>YouTube (video guide links only)<\/strong>\nThe \"Watch the video\" links and the Video guides list open videos on youtube.com in a new browser tab, only when you click one. Media Library Manager does not embed a player, load thumbnails or contact YouTube itself. YouTube terms: https:\/\/www.youtube.com\/static?template=terms \u2013 Google privacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Dead link scanner (optional external check)<\/strong>\nThe Dead Link Scanner checks links inside your own posts and pages. Links to files on your own site are checked on your server. Links to other websites are only checked when you tick \"Check external links\" before a scan; Media Library Manager then sends a HEAD request (no data, just the address) to each linked website to see whether the page still exists. Each site's own terms and privacy policy apply.<\/p>\n\n<p>The plugin stores your cloud tokens and keys in your WordPress database. Deleting the plugin removes them, along with all other Media Library Manager settings and its audit table.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>There is no build step. Every PHP, JavaScript and CSS file in the plugin is the readable source, with its comments, exactly as it is maintained.<\/p>\n\n<h4>Third-party code<\/h4>\n\n<p>None. Media Library Manager bundles no third-party libraries; it uses jQuery and the image editor that ship with WordPress.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to <strong>Plugins \u2192 Add New<\/strong>, search for \"ModuleFest Media Library Manager\" and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>. (Or upload the <code>modulefest-media-library-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it.)<\/li>\n<li>Open <strong>Media Library Manager \u2192 Dashboard<\/strong> and click <strong>Refresh Now<\/strong> to build your first set of metrics.<\/li>\n<li>Open <strong>Media Library Manager \u2192 Media Manager<\/strong> and click <strong>Run Full Scan<\/strong> to find unused files.<\/li>\n<li>Review the results. Nothing changes until you choose to move files to the Recycle Bin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20media%20library%20manager%20delete%20my%20files%3F\"><h3>Will Media Library Manager delete my files?<\/h3><\/dt>\n<dd><p>Not without you asking. Files you choose are moved to the Recycle Bin first. They are only deleted permanently when the retention period you set runs out, or when you empty them from the bin yourself. You can restore them at any time before that.<\/p><\/dd>\n<dt id=\"how%20does%20it%20decide%20a%20file%20is%20unused%3F\"><h3>How does it decide a file is unused?<\/h3><\/dt>\n<dd><p>It looks for the file's ID, URL and file name in post and page content (including blocks), featured images, galleries, widgets, theme settings and common page builders. A file that is not found anywhere is listed as unused. Always review the list before moving anything; you can mark files you want to keep so they are never flagged.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20site%20down%3F\"><h3>Does it slow my site down?<\/h3><\/dt>\n<dd><p>No. Media Library Manager only runs in the WordPress admin. Scans run in small batches in the background, and nothing is added to your site's front end.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20data%20anywhere%3F\"><h3>Does it send my data anywhere?<\/h3><\/dt>\n<dd><p>No, not unless you ask. See \"Privacy and external services\" above: the only outside connections are the cloud services you connect yourself, the optional external link check, and the newsletter sign-up if you choose to subscribe.<\/p><\/dd>\n<dt id=\"is%20everything%20included%3F\"><h3>Is everything included?<\/h3><\/dt>\n<dd><p>Yes. Everything described on this page is in this plugin and free.<\/p><\/dd>\n<dt id=\"do%20you%20make%20other%20plugins%3F\"><h3>Do you make other plugins?<\/h3><\/dt>\n<dd><p>Yes. ModuleFest's other free plugins are listed at https:\/\/wordpress.org\/plugins\/author\/modulefest\/ and on Media Library Manager's About ModuleFest screen. You can also visit https:\/\/modulefest.com\/.<\/p><\/dd>\n<dt id=\"is%20there%20a%20newsletter%3F\"><h3>Is there a newsletter?<\/h3><\/dt>\n<dd><p>Yes, and it is optional. Use the \"Get news for Media Library Manager\" card on the About ModuleFest screen, or https:\/\/modulefest.com\/newsletter\/. Nothing is sent from your site unless you tick the box and press Subscribe.<\/p><\/dd>\n<dt id=\"are%20there%20video%20guides%3F\"><h3>Are there video guides?<\/h3><\/dt>\n<dd><p>Yes: seven short narrated videos, from an overview to the audit log. Watch them all in <a href=\"https:\/\/www.youtube.com\/playlist?list=PLZXVPPJ2xeaI\">the Media Library Manager playlist<\/a> on YouTube, or use the \"Watch the video\" links on each screen and help topic.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20help%3F\"><h3>Where do I get help?<\/h3><\/dt>\n<dd><p>Every Media Library Manager screen has a help (?) button, and Settings \u2192 Help Centre has step-by-step guides. For anything else, please post in this plugin's support forum on WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.24.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>Every feature is included and free.<\/li>\n<li>The plugin never contacts our servers: no update checks, no support-desk link and no usage statistics.<\/li>\n<li>Scripts and styles now load as separate, readable files through WordPress' standard loader, with no inline code in the page.<\/li>\n<li>Security hardening throughout: every request that changes data checks a nonce and the user's permissions, every input is sanitised and every output is escaped.<\/li>\n<li>Safer file handling: files are removed with WordPress' own functions, and the dead link scanner refuses to probe private network addresses.<\/li>\n<\/ul>","raw_excerpt":"Find unused media, clean it up safely through a recycle bin, organise files into folders and tags, optimise images and back up to your own cloud.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388085"}],"author":[{"embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/modulefest"}],"wp:attachment":[{"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388085"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388085"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388085"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388085"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388085"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wol.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}