{"id":311225,"date":"2026-05-13T11:09:00","date_gmt":"2026-05-13T11:09:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shrinkwell-image-optimizer\/"},"modified":"2026-05-13T18:46:48","modified_gmt":"2026-05-13T18:46:48","slug":"shrinkwell-image-optimizer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/shrinkwell-image-optimizer\/","author":23495764,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.14.11","stable_tag":"1.14.11","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Shrinkwell Image Optimizer","header_author":"Levmedia","header_description":"Local-first image optimization with WebP, safe bulk processing, backups, delivery checks, and saved-space proof.","assets_banners_color":"d0cbd3","last_updated":"2026-05-13 18:46:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.14.10":{"tag":"1.14.10","author":"levmedia123","date":"2026-05-13 17:55:00"},"1.14.11":{"tag":"1.14.11","author":"levmedia123","date":"2026-05-13 18:46:48"},"1.14.6":{"tag":"1.14.6","author":"levmedia123","date":"2026-05-13 11:08:29"},"1.14.7":{"tag":"1.14.7","author":"levmedia123","date":"2026-05-13 12:22:45"},"1.14.9":{"tag":"1.14.9","author":"levmedia123","date":"2026-05-13 16:57:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3530833,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3530833,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3531225,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3531225,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.14.10","1.14.11","1.14.6","1.14.7","1.14.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3530833,"resolution":"1","location":"assets","locale":"","width":3100,"height":1902},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3530833,"resolution":"2","location":"assets","locale":"","width":3100,"height":1898},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3530833,"resolution":"3","location":"assets","locale":"","width":3100,"height":1900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3530833,"resolution":"4","location":"assets","locale":"","width":3100,"height":1898},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3530833,"resolution":"5","location":"assets","locale":"","width":3098,"height":1898}},"screenshots":{"1":"Overview with current settings, compact site status, recommendations, and quick actions.","2":"Settings tab with compression profiles, WebP settings, AVIF placeholder, and frontend delivery test.","3":"Media Optimization tab with safe test workflow, progress, current image, and recent log.","4":"SEO report for missing alt text and weak filenames.","5":"Backup manager with original storage and restore controls."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[29152,29161,233,247,15376],"plugin_category":[54],"plugin_contributors":[262772],"plugin_business_model":[],"class_list":["post-311225","plugin","type-plugin","status-publish","hentry","plugin_tags-image-compression","plugin_tags-image-optimization","plugin_tags-media-library","plugin_tags-performance","plugin_tags-webp","plugin_category-security-and-spam-protection","plugin_contributors-levmedia123","plugin_committers-levmedia123"],"banners":{"banner":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/banner-772x250.png?rev=3531225","banner_2x":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/banner-1544x500.png?rev=3531225","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/icon-128x128.png?rev=3530833","icon_2x":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/icon-256x256.png?rev=3530833","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/screenshot-1.png?rev=3530833","caption":"Overview with current settings, compact site status, recommendations, and quick actions."},{"src":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/screenshot-2.png?rev=3530833","caption":"Settings tab with compression profiles, WebP settings, AVIF placeholder, and frontend delivery test."},{"src":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/screenshot-3.png?rev=3530833","caption":"Media Optimization tab with safe test workflow, progress, current image, and recent log."},{"src":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/screenshot-4.png?rev=3530833","caption":"SEO report for missing alt text and weak filenames."},{"src":"https:\/\/ps.w.org\/shrinkwell-image-optimizer\/assets\/screenshot-5.png?rev=3530833","caption":"Backup manager with original storage and restore controls."}],"raw_content":"<!--section=description-->\n<p>Optimize images without losing control.<\/p>\n\n<p>Shrinkwell Image Optimizer is a local-first image optimizer for WordPress sites. Core optimization runs on your WordPress installation, keeps original backups when enabled, creates WebP versions, and gives you proof of saved space before handing a site back to a client.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Optimize JPEG, PNG, and WebP uploads automatically.<\/li>\n<li>Choose Balanced, High compression, Near lossless, or Custom compression.<\/li>\n<li>Re-save images with clear compression profiles and a 1-10 Custom strength slider.<\/li>\n<li>Resize oversized images to a maximum width and height.<\/li>\n<li>Optimize thumbnails when enabled.<\/li>\n<li>Remove image metadata\/EXIF where possible.<\/li>\n<li>Generate WebP versions when supported by the server.<\/li>\n<li>Serve WebP files on the frontend with safe JPEG\/PNG fallback markup.<\/li>\n<li>Keep original backups before replacing files.<\/li>\n<li>Optimize existing images from Media &gt; Shrinkwell.<\/li>\n<li>See optimization status in the Media Library list view.<\/li>\n<li>Use a tabbed settings page under Settings &gt; Shrinkwell Image Optimizer.<\/li>\n<li>Review recent bulk results and run a frontend delivery test.<\/li>\n<li>Manage original backups and restore all optimized files at once.<\/li>\n<li>Scan the media library and receive recommended settings for the current site.<\/li>\n<li>Apply recommended settings directly after scanning.<\/li>\n<li>Run a safe 5-image bulk test before optimizing a full client media library.<\/li>\n<li>Scan image SEO issues without automatically changing content.<\/li>\n<li>Review an optimization log with saved bytes, generated WebP counts, and skipped image details.<\/li>\n<li>See clearer skip reasons with file size, image dimensions, and the configured local processing limit.<\/li>\n<li>Review current settings directly from the Overview page.<\/li>\n<li>Use modest in-plugin review prompts only after Shrinkwell has produced real results.<\/li>\n<\/ul>\n\n<p>Shrinkwell uses WordPress' local image editor. It does not require an external API key, tracking service, or paid account.<\/p>\n\n<h4>What Shrinkwell does not do<\/h4>\n\n<ul>\n<li>It does not send images to an external optimization service for core local features.<\/li>\n<li>It does not require an account for free local optimization.<\/li>\n<li>It does not automatically rewrite SEO content.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>Shrinkwell optimizes images locally on your WordPress server. The free plugin does not send media files to an external optimization API.<\/p>\n\n<h3>License And Assets<\/h3>\n\n<p>Shrinkwell is licensed under GPLv2 or later.<\/p>\n\n<p>The included Shrinkwell logo and wordmark are original Levmedia brand assets and are distributed with this plugin under GPLv2 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate \"Shrinkwell Image Optimizer\" in WordPress.<\/li>\n<li>Open Media &gt; Shrinkwell.<\/li>\n<li>Save your preferred settings and run the bulk optimizer.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20use%20an%20external%20compression%20api%3F\"><h3>Does this use an external compression API?<\/h3><\/dt>\n<dd><p>No. It uses the image editor available on your WordPress server, usually GD or Imagick.<\/p><\/dd>\n<dt id=\"does%20it%20convert%20images%20to%20avif%3F\"><h3>Does it convert images to AVIF?<\/h3><\/dt>\n<dd><p>Not in the free local-first release. AVIF can be heavy on shared hosting, so Shrinkwell starts with WebP for stability.<\/p><\/dd>\n<dt id=\"can%20i%20restore%20originals%3F\"><h3>Can I restore originals?<\/h3><\/dt>\n<dd><p>Yes. The plugin creates backup files when \"Keep backups for restore\" is enabled, and optimized items get a \"Restore original\" action in the Media Library.<\/p><\/dd>\n<dt id=\"does%20the%20seo%20check%20rewrite%20alt%20text%20or%20filenames%3F\"><h3>Does the SEO check rewrite alt text or filenames?<\/h3><\/dt>\n<dd><p>No. Shrinkwell only reports missing alt text and weak filenames so you can review changes manually.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.14.11<\/h4>\n\n<ul>\n<li>Fix: Page Proof now reports partial WebP evidence correctly instead of showing \"not detected\" when WebP markup exists but coverage is incomplete.<\/li>\n<li>Tweak: Added clearer cache guidance when WebP files are ready but cached page HTML still exposes JPG\/PNG URLs.<\/li>\n<li>Tweak: Added Page Proof data for distinguishing missing WebP files from delivery\/cache coverage issues.<\/li>\n<\/ul>\n\n<h4>1.14.10<\/h4>\n\n<ul>\n<li>Added a lightweight frontend HTML pass so theme logos, page builder images, and other images outside post content can receive WebP delivery.<\/li>\n<li>Added WebP replacement for local upload background images when a matching WebP file exists.<\/li>\n<li>Improved WebP handling for image preload links on normal frontend pages.<\/li>\n<li>Added developer filters to disable frontend HTML, background image, or image preload rewriting on edge-case sites.<\/li>\n<\/ul>\n\n<h4>1.14.9<\/h4>\n\n<ul>\n<li>Made the page proof scan stricter by detecting local JPG\/PNG URLs that still appear uncovered even when WebP files are ready.<\/li>\n<li>Added WebP delivery coverage and uncovered image examples to the copyable page proof report.<\/li>\n<li>Improved page proof messaging for partially covered pages, including theme logos, page builder images, preloads, and cached markup.<\/li>\n<\/ul>\n\n<h4>1.14.8<\/h4>\n\n<ul>\n<li>Split the media optimization queue into safe to optimize, already optimized, and too-large counts.<\/li>\n<li>Fixed the active optimization filename after skipped images so the running status no longer appears stuck.<\/li>\n<li>Clarified the public translation path through WordPress.org translation packs.<\/li>\n<\/ul>\n\n<h4>1.14.7<\/h4>\n\n<ul>\n<li>Improved media optimization queue clarity when remaining images are too large for safe local processing.<\/li>\n<li>Count only processable images as ready to optimize and point oversized images to Advanced limits.<\/li>\n<li>Added a modest in-plugin WordPress.org review prompt after real optimization results.<\/li>\n<\/ul>\n\n<h4>1.14.6<\/h4>\n\n<ul>\n<li>Made contextual help tips more subtle and kept them inline with their labels.<\/li>\n<\/ul>\n\n<h4>1.14.5<\/h4>\n\n<ul>\n<li>Added visible log entries for single-image restores so restore testing is easier to verify.<\/li>\n<\/ul>\n\n<h4>1.14.4<\/h4>\n\n<ul>\n<li>Improved page proof scan wording when WebP files exist but page HTML does not clearly serve them, and avoided negative savings wording.<\/li>\n<\/ul>\n\n<h4>1.14.3<\/h4>\n\n<ul>\n<li>Added lightweight contextual help tips for settings, format delivery, advanced limits, and media optimization.<\/li>\n<\/ul>\n\n<h4>1.14.2<\/h4>\n\n<ul>\n<li>Renamed homepage proof wording to page proof and added a copyable page proof report.<\/li>\n<\/ul>\n\n<h4>1.14.1<\/h4>\n\n<ul>\n<li>Restored KPI icons using CSS masks so they remain visible while keeping Plugin Check output clean.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>Fixed Plugin Check findings for hidden files, escaped SVG output, sanitized AJAX input, and modern WordPress.org translation loading.<\/li>\n<\/ul>\n\n<h4>1.13.9<\/h4>\n\n<ul>\n<li>Expanded the frontend proof scan so any same-site page URL can be scanned.<\/li>\n<li>Added page-level payload evidence that compares found original JPG\/PNG file sizes with available WebP files.<\/li>\n<\/ul>\n\n<h4>1.13.8<\/h4>\n\n<ul>\n<li>Increased dashboard KPI icon size for clearer visual balance.<\/li>\n<\/ul>\n\n<h4>1.13.7<\/h4>\n\n<ul>\n<li>Added a frontend proof scan that checks live page HTML for WebP sources and flags JPG\/PNG background images for manual review.<\/li>\n<\/ul>\n\n<h4>1.13.6<\/h4>\n\n<ul>\n<li>Centered the dashboard metric icons and kept them magenta by preventing label styles from overriding the SVG color.<\/li>\n<\/ul>\n\n<h4>1.13.5<\/h4>\n\n<ul>\n<li>Clarified the pending media metric by showing \"Ready to re-optimize\" when existing optimized images need processing again for current settings.<\/li>\n<\/ul>\n\n<h4>1.13.4<\/h4>\n\n<ul>\n<li>Fixed metric card icons by replacing small admin-font icons with lightweight inline SVG icons.<\/li>\n<li>Clarified that the 10 MB local processing limit is a starting point and that pixel dimensions also affect memory use.<\/li>\n<\/ul>\n\n<h4>1.13.3<\/h4>\n\n<ul>\n<li>Replaced prototype-style metric icons with lightweight Dashicons-based admin icons.<\/li>\n<li>Added a maximum file-size setting for local optimization limits.<\/li>\n<li>Improved skipped-image details with file size, dimensions, and configured limits where available.<\/li>\n<li>Improved the Image SEO scan with thumbnails, status labels, and practical suggestions.<\/li>\n<li>Prepared the plugin for WordPress locale-based translations through a languages directory.<\/li>\n<\/ul>\n\n<h4>1.13.2<\/h4>\n\n<ul>\n<li>Kept AVIF disabled in the free local-first flow to avoid memory-heavy failures on normal hosting.<\/li>\n<li>Made skipped-image messages shorter and easier to read during media optimization.<\/li>\n<li>Modernized the media optimization log styling.<\/li>\n<\/ul>\n\n<h4>1.13.1<\/h4>\n\n<ul>\n<li>Updated the admin UI look and feel with stronger header actions, modern tabs, larger metric cards, and softer dashboard cards.<\/li>\n<li>Renamed the user-facing library workflow to Media Optimization.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Renamed the Bulk tab to Library for a clearer user-facing workflow.<\/li>\n<li>Merged Optimize and Formats into one Settings page.<\/li>\n<li>Made recommended settings more conservative by leaving AVIF optional instead of enabling it automatically.<\/li>\n<li>Added safer local AVIF limits and raised the WordPress image memory limit before local processing where WordPress allows it.<\/li>\n<\/ul>\n\n<h4>1.12.5<\/h4>\n\n<ul>\n<li>Refined the Bulk page into a more compact control center with a circular progress meter.<\/li>\n<li>Added live run stats for saved space and skipped images.<\/li>\n<li>Kept the safe workflow visible without adding extra advanced filter choices.<\/li>\n<\/ul>\n\n<h4>1.12.4<\/h4>\n\n<ul>\n<li>Added a clear warning to keep the Bulk page open while optimization is running.<\/li>\n<li>Added a browser leave warning during active bulk optimization.<\/li>\n<li>Added visible skipped-image errors during the current run.<\/li>\n<li>Added client-side error logging so failed browser requests also appear in the recent bulk log.<\/li>\n<\/ul>\n\n<h4>1.12.3<\/h4>\n\n<ul>\n<li>Made bulk optimization more reliable on shared hosting by processing one image per request.<\/li>\n<li>If one image request fails, Shrinkwell now skips that item, logs the problem, and continues instead of stopping the whole run.<\/li>\n<li>Added local safety checks for very large files and dimensions to reduce memory-related failures.<\/li>\n<li>Removed the visible advanced filter block from the Bulk page to keep the scan and bulk workflows clearer.<\/li>\n<li>Updated the admin header and bulk copy around local-first, safety-focused positioning.<\/li>\n<\/ul>\n\n<h4>1.12.2<\/h4>\n\n<ul>\n<li>Simplified the Overview page by removing internal launch\/proof panels and moving site status into a compact sidebar.<\/li>\n<li>Removed automatic bulk-start remnants from the recommendation flow.<\/li>\n<\/ul>\n\n<h4>1.12.1<\/h4>\n\n<ul>\n<li>Changed the recommended settings flow so applying recommendations no longer starts bulk optimization automatically.<\/li>\n<li>Cleaned up the remaining Plugin Check sanitization warning for admin result notices.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Simplified admin navigation to Overview, Optimize, Formats, Bulk, SEO, Backups, and Advanced.<\/li>\n<li>Merged the settings summary into the Overview page.<\/li>\n<li>Added safe extension hooks for AVIF availability, bulk batch sizing, review URL, and after-optimization events.<\/li>\n<li>Added an in-plugin review request that only appears after real usage and no recent errors.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Cleaned up Plugin Check findings for translator comments, read-only admin URL handling, AJAX input sanitization, file replacement, and the readme short description.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Renamed internal public prefixes from the older short prefix to the safer <code>shrinkwell_<\/code>, <code>SHRINKWELL_<\/code>, and <code>shrinkwell-<\/code> patterns for WordPress.org review.<\/li>\n<li>Simplified the public plugin name to <code>Shrinkwell Image Optimizer<\/code>.<\/li>\n<li>Updated the WordPress.org contributor account to <code>levmedia123<\/code>.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Added a launch readiness checklist and optimization proof overview.<\/li>\n<li>Stored delivery test and SEO scan results so site readiness is easier to review.<\/li>\n<li>Added a 5-image bulk test run for safer first use on client sites.<\/li>\n<li>Prevented WebP source files from being processed as duplicate WebP copies.<\/li>\n<li>Removed the dashboard widget from the first WordPress.org submission build to keep the admin footprint focused.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Added smart bulk filters and an image SEO report for missing alt text and weak filenames.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Rebranded the plugin to Shrinkwell, improved the bulk flow, and simplified Custom compression controls.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added a settings summary page and replaced the technical custom quality input with a 1-10 compression strength slider.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added an apply button for site scan recommendations and quick follow-up links.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Improved compression explanations, clarified WebP\/AVIF settings, added recommendation markers, and added a site recommendation scan.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added a backup manager tab with backup storage stats, per-image restore links, and restore-all support.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added bulk logs, WebP\/AVIF delivery test, and a WordPress dashboard widget.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added tabbed settings pages, compression profiles, AVIF creation\/serving, EXIF removal option, thumbnail optimization control, status checks, and improved bulk progress.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added frontend WebP serving with picture\/source fallback.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial version.<\/li>\n<\/ul>","raw_excerpt":"Optimize images locally, create WebP, run safe media library optimization, and prove saved space with backups and delivery checks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311225","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=311225"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/levmedia123"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311225"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311225"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311225"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311225"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311225"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}