Warum sammeln sich ungenutzte Medien an?
Jeder Shopware-Shop hat das gleiche Problem: Die Mediathek wächst und wächst — aber nicht jede Datei wird tatsächlich noch gebraucht. Produktbilder gelöschter Artikel bleiben zurück, Testdaten aus der Einrichtungsphase schlummern in vergessenen Ordnern, Import-Reste von Produktfeeds häufen sich an, und nach CMS-Umbauten liegen alte Headerbilder und Bannergrafiken ungenutzt herum.
Das klingt erst mal harmlos, hat aber konkrete Auswirkungen:
- Speicherplatz — Bei Hostings mit begrenztem Storage summiert sich das schnell. Tausende ungenutzte Bilder belegen Platz, der besser für aktuelle Inhalte genutzt wäre.
- Unübersichtlichkeit — Wer in einer Mediathek mit 15.000 Dateien ein bestimmtes Bild sucht, verliert wertvolle Zeit. Ordnung in der Mediathek bedeutet Ordnung im Arbeitsalltag.
- Langsame Backups — Jede ungenutzte Datei wandert mit ins Backup. Das erhöht die Dauer, den Speicherbedarf und im Zweifel auch die Kosten.
Die gute Nachricht: Es gibt mehrere Wege, das Problem zu lösen. Drei davon schauen wir uns hier genauer an — mit allen Vor- und Nachteilen.
Weg 1: Manuell in der Mediathek löschen
Der naheliegendste Ansatz: Du öffnest im Shopware-Admin unter Inhalte → Medien die Mediathek und gehst die Dateien einzeln durch. Wird ein Bild noch irgendwo verwendet? Dann bleibt es. Wenn nicht, kannst du es markieren und löschen.
Vorteile:
- Volle Kontrolle — Du siehst jede Datei und entscheidest selbst, ob sie bleibt oder geht.
- Kein technisches Wissen nötig — Jeder, der den Admin bedienen kann, kommt damit zurecht.
- Kein Risiko — Wer manuell prüft, löscht nichts versehentlich.
Nachteile:
- Extrem zeitaufwendig — Bei einer Mediathek mit mehreren hundert oder gar tausend Dateien ist das schlicht nicht praktikabel.
- Keine Nutzungsinformation — Shopware zeigt dir in der Mediathek nicht an, ob eine Datei noch aktiv verwendet wird. Du musst selbst prüfen, ob das Bild in einem Produkt, einer Kategorie oder einer CMS-Seite eingebunden ist.
- Fehleranfällig bei großen Beständen — Je mehr Dateien du durchgehst, desto höher die Wahrscheinlichkeit, etwas zu übersehen oder versehentlich eine genutzte Datei zu löschen.
Fazit: Für einen Shop mit 50 ungenutzten Bildern ein gangbarer Weg. Für alles darüber hinaus nicht empfehlenswert.
Weg 2: CLI-Befehl bin/console media:delete-unused
Shopware bringt einen eingebauten Konsolenbefehl mit, der ungenutzte Medien automatisch erkennt und löscht. Du führst ihn per SSH oder in einem Docker-Container aus:
bin/console media:delete-unused
Der Befehl prüft, welche Medien in keiner Entität (Produkt, Kategorie, CMS-Seite etc.) mehr referenziert werden, und entfernt sie.
Vorteile:
- Schnell — Auch bei großen Mediatheken ist der Vorgang in wenigen Sekunden bis Minuten erledigt.
- Kein Plugin nötig — Der Befehl ist Teil des Shopware-Kerns und sofort verfügbar.
- Zuverlässig — Shopware prüft intern die Referenzen. Was nicht mehr verknüpft ist, wird erkannt.
Nachteile:
- SSH- oder Serverzugriff erforderlich — Nicht jeder Shop-Betreiber hat Zugang zur Kommandozeile. Bei Managed-Hosting-Paketen ist das oft eingeschränkt oder gar nicht möglich.
- Keine Vorschau — Du siehst vor dem Löschen nicht, welche Dateien betroffen sind. Es gibt kein „Erst anzeigen, dann entscheiden”.
- Kein Filter — Es ist alles oder nichts. Du kannst nicht sagen: „Lösche nur ungenutzte PNGs über 500 KB, die älter als 6 Monate sind.”
- Keine Benutzerrechte-Steuerung — Wer SSH-Zugang hat, kann den Befehl ausführen. Es gibt keine ACL-Integration, um z. B. einem Content-Manager das Aufräumen zu erlauben, aber das Löschen großer Dateien zu verhindern.
- Für technisch Unerfahrene ungeeignet — Wer sich mit der Kommandozeile nicht wohlfühlt, wird diesen Weg scheuen — und zu Recht, denn ein falscher Befehl kann auf dem Server einigen Schaden anrichten.
Fazit: Für Entwickler und technisch versierte Admins mit Serverzugang ein schneller und effektiver Weg.
Weg 3: Mediathek-Aufräumer Plugin
Der dritte Weg ist ein dediziertes Plugin, das die Funktionalität des CLI-Befehls ins Admin-Dashboard bringt — erweitert um visuelle Kontrolle und zusätzliche Sicherheitsebenen. Der Mediathek-Aufräumer fügt unter Inhalte → Medien aufräumen ein eigenes Dashboard hinzu.
Vorteile:
- Visuelle Vorschau — Jede als ungenutzt erkannte Datei wird mit Vorschaubild angezeigt. Du siehst sofort, um welche Dateien es geht.
- Filter — Du kannst nach Dateityp (Bilder, Dokumente, Videos), Mindestgröße und Upload-Alter filtern. So räumst du gezielt auf, statt pauschal alles zu löschen.
- Massenauswahl mit Bestätigungsdialog — „Alle auswählen” funktioniert seitenübergreifend. Vor dem endgültigen Löschen erscheint ein Bestätigungsdialog — kein versehentliches Löschen mit einem Klick.
- Echtzeit-Neuvalidierung — Zwischen dem Zeitpunkt, an dem du die Liste lädst, und dem Moment, in dem du auf „Löschen” klickst, kann sich etwas geändert haben. Das Plugin prüft vor dem Löschen erneut, ob die ausgewählten Dateien wirklich noch ungenutzt sind.
- ACL-Rechte — Separate Lese- und Löschberechtigungen ermöglichen granulares Rollen-Management. Ein Content-Manager darf sehen, was ungenutzt ist — aber nur ein Admin darf löschen.
- Kein CLI nötig — Alles passiert im Browser, im vertrauten Shopware-Admin.
Nachteile:
- Plugin-Installation erforderlich — Es ist kein Shopware-Bordmittel, sondern muss installiert und ggf. lizenziert werden.
- Zusätzliche Abhängigkeit — Wie bei jedem Plugin muss die Kompatibilität bei Shopware-Updates geprüft werden.
Fazit: Die komfortabelste Lösung, besonders für Teams und Shop-Betreiber ohne CLI-Zugang.
Vergleichstabelle
| Kriterium | Manuell | CLI-Befehl | Plugin |
|---|---|---|---|
| Technisches Wissen nötig? | Nein | Ja (SSH) | Nein |
| Filterbar? | Nein | Nein | Ja |
| Vorschau vor dem Löschen? | Einzeln | Nein | Ja |
| Massenauswahl? | Nein | Alles auf einmal | Ja (mit Auswahl) |
| ACL-Rechte? | Nur Admin-Login | Nur SSH-Zugang | Ja (Lesen/Löschen getrennt) |
| Bestätigungsdialog? | Ja (einzeln) | Nein | Ja |
| Geeignet für große Mediatheken? | Nein | Ja | Ja |
Fazit: Welcher Weg passt zu dir?
Es gibt nicht den einen richtigen Weg — es kommt auf deine Situation an.
Wenn du Entwickler bist und regelmäßig SSH-Zugang zu deinen Shops hast, ist bin/console media:delete-unused ein schnelles und effektives Werkzeug. Es ist bereits da, es funktioniert, und du brauchst nichts zu installieren. Für einen schnellen Cleanup im Rahmen eines Deployments oder einer Wartung ist das völlig ausreichend.
Wenn du ein Shop-Betreiber bist oder in einem Team arbeitest, in dem mehrere Personen Inhalte pflegen, sieht die Sache anders aus. Nicht jeder hat CLI-Zugang, nicht jeder sollte ihn haben. Hier bietet ein Dashboard-Plugin wie der Mediathek-Aufräumer klare Vorteile: visuelle Kontrolle, Filter, Berechtigungen und ein Sicherheitsnetz durch Bestätigungsdialoge und Neuvalidierung.
Das manuelle Löschen ist für den Alltag in den meisten Shops keine realistische Option — aber es bleibt eine Möglichkeit für den gelegentlichen Einzelfall.
Am Ende geht es darum, dass du deine Mediathek regelmäßig aufräumst — egal mit welcher Methode. Denn je länger du wartest, desto größer wird der Berg.
Verwandte Plugins
Newsletter abonnieren
Erhalte Updates zu neuen Shopware-Plugins, Tutorials und Release-Notes direkt in dein Postfach. Kein Spam, jederzeit abbestellbar.