{"id":329522,"date":"2026-06-28T08:40:00","date_gmt":"2026-06-28T08:40:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/optimage\/"},"modified":"2026-06-29T13:56:09","modified_gmt":"2026-06-29T13:56:09","slug":"webangon-image-optimizer","status":"publish","type":"plugin","link":"https:\/\/mlt.wordpress.org\/plugins\/webangon-image-optimizer\/","author":15600099,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"trunk","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Webangon Image Optimizer","header_author":"Webangon","header_description":"Regenerate attachment thumbnails via AJAX. Pick exactly which registered image sizes to rebuild, and optionally delete old\/unused thumbnail files in the process. Processes the media library in time-budgeted batches with a live progress bar and log.","assets_banners_color":"d2e6f5","last_updated":"2026-06-29 13:56:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/webangon.com\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3588772,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3588596,"resolution":"772x250","location":"assets","locale":"","width":2172,"height":724}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3590194,"resolution":"1","location":"assets","locale":"","width":1614,"height":871},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3590194,"resolution":"2","location":"assets","locale":"","width":1620,"height":816},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3590194,"resolution":"3","location":"assets","locale":"","width":1759,"height":626},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3590194,"resolution":"4","location":"assets","locale":"","width":1409,"height":828},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3590194,"resolution":"5","location":"assets","locale":"","width":1871,"height":863},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3590194,"resolution":"6","location":"assets","locale":"","width":919,"height":798}},"screenshots":{"1":"Image Cleaner tab showing dry-scan guidance, total image uploads, unused media results, protection switches, backup confirmation, and cleanup actions.","2":"Thumbnails tab with selectable registered image sizes, regeneration options, start\/stop controls, and a separate tool for deleting generated thumbnail files.","3":"Image conversion settings showing WebP and AVIF support, automatic conversion for new uploads, output format, quality, and original-file options.","4":"Whole-library conversion panel for converting existing media files and updating image URLs across posts, post meta, Elementor data, and options.","5":"Attachment details screen with the Replace media field and Upload a new file button for replacing an existing Media Library item.","6":"Replace media modal showing the current file, drag-and-drop new file upload area, replacement mode choices, date options, and upload controls."}},"plugin_section":[],"plugin_tags":[194661,29161,227565,158820,15376],"plugin_category":[50],"plugin_contributors":[183622],"plugin_business_model":[],"class_list":["post-329522","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-image-optimization","plugin_tags-media-cleaner","plugin_tags-replace-image","plugin_tags-webp","plugin_category-media","plugin_contributors-webangon","plugin_committers-webangon"],"banners":{"banner":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/banner-772x250.png?rev=3588596","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/icon-128x128.gif?rev=3588772","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-1.jpg?rev=3590194","caption":"Image Cleaner tab showing dry-scan guidance, total image uploads, unused media results, protection switches, backup confirmation, and cleanup actions."},{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-2.jpg?rev=3590194","caption":"Thumbnails tab with selectable registered image sizes, regeneration options, start\/stop controls, and a separate tool for deleting generated thumbnail files."},{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-3.jpg?rev=3590194","caption":"Image conversion settings showing WebP and AVIF support, automatic conversion for new uploads, output format, quality, and original-file options."},{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-4.jpg?rev=3590194","caption":"Whole-library conversion panel for converting existing media files and updating image URLs across posts, post meta, Elementor data, and options."},{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-5.jpg?rev=3590194","caption":"Attachment details screen with the Replace media field and Upload a new file button for replacing an existing Media Library item."},{"src":"https:\/\/ps.w.org\/webangon-image-optimizer\/assets\/screenshot-6.jpg?rev=3590194","caption":"Replace media modal showing the current file, drag-and-drop new file upload area, replacement mode choices, date options, and upload controls."}],"raw_content":"<!--section=description-->\n<p>Webangon Image Optimizer is a complete Media Library toolkit built around four everyday WordPress needs: safely clean unused images, regenerate thumbnails after design or migration changes, convert images to WebP\/AVIF for faster delivery, and replace media files without breaking attachment IDs.<\/p>\n\n<p>Benefits for WordPress users:<\/p>\n\n<ul>\n<li>Find unused Media Library images with a safe dry scan before deletion.<\/li>\n<li>Protect images used in Elementor, post content, featured images, WooCommerce galleries, widgets, theme\/plugin options, SEO fields, and more.<\/li>\n<li>Regenerate thumbnails after theme changes, imports, migrations, or image-size updates.<\/li>\n<li>Remove old generated thumbnail files while keeping original\/main images.<\/li>\n<li>Convert images to WebP or AVIF for better performance.<\/li>\n<li>Rewrite image URLs across posts, post meta, Elementor data, and options after conversion.<\/li>\n<li>Replace an existing Media Library file without breaking the attachment ID used by posts, builders, products, and galleries.<\/li>\n<li>Optionally use a new replacement file name and update old file links across the database.<\/li>\n<li>Run image cleanup, thumbnail, and conversion tasks from WP-CLI.<\/li>\n<\/ul>\n\n<p>The admin screen is available under Media &gt; Image Optimizer.<\/p>\n\n<p>Media replacement is available contextually from the Media Library row actions and attachment edit screen. Click Replace media or Upload a new file on an attachment.<\/p>\n\n<h3>WP-CLI Commands<\/h3>\n\n<p>Image cleaner:<\/p>\n\n<pre><code>wp webangon-image-optimizer clean\nwp webangon-image-optimizer clean --older-than=30\nwp webangon-image-optimizer clean --deep-meta\nwp webangon-image-optimizer clean --include-revisions\nwp webangon-image-optimizer clean --skip-options\nwp webangon-image-optimizer clean --batch=200\nwp webangon-image-optimizer clean --delete\nwp webangon-image-optimizer clean --delete --yes\n<\/code><\/pre>\n\n<p>Thumbnail regeneration:<\/p>\n\n<pre><code>wp webangon-image-optimizer thumbnails regenerate\nwp webangon-image-optimizer thumbnails regenerate --sizes=thumbnail,medium,large\nwp webangon-image-optimizer thumbnails regenerate --delete-old\nwp webangon-image-optimizer thumbnails regenerate --from-original\nwp webangon-image-optimizer thumbnails regenerate --ids=12,34,56\nwp webangon-image-optimizer thumbnails regenerate --dry-run\n<\/code><\/pre>\n\n<p>Thumbnail purge:<\/p>\n\n<pre><code>wp webangon-image-optimizer thumbnails purge\nwp webangon-image-optimizer thumbnails purge --backups\nwp webangon-image-optimizer thumbnails purge --ids=12,34,56\nwp webangon-image-optimizer thumbnails purge --dry-run\nwp webangon-image-optimizer thumbnails purge --yes\n<\/code><\/pre>\n\n<p>WebP \/ AVIF conversion:<\/p>\n\n<pre><code>wp webangon-image-optimizer convert --format=webp --quality=82\nwp webangon-image-optimizer convert --format=avif --quality=70\nwp webangon-image-optimizer convert --format=webp --quality=82 --delete-old\nwp webangon-image-optimizer convert --format=webp --regen\nwp webangon-image-optimizer convert --ids=12,34,56 --format=webp\nwp webangon-image-optimizer convert --format=webp --skip-rewrite\nwp webangon-image-optimizer convert --format=webp --rewrite-only\nwp webangon-image-optimizer convert --format=webp --dry-run\nwp webangon-image-optimizer convert --format=webp --quality=82 --yes\n<\/code><\/pre>\n\n<p>Recommended Workflow<\/p>\n\n<ol>\n<li>Take a full file and database backup.<\/li>\n<li>Run Image Cleaner in dry scan mode before deleting anything.<\/li>\n<li>Regenerate thumbnails after changing theme image sizes or after imports\/migrations.<\/li>\n<li>Convert to WebP first for broad compatibility, or AVIF when the hosting stack supports it.<\/li>\n<li>Use Replace media when you need to update a file while keeping the same attachment record.<\/li>\n<li>Test important pages, Elementor templates, product galleries, and image-heavy pages after conversion or replacement.<\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>webangon-image-optimizer<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate Webangon Image Optimizer from the Plugins screen.<\/li>\n<li>Go to Media &gt; Image Optimizer.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20the%20separate%20image%2Fmedia%20plugins%3F\"><h3>Does this replace the separate image\/media plugins?<\/h3><\/dt>\n<dd><p>Yes. It combines image cleanup, thumbnail regeneration, WebP\/AVIF conversion, and media replacement into one plugin.<\/p><\/dd>\n<dt id=\"should%20i%20delete%20files%20immediately%3F\"><h3>Should I delete files immediately?<\/h3><\/dt>\n<dd><p>No. Run dry scans first and keep a full backup before using destructive actions.<\/p><\/dd>\n<dt id=\"does%20avif%20work%20on%20every%20server%3F\"><h3>Does AVIF work on every server?<\/h3><\/dt>\n<dd><p>No. AVIF conversion requires PHP GD support for <code>imageavif()<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20replace%20a%20media%20file%20without%20changing%20its%20attachment%20id%3F\"><h3>Can I replace a media file without changing its attachment ID?<\/h3><\/dt>\n<dd><p>Yes. Use the Replace media action from the Media Library or attachment edit screen. The plugin replaces the file behind the existing attachment and regenerates metadata.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial merged plugin release with image cleanup, thumbnail regeneration, WebP\/AVIF conversion, and media replacement.<\/li>\n<\/ul>","raw_excerpt":"Clean unused images, regenerate thumbnails, convert Media Library files to WebP or AVIF, and safely replace existing media files from one polished Wor &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=329522"}],"author":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webangon"}],"wp:attachment":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329522"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329522"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329522"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329522"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329522"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}