Beschreibung
WebP-Migrator für W3TC ist ein Begleit-Plugin für W3 Total Cache, das die Arbeit abschließt, sobald der W3TC ImageService ein Bild in WebP konvertiert hat.
Es sind keine Änderungen an .htaccess, mod_rewrite oder der Webserver-Konfiguration nötig. Stattdessen schreibt das Plugin die Ersetzung einmalig zurück in die Datenbank, anders als ein Laufzeit-Content-Filter, der URLs bei jeder Anfrage neu austauscht: Sobald W3TC ein Attachment als konvertiert markiert, wird jedes Vorkommen der Bild-URL — in post_content, Widget-Instanzen und Theme-Mod-Einstellungen (z. B. ein Hintergrundbild im Customizer) — dauerhaft von der ursprünglichen Endung (jpg/jpeg/png/gif) auf .webp umgestellt. Das gilt für absolute, root-relative und protokoll-relative URL-Formen, da handgeschriebene Inhalte (meist das „Zusätzliches CSS“-Feld des Customizers) Schema und/oder Host häufig weglassen. Der eigene Datensatz des Attachments (angehängte Datei, Metadaten, MIME-Typ) wird entsprechend aktualisiert, sodass auch Mediathek und REST-API konsistent bleiben.
Optional kann das Plugin, sobald ein Bild vollständig ersetzt wurde, die nun nicht mehr benötigten Original-Quelldateien vom Datenträger löschen, um Speicherplatz freizugeben.
Dies ist eine unabhängige, inoffizielle Erweiterung, die in keiner Verbindung zu BoldGrid / W3 EDGE, den Machern von W3 Total Cache, steht und weder von ihnen unterstützt noch gesponsert wird. „W3 Total Cache“ ist eine Marke des jeweiligen Rechteinhabers und wird hier ausschließlich zur Beschreibung der Kompatibilität verwendet.
Funktionen
- Überwacht Konvertierungen des W3TC ImageService und reagiert automatisch darauf.
- Generiert jede Zwischengröße, die W3TC selbst nicht konvertieren konnte (das kann stillschweigend passieren, z. B. bei Site-Icon-Größen, die nur in bestimmten Admin-Kontexten registriert werden), direkt aus der bereits konvertierten WebP-Vollgröße nach, statt endlos auf ein Ereignis zu warten, das nie eintritt.
- Ersetzt jede Referenz auf das konvertierte Bild (Vollgröße und alle Zwischengrößen) — in
post_contentaller Beiträge, Widget-Instanzen und Theme-Mod-Einstellungen — als absolute, root-relative oder protokoll-relative URLs. - Aktualisiert die eigene Dateireferenz, die Metadaten und den MIME-Typ des Anhangs entsprechend.
- Optional: löscht die Original-Quelldateien nach einer erfolgreichen Ersetzung.
- Eine Quelldatei wird nur dann gelöscht, wenn zuvor bestätigt wurde, dass ihr
.webp-Gegenstück auf dem Datenträger existiert. - Manuelles Werkzeug „Jetzt verarbeiten“ unter Einstellungen WebP Migrator für W3TC für Bilder, die konvertiert wurden, bevor dieses Plugin aktiv war.
- Diagnose-Logging (hinter
WP_DEBUG_LOG) erklärt genau, warum ein Bild übersprungen wurde — hilfreich, um einen Batch ohne Fortschritt zu untersuchen. - Korrigiert zudem eine Bild-Referenz genau im Moment des Speicherns eines Beitrags — für den seltenen Fall, dass das Bild eingefügt wurde, während es im Hintergrund noch konvertiert wurde.
- Das Löschen der Originaldateien eines frisch hochgeladenen Bildes wird um eine kurze Gnadenfrist nach dem Upload verzögert, damit es nicht mitten aus einer Editor-Sitzung entfernt wird, die es möglicherweise noch von der ursprünglichen URL darstellt.
Funktionsweise
- Der W3 Total Cache ImageService konvertiert ein Bild und markiert das Post-Meta-Feld
w3tc_imageservicedes Anhangs alsconverted. - Dieses Plugin erkennt diese Meta-Änderung und sucht alle Dateien, die W3TC für den Anhang erzeugt hat (Originalgröße und jede registrierte Thumbnail-Größe).
- Falls W3TC eine der Zwischengrößen nicht erzeugt hat, generiert das Plugin sie selbst aus der bereits konvertierten WebP-Vollgröße nach, sodass eine einzelne, stillschweigend übersprungene Größe nicht das gesamte Attachment dauerhaft blockiert.
- Es durchsucht
post_contentaller Beiträge sowie Widget-Instanzen und Theme-Mod-Einstellungen nach den alten URLs — in absoluter, root-relativer und protokoll-relativer Form — und ersetzt sie direkt in der Datenbank durch die.webp-Versionen. - Die eigenen Felder des Anhangs –
_wp_attached_file,_wp_attachment_metadataundpost_mime_type– werden aktualisiert, sodass sie auf die.webp-Dateien verweisen. - Wenn in den Einstellungen aktiviert, werden die Originaldateien (jpg/jpeg/png/gif) vom Datenträger gelöscht.
Voraussetzungen
- W3 Total Cache muss installiert und aktiviert sein.
- Bilder müssen über Medien W3TC Image Service konvertiert werden; dieses Plugin führt selbst keine Konvertierung durch.
Einschränkungen
Dieses Plugin konvertiert keine Bilder in WebP – die Konvertierung erfolgt vollständig durch den W3 Total Cache ImageService. Es reagiert erst, sobald W3TC ein Bild als konvertiert meldet.
Dieses Plugin unterstützt ausschließlich WebP. AVIF wird nicht unterstützt: W3 Total Cache bietet die AVIF-Konvertierung nur in der kostenpflichtigen Pro-Version an, und die ImageService-Integration dieses Plugins in der kostenlosen Version erhält ausschließlich WebP-Konvertierungen.
Inhalte, die außerhalb von post_content, Widget-Instanzen und Theme-Mods gespeichert sind, werden nicht durchsucht — etwa die eigenen, in Postmeta gespeicherten Design-Daten eines Page-Builders (wie Elementor). Wird ein Bild ausschließlich von einer solchen Quelle referenziert, wird dessen URL dort nicht aktualisiert.
Das Löschen der Originalbilder ist dauerhaft und kann von diesem Plugin nicht rückgängig gemacht werden. Halte Sicherungen bereit, bevor du die automatische Löschung aktivierst.
Installation
- Lade den Ordner
sev-webp-migrator-for-w3tcin das Verzeichnis/wp-content/plugins/hoch. - Aktiviere das Plugin über das Menü Plugins in WordPress.
- Stelle sicher, dass W3 Total Cache installiert und aktiviert ist.
- Aktiviere bei Bedarf „Originalbilder löschen“ unter Einstellungen WebP Migrator für W3TC.
- Für Bilder, die W3TC bereits vor der Aktivierung konvertiert hat, verwende das Werkzeug „Jetzt verarbeiten“ auf derselben Einstellungsseite.
FAQ
-
Konvertiert dieses Plugin Bilder in WebP?
-
Nein. Die Bildkonvertierung erfolgt vollständig durch den W3 Total Cache ImageService. Dieses Plugin ersetzt lediglich die URLs bereits konvertierter Bilder dauerhaft, überall dort, wo sie referenziert werden (siehe nächste Frage), sowie im eigenen Datensatz des Anhangs.
-
Werden auch Widgets, Theme-Mod-Einstellungen oder Page-Builder-Inhalte aktualisiert?
-
Widget-Instanzen (z. B. ein Custom-HTML/Text-Widget) und Theme-Mod-Einstellungen (z. B. ein Hintergrundbild im Customizer oder „Zusätzliches CSS“) werden zusätzlich zu
post_contentaktualisiert. Inhalte, die anderswo gespeichert sind, etwa die eigenen Design-Daten eines Page-Builders (z. B. Elementor), werden nicht durchsucht; wird ein Bild ausschließlich von einer solchen Quelle referenziert, lösche Originaldateien mit Vorsicht. -
Ist das Löschen der Originalbilder sicher?
-
Eine Quelldatei wird erst gelöscht, nachdem bestätigt wurde, dass ihr
.webp-Gegenstück auf dem Datenträger existiert, und nachdem post_content, Widgets, Theme-Mods sowie der Attachment-Datensatz bereits aktualisiert wurden. Bei einem frisch hochgeladenen Bild wird das Löschen zusätzlich um eine kurze Gnadenfrist (standardmäßig 15 Minuten) verzögert, um eine aktive Bearbeitungssitzung nicht zu stören. Das Löschen bleibt dauerhaft und ist standardmäßig deaktiviert — aktiviere es bewusst und halte Sicherungen bereit. -
Funktioniert das Plugin mit WordPress-Multisite-Installationen?
-
Ja. Jede Website verarbeitet ihre eigenen Konvertierungen des W3 Total Cache ImageService unabhängig von den anderen.
Rezensionen
Zu diesem Plugin liegen noch keine Rezensionen vor.
Mitwirkende und Entwickler
„WebP-Migrator für W3TC“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:
Mitwirkende„WebP-Migrator für W3TC“ wurde in 2 Sprachen übersetzt. Danke an die Übersetzer für ihre Mitwirkung.
Übersetze „WebP-Migrator für W3TC“ in deine Sprache.
Interessiert an der Entwicklung?
Durchstöbere den Code, sieh dir das SVN-Repository an oder abonniere das Entwicklungsprotokoll per RSS.
Änderungsprotokoll
2.3.0
- Behoben: Save_Listener (eingeführt in 2.1.0) schrieb die
<img>-Referenz einer Zwischengröße auf eine nicht existierende URL um, wenn WordPress das Attachment beim Upload selbst automatisch skaliert hatte: W3TC benennt diese Zwischengrößen-WebP-Dateien nach der „-scaled“-Vollgröße, nicht nach dem eigenen Vor-Skalierungs-Dateinamen der Größe, wodurch ein blinder Endungstausch den falschen Dateinamen erzeugte. Jede Größe wird jetzt anhand der bereits migrierten Metadaten des Attachments aufgelöst (Abgleich per Breite×Höhe) statt geraten.
2.2.0
- Behoben: Ein frisch hochgeladenes Bild wurde im Block-Editor als kaputtes Bild angezeigt, wenn es innerhalb weniger Augenblicke nach dem Einfügen fertig konvertiert wurde (und bei aktiviertem „Quellbilder löschen“ das Original bereits gelöscht wurde) — der Browser stellte es noch von der ursprünglichen URL dar. Das Löschen der Originaldateien eines Attachments wird jetzt um eine kurze Gnadenfrist (standardmäßig 15 Minuten, per
sevwmfw3tc_deletion_grace_periodfilterbar) nach dem Upload verzögert und nach Ablauf automatisch nachgeholt.
2.1.0
- Behoben: Ein Timing-Problem, bei dem ein Bild, das in einen gerade bearbeiteten (noch nicht gespeicherten) Beitrag eingefügt wurde, während W3 Total Cache es im Hintergrund fertig konvertierte, nie korrigiert wurde — das Attachment war zum Zeitpunkt des Speicherns bereits als konvertiert markiert, sodass weder der automatische Listener noch das manuelle Batch-Werkzeug es erneut aufgriffen. Der Beitragsinhalt wird jetzt auch beim Speichern für
<img>-Tags korrigiert, die auf ein bereits konvertiertes Attachment verweisen.
2.0.9
- Behoben: Anhänge blieben dauerhaft hängen, wenn ihre angehängte Datei bereits in .webp umbenannt war (z. B. durch eine unterbrochene frühere Migration),
post_mime_typeaber nie entsprechend aktualisiert wurde – das Plugin behandelte sie weiterhin als nicht konvertiert, konnte für eine bereits-.webp-URL aber kein Ersetzungspaar bilden. Solche Anhänge werden jetzt erkannt und ihr Mime-Type/Metadaten werden korrigiert.
2.0.8
- Die Diagnose-Log-Meldung für übersprungene Anhänge ohne verwertbare URL/Endung wurde verbessert: Sie unterscheidet jetzt, ob
wp_get_attachment_url()gar nichts zurückliefert oder eine URL mit nicht erkannter Endung – beides deutet auf unterschiedliche zugrunde liegende Probleme hin, die bisherige einzelne generische Meldung sagte nicht, welcher Fall vorlag.
2.0.7
- Behoben: Original-Bilddateien wurden gelöscht, obwohl sie noch von einem Widget (z. B. einem Custom-HTML/Text-Widget) oder einem Theme-Mod (z. B. einem Hintergrundbild im Customizer) referenziert wurden, da nur
wp_posts.post_contentnach Referenzen durchsucht wurde. Beide werden jetzt ebenfalls geprüft und sicher aktualisiert (über get_option()/update_option() statt eines rohen String-Ersetzens, da ihre Werte serialisiert sind).
2.0.6
- Behoben: Original-Bilddateien wurden gelöscht, obwohl sie noch von Inhalten referenziert wurden, die eine root-relative oder protokoll-relative URL verwendeten (z. B.
url(/wp-content/uploads/...)im „Zusätzliches CSS“-Feld des Customizers), weil nur nach der vollständigen absoluten URL gesucht und ersetzt wurde. Root-relative und protokoll-relative Varianten werden jetzt ebenfalls geprüft.
2.0.5
- Behoben: Anhänge meldeten dauerhaft „0 Bilder verarbeitet“, obwohl ihr Beitragsinhalt bereits erfolgreich auf funktionierende WebP-URLs umgeschrieben war. Attachment_Migrator hat den WebP-Pfad unabhängig mit der älteren, einfacheren Logik neu vorhergesagt, statt das von Processor bereits ermittelte Ergebnis (inklusive des 2.0.4-Kind-Attachment-Fallbacks) zu verwenden, wodurch die Datei nicht gefunden und der Anhang dauerhaft als nicht migriert markiert werden konnte.
2.0.4
- Behoben: Bilder blieben dauerhaft hängen, wenn die WebP-Vollgröße am vorhergesagten Pfad fehlte, obwohl W3 Total Cache das Bild als „converted“ markiert hatte (z. B. weil ein späterer erneuter Konvertierungsvorgang sie gelöscht und ersetzt hat). Das Plugin prüft jetzt zusätzlich W3TCs eigenen „Kind-Attachment“-Datensatz für die konvertierte Datei, der unabhängig vom tatsächlichen Dateipfad maßgeblich ist.
2.0.3
- Behoben: Der Batch „Bereits konvertierte Bilder verarbeiten“ fand stillschweigend 0 zu verarbeitende Bilder (die verbleibende Anzahl blieb unverändert stehen, ohne jegliches Log), wenn Anhänge mit einem Status ungleich „converted“ im w3tc_imageservice-Meta nach ID zufällig vor den konvertierten sortiert wurden. Der Status wird jetzt bereits auf Datenbankebene gefiltert, statt erst nachdem das Batch-Limit angewendet wurde.
2.0.2
- Behoben: Bilder blieben dauerhaft als „noch nicht verarbeitet“ hängen, wenn W3 Total Caches ImageService stillschweigend das Erzeugen einer Zwischengröße überspringt (z. B. Site-Icon-Größen, die nur in bestimmten Admin-Kontexten registriert werden). Die fehlende Größe wird jetzt aus der bereits konvertierten WebP-Vollgröße nachgeneriert, statt endlos auf ein Ereignis zu warten, das nie eintritt.
- Diagnose-Logging hinzugefügt (hinter WP_DEBUG_LOG), das erklärt, warum ein Bild bei der Verarbeitung übersprungen wurde – hilfreich zur Diagnose von Batches ohne Fortschritt („Noch X Bilder übrig“ bleibt bei derselben Zahl stehen).
2.0.1
- Getestet bis WordPress 7.1 und W3 Total Cache 2.10.2.
2.0.0
- Verbesserte Kompatibilität mit den Bildkonvertierungen des W3 Total Cache ImageService.
- Option hinzugefügt, um Originalbilder nach erfolgreicher Konvertierung automatisch zu löschen.
- Verschiedene Code-Verbesserungen.
1.0.0
- Erstveröffentlichung.



