The scanner spotlight covered how Media Usage builds its index. This post is about what to do with that index when the real goal is storage: finding images that are safe to consider for cleanup, and knowing when the dashboard is telling you to wait.
Media Usage does not delete files. What it gives you is a local classification of every image, plus an estimate of reclaimable image space. Used carefully, that is enough to triage a bloated Media Library without guessing from filenames.
Start from statuses, not from disk size
Open Media Usage → Dashboard after a complete scan. Status totals are the triage map; estimated reclaimable space is a consequence of them, not a button to press.
| Status | What it means for storage |
|---|---|
| In use | Found in published (or similarly live) content. Leave it alone. |
| Referenced | Found in a draft, private item, reusable block, saved layout, or builder template. Not free space — something still points at it. |
| Needs review | Zero matches so far, but at least one source did not finish scanning. Do not treat this as reclaimable. |
| No references found | The latest complete scan found nothing in the sources the plugin can inspect. Candidate for review, not a delete warrant. |
| Protected | You (or a workflow) marked it off-limits. It stays out of reclaimable totals. |
| Not scanned | The index has not classified it yet. Wait for the scan to finish. |
The plugin deliberately says No references found, not Unused. Custom PHP, remote systems, conditional front-end code, and inaccessible pages can still load an image the database scanner never sees. Treat that status as “worth a human look,” not “free to wipe.”
Clear Needs review before you trust reclaimable space
Estimated reclaimable image space on the dashboard is only meaningful when the index is healthy. If sources were skipped — oversized content, complex builder blobs that hit a safety limit, or anything the scanner refused to load unbounded — affected images stay in Needs review instead of collapsing to No references found.
That is the storage-critical detail. A zero-match count on an incomplete scan would understate risk and overstate reclaimable space. Media Usage refuses that tradeoff: it names the skipped source, the reason, and the limit it hit, and it keeps those images in review until coverage is resolved.
Use the dashboard’s skipped-source list, then the protected retry (one named source per request, higher but still finite limits). Only after skipped sources are resolved does the plugin repair affected statuses in small batches. Until then, ignore the reclaimable estimate for cleanup planning — or treat it as a lower bound that will move once review clears.
Protect anything you know must stay
Before you sort the Media Library by No references found, protect images that live outside the scanner’s world: logos pulled by a child theme, hero assets referenced only in CSS, partner badges injected by a mu-plugin, seasonal creatives you keep offline until a campaign returns.
Protection is manual on purpose. It is the escape hatch for “the database is wrong about this one,” and it keeps those attachments out of reclaimable totals and out of any future Cleanup Queue eligibility in Media Usage Pro. Mark them early so a large triage pass does not keep resurfacing known keepers.
Work the Media Library filters, not a spreadsheet export
With the index current and review cleared, use the Media Library usage filters and status badges:
- Filter to No references found.
- Spot-check high-impact files first (large originals, old upload years, obvious duplicates of still-in-use heroes).
- Open the attachment view and read the reference details panel — for candidates you expect to keep, you want zero evidence; if anything shows up as Referenced elsewhere, trust the index over your memory of the filename.
- Protect keepers as you go; leave true candidates in No references found for a later cleanup decision.
Referenced images are a common false lead for storage projects. A Divi library layout or an Elementor template can hold a multi-megabyte image that never appears on a published page and still is not safe reclaimable space until you decide the template itself is disposable.
What “reclaimable” actually measures
The dashboard’s estimated reclaimable image space is derived from images whose latest complete, warning-free classification is No references found, using indexed file-size data for those attachments. It is not a filesystem walk of uploads/, not a count of orphaned resized derivatives on disk, and not a promise that deleting those attachments will free exactly that many bytes after WordPress regenerates or CDN-purges related objects.
Use it to prioritize whether a cleanup pass is worth scheduling, and roughly how large the candidate set is. Confirm individual files in the Media Library before you act — especially on sites with offloaded media, custom upload paths, or heavy builder template libraries.
A practical order of operations
For a site whose Media Library has grown for years:
- Build usage index (or wait for an in-progress rebuild to promote). Do not triage against a half-built generation.
- Resolve every Needs review / skipped source until the dashboard is warning-free for the statuses you care about.
- Protect known external or CSS-only keepers.
- Filter No references found, review large candidates, protect anything you decide to keep.
- Only then consider cleanup tooling — including Pro’s reversible Cleanup Queue, which still does not delete files, and still requires a warning-free index plus
no_referenceswith zero count and no protection flag.
If you stop after step 4, you already have a storage map you can trust. The index stays current through incremental rescans as content changes; a full reconciliation still runs on a 30-day cadence as a standing correction. Revisit the dashboard when uploads spike or after a big content migration — those are the moments reclaimable estimates usually move.
Nothing in this workflow auto-deletes. That remains intentional: storage wins that come from a false “unused” label cost more than the disk they free.