{"id":389524,"date":"2026-10-25T09:39:52","date_gmt":"2026-10-25T09:39:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/uwh-image-optimizer-converter\/"},"modified":"2026-10-25T09:39:16","modified_gmt":"2026-10-25T09:39:16","slug":"uwh-image-optimizer-converter","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/uwh-image-optimizer-converter\/","author":23577389,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.4.1","stable_tag":"3.4.1","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"UWH Image Optimizer & Converter","header_author":"United Web Host","header_description":"Optimize, convert, analyze, preview, and safely roll back WordPress images with live bulk progress and page-level controls.","assets_banners_color":"","last_updated":"2026-10-25 09:39:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/image-optimizer.unitedwebhost.com\/","header_author_uri":"https:\/\/unitedwebhost.com\/","rating":0,"author_block_rating":0,"active_installs":40,"downloads":100,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.4.1":{"tag":"3.4.1","author":"unitedwebhost","date":"2026-10-25 09:39:16","revision":3764233}},"upgrade_notice":{"3.4.1":"<p>Addresses the reported internationalization coding-standard issue, improves page-scan error recovery and correctly separates remote images from uploads with similar URL prefixes. Existing media and settings remain unchanged.<\/p>","3.4.0":"<p>Adds a non-destructive page-specific image action plan with source-size priorities, accessibility review prompts, and manual selection of suggested images; no settings or Media Library files are changed on upgrade.<\/p>","3.3.0":"<p>Resolves WordPress.org pre-review styling and path-handling findings, bundles readable stylesheet source, and fails safely when a custom WordPress uploads directory is unavailable. No media or saved settings are migrated.<\/p>","3.2.1":"<p>Improves GIF safety, MIME verification, bulk-job race handling and scoped bulk restoration; also addresses the reported file-inspector lint warnings. Existing settings and media remain intact.<\/p>","3.2.0":"<p>Adds a dedicated UWH binary image inspector, shared upload transport, and an isolated Universal Converter staging workflow. Existing settings, media metadata, rollback snapshots and plugin identity are unchanged.<\/p>","3.1.0":"<p>Adds a dedicated, readable UWH browser image toolkit for signature-based format identification and consistent dimension\/savings rules, plus a server-side UWH processing policy and accessibility refinements. Existing settings, snapshots, and bulk progress remain compatible.<\/p>","3.0.2":"<p>UWH internal identifiers and browser HEIC helper have been updated. Saved settings, rollback metadata, existing conversion history and scheduled bulk operations remain supported. Browser-native HEIC support depends on your browser.<\/p>","3.0.1":"<p>Fixes WordPress.org slug\/text-domain mismatches across PHP and JavaScript translations. Image optimization behavior and saved data stay unchanged.<\/p>","3.0.0":"<p>Uses a dedicated plugin details URL and synchronized 3.0.0 release metadata. Existing settings, image attachments and rollback data are preserved on update.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764231,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764231,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.4.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[215574,29161,84,247,15376],"plugin_category":[50,54],"plugin_contributors":[287247],"plugin_business_model":[],"class_list":["post-389524","plugin","type-plugin","status-publish","hentry","plugin_tags-heic","plugin_tags-image-optimization","plugin_tags-media","plugin_tags-performance","plugin_tags-webp","plugin_category-media","plugin_category-security-and-spam-protection","plugin_contributors-unitedwebhost","plugin_committers-unitedwebhost"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/uwh-image-optimizer-converter\/assets\/icon-128x128.png?rev=3764231","icon_2x":"https:\/\/ps.w.org\/uwh-image-optimizer-converter\/assets\/icon-256x256.png?rev=3764231","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>UWH Image Optimizer &amp; Converter optimizes WordPress Media Library images while protecting existing media workflows and providing a focused UWH Image Optimizer admin dashboard.<\/p>\n\n<p>Highlights:<\/p>\n\n<ul>\n<li><p>UWH Page Image Action Planner: non-destructive, prioritized source-image review per Page\/Post\/Elementor content, with image-size\/dimension checks, empty Media Library alt-text review prompts, and user-controlled selection of recommended images. This is not a site-speed score, live downloaded-bytes report, or an automatic alt-text editor.<\/p><\/li>\n<li><p>Premium UWH Image Optimizer dashboard with Overview, Optimize, Optimize by Page, Bulk Optimizer, History &amp; Rollback and Settings views.<\/p><\/li>\n<li>Scan a specific Page, Post or public custom post type and selectively optimize its local Media Library images.<\/li>\n<li>Detect featured images, Gutenberg image\/gallery blocks, wp-image references, local Media Library URLs and Elementor image\/background references.<\/li>\n<li>Per-run output format, quality and maximum resolution overrides without changing global defaults.<\/li>\n<li>Local capped conversion history with storage savings and restore availability.<\/li>\n<li>Non-destructive Dry Run \/ Analyze for selected images, page images, and the Media Library.<\/li>\n<li>Page Optimization Report with local\/remote counts, current weight, optimized count, projected weight and estimated savings.<\/li>\n<li><p>Current-state Storage\/Savings Metrics based on real Media Library and retained backup files.<\/p><\/li>\n<li><p>Choose WebP, AVIF, JPEG, or PNG as the output format.<\/p><\/li>\n<li>Configurable image quality percentage, alpha quality, and maximum width\/height.<\/li>\n<li>Source filesize, megapixel and estimated PHP-memory guards.<\/li>\n<li>Animated GIF preservation so animations are not flattened.<\/li>\n<li>Include-only or exclude-selected source-format rules for JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF, HEIC, and HEIF.<\/li>\n<li>Optional browser pre-conversion limited to WordPress admin media upload interfaces.<\/li>\n<li>Generated output only replaces the source when it meets the configured savings threshold.<\/li>\n<li>Manual existing-Media-Library bulk conversion with pause, resume and cancel controls.<\/li>\n<li>Optional original retention for rollback during bulk conversion.<\/li>\n<li>Attachment GUID values are not rewritten.<\/li>\n<li>Universal multi-format converter with per-session output format selection, one image at a time, cancel and retry controls.<\/li>\n<li>Readable UWH browser-native HEIC\/HEIF bridge (where browser decoding is supported); server conversion requires a compatible local image backend.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin does not send image files, analytics, conversion results, or dashboard activity to United Web Host or another third party.<\/p>\n\n<p>Browser conversion code is loaded from readable files bundled with this plugin, including <code>assets\/js\/uwh-image-toolkit.js<\/code>. The UWH HEIC\/HEIF native-browser bridge is available as readable source at <code>assets\/js\/uwh-browser-heif-decoder.js<\/code>. It is not the third-party heic2any library.<\/p>\n\n<p>External services: none are required or contacted by the plugin for image conversion. If your hosting environment provides PHP Imagick, GD, or an ImageMagick command-line binary, those local server components may be used to perform conversion.<\/p>\n\n<p>No tracking cookies are created by this plugin.<\/p>\n\n<ul>\n<li>Universal Converter staging is isolated from automatic WordPress upload conversion to avoid redundant processing when both features are enabled.<\/li>\n<li>File identification uses matching server and browser binary-signature policies, including strict ISO-BMFF brand parsing rather than arbitrary string matches.<\/li>\n<\/ul>\n\n<h3>Readable Source and Build Information<\/h3>\n\n<p>All production JavaScript and CSS in this plugin is distributed as human-readable, directly editable source. No bundler, transpiler, external JavaScript service, minified vendor package, or build command is required: edit the files below directly and package this plugin folder as a ZIP.<\/p>\n\n<ul>\n<li>Dashboard JavaScript: <code>assets\/js\/uwh-admin-dashboard.js<\/code> (source and runtime file are the same).<\/li>\n<li>Universal Converter and uploader scripts: <code>assets\/js\/universal-converter.js<\/code>, <code>assets\/js\/upload-preconverter.js<\/code>.<\/li>\n<li>Shared modules: <code>assets\/js\/uwh-image-toolkit.js<\/code>, <code>assets\/js\/uwh-conversion-transport.js<\/code> and <code>assets\/js\/uwh-browser-heif-decoder.js<\/code>.<\/li>\n<li>Dashboard CSS: <code>assets\/css\/uwh-admin-dashboard.css<\/code>.<\/li>\n<li>Legacy converter screen CSS: <code>assets\/css\/uwh-universal-converter.css<\/code>.<\/li>\n<\/ul>\n\n<p>These are the editable files distributed with the GPL-2.0-or-later project. WordPress and any locally installed PHP GD, Imagick or ImageMagick libraries remain dependencies provided by the site's environment. There are no bundled third-party JavaScript libraries in the ZIP. The HEIF browser bridge is not a bundled HEIC decoder; native browser support or a compatible server encoder is still required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate UWH Image Optimizer &amp; Converter.<\/li>\n<li>Open UWH Image Optimizer from the WordPress admin menu.<\/li>\n<li>Review Settings, then optimize selected images, a specific page, or the Media Library.<\/li>\n<\/ol>\n\n<p>Activation never starts conversion of existing Media Library files.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20convert%20existing%20media%20library%20images%20automatically%3F\"><h3>Does the plugin convert existing Media Library images automatically?<\/h3><\/dt>\n<dd><p>No. Existing-library conversion is manual and must be explicitly started from Image Optimizer &gt; Bulk Library.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20animated%20gif%20files%3F\"><h3>What happens to animated GIF files?<\/h3><\/dt>\n<dd><p>Animated GIF files are preserved and skipped so the animation is not flattened into a single-frame image.<\/p><\/dd>\n<dt id=\"does%20it%20always%20replace%20the%20source%20image%3F\"><h3>Does it always replace the source image?<\/h3><\/dt>\n<dd><p>No. When the minimum-savings protection is enabled, generated WebP, AVIF, JPEG, or PNG output must beat the source by the configured percentage before it replaces the source.<\/p><\/dd>\n<dt id=\"can%20i%20restore%20bulk-converted%20images%3F\"><h3>Can I restore bulk-converted images?<\/h3><\/dt>\n<dd><p>Yes, when valid rollback snapshots are available. Use History &amp; Rollback or Restore This Bulk Run. A deleted or missing backup cannot be restored.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20which%20formats%20are%20converted%3F\"><h3>Can I choose which formats are converted?<\/h3><\/dt>\n<dd><p>Yes. Choose either <strong>Include only selected formats<\/strong> or <strong>Exclude selected formats<\/strong>, then select JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC, HEIF, and AVIF as needed.<\/p><\/dd>\n<dt id=\"can%20i%20set%20the%20output%20format%20and%20maximum%20resolution%3F\"><h3>Can I set the output format and maximum resolution?<\/h3><\/dt>\n<dd><p>Yes. The default output format can be WebP, AVIF, JPEG, or PNG. You can also set Image Quality percentage plus maximum width and height. Aspect ratio is preserved and smaller images are not upscaled.<\/p><\/dd>\n<dt id=\"does%20it%20change%20attachment%20guids%3F\"><h3>Does it change attachment GUIDs?<\/h3><\/dt>\n<dd><p>No. Existing attachment GUID values are intentionally left unchanged.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.4.1<\/h4>\n\n<ul>\n<li>Adds a translators comment for the image ID placeholder and a safe fallback for missing or malformed attachment titles.<\/li>\n<li>Fixes upload URL classification on lookalike directory paths and unrelated domains.<\/li>\n<li>Clears stale report data and shows actionable failure feedback if a page-image scan cannot complete.<\/li>\n<li>Maintains existing optimizer settings, attachment data, backups and conversion behavior.<\/li>\n<\/ul>\n\n<h4>3.4.0<\/h4>\n\n<ul>\n<li>Adds a standalone UWH Page Image Action Planner, prioritizing local media based on original file size and dimensions.<\/li>\n<li>Provides Media Library alt-text review prompts with explicit decorative-image\/page-builder caveats.<\/li>\n<li>Supports selecting suggested, not-yet-optimized media for existing safe preview\/analyze\/convert flows. No background conversion is triggered.<\/li>\n<li>Keeps scanner bounded to 250 entries in the action plan, with a visible limitation notice; this is not a Core Web Vitals or delivered-payload measurement.<\/li>\n<li>Adds fully responsive dashboard UI and localized labels; prevents a slow scan response for a previously selected page from overwriting the current page results.<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li>Moves the remaining embedded admin stylesheet into a dedicated readable CSS asset enqueued through wp_enqueue_style().<\/li>\n<li>Uses wp_upload_dir() for preview, backup and uninstall paths without assuming wp-content\/uploads; unavailable storage results in a safe failure.<\/li>\n<li>Keeps explicit cleanup of a known pre-existing legacy backup path at uninstall without treating it as an uploads fallback.<\/li>\n<li>Documents all editable, non-minified JavaScript\/CSS source files and no-build packaging steps for reviewers.<\/li>\n<li>Preserves WordPress plugin identity, settings, rollback files and conversion UI.<\/li>\n<\/ul>\n\n<h4>3.2.1<\/h4>\n\n<ul>\n<li>Fixed file-inspector coding-standard notices with memory-bounded binary reads.<\/li>\n<li>Replaced heuristic GIF animation checks with a bounded GIF frame parser to avoid flattening animations.<\/li>\n<li>Hardened MIME verification to reject untrusted client-reported types.<\/li>\n<li>Prevented superseded bulk workers from overwriting progress of newly started runs.<\/li>\n<li>Made bulk resume apply only to paused runs.<\/li>\n<li>Limited generic GD decode fallback to memory-safe image sizes.<\/li>\n<li>Improved rollback backup directory access protections on Apache and IIS.<\/li>\n<li>Scoped the bulk Restore button to recorded bulk runs so manual image edits are not accidentally reverted.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Adds a from-scratch UWH PHP image format inspector with bounded file reads and structured AVIF\/HEIF ftyp-brand checks.<\/li>\n<li>Aligns JavaScript format sniffing with the server-side inspector and validates complete PNG and GIF signatures.<\/li>\n<li>Prevents Universal Converter staged uploads from passing through the optional automatic upload conversion hook a second time.<\/li>\n<li>Adds a shared, readable UWH conversion transport for dashboard and WordPress media-upload preconversion requests.<\/li>\n<li>Handles non-JSON HTTP errors, failed destination moves, and invalid AJAX payloads with actionable messages.<\/li>\n<li>Caches encoder capability checks per request and parses the ImageMagick CLI format list only once when required.<\/li>\n<li>Maintains existing database option keys, conversion history, attachments, UI hooks and rollback compatibility.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Adds an original, GPL-licensed UWH browser toolkit shared by Universal Converter and upload preprocessing; no third-party library or external API required.<\/li>\n<li>Unifies local image signature detection and includes TIFF and HEIF\/AVIF compatible-brand checks.<\/li>\n<li>Adds a standalone PHP image-processing policy for output-size acceptance and proportional resizing.<\/li>\n<li>Improves keyboard focus, mobile overflow and reduced-motion accessibility in the UWH admin dashboard.<\/li>\n<li>Reduces repeated full-library dimension scans with a five-minute cached health snapshot (live image metrics remain uncached).<\/li>\n<li>Reformats the bundled admin stylesheet and JavaScript into readable source without changing their CSS rules or JavaScript AST.<\/li>\n<li>Retains UWH-owned runtime naming with migration for historical saved data, attachment restore metadata and queued legacy jobs.<\/li>\n<\/ul>\n\n<h4>3.0.2<\/h4>\n\n<ul>\n<li>Rebrands internal UI, JavaScript configuration, AJAX endpoints, scripts and the primary PHP class to UWH-prefixed identifiers.<\/li>\n<li>Replaces a misleading minified HEIC compatibility shim with the original, readable and documented UWH browser-native HEIF\/HEIC decoder bridge.<\/li>\n<li>Preserves old WordPress plugin entry filename and provides lazy migration for legacy rollback metadata and older bulk state.<\/li>\n<li>Preserves offline processing and does not bundle any third-party HEIC decoding libraries.<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Aligns the plugin text domain and PHP\/JavaScript translation calls with the WordPress.org slug uwh-image-optimizer-converter.<\/li>\n<li>Corrects outdated Universal Converter concurrency help text (one image at a time).<\/li>\n<li>Keeps existing option keys, attachment data, history, backups, and conversion logic unchanged.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Makes Plugin URI different from Author URI for WordPress.org validation.<\/li>\n<li>Synchronizes the plugin header, internal version, documentation, and stable tag.<\/li>\n<li>Removes remaining plugin-owned profile and baseline metadata on full uninstall, without deleting Media Library files.<\/li>\n<li>Preserves WebP\/AVIF\/JPEG\/PNG conversion, 70% fresh-install default, per-page and bulk optimization, history, three-step rollback and mobile dashboard.<\/li>\n<li>Keeps safe processing limits, progress reporting, dry-run analysis, before\/after preview, and dismissible setup recommendations.<\/li>\n<\/ul>","raw_excerpt":"Optimize, convert, analyze, preview, and safely roll back WordPress images with live bulk progress and page-level controls.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/389524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=389524"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/unitedwebhost"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=389524"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=389524"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=389524"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=389524"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=389524"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=389524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}