{"id":362786,"date":"2026-09-09T15:26:48","date_gmt":"2026-09-09T15:26:48","guid":{"rendered":"https:\/\/it.wordpress.org\/plugins\/imagewoc\/"},"modified":"2026-09-09T15:26:16","modified_gmt":"2026-09-09T15:26:16","slug":"imagewoc","status":"publish","type":"plugin","link":"https:\/\/ko.wordpress.org\/plugins\/imagewoc\/","author":20182609,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.6.0","stable_tag":"0.6.0","tested":"7.1","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"ImageWoc","header_author":"Davide Cavalleri","header_description":"Optimizes WordPress images with original backups, proportional resizing, format conversion, configurable quality, and resumable bulk optimization with reference updates.","assets_banners_color":"e6f1fb","last_updated":"2026-09-09 15:26:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.davidecavalleri.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.6.0":{"tag":"0.6.0","author":"deivnet","date":"2026-09-09 15:26:16","revision":3688552}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688541,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688541,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688541,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688541,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[29152,29161,14337,233,15376],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-362786","plugin","type-plugin","status-publish","hentry","plugin_tags-image-compression","plugin_tags-image-optimization","plugin_tags-image-resize","plugin_tags-media-library","plugin_tags-webp","plugin_committers-deivnet"],"banners":{"banner":"https:\/\/ps.w.org\/imagewoc\/assets\/banner-772x250.png?rev=3688541","banner_2x":"https:\/\/ps.w.org\/imagewoc\/assets\/banner-1544x500.png?rev=3688541","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/imagewoc\/assets\/icon-128x128.png?rev=3688541","icon_2x":"https:\/\/ps.w.org\/imagewoc\/assets\/icon-256x256.png?rev=3688541","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ImageWoc (Image WordPress Optimization &amp; Conversion) processes images locally on your WordPress server. It can resize oversized uploads proportionally, convert supported source images to JPG, PNG, or WebP, control output quality, preserve transparency when possible, and keep one untouched backup of every original image for future reprocessing.<\/p>\n\n<p><strong>A key feature is reference-safe bulk optimization.<\/strong> When an existing Media Library image is converted and its master filename or extension changes, ImageWoc keeps the same WordPress attachment ID and updates stored references from the old image URL to the new optimized URL. It also maps regenerated WordPress intermediate-size URLs where matching sizes exist.<\/p>\n\n<p>This helps prevent broken image references when optimized images are already used in posts, pages, Gutenberg blocks, page-builder data, widgets, templates, menus, links, and other content stored in standard WordPress posts, metadata, and options.<\/p>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Automatic optimization during Media Library uploads.<\/li>\n<li>Global enable\/disable switch without deactivating the plugin.<\/li>\n<li>Proportional resizing based on a configurable maximum long side. No cropping or distortion.<\/li>\n<li>Output conversion to JPG, PNG, or WebP.<\/li>\n<li>Configurable quality from 0 to 100.<\/li>\n<li>Preserves alpha transparency when the selected output format supports it.<\/li>\n<li>If transparent content cannot safely be saved as JPEG, the plugin uses a supported alpha-capable output instead of flattening the image.<\/li>\n<li>Keeps one untouched backup of the original uploaded file.<\/li>\n<li>WordPress generates its normal thumbnail and intermediate sizes from the optimized master image.<\/li>\n<li>If input and output formats are already the same, re-encoding is avoided unless resizing is required.<\/li>\n<li>Supports JPG\/JPEG, PNG, WebP, static GIF, TIFF\/TIF, BMP, AVIF, HEIC\/HEIF as input when the server image libraries\/codecs support them.<\/li>\n<li>Animated GIF files are skipped to preserve animation frames.<\/li>\n<li>Uses WordPress image editing APIs and the image capabilities available on the server.<\/li>\n<\/ul>\n\n<h4>Optimization Preview \/ Dry Run<\/h4>\n\n<p>Before changing the Media Library, ImageWoc can run a read-only preview using the current settings. The preview reports how many images would change, how many would be resized or converted, and an estimated storage reduction. No image files, attachment metadata, or stored content references are modified during the preview.<\/p>\n\n<h4>Automatic and manual rollback transactions<\/h4>\n\n<p>Each bulk optimization run is treated as a transaction. Before an attachment is changed, ImageWoc stores a protected snapshot of its current master file, registered WordPress intermediate sizes, attachment metadata, MIME type, and reference migration map. If a processing failure occurs after the attachment has begun changing, ImageWoc attempts to restore that snapshot automatically.<\/p>\n\n<p>The administrator can also roll back the latest bulk transaction from the ImageWoc settings screen. Manual rollback restores the pre-batch image files and WordPress metadata and reverses the stored URL replacements made by ImageWoc. Rollback runs in short resumable requests rather than one long PHP request.<\/p>\n\n<h4>ImageWoc Health Scanner<\/h4>\n\n<p>The read-only Health Scanner checks the Media Library for common image integrity and optimization issues, including missing master files, incomplete attachment metadata, registered intermediate sizes missing from disk, missing untouched original backups, masters larger than the configured long-side limit, output-format mismatches, and unusually large master files. Findings are grouped by severity and the scanner does not modify the Media Library.<\/p>\n\n<h4>Existing Media Library \/ bulk optimization<\/h4>\n\n<ul>\n<li>Processes existing image attachments in small asynchronous requests to reduce the risk of PHP timeouts.<\/li>\n<li>Uses an attachment-ID cursor instead of large SQL OFFSET scans.<\/li>\n<li>Saves progress after each processed image.<\/li>\n<li>Pause and resume support.<\/li>\n<li>Can resume after refreshing the admin page.<\/li>\n<li>Persistent progress counters for processed, skipped, and failed items.<\/li>\n<li>Detailed downloadable log.<\/li>\n<li>Reprocesses from the untouched backup when a backup already exists.<\/li>\n<li>Keeps the original WordPress attachment ID unchanged.<\/li>\n<li>Updates old master-image URLs to the newly optimized master URL.<\/li>\n<li>Updates known old intermediate-size URLs to regenerated intermediate-size URLs.<\/li>\n<li>Handles replacements inside standard WordPress content, options, and metadata, including serialized PHP data and JSON values.<\/li>\n<li>Clears relevant WordPress caches after reference updates.<\/li>\n<li>Provides developer hooks for integrations that need to update proprietary custom tables or storage.<\/li>\n<\/ul>\n\n<h4>Stored reference updates<\/h4>\n\n<p>During bulk optimization, URL replacement covers standard WordPress storage used by many themes and plugins, including:<\/p>\n\n<ul>\n<li>post content, including Gutenberg block markup stored in <code>post_content<\/code>;<\/li>\n<li>post metadata commonly used by page builders and custom fields;<\/li>\n<li>WordPress options, including widget and global configuration data;<\/li>\n<li>term metadata;<\/li>\n<li>user metadata;<\/li>\n<li>comment metadata.<\/li>\n<\/ul>\n\n<p>The replacement layer is serialization-aware and JSON-aware. The attachment ID remains unchanged, so integrations that reference Media Library images by attachment ID continue to reference the same attachment.<\/p>\n\n<p>Third-party plugins can store image URLs in proprietary database tables or external systems. Those stores cannot be discovered safely in a generic way, so ImageWoc exposes hooks that integrations can use to extend reference migration.<\/p>\n\n<h4>Original image backups<\/h4>\n\n<p>Before processing an uploaded image, ImageWoc stores one untouched copy of the source file in a protected backup area under the WordPress uploads directory. WordPress-generated thumbnails are not duplicated into the backup.<\/p>\n\n<p>When an image is optimized again later, the plugin can work from this untouched source instead of recompressing a previously optimized image. This avoids cumulative quality loss when changing dimensions, output format, or quality settings.<\/p>\n\n<p>Original backups are intentionally not deleted automatically when the plugin is uninstalled, to reduce the risk of accidental loss of source files.<\/p>\n\n<h4>Image format notes<\/h4>\n\n<p>Available source formats depend on the image libraries and codecs installed on the web server. Formats such as TIFF, AVIF, HEIC, and HEIF commonly require Imagick\/ImageMagick with the corresponding codec support.<\/p>\n\n<p>JPEG does not support alpha transparency. ImageWoc avoids destructive transparency flattening and selects an available alpha-capable format when needed.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>ImageWoc does not send image files, site content, or usage data to an external service. Image processing and logging are performed on the WordPress server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to WordPress or install it from the WordPress Plugin Directory.<\/li>\n<li>Activate <strong>ImageWoc<\/strong> from the Plugins screen.<\/li>\n<li>Go to <strong>Settings &gt; ImageWoc<\/strong>.<\/li>\n<li>Enable image optimization.<\/li>\n<li>Set the maximum long side in pixels, output format, and quality.<\/li>\n<li>Save the settings.<\/li>\n<li>New supported uploads will be processed automatically.<\/li>\n<li>To optimize existing Media Library files, use the bulk optimization section on the same settings page.<\/li>\n<\/ol>\n\n<p>Before running bulk optimization on an established production site, a complete site\/database backup is recommended because existing stored image URLs may be updated.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20bulk%20optimization%20break%20images%20already%20inserted%20into%20content%3F\"><h3>Does bulk optimization break images already inserted into content?<\/h3><\/dt>\n<dd><p>The plugin is specifically designed to avoid that. It keeps the same attachment ID and, when the image URL changes, updates old master and matching intermediate-size URLs stored in standard WordPress content, metadata, and options.<\/p>\n\n<p>A third-party plugin may use its own proprietary database tables or an external storage service. Those locations are outside generic WordPress storage and may require an integration using the plugin's reference-update hooks.<\/p><\/dd>\n<dt id=\"does%20resizing%20crop%20my%20images%3F\"><h3>Does resizing crop my images?<\/h3><\/dt>\n<dd><p>No. The configured pixel value is the maximum long side. Width and height are scaled proportionally and the image aspect ratio is preserved.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20original%20image%3F\"><h3>What happens to the original image?<\/h3><\/dt>\n<dd><p>One untouched copy is kept in the plugin backup area. WordPress thumbnails and intermediate sizes are not copied into that backup.<\/p><\/dd>\n<dt id=\"are%20images%20sent%20to%20an%20external%20service%3F\"><h3>Are images sent to an external service?<\/h3><\/dt>\n<dd><p>No. Image processing is performed locally with the image capabilities available on your WordPress server.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20convert%20a%20transparent%20png%20or%20webp%20to%20jpeg%3F\"><h3>What happens if I convert a transparent PNG or WebP to JPEG?<\/h3><\/dt>\n<dd><p>JPEG cannot store alpha transparency. The plugin avoids flattening transparent pixels and uses an available output format that supports transparency instead.<\/p><\/dd>\n<dt id=\"are%20animated%20gif%20files%20converted%3F\"><h3>Are animated GIF files converted?<\/h3><\/dt>\n<dd><p>No. Animated GIF files are skipped to avoid losing animation frames.<\/p><\/dd>\n<dt id=\"why%20can%20one%20server%20convert%20heic%20or%20tiff%20while%20another%20cannot%3F\"><h3>Why can one server convert HEIC or TIFF while another cannot?<\/h3><\/dt>\n<dd><p>Those formats depend on the server image editor and installed codecs. Imagick\/ImageMagick support varies between hosting environments.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20optimization%20without%20deactivating%20the%20plugin%3F\"><h3>Can I disable optimization without deactivating the plugin?<\/h3><\/dt>\n<dd><p>Yes. Disable <strong>Enable image optimization<\/strong> in the settings. Existing settings, backups, and logs are preserved.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Added Optimization Preview \/ Dry Run with estimated resize, conversion, and storage impact.<\/li>\n<li>Added transaction snapshots for automatic recovery during bulk optimization failures.<\/li>\n<li>Added manual rollback of the latest bulk optimization transaction, including files, metadata, MIME type, and stored URL reference reversal.<\/li>\n<li>Added the read-only ImageWoc Health Scanner with severity-based diagnostics.<\/li>\n<li>Kept all new long-running operations asynchronous and resumable through short requests.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>WordPress.org compliance fixes for filesystem operations, prepared SQL identifiers, caching annotations, and readme metadata.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Prepared the plugin metadata and readme for WordPress.org Plugin Directory submission.<\/li>\n<li>Changed all administrator-facing and runtime messages to English.<\/li>\n<li>Added GPLv2-or-later license metadata and WordPress.org compatibility metadata.<\/li>\n<li>Documented reference-safe bulk optimization and supported reference storage in detail.<\/li>\n<li>Retains the 0.4.0 reference migration, resumable bulk processing, original backups, conversion, resizing, transparency handling, and global enable\/disable functionality.<\/li>\n<\/ul>","raw_excerpt":"Optimize, resize and convert WordPress images locally, keep original backups, and safely update stored image references during bulk processing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=362786"}],"author":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/deivnet"}],"wp:attachment":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362786"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362786"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362786"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362786"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362786"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}