Media cleaners have one big problem: false positives . An image looks unused, you delete it, and a page breaks. Shift Media Library Cleanup is built around the opposite promise: when in doubt, a file is kept, and nothing is ever deleted before you had the chance to undo it. Why it is different It te
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.9 and PHP 8.1.
SourceWordPress plugins · Oct 25, 2026
01 / Source details
Aboutthistool.
Media cleaners have one big problem: false positives . An image looks unused, you delete it, and a page breaks. Shift Media Library Cleanup is built around the opposite promise: when in doubt, a file is kept, and nothing is ever deleted before you had the chance to undo it.
Why it is different
It tells you why. Every file comes with a “Why?” panel: where it is used (with a link to edit that content), or everywhere it was looked for.
Quarantine instead of deletion. Files are moved to a private folder and hidden from the Media Library. Restore them with one click, exactly as they were, for 30 days.
It watches for broken images. If a page still requests a quarantined file, the plugin flags it (“requested N times since quarantine”) and shows you which page asked for it.
It checks again right before acting. Before anything is moved, the plugin re-checks content edited since the scan and searches the files’ names across your database.
Shared files are protected. When several media items point to the same file, none of them can remove it while another one is still in use.
Where it looks for your media
Post and page content, excerpts and featured images, for every post type
Block editor (core blocks and media attributes of third-party blocks)
Classic editor: images, captions, [gallery] and [playlist] shortcodes
Elementor: page data, page and site settings (logo, favicon, backgrounds), dynamic tags
WPBakery Page Builder and themes built on it: element attributes, background images, design options CSS
WooCommerce: product images, product and variation galleries, category images, placeholder and email header images
Advanced Custom Fields: image, file and gallery fields, including repeaters, flexible content, ACF blocks, term fields and options pages
Custom fields of any plugin, user avatars, category and tag fields
Site settings: site icon, logo, header and background images, widgets (image, gallery, text, HTML and block widgets), theme option panels
Tables created by other plugins, such as sliders and form builders
Your active theme, parent theme and must-use plugins: stylesheets, templates and scripts, including image IDs written in PHP
Drafts, private posts, revisions and trashed posts count as usage too: restoring any of them will never bring back a broken image.
Built to be safe for your site
Scans run in the background in small batches, so large libraries do not hit server time limits, and they resume after an interruption.
Scanning only reads your content: nothing in your media library changes until you choose to quarantine files.
Data stored by other plugins is read without running any of their code.
No data leaves your site. No tracking, no external services, no account.
Page builders not supported yet
If the plugin detects a page builder it cannot read yet (for example Divi, Bricks, Oxygen or Beaver Builder), it shows a warning and asks for an extra confirmation before quarantining files. Review those results carefully, and use the quarantine period to check your pages.
Privacy
The plugin does not send any data outside your site and does not use cookies. To detect quarantined files that are still requested, it stores the requested file path, the time and the address of the page that asked for it (without query string). It does not store IP addresses or browser details.
See it in action
Screenshots & previews.
Scan results: media in use, not found in use and in quarantine, with selection for quarantine.The "Why?" panel explains what was checked for every file.Moving files to quarantine, with a clear explanation of what will happen.The Quarantine tab: restore or delete permanently, one file or many at once.
02 / Source details
Gettingstarted.
01Install Shift Media Library Cleanup from Plugins > Add New , or upload the plugin folder to /wp-content/plugins/ .
02Activate it from the Plugins screen.
03Go to Media > Media Cleanup and click Scan media library .
04Review the Not found in use tab. Open Why? on any file to see what was checked.
05Select files and click Move to quarantine . Browse your site for a few days, then let the quarantine expire or delete files permanently from the Quarantine tab.
We recommend a backup before any cleanup, as with any tool that removes files.
03 / Source details
Frequently asked questions.
Does the plugin delete files automatically?
No. A scan never changes anything. Files only leave your Media Library when you move them to quarantine, and they are deleted permanently only after the quarantine period (30 days) or when you delete them yourself from the Quarantine tab.
What happens to a file in quarantine?
Its files are moved to a private folder inside your uploads directory and the media item is hidden from the Media Library. Its ID, title, alt text and other details are kept, so a restore brings everything back exactly as before.
How do I know a quarantined file is still needed?
When a visitor’s browser requests a quarantined file, the plugin counts it and shows the page that requested it in the Quarantine tab. This works when missing files are handled by WordPress, which is the case on most Apache servers and many nginx setups; some servers answer missing image requests on their own, and those requests cannot be seen.
Can the plugin miss a file that is in use?
It is designed to make that very unlikely, but it can happen with images loaded from places outside your site (another website, an email already sent, a mobile app) or by a plugin storing image IDs in a format nobody else uses. That is why removal always goes through the quarantine first.
What about files that are not in the Media Library?
The plugin works with media items registered in the Media Library. Files copied to the uploads folder by other means are not listed and never touched.
Why does the scan say it is too old?
Moving files to quarantine requires a scan from the last 24 hours, so recent changes to your site are taken into account. Just run a new scan: it continues in the background.
What happens when I uninstall the plugin?
Everything in quarantine is restored first, then the plugin removes its own data. If a file cannot be restored because a new file now has the same name, its data is kept so that reinstalling the plugin shows it again.
Does it work on multisite?
Yes. Each site of the network has its own scan and quarantine.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati