WordPress plugin intelligence profile

ZEJ Mediatidy – Media Library Cleanup: Unused Images, Duplicates, WebP & Compression

Find unused images, catch duplicates, convert to WebP and compress. Runs on your own server. Free, unlimited, no account, no API key.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.0
Current version1.0.1
WordPress coverageTested up to WordPress 7.0
Minimum stackWP 6.0 · PHP 7.4
Directory statusactive
Last directory update12 Aug 20262mo ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records ZEJ Mediatidy – Media Library Cleanup: Unused Images, Duplicates, WebP & Compression version 1.0.1 as active, updated 2mo ago and tested up to WordPress 7.0.

Overview

About this plugin

Most media libraries grow for years and nobody ever audits them. A blog with twelve thousand attachments. A store carrying every product photo it has ever had, including the ones from the supplier who left in 2021.

An old site that has been through three themes. Somewhere in there are images no page has pointed at since 2019, four copies of the same photo under four filenames, and a few hundred JPEGs that should have become WebP a long time ago.

Almost nobody cleans that up, because almost nobody can tell what is safe to remove. Delete the wrong file and a product page loses its main photo, or the header goes blank, and you find out weeks later.

ZEJ Mediatidy is built to answer that question properly and then act on it.

Everything runs on your own server

Mediatidy uses the image libraries PHP already has on your host. No file is uploaded anywhere. There is no processing queue on somebody else’s machine, no credits, no API key, no account to create.

That is also why it is free with no limits: there is no per image cost for me to pass on to you.

What it does

  • Finds images that nothing on the site references, and shows you where the referenced ones are used before you touch anything.
  • Finds real duplicates by comparing file contents, so renamed copies are caught too.
  • Converts JPEG and PNG to WebP, serves the WebP copy to visitors, and leaves the original in place beside it.
  • Compresses heavy images and resizes anything wider than a limit you set.
  • Strips EXIF metadata from photos.
  • Adds media categories so a big library can be sorted into something navigable.
  • Reports how much disk space you have recovered.

Deleting is recoverable

Deleting from Mediatidy moves the attachment into a plugin trash that keeps the database row, the metadata and the files on disk. There is a restore button next to every trashed item. Nothing is actually destroyed until you empty the trash, and trashed items sit there for 30 days before they become eligible for purging.

Mediatidy also rechecks an image for references at the moment you delete it, so a scan result that has gone stale cannot take down a file that has since been used.

Built to survive very large libraries

Every scan walks the library in batches of 200 attachments, one request at a time, with a live progress bar and a cursor that remembers where it stopped. A library of 50,000 attachments takes the same code path as a library of 500, just for longer. No single request ever has to hold the whole library in memory, so there is no timeout and no exhausted memory limit at exactly the size where this problem starts to matter.

Reference detection that looks in the places that bite

Before Mediatidy calls an image unused, it checks post content and excerpts across every post status rather than published posts only, post meta including featured images and page builder payloads, the options table, theme mods, the site logo and the site icon, custom CSS, widgets, term meta, user meta, navigation menu items, reusable blocks and template parts, and WooCommerce product galleries. Resized variants count as usage of the file they came from.

When an image is referenced, Mediatidy names the places it found it, so you can go and look for yourself.

Honest about what it changes

  • Compression and resizing rewrite the original file. Mediatidy backs the original up first and you can restore it from the same screen.
  • Truly lossless EXIF stripping needs the Imagick extension. When Imagick is available the compressed image data is left untouched and only the metadata blocks are removed. Without it, Mediatidy falls back to GD, which re-encodes the image, so the file changes slightly.
  • WebP conversion needs WebP support in either GD or Imagick. Most hosting from 2020 onward has it.

External Services

ZEJ Mediatidy does not use any external service.

Every scan, hash, conversion, compression and metadata edit happens on your own server through

the GD or Imagick extension that PHP already has. No image and no data about your site is sent

anywhere. There is no account, no API key, no licence check, no analytics and no update ping to

any server of mine. The plugin makes no outbound network request at all.

That is also why it is free with no image limit: because the processing runs on your hardware

rather than on a server I pay for, a library of fifty thousand images costs me exactly what a

library of fifty costs me.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • duplicate images
  • image optimization
  • media library
  • unused images
  • webp
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 7.0

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 7.0.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.0
Minimum requirementsWordPress 6.0 · PHP 7.4
Update activity12 Aug 20262mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.