Why This Plugin Is Different
Most media cleaner plugins help you delete unused images. This plugin fixes a fundamental WordPress problem first.
WordPress has a built-in "Unattached" filter in the Media Library. The idea is simple: it shows you media files that aren't connected to any post, so you can decide whether to keep or delete them.
The problem? WordPress only marks media as "attached" if it was uploaded directly through the post editor. Any image added through ACF fields, Gutenberg blocks, page builders, widgets, theme options, or shortcodes shows as "Unattached" — even though it's actively being used on your site.
This makes WordPress's native "Unattached" filter completely unreliable.
How Unattached Media Manager Fixes This
This plugin scans your entire site, finds every place where media files are actually being used, and properly attaches them to their parent posts. Once attached:
- WordPress's "Unattached" filter actually works — It now shows only truly unused media
- You can use WordPress's native tools — No need to depend on third-party plugins to manage media
- Import/export plugins work correctly — Tools like WP All Import, WP Migrate, Duplicator, and others can now properly identify and migrate media with their associated posts
- You can safely uninstall this plugin — The attachments remain as part of WordPress's native structure
The Workflow
- Scan — The plugin finds all media usage across your site (content, ACF, blocks, widgets, options, etc.)
- Attach — One-click to properly attach all "used but unattached" media to their parent posts
- Review — Now WordPress's "Unattached" filter shows only genuinely unused files
- Clean Up — Use WordPress's native tools OR this plugin's safe deletion features
- Done — Uninstall if you want; the fixes stay with WordPress
Yes, It Also Deletes Unused Media
Like other media cleaners, this plugin also helps you safely delete unused media with:
- Trash support — Move to trash first, restore if needed
- Permanent delete — Remove forever when you're sure
- Change history — Track all attachment changes with one-click revert
But the real value is
fixing WordPress's attachment system so you don't need to depend on any plugin long-term.
Two Processing Modes
- Browser-Driven (Recommended) — Fast and reliable with real-time progress. Keep the browser tab open until complete.
- Background (WP-Cron) — Processing continues even after closing your browser. Ideal for server cron setups.
Key Features
- Comprehensive Scanning — Detects media usage in post content, featured images, Gutenberg blocks, ACF fields, Elementor, Meta Box, WooCommerce, SEO plugins, widgets, theme options, and more
- Fix Unattached Media — One-click to properly attach all "used but unattached" media
- Media Library Integration — See usage count directly in your Media Library list view
- Safe Deletion — WordPress trash support with restore capability
- Change History — Full audit trail with one-click revert for any attachment
- Pause & Resume — Stop any operation and continue later
- Resource Aware — Three modes (Low/Auto/High) for shared hosting to dedicated servers
- Export Reports — Download CSV reports of all media usage
- Developer Friendly — Hooks, filters, REST API, and WP-CLI commands
The Problem It Solves
WordPress marks media as "Unattached" if it wasn't uploaded directly to a post. But many media files ARE being used — they're just embedded via:
- The block editor (Gutenberg)
- Page builders like Elementor or Beaver Builder
- ACF image/gallery fields
- WooCommerce product galleries
- Theme customizer settings
- Widget areas
- Shortcodes
- Custom meta boxes
Unattached Media Manager finds ALL these references and properly attaches the media, so WordPress correctly reflects which files are actually in use.
Server-Friendly Design
This plugin is designed to work on ALL servers, including shared hosting with limited resources:
- Never blocks your site - All heavy operations are processed in batches
- Adaptive resource usage - Automatically detects server limits and adjusts accordingly
- Three resource modes:
- Low Resources - 5 items/batch, 2-minute intervals (for shared hosting)
- Auto (Recommended) - 15 items/batch, 1-minute intervals (adjusts automatically)
- High Performance - 50 items/batch, 30-second intervals (for dedicated servers)
- Two processing strategies - Choose browser-driven (fast) or background WP-Cron mode
Supported Content Types
ALL features below are FREE - no Pro version required!
- Post Content - Classic editor, Gutenberg blocks, shortcodes, inline styles, data attributes
- Featured Images - Thumbnail assignments
- ACF Fields - Image, gallery, file, repeater, flexible content, and group fields
- Gutenberg Blocks - Core image, gallery, cover, media & text blocks
- Elementor - All widgets, backgrounds, galleries, sliders, and responsive images
- Meta Box - All field types including groups and cloneable fields
- WooCommerce - Product galleries, variation images, downloadable files, category thumbnails
- SEO Plugins - Yoast SEO, Rank Math, All in One SEO, SEOPress (OpenGraph & Twitter images)
- Widgets - Image widgets, text widgets with media, custom HTML
- Theme Options - Customizer settings, theme mods, custom logos
- Options Table - Plugin settings that store media IDs or URLs
- Video & Audio - HTML5 video/audio elements, poster images, source tags
- Responsive Images - srcset attributes and lazy-loading data attributes
For Developers
Unattached Media Manager is built with extensibility in mind:
- Hooks & Filters - Extend scanning with custom parsers
- REST API - Query media usage programmatically
- WP-CLI Commands - Run scans from the command line (
wp aioms scan)
- Custom Post Types - Automatically scans all public post types