Media Library Cleaner icon

Media Library Cleaner

Media Library Cleaner is a WordPress plugin with the following stats:

  • #3,213 Global Rank
  • 30+ active installs
  • Since 2024 2 years active

PF Score (About PF Scores)

Silver55.1
Platinum
Gold
Silver
Bronze
Low

Score Breakdown

25
Popularity
60
Reputation
97
Freshness

Download Trends

Loading download data…

Vulnerabilities

No known vulnerabilities

This plugin has no records in the Wordfence Intelligence vulnerability database.

About Media Library Cleaner

Media Library Cleaner scans your WordPress media library and identifies which files are actually in use and which are safe to delete, so you can clean …

Version 2.0 is a ground-up rebuild from the original release, with a new scanning architecture and admin interface.

How The Scanning Engine Works
Unlike lightweight scanners that only check the post_content column, Media Library Cleaner performs a deep inspection across your entire WordPress architecture. When a scan is initiated, every attachment in the media library is checked against:
Core Content: Standard post content and Gutenberg block editor attributes.
Post Meta: All custom fields and metadata, including complex data structures generated by Layout & Design plugins like Elementor and Beaver Builder.
Theme Settings: Theme mods, site icons, custom logos, and custom header images.
Taxonomies & Users: Term meta and user meta fields.
Widgets: Media widgets deployed across sidebars and footers.
Scan Options: Administrators can explicitly choose whether to include or ignore draft posts and post revisions during the reference check.
Batched Processing Architecture
To handle enterprise-scale WordPress installations, the scanning engine uses batched processing. Instead of loading the entire database into memory, the plugin queries and processes content in strict batches. This architecture prevents PHP memory exhaustion and server timeout errors – and has been thoroughly stress-tested on environments containing over 60,000 posts.

A live four-phase progress bar tracks the execution in real-time, displaying counts for:
Initialisation
Post scanning
Metadata scanning
Results loading
Once the scan completes, results are loaded into a split-view dashboard separating Unused Files from Used Files.
Used Files View: Explicitly lists the specific posts, pages, or settings where an attachment is currently referenced, giving you absolute certainty about why a file was flagged as active.
Progressive Card Grid: Files are displayed in a visual grid showing the image thumbnail (or a specific file type icon for non-images), filename, file type, file size, exact pixel dimensions, and upload date.
Sticky Selection Bar: A persistent control bar tracks the total number of selected files and calculates their combined file size in real-time, allowing you to see exactly how much server space you are about to reclaim. Includes bulk select/deselect controls.
One-Click Selection: Clicking anywhere on a progressive card toggles a highly visible selected state (blue border and checkmark overlay).
Deletion Mechanics & Safety Protocols
Media Library Cleaner treats data destruction with the utmost caution. A prominent backup warning is displayed before any scan or deletion sequence can be initiated.
WordPress Capability Checks: Before attempting to remove any file, the plugin performs a strict, per-item capability check. Deletion requests are automatically refused for any file the current user does not have explicit permission to delete.
Confirmation & Permanence: A WordPress-native confirmation modal intercepts the deletion trigger, explicitly warning the user that deletions are permanent (unless the MEDIA_TRASH constant is enabled in wp-config.php).
Batched Deletion: Much like the scanning process, file deletion is handled in batches with a live progress indicator.
Post-Deletion Reporting: A completion modal provides a definitive summary, explicitly detailing how many files were successfully deleted and how many failed.
Per-File Reporting: Every individual file is reported as a success or a failure, with specific technical reasons provided for any failed deletions.
Persistent Logging & Environment Data
Database Session Logs: Every deletion run is permanently recorded in the database. This log records the timestamp, the user who initiated the action, the total file count, and the explicit success/failure results for every individual file processed during that run.
Environment Info Tab: A dedicated diagnostic tab provides administrators with critical context before running a scan. It displays the total media count, the physical size of the uploads folder, a list of all registered image sizes, the precise uploads directory path, directory writability status, media trash status, and current PHP/WordPress environment details.
Installation
Upload the media-library-cleaner folder to the /wp-content/plugins/ directory.
Activate the plugin through the ‘Plugins’ menu in WordPress.
Navigate to Tools – Media Library Cleaner in the WordPress admin menu.
Review the Environment Info tab and perform a full site backup.
Configure your Draft and Revision scan options, then click Run Scan.
Frequently Asked Questions
Will this plugin cause PHP memory errors on large sites?
No. Media Library Cleaner utilizes a batched scanning architecture that processes database queries in chunks. This prevents the server from loading massive datasets into memory simultaneously, preventing timeout errors. It has been tested against databases with 60,000+ posts.

Does it support modern Layout & Design plugins?
Yes. The metadata scanner explicitly checks complex data arrays generated by Layout & Design builders such as Elementor and Beaver Builder, ensuring assets embedded within builder modules are correctly identified as “in use”.

Are deleted files recoverable?
By default, WordPress permanently removes media files when deleted. Media Library Cleaner respects this core behaviour. However, if you have defined define( ‘MEDIA_TRASH’, true ); in your wp-config.php file, deleted files will be moved to the Media Library Trash rather than being permanently destroyed.

Why do some files fail to delete?
The plugin enforces strict WordPress capability checks on a per-item basis. If your user role lacks the required permissions to delete a specific attachment, or if the server directory lacks the necessary write permissions, the deletion will be refused. The exact reason for the failure is recorded in the persistent session log.

What information is stored in the persistent session log?
The log records the timestamp of the deletion run, the ID of the user who executed it, the total number of files targeted, and a granular breakdown of which specific files succeeded or failed (including the failure reason).

Screenshots

Ratings & Reviews

Recent Reviews

Loading reviews…

View all reviews on WordPress.org (opens in a new tab)

Changelog

2.0.0

  • Complete UI rebuild using WordPress admin design patterns
  • Batched scanning architecture — eliminates memory/timeout errors on large sites
  • Persistent, searchable deletion log stored in the database
  • Per-file permission checks with detailed success/failure reporting
  • New Environment Info diagnostics tab

1.0.11

  • Tested on WordPress 7

1.0.10

  • Improved scanner

1.0.9

  • Sanitize array fix

1.0.8

  • Updated to support WordPress 6.9

1.0.7

  • Update fix to tabs on media page
  • Rename title to be more descriptive

1.0.6

  • Updated to support WordPress 6.6

1.0.5

  • Further updates to comply with WordPress plugin guidelines

1.0.4

  • Further updates to comply with WordPress plugin guidelines

1.0.3

  • Further updates to comply with WordPress plugin guidelines

1.0.2

  • Updates to comply with WordPress plugin guidelines

1.0.1

  • Added localisation, in order to support additional languages in future. Currently just exists in English
  • Added a link to a Help page
  • Updated the design of the image results to feel more like the Media Library
  • Separated Unused Image Scanner results into individual tabs for Unused Images and Used Images

Alternatives to Media Library Cleaner

Other WordPress plugins serving a similar purpose, ranked by relevance and PF Score.

Silver60.2
Unattached Media Manager icon

Unattached Media Manager

Fix the WordPress Unattached media filter. Automatically attach used media files to their posts so you can safely clean up…

★ 5/5·100+ installs·Updated 26 Jun 2026
Platinum89.6
Media Library Assistant icon

Media Library Assistant

Organize media with taxonomies, generate galleries, and extract image metadata using shortcodes and bulk editing.

★ 4.8/5·70K+ installs·Updated 11 Jul 2026
Platinum85.8
Quick Featured Images icon

Quick Featured Images

Bulk set, replace, and delete featured images across multiple posts with default image assignment.

★ 4.7/5·50K+ installs·Updated 15 Apr 2026
Gold79.5
Simple User Avatar icon

Simple User Avatar

Enables users to set custom avatars from their Media Library instead of Gravatar.

★ 4.6/5·20K+ installs·Updated 29 Jun 2026
Gold79.1
Crop-Thumbnails icon

Crop-Thumbnails

Extract specific image details for featured images and gallery displays without modifying originals.

★ 4.6/5·40K+ installs·Updated 3 Dec 2025
Gold78.5
Advanced Media Offloader icon

Advanced Media Offloader

Offload media to S3 and Cloudflare R2 to save server space and improve site speed.

★ 4.7/5·5K+ installs·Updated 4 Jul 2026
Gold78.1
Accessibility Tools & Alt Text Finder icon

Accessibility Tools & Alt Text Finder

Scans WordPress sites for WCAG violations, missing Alt text, and contrast problems with guided remediation checklists.

★ 4.9/5·3K+ installs·Updated 29 May 2026
Gold74.7
miniOrange Embed Files for SharePoint/OneDrive icon

miniOrange Embed Files for SharePoint/OneDrive

Embed, manage, and sync Microsoft SharePoint and OneDrive documents, folders, lists, and files within WordPress pages, posts, or the media…

★ 5/5·800+ installs·Updated 14 Jul 2026