Rapid Media Reclaim helps you review potentially unused images, documents, video and audio before reclaiming storage in your WordPress Media Library. See usage evidence, move selected files to reversible quarantine, and restore them if they are still needed.
The scanner checks posts, pages, page builder data, custom fields, settings and other supported sources. Results show where references were found and explain the confidence of files that appear unused. Optional public-page crawling and request watching provide additional evidence, subject to the coverage of your site and server.
No scanner can prove that a file is unused. Review the evidence and keep a current backup before cleanup. Permanent deletion requires your action after the quarantine period; quarantined media can be restored first.
Every feature is free. There is no Pro version, no account and no external service.
wp-image- classes and gallery, video, audio and playlist shortcodes.Every unused file has a confidence level:
Both features are disabled by default. Enable them in Media > Rapid Media Reclaim > Settings.
Browser watching reports up to 10 failed same-origin uploads per report, up to 60 reports per site and 10 per visitor per minute. Reports only count for media on published, non-password-protected content. For each reported attachment, only the time it was last reported is stored. No visitor IP, referrer, user agent, page URL or response body is stored; to apply the per-visitor limit, a salted hash of the visitor’s IP is kept for one minute. Public tokens stay valid for up to two days, so cached pages keep working. Tokens are public and replayable, so reports are hints, not proof of human use. Reports never return media IDs, paths, quarantine contents or restore outcomes.
Automatic restore is separately opt-in. When it is on, any visitor who requests the address of a quarantined public file can bring that file back, so quarantine is no longer permanent for public files. Unattached media is eligible, as is media attached to published content without a password. Media attached to private, draft or password-protected content is excluded.
Static requests handled by a web server or CDN never reach PHP. The observer covers only opted-in anonymous public HTML visits with JavaScript, common image, video and source errors, and retries once. It cannot cover CSS backgrounds, offline clients, cached pages without the script, all embeds, logged-in or private content, external CDNs or requests outside the browser. No server configuration is changed.
The optional crawler fetches at most 100 public posts and pages by default (configurable from 1 to 500), without credentials or JavaScript. Requests use same-origin, published, non-password-protected permalinks, with no query strings, no redirects, five second timeouts and a 1 MiB response limit. It does not follow arbitrary links, submit forms, crawl archives or custom post types, or fetch external URLs. Failed, skipped, capped and pending pages are shown as coverage gaps. Loopback restrictions, plain permalinks and redirects may prevent coverage. Review evidence and back up before cleanup.
Recovery records remain until all files are restored or payload cleanup completes. Interrupted moves and restores can be retried using the recorded SHA-256 identity. Unsupported hard links fail closed. Uninstall retains recovery data and access guards if any restore is unresolved; resolve it before uninstalling.
Quarantine is not encrypted storage. Its randomized directory includes Apache and IIS deny files, which Nginx and other servers may ignore. Verify equivalent access denial on your host before quarantining sensitive media. This plugin does not install or change server configuration.