> For the complete documentation index, see [llms.txt](https://docs.momocode.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.momocode.de/en/shopware-6/media-cleanup-dashboard/1.-description.md).

# 1. Description

Unused media files accumulate in every Shopware store over time — especially after product imports, layout changes, or manufacturer logo updates. While Shopware includes the `media:delete-unused` CLI command, most merchants don't have server access to run it.

**Media Cleanup Dashboard** brings this functionality directly into the Shopware Administration: a visual dashboard that safely identifies, displays, and deletes unused files — no command-line access required.

![Start view with "Start scan" button](/files/1so04pXIbaspEsMXmfBh)

## Features at a Glance

### Dashboard with File List

The dashboard displays all unused media files in a paginated list — with a preview thumbnail (or a file-type icon for PDFs, videos, etc.), file name, type, size, and upload date. A summary bar at the top shows the total file count and combined storage size at a glance.

### Async Background Scan

As of version 1.1 / 2.1, the scan runs asynchronously in the background — no HTTP timeout, even for very large media libraries. Results appear immediately once the scan completes. Results are cached for up to 4 hours: page navigation and delete operations never trigger a full re-scan. The **Rescan** button refreshes results on demand at any time.

![Result list with unused media files after the scan](/files/ZObCfRG5jzoISh6VBf5W)

### Bulk Selection and Safe Deletion

Select individual files via checkbox or use "Select all" — even across multiple pages. Before any deletion, a confirmation dialog shows the number of files and total size. A progress indicator is displayed during deletion; the result (deleted / skipped / failed) is reported in detail when complete.

In addition, the plugin performs a real-time last-mile verification immediately before every deletion — checking whether a file has been re-assigned since the scan — so no actively used files are ever deleted.

![Confirmation dialog before deleting](/files/RajuCTYS44Gb4UxafPD4)

### Filters and Sorting

Filter the list by file type (image, video, document, other), minimum file size, or upload age. Sort by file name, file size, or date — ascending or descending. A single click resets all active filters.

![File type filter "Image" applied](/files/YCBbO9ZirGn8RUMaD1Dn)

### User Permissions (ACL)

The plugin adds two separate privileges:

* **momo\_media\_cleanup:read** — access to the dashboard and the unused media list
* **momo\_media\_cleanup:delete** — permission to delete unused media files

Staff can review the list without having delete access.

## Technical Details

| Property               | Value                                                               |
| ---------------------- | ------------------------------------------------------------------- |
| Shopware compatibility | 6.6.x and 6.7.x                                                     |
| PHP                    | 8.2+                                                                |
| External services      | None — the plugin communicates only with your own Shopware instance |
| Database migrations    | None — the plugin does not create any custom tables                 |
| Background scan        | Async via Symfony Messenger (requires a running worker)             |
