Media
v1.5.4Take control of the media library — regenerate thumbnails, add custom sizes, convert to WebP or AVIF, see exactly what is eating your disk, delete orphaned files, find images nothing uses, and organise everything into folders that work inside Elementor.
Overview
Media turns the WordPress media library from a dumping ground into something you can actually manage: what sizes exist, what they cost you in disk space, what is safe to delete, and where everything lives.
A WordPress site generates a dozen or more files for every image you upload. Change a theme, add a size, remove a size, switch to WebP — and the old files stay on disk forever. Media gives you a way to see all of that and clean it up, without ever touching your original uploads.
What you can do
- Regenerate thumbnail sizes for one image or the whole library
- Add your own custom image sizes that apply to new uploads and to regeneration
- Convert generated sizes to WebP or AVIF and set the compression quality
- Audit the disk footprint of every image, sorted largest first
- Delete orphaned size files left behind by removed sizes or format switches
- Find images nothing references and move them to a reviewable bin
- Organise the library into folders that filter inside Elementor and the block editor
Requirements & compatibility
Media uses the image tools your host already has. No external service, no API key.
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 6.0 | 6.5 or newer |
| PHP | 7.4 | 8.1 or newer |
| Image library | GD | Imagick — needed for AVIF |
| WebP support | Optional | PHP 7.4+ with GD or Imagick |
Installation & activation
Media ships inside WPStack — switch it on per site from the modules panel.
Open the WPStack modules panel
In your WordPress admin, go to WPStack → Modules and find Media.
Activate Media
Flip the Media toggle to on. A new Media item appears in the WPStack menu.
Review your sizes
Open WPStack → Media → Settings to see every registered image size and add your own.
Check what you are storing
The Library tab shows your total footprint. Sort by Largest to see what is actually costing you.
Custom image sizes
Add named sizes that WordPress generates for new uploads and rebuilds when you regenerate.
A custom size is a name, a width, a height and whether it crops. Once added it behaves exactly like a built-in WordPress size: new uploads get it automatically, and it appears in the list of sizes you can regenerate.
- Use 0 for width or height to keep that dimension proportional
- Crop gives you an exact width × height, trimming the image to fit
- Built-in size names (thumbnail, medium, large…) cannot be shadowed
WebP, AVIF & compression
Convert the sizes WordPress generates into a modern format, and control how hard they are compressed.
Choosing WebP or AVIF makes WordPress write every generated size in that format instead of JPEG or PNG. New uploads convert automatically; existing images convert when you run a bulk regenerate.
| Option | What it does | When to use it |
|---|---|---|
| Off | Keeps JPEG and PNG as they are | Maximum compatibility |
| WebP | Good compression, very broad browser support | The safe default for most sites |
| AVIF | Smallest files, slower to encode | Image-heavy sites where transfer size matters most |
Compression quality applies to JPEG whether or not conversion is on, and to WebP and AVIF when it is. PNG is lossless and is left alone. The default is 82; 75–82 is a good range.
Regenerating sizes
Rebuild thumbnails for one image, or for the entire library.
One image at a time
A Regenerate button appears in the WPStack column of the media library list, in the media modal, and on the attachment edit screen — which also gains an Image sizes panel listing every generated size with its dimensions, file size and a direct link.
The whole library
Bulk regenerate works through every image in small batches and reports how much disk space it saved. Because progress is kept on the server, refreshing the page resumes the job rather than restarting it, and closing the tab simply pauses it.
The Library audit
See exactly what every image costs you on disk, and which ones are worth attention.
The footprint of an image is not the file you uploaded — it is the original, the scaled main file and every generated size added together. The Library tab totals all of that, per image and across the whole library.
- Sort by Largest to find the handful of images using most of your disk
- The Sizes column shows how many generated files each image has
- The header total tells you what the media library actually costs
Cleaning up orphaned files
Remove generated size files that no image references any more.
When you remove a custom size, or switch to WebP, WordPress stops referencing the old files but never deletes them. On a site that has changed theme once or twice this is routinely hundreds of megabytes.
-WIDTHxHEIGHT.ext pattern, and it keeps everything still referenced in its metadata. It never walks your uploads folder at large, so an unrelated file that happens to look like a thumbnail is never touched.Scan
Read-only. Reports how many orphaned files exist and how much space they use. Nothing is deleted.
Review the number
If it looks wildly wrong, stop and ask — do not delete.
Delete
A separate, confirmed action that removes only the files found in the scan.
Finding unused images
Track down images nothing on the site links to — and review them before anything happens.
The scan flags an image only when it is not a featured image, not the site icon or logo, not in any post or page content, and not referenced in any other post's meta — which covers page builders and custom field plugins.
The bin
Images you move go to the WordPress trash, which has no interface of its own for media — so the module provides one. They are hidden from the site but still on disk, and are permanently deleted after your site's trash retention period (30 days by default). Until then you can restore any of them, individually or all at once.
Media folders
Organise the library into folders that work everywhere you pick an image — including Elementor.
Folders are virtual. Nothing moves on disk, so no image URL changes and nothing embedded in a page can break. A folder is a label on the image — and deleting a folder only removes the label, never the image.
Where they appear
- A folder sidebar in the Media Library, in both grid and list view
- Drag images onto a folder to move them — drag a selection to move many at once
- A folder filter in every image picker: Elementor, the block editor and the classic editor
- A Folder column, a folder filter and a "Move to folder" bulk action in list view
- New uploads land in whichever folder you are currently viewing
Folders nest: drag one folder onto another to put it inside, or onto All media to bring it back to the top level. Unassigned always shows what is not filed yet, so nothing is ever hidden from you.
Settings reference
Everything on the Settings tab, at a glance.
| Setting | Type | Default | What it does |
|---|---|---|---|
| Custom image sizes | List | Empty | Named sizes with width, height and optional crop. Applied to new uploads and to regeneration. |
| Convert format | Off / WebP / AVIF | Off | Format for generated sizes. Formats your server cannot encode are disabled. |
| Compression quality | Number 1–100 | 82 | Applies to JPEG, and to WebP/AVIF when converting. PNG is lossless and unaffected. |
| Enable media folders | Toggle | Off | Adds the folder sidebar, the picker filter and the list-view column. Assignments survive being switched off. |
| Sizes to regenerate | Checkboxes | All selected | Which sizes an image should have. Unchecked sizes are removed when you regenerate. |
FAQ
No. Every feature operates on the sizes WordPress generates. Your uploaded file is never resized, re-encoded or moved.
The scan is read-only and shows you the number first. It only considers files matching an image's own name and the exact thumbnail naming pattern, and keeps everything still referenced. As with anything that deletes files, take a backup first.
It never deletes — it moves images to a bin you can restore from, and they only leave permanently after your trash retention period. It also errs towards keeping: anything it cannot prove is unused is left alone. Review the list and hit Keep on anything you recognise.
No. Folders are labels, not directories. No file moves, no URL changes, and nothing embedded in a page can break.
Yes. Elementor uses the standard WordPress media picker, so the folder filter appears there — as it does in the block editor and the classic editor.
Only the folder goes. Its images stay in the library and become Unassigned, and any folders nested inside it move up a level rather than disappearing.
Yes. Progress is stored on the server, so cancelling stops it cleanly, refreshing resumes it, and closing the tab just pauses it until you come back.
Conversion applies automatically to new uploads. Existing images convert when you run Bulk regenerate, which rebuilds their sizes in the new format.