{"id":273580,"date":"2026-01-28T09:53:27","date_gmt":"2026-01-28T09:53:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/imoptimizer\/"},"modified":"2026-04-01T11:06:42","modified_gmt":"2026-04-01T11:06:42","slug":"bp-imoptimizer-optimize-images","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/bp-imoptimizer-optimize-images\/","author":23266340,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0","stable_tag":"1.0","tested":"6.9.4","requires":"5.2","requires_php":"7.0","requires_plugins":null,"header_name":"ImOptimizer - Optimize Images","header_author":"Babapinnak","header_description":"Automatically converts uploaded images (JPG\/PNG) to WebP format, manages storage, protects server memory, and logs conversion activity.","assets_banners_color":"","last_updated":"2026-04-01 11:06:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/babapinnak.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":123,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"babapinnak","date":"2026-04-01 11:06:42"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[17209,163,254824,187,15376],"plugin_category":[50,52],"plugin_contributors":[242667],"plugin_business_model":[],"class_list":["post-273580","plugin","type-plugin","status-publish","hentry","plugin_tags-compression","plugin_tags-images","plugin_tags-imoptimizer","plugin_tags-optimization","plugin_tags-webp","plugin_category-media","plugin_category-performance","plugin_contributors-babapinnak","plugin_committers-babapinnak"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/bp-imoptimizer-optimize-images.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>ImOptimizer - Optimize Images<\/strong> is a safe, lightweight way to serve next-gen images on WordPress by converting uploads to WebP.<\/p>\n\n<p>Most optimization plugins either rely on external APIs or risk server crashes by processing images without checking memory limits. <strong>ImOptimizer runs fully on your server<\/strong> using the native PHP GD library and includes a <strong>Smart Memory Guard<\/strong> that estimates RAM usage before converting\u2014helping prevent memory exhaustion.<\/p>\n\n<h3>\ud83d\ude80 Why ImOptimizer?<\/h3>\n\n<ul>\n<li><strong>Boost Core Web Vitals:<\/strong> WebP images reduce page weight and speed up loading.<\/li>\n<li><strong>Zero API Fees:<\/strong> No subscriptions, no credits, no data sharing. Runs locally.<\/li>\n<li><strong>Server Safety First:<\/strong> Skips risky conversions on low memory and detects conflicts (Smush\/EWWW\/ShortPixel, etc.).<\/li>\n<li><strong>Set &amp; Forget:<\/strong> Auto-converts JPG\/JPEG\/PNG at upload time.<\/li>\n<\/ul>\n\n<h3>\u26a1 Feature Highlights<\/h3>\n\n<ul>\n<li><strong>Smart Conversion:<\/strong> Converts the main image AND generated thumbnails (Media Library, WooCommerce, etc.).<\/li>\n<li><strong>Self-Cleaning Logs:<\/strong> Optional logging with retention cleanup (Cron).<\/li>\n<li><strong>MIME Sync:<\/strong> Updates WordPress metadata so <code>.webp<\/code> is recognized correctly.<\/li>\n<li><strong>Privacy Focused:<\/strong> Your images never leave your server.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/bp-imoptimizer-optimize-images\/<\/code>.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Settings &gt; ImOptimizer<\/strong>.<\/li>\n<li>Save your preferences. (Default: Quality 85, Logging Disabled).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20convert%20my%20existing%20media%20library%3F\"><h3>Does this convert my existing media library?<\/h3><\/dt>\n<dd><p>No. The plugin processes <strong>new uploads only<\/strong>.<\/p><\/dd>\n<dt id=\"what%20image%20formats%20does%20this%20plugin%20convert%3F\"><h3>What image formats does this plugin convert?<\/h3><\/dt>\n<dd><p>It supports <strong>JPG, JPEG, and PNG<\/strong> images (converted to WebP).<\/p><\/dd>\n<dt id=\"can%20i%20delete%20the%20original%20images%20after%20conversion%3F\"><h3>Can I delete the original images after conversion?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Delete Original Image<\/strong> in settings.<\/p><\/dd>\n<dt id=\"will%20this%20work%20if%20i%20don%27t%20have%20an%20api%20key%3F\"><h3>Will this work if I don't have an API key?<\/h3><\/dt>\n<dd><p>Yes. No APIs are used. The plugin relies on your server\u2019s GD library.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20uploaded%20file%20is%20too%20large%3F\"><h3>What happens if the uploaded file is too large?<\/h3><\/dt>\n<dd><p>Images larger than <strong>15MB<\/strong> are skipped for stability (and logged if logging is enabled).<\/p><\/dd>\n<dt id=\"where%20are%20the%20conversion%20logs%20saved%3F\"><h3>Where are the conversion logs saved?<\/h3><\/dt>\n<dd><p>Logs are stored in a secure folder:\n    \/wp-content\/uploads\/bp-imoptimizer-logs\/\nIn Multisite, logs are stored per site:\n    \/wp-content\/uploads\/bp-imoptimizer-logs-{blog_id}\/<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Your existing WebP images remain on disk and continue to work. The plugin settings\/transients and log folders are removed on uninstall.<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20wordpress%20multisite%3F\"><h3>Does this work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site gets its own isolated log folder.<\/p><\/dd>\n<dt id=\"why%20are%20my%20images%20not%20converting%3F\"><h3>Why are my images not converting?<\/h3><\/dt>\n<dd><ol>\n<li>Ensure GD supports WebP (<code>imagewebp<\/code> must exist).<\/li>\n<li>Enable logging and review logs.<\/li>\n<li>Disable conflicting optimizer plugins (Smush\/EWWW\/ShortPixel\/Imagify, etc.).<\/li>\n<li>Check memory limits (the plugin skips conversions if estimated usage is too high).<\/li>\n<\/ol><\/dd>\n<dt id=\"can%20i%20rename%20the%20plugin%20folder%3F\"><h3>Can I rename the plugin folder?<\/h3><\/dt>\n<dd><p><strong>No.<\/strong> Keep the folder name as:\n    bp-imoptimizer-optimize-images\nThis helps ensure updates, references, and translations remain consistent.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Smart Memory Guard to prevent memory crashes.<\/li>\n<li>Optional logging + scheduled log cleanup.<\/li>\n<li>Conflict detection for popular optimizer plugins.<\/li>\n<li>Secure log directory with access protection and traversal safety checks.<\/li>\n<\/ul>","raw_excerpt":"Boost site speed by automatically converting uploads to WebP. Features smart memory protection, detailed logging, and zero API dependencies.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/273580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=273580"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/babapinnak"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=273580"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=273580"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=273580"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=273580"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=273580"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=273580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}