{"id":296594,"date":"2026-04-21T08:05:10","date_gmt":"2026-04-21T08:05:10","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/divo-instant-image-optimizer\/"},"modified":"2026-05-03T07:10:33","modified_gmt":"2026-05-03T07:10:33","slug":"binsaif-instant-image-optimizer","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/binsaif-instant-image-optimizer\/","author":14977198,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.0","stable_tag":"1.2.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BinsOptimizer - Image Optimizer & WebP Converter","header_author":"Binsaifullah","header_description":"Optimize and convert images to WebP instantly on upload, all within your browser.","assets_banners_color":"b7b8df","last_updated":"2026-05-03 07:10:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":162,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"binsaifullah","date":"2026-04-21 08:04:57"},"1.0.1":{"tag":"1.0.1","author":"binsaifullah","date":"2026-04-21 08:14:33"},"1.1.0":{"tag":"1.1.0","author":"binsaifullah","date":"2026-04-27 10:02:09"},"1.2.0":{"tag":"1.2.0","author":"binsaifullah","date":"2026-05-03 07:10:33"}},"upgrade_notice":{"1.2.0":"<p>Adds a sortable Optimization column to the Media Library so you can see and rank savings at a glance \u2014 no breaking changes.<\/p>","1.1.0":"<ul>\n<li>Bug fix release. Updates the metadata storage mechanism and resolves a critical issue where optimization stats were not displaying in the Media Library details panel.<\/li>\n<\/ul>","1.0.0":"<ul>\n<li>Initial version of the plugin. Start optimizing your images today!<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3511507,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3521271,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3521271,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"biio\/admin":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"biio\/admin","title":"BIIO Admin","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.scss"}},"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.gif":{"filename":"screenshot-1.gif","revision":3511507,"resolution":"1","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[56174,29152,29158,15376,186483],"plugin_category":[54],"plugin_contributors":[174986],"plugin_business_model":[],"class_list":["post-296594","plugin","type-plugin","status-publish","hentry","plugin_tags-compress-images","plugin_tags-image-compression","plugin_tags-image-optimizer","plugin_tags-webp","plugin_tags-webp-converter","plugin_category-security-and-spam-protection","plugin_contributors-binsaifullah","plugin_committers-binsaifullah"],"banners":{"banner":"https:\/\/ps.w.org\/binsaif-instant-image-optimizer\/assets\/banner-772x250.png?rev=3521271","banner_2x":"https:\/\/ps.w.org\/binsaif-instant-image-optimizer\/assets\/banner-1544x500.png?rev=3521271","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/binsaif-instant-image-optimizer\/assets\/icon-256x256.png?rev=3511507","icon_2x":"https:\/\/ps.w.org\/binsaif-instant-image-optimizer\/assets\/icon-256x256.png?rev=3511507","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/binsaif-instant-image-optimizer\/assets\/screenshot-1.gif?rev=3511507","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>BinsOptimizer<\/strong> is the fastest, most private way to optimize images in WordPress. Unlike cloud-based image optimizers, BinsOptimizer converts and compresses your images <strong>directly in the browser<\/strong> \u2014 before they ever hit your server. No API keys, no monthly fees, no privacy risks.<\/p>\n\n<p>Every JPEG and PNG you upload is automatically converted to <strong>WebP<\/strong> \u2014 the modern image format recommended by Google \u2014 and resized to your chosen maximum dimension. The result is smaller file sizes, faster page loads, and better Core Web Vitals scores, all without touching your server resources.<\/p>\n\n<p><strong>Why choose BinsOptimizer over other image optimizer plugins?<\/strong><\/p>\n\n<p>Most WordPress image optimization plugins send your images to external cloud servers for processing, which is slow, costs money, and raises data privacy concerns. BinsOptimizer does everything on the user's own machine using modern browser APIs, making it instant, free, and completely private.<\/p>\n\n<h3>Video Tutorial<\/h3>\n\n<p>[youtube http:\/\/www.youtube.com\/watch?v=HHzzA_8WPSU]<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Automatic WebP Conversion<\/strong>: Convert JPEG and PNG images to WebP on upload for up to 80% smaller file sizes and better Google PageSpeed scores.<\/li>\n<li><strong>Client-Side Image Compression<\/strong>: All image processing happens in the browser \u2014 zero server load, zero cloud costs.<\/li>\n<li><strong>Smart Image Resizing<\/strong>: Automatically downscale oversized images to your chosen maximum width or height during upload.<\/li>\n<li><strong>No API Key Required<\/strong>: Fully self-contained. No third-party services, no subscriptions, no limits.<\/li>\n<li><strong>100% Private<\/strong>: Your images are never sent to an external server. Everything stays on your machine until the optimized file is uploaded.<\/li>\n<li><strong>Zero Queue, Instant Results<\/strong>: Optimization happens in real time as you upload \u2014 no background jobs or waiting.<\/li>\n<li><strong>Media Library Integration<\/strong>: View compression savings, original vs. optimized file sizes, and conversion time directly in the WordPress Media Library.<\/li>\n<li><strong>Works Everywhere in WordPress<\/strong>: Compatible with the Block Editor (Gutenberg), Classic Editor, drag-and-drop uploads, and featured image pickers.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/binsaif-instant-image-optimizer<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to <strong>Settings &gt; BinsOptimizer<\/strong> to configure your compression levels and constraints.<\/li>\n<li>Start uploading images to your Media Library or Posts - they will be optimized automatically!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20an%20api%20key%3F\"><h3>Does this require an API key?<\/h3><\/dt>\n<dd><p>No. Since all optimization happens in your browser, there are no external services to connect to and no API keys required.<\/p><\/dd>\n<dt id=\"does%20it%20optimize%20existing%20images%3F\"><h3>Does it optimize existing images?<\/h3><\/dt>\n<dd><p>Currently, the plugin focuses on optimizing images at the moment of upload. Bulk optimization for your existing library is planned for a future update.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20other%20media%20plugins%3F\"><h3>Is it compatible with other media plugins?<\/h3><\/dt>\n<dd><p>Yes, it works by intercepting the upload process at the browser level, making it compatible with most WordPress themes and plugins that use the standard WordPress media uploader.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Optimization column added to the Media Library list view \u2014 each attachment now shows a colour-coded badge displaying the savings percentage and output format (e.g. \"42.3% webp\").<\/li>\n<li>New: Hovering the savings badge reveals a tooltip with the original file size, optimised file size, and total bytes saved.<\/li>\n<li>New: The Optimization column is fully sortable \u2014 click the column header to rank media items from most-saved to least-saved (or vice versa).<\/li>\n<li>New: Unoptimised attachments display a neutral \"Not optimized\" badge so the column is informative for every item in the library.<\/li>\n<li>Improvement: Savings percentage is now also persisted as a dedicated post meta key (<code>_biio_savings<\/code>) alongside the existing attachment metadata, enabling reliable numeric sorting without serialized-field parsing.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix: Media Library stats panel never rendered in the single-column Details view due to incorrect Backbone template override \u2014 switched to a <code>render()<\/code> override matching the correct pattern.<\/li>\n<li>Fix: Fatal JavaScript TypeError when <code>conversionTime<\/code> is absent from stored metadata \u2014 added null guard before calling <code>.toFixed()<\/code>.<\/li>\n<li>Fix: <code>canvas.getContext('2d')<\/code> could return null for very large images \u2014 added explicit null check before drawing to canvas.<\/li>\n<li>Fix: Metadata queue stored in transients was vulnerable to object-cache eviction \u2014 migrated to a persistent WordPress option (<code>biio_metadata_queue<\/code>).<\/li>\n<li>Fix: Typo in save-error button label \"Fied to Save\" corrected to \"Failed to Save\".<\/li>\n<li>Fix: Save success button label showed \"Saving Changes\" after the save had already completed \u2014 corrected to \"Saved!\".<\/li>\n<li>Fix: Redundant <code>__biio_converted<\/code> event flag removed; a single <code>biio_converted<\/code> flag is sufficient to prevent re-processing loops.<\/li>\n<li>Fix: Removed dead <code>is_admin()<\/code> guard inside <code>admin_enqueue_scripts<\/code> hook (the hook already only fires in admin context).<\/li>\n<li>Improvement: Removed all debug <code>console.log<\/code> \/ <code>console.warn<\/code> statements from production JS bundles.<\/li>\n<li>Improvement: Deactivation hook now cleans up the persistent option queue instead of a transient.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Browser-based WebP conversion.<\/li>\n<li>Client-side image resizing.<\/li>\n<li>Premium Admin Dashboard.<\/li>\n<\/ul>","raw_excerpt":"The fastest WordPress image optimizer. Auto-convert JPEG &amp; PNG to WebP and compress images on upload \u2014 100% in your browser, no API key needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296594"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/binsaifullah"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296594"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296594"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296594"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296594"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296594"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}