{"id":235183,"date":"2025-06-30T07:14:51","date_gmt":"2025-06-30T07:14:51","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/webp-image-converter-replacer-image-optimisation-no-duplicates-save-disk-space\/"},"modified":"2025-10-27T07:57:52","modified_gmt":"2025-10-27T07:57:52","slug":"webp-image-converter-replacer","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/webp-image-converter-replacer\/","author":23278042,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.3","stable_tag":"1.1.3","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"WebP Image Converter & Replacer \u2013 Image Optimisation, No Duplicates, Save Disk Space","header_author":"Core Essentials","header_description":"Adds a link to the Media Library to convert JPEG\/PNG\/Static GIF images to WebP format, replacing the original if smaller.","assets_banners_color":"1b818c","last_updated":"2025-10-27 07:57:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/coreessentials.online\/plugins-for-wordpress\/webp-image-converter-replacer\/","header_author_uri":"https:\/\/coreessentials.online\/","rating":3,"author_block_rating":0,"active_installs":90,"downloads":65657,"num_ratings":2,"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":"coreessentials","date":"2025-08-28 07:28:32"},"1.1.0":{"tag":"1.1.0","author":"coreessentials","date":"2025-09-10 11:57:06"},"1.1.1":{"tag":"1.1.1","author":"coreessentials","date":"2025-10-10 12:32:16"},"1.1.2":{"tag":"1.1.2","author":"coreessentials","date":"2025-10-21 12:37:19"},"1.1.3":{"tag":"1.1.3","author":"coreessentials","date":"2025-10-27 07:57:52"}},"upgrade_notice":{"1.1.0":"<p>Major update: auto-convert on upload (premium), overview stats, Phoenix integration, reliability &amp; UX improvements.<\/p>","1.1.1":"<ul>\n<li>Enhancement: Longer timeouts for slower servers \/ larger images<\/li>\n<li>Enhancement: Status polling to prevent failed false positive<\/li>\n<li>Enhancement: Better animated Gif detection<\/li>\n<li>Enhancement: Reduced checking for faster conversions<\/li>\n<\/ul>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3319732,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3319729,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3319729,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3385023,"resolution":false,"location":"assets","locale":"","contents":"{\"features\":{\"networking\":true},\"siteOptions\":{\"blogname\":\"WebP Image Converter & Replacer \\u2013 Image Optimisation, No Duplicates, Save Disk Space\"},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"webp-image-converter-replacer\"},\"options\":{\"activate\":true}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/sebastian-CxNdzRd1xtY-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/sebastian-CxNdzRd1xtY-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/sebastian-CxNdzRd1xtY-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/grigorii-shcheglov-YtULKNJ2BSM-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/grigorii-shcheglov-YtULKNJ2BSM-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/grigorii-shcheglov-YtULKNJ2BSM-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/thinh-nguyen-8wIVNc-5YxM-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/thinh-nguyen-8wIVNc-5YxM-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/thinh-nguyen-8wIVNc-5YxM-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/christian-crocker-7ls0DhnAJvw-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/christian-crocker-7ls0DhnAJvw-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/christian-crocker-7ls0DhnAJvw-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/wenhao-ruan-2XTsGRsbEKE-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/wenhao-ruan-2XTsGRsbEKE-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/wenhao-ruan-2XTsGRsbEKE-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/micah-sammie-chaffin-6O6BZerihQw-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/micah-sammie-chaffin-6O6BZerihQw-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/micah-sammie-chaffin-6O6BZerihQw-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/intricate-explorer-_TJGk71ZGDc-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/intricate-explorer-_TJGk71ZGDc-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/intricate-explorer-_TJGk71ZGDc-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/zhenyu-luo-n4XeCKwwrk0-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/zhenyu-luo-n4XeCKwwrk0-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/zhenyu-luo-n4XeCKwwrk0-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/willian-justen-de-vasconcellos-sp5TFLhI3hM-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/willian-justen-de-vasconcellos-sp5TFLhI3hM-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/willian-justen-de-vasconcellos-sp5TFLhI3hM-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/colin-watts-YwwUXa6NvX4-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/colin-watts-YwwUXa6NvX4-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/colin-watts-YwwUXa6NvX4-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/shutter-speed-_OZPiiW-pmo-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/shutter-speed-_OZPiiW-pmo-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/shutter-speed-_OZPiiW-pmo-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/willian-justen-de-vasconcellos-v4rA2O0_IVI-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/willian-justen-de-vasconcellos-v4rA2O0_IVI-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/willian-justen-de-vasconcellos-v4rA2O0_IVI-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/kevin-schmid-9WicLhY0tI8-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/kevin-schmid-9WicLhY0tI8-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/kevin-schmid-9WicLhY0tI8-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/ren-hosoya-xYI_dcYIQas-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/ren-hosoya-xYI_dcYIQas-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/ren-hosoya-xYI_dcYIQas-unsplash.jpg\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/zhenyu-luo-acLp1oYUsUc-unsplash.jpg\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/iwtw-richb\\\/demo-content\\\/refs\\\/heads\\\/main\\\/zhenyu-luo-acLp1oYUsUc-unsplash.jpg\"}},{\"step\":\"wp-cli\",\"command\":\"wp media import \\\/wordpress\\\/wp-content\\\/zhenyu-luo-acLp1oYUsUc-unsplash.jpg\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"mkdir\",\"path\":\"\\\/wordpress\\\/wp-content\\\/mu-plugins\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/mu-plugins\\\/00-ce-force-media.php\",\"data\":\"<?php\\n\\\/**\\n * Plugin Name: CE Force Media (until reached)\\n *\\\/\\n\\n\\\/\\\/ Where we want to land\\nfunction ce_force_media_target(){ return self_admin_url('upload.php?mode=list'); }\\n\\n\\\/\\\/ 1) Rewrite any later admin redirects back to Media until we've reached it\\nadd_filter('wp_redirect', function($location, $status){\\n    if( get_option('_ce_force_media_done') || isset($_GET['no_redirect']) ) return $location;\\n    if( strpos($location, 'upload.php') !== false ) return $location;\\n    if( is_admin() ) return ce_force_media_target();\\n    return $location; \\\/\\\/ front-end redirects handled below\\n}, 9999, 2);\\n\\n\\\/\\\/ 2) Early push: catches BOTH admin and front-end first load\\nadd_action('init', function(){\\n    if( get_option('_ce_force_media_done') || isset($_GET['no_redirect']) ) return;\\n\\n    \\\/\\\/ Already on Media Library? do nothing here; we'll mark done in load-upload.php\\n    $req = $_SERVER['REQUEST_URI'] ?? '';\\n    $on_media = (strpos($req, 'upload.php') !== false);\\n\\n    \\\/\\\/ If in admin and not on Media -> go there\\n    if( is_admin() ){\\n        if( defined('DOING_AJAX') && DOING_AJAX ) return;\\n        if( ! $on_media ) { wp_redirect( ce_force_media_target() ); exit; }\\n        return;\\n    }\\n\\n    \\\/\\\/ If on the front-end but logged in -> send to Media\\n    if( is_user_logged_in() ){\\n        if( defined('REST_REQUEST') && REST_REQUEST ) return;\\n        wp_redirect( ce_force_media_target() );\\n        exit;\\n    }\\n}, 0);\\n\\n\\\/\\\/ 3) Only mark success once Media Library actually loads\\nadd_action('load-upload.php', function(){ update_option('_ce_force_media_done', 1, false); }, 0);\\n\"},{\"step\":\"writeFile\",\"path\":\"wordpress\\\/wp-content\\\/mu-plugins\\\/show-admin-notice-2.php\",\"data\":\"<?php\\nadd_action(\\n'admin_notices',\\nfunction() {\\n$dismissed = get_user_option( 'dismissed_expose_blueprint_notice-2', get_current_user_id() );\\nif ( $dismissed ) {\\nreturn;\\n}\\necho '<div class=\\\"notice notice-success is-dismissible\\\" id=\\\"custom-admin-notice-2\\\"><p><strong>This is a demo of the \\\\'WebP Image Converter & Replacer\\\\' plugin by <a href=\\\\'https:\\\/\\\/coreessentials.online\\\/\\\\' target=\\\\'_blank\\\\'>Core Essentials<\\\/a><\\\/strong><\\\/p><ol><li>Hover over a media item below and click \\\\'<strong>Convert to WebP<\\\/strong>\\\\'.<\\\/li><li>After conversion check the \\\\'<strong>Total Savings via WebP Converter<\\\/strong>\\\\' or hover over the image again to see how much space you saved.<\\\/li><li>Click the image to see the quality of the conversion.<\\\/li><\\\/ol><\\\/div>';\\n}\\n);\\nadd_action('wp_ajax_dismiss_custom-admin-notice-2', function() {\\ncheck_ajax_referer('custom-admin-notice-2', 'nonce');\\n$user_id = get_current_user_id();\\nif ( $user_id ) {\\nupdate_user_option($user_id, 'dismissed_expose_blueprint_notice-2', 1, false);\\nwp_send_json_success();\\n} else {\\nwp_send_json_error('User not found');\\n}\\n} );\\nadd_action('admin_footer', function() {\\n?>\\n<script type=\\\"text\\\/javascript\\\">\\njQuery(document).ready( function($) {\\nvar ajaxurl = '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>';\\nvar nonce = '<?php echo esc_html( wp_create_nonce( 'custom-admin-notice-2' ) ); ?>';\\n$( '#custom-admin-notice-2' ).on( 'click', '.notice-dismiss', function() {\\n$.ajax({\\nurl: ajaxurl,\\ntype: 'POST',\\ndata: {\\naction: 'dismiss_custom-admin-notice-2',\\nnonce: nonce\\n}\\n});\\n});\\n});\\n<\\\/script>\\n<?php\\n} );\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.2","1.1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3359162,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3359162,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3359162,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3359162,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3359162,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3359162,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Optimization Overview \u2013 library status and space saved","2":"Phoenix Integration Status \u2013 compatibility &amp; guidance","3":"Media Library \u2013 \u201cConvert to WebP\u201d links","4":"Example Savings \u2013 footprint cut after conversion","5":"Premium \u2013 bulk convert &amp; auto-convert on upload","6":"Dev Tools \u2013 confirming <code>.webp<\/code> on the front end"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[249014,29161,233,15376,186483],"plugin_category":[54],"plugin_contributors":[242178],"plugin_business_model":[],"class_list":["post-235183","plugin","type-plugin","status-publish","hentry","plugin_tags-convert-to-webp","plugin_tags-image-optimization","plugin_tags-media-library","plugin_tags-webp","plugin_tags-webp-converter","plugin_category-security-and-spam-protection","plugin_contributors-coreessentials","plugin_committers-coreessentials","plugin_support_reps-richard-b"],"banners":{"banner":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/banner-772x250.png?rev=3319729","banner_2x":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/banner-1544x500.png?rev=3319729","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/icon.svg?rev=3319732","icon":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/icon.svg?rev=3319732","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-1.png?rev=3359162","caption":"Optimization Overview \u2013 library status and space saved"},{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-2.png?rev=3359162","caption":"Phoenix Integration Status \u2013 compatibility &amp; guidance"},{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-3.png?rev=3359162","caption":"Media Library \u2013 \u201cConvert to WebP\u201d links"},{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-4.png?rev=3359162","caption":"Example Savings \u2013 footprint cut after conversion"},{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-5.png?rev=3359162","caption":"Premium \u2013 bulk convert &amp; auto-convert on upload"},{"src":"https:\/\/ps.w.org\/webp-image-converter-replacer\/assets\/screenshot-6.png?rev=3359162","caption":"Dev Tools \u2013 confirming <code>.webp<\/code> on the front end"}],"raw_content":"<!--section=description-->\n<p><strong>WebP Image Converter &amp; Replacer<\/strong> converts your images (JPEG, PNG, static GIF) to <strong>WebP<\/strong>, replaces originals <strong>only when smaller<\/strong>, and updates database references so your site transparently serves <code>.webp<\/code>. No duplicate files. No front-end bloat. Just <strong>faster pages<\/strong> and <strong>less disk usage<\/strong>.<\/p>\n\n<p><strong>Why this plugin<\/strong>\n- <strong>No Duplicate Images:<\/strong> Converts and replaces originals when WebP is smaller, keeping <code>\/uploads<\/code> lean.\n- <strong>Real Performance Gains:<\/strong> WebP typically reduces size ~25\u201335% at similar quality, aiding Core Web Vitals.\n- <strong>Safety First:<\/strong> Never deletes the original unless conversion succeeds <strong>and<\/strong> the WebP is smaller.\n- <strong>Full DB Integration:<\/strong> All generated sizes are converted; URLs in content\/meta are updated to <code>.webp<\/code>.\n- <strong>On-Server Only:<\/strong> Uses PHP <strong>GD<\/strong> or <strong>Imagick<\/strong>. No external API, keys, or privacy concerns.\n- <strong>Lightweight:<\/strong> Runs only during conversion\u2014nothing extra on the front end.<\/p>\n\n<p><strong>Free features<\/strong>\n- Convert individual images from <strong>Media \u2192 Library<\/strong> (list view).\n- <strong>Optimization Overview<\/strong> with counts: convertible, converted, remaining, skipped, failed, total space saved.\n- Smart memory handling to avoid PHP exhaustion on large images.<\/p>\n\n<p><strong>Premium features<\/strong>\n- <strong>Auto-convert on upload:<\/strong> New images become WebP automatically.\n- <strong>Bulk convert selected:<\/strong> Multi-select in Media Library (list view).\n- <strong>Bulk convert all:<\/strong> Library-wide conversion with progress + pause\/resume.<\/p>\n\n<blockquote>\n  <p>Whether you\u2019re tight on storage or chasing better performance, this is a <strong>safe, effective<\/strong> way to modernize images.<\/p>\n<\/blockquote>\n\n<p><strong>IMPORTANT:<\/strong> Because originals may be deleted, <strong>back up<\/strong> your <code>\/wp-content\/uploads\/<\/code> and database before converting. Test on staging if possible.<\/p>\n\n<h3>How it works<\/h3>\n\n<ol>\n<li>Plugin checks server support (GD\/Imagick with WebP).<\/li>\n<li>You convert images (single\/bulk\/premium auto).<\/li>\n<li>If the <code>.webp<\/code> is smaller, the original file is removed and <strong>all DB refs switch to <code>.webp<\/code><\/strong>.<\/li>\n<li>Your site now serves WebP transparently\u2014no theme changes required.<\/li>\n<\/ol>\n\n<h3>Usage<\/h3>\n\n<p><strong>Optimization Overview<\/strong>\n- <strong>Settings \u2192 Media<\/strong> \u2192 \u201cWebP Image Converter &amp; Replacer\u201d\n- See totals converted\/remaining\/skipped\/failed and <strong>space saved<\/strong>.<\/p>\n\n<p><strong>Convert individual images<\/strong>\n- <strong>Media \u2192 Library<\/strong> (list view) \u2192 <strong>Convert to WebP<\/strong> link under each item.<\/p>\n\n<p><strong>Premium<\/strong>\n- <strong>Auto-convert on upload<\/strong>: toggle under <strong>Settings \u2192 Media<\/strong>.<br \/>\n- <strong>Bulk convert selected<\/strong>: select items in Media Library (list view) \u2192 bulk action <strong>Convert to WebP<\/strong>.<br \/>\n- <strong>Bulk convert all<\/strong>: <strong>Start Bulk Optimization<\/strong> with progress + pause\/resume.<\/p>\n\n<p><strong>After conversion<\/strong>\n- Verify pages serve <code>.webp<\/code> in browser dev tools.\n- Clear any caches\/CDN.<\/p>\n\n<h3>Phoenix Media Rename Integration<\/h3>\n\n<p>We integrate with <a href=\"https:\/\/en-gb.wordpress.org\/plugins\/phoenix-media-rename\/\"><strong>Phoenix Media Rename<\/strong><\/a> to safely update <strong>all<\/strong> database references.<\/p>\n\n<p><strong>Why Phoenix?<\/strong>\n- Mature, reliable database URL updates across posts, custom fields, widgets, Customizer, etc.\n- Reduces risk vs. \u201cDIY\u201d find\/replace logic used by other optimizers.\n- Lets this plugin focus on <strong>conversion<\/strong> while Phoenix handles <strong>DB updates<\/strong>.<\/p>\n\n<p><strong>Flow<\/strong>\n1. Convert to WebP.\n2. Phoenix updates URLs from <code>.jpg\/.png\/.gif<\/code> to <code>.webp<\/code>.\n3. Your site serves WebP with no broken links.<\/p>\n\n<!--section=installation-->\n<ol>\n<li><strong>Back up<\/strong> <code>\/wp-content\/uploads\/<\/code> and your database.<\/li>\n<li>Install via <strong>Plugins \u2192 Add New<\/strong> (search \u201cWebP Image Converter &amp; Replacer\u201d) or upload the ZIP.<\/li>\n<li>Activate.<\/li>\n<li>Ensure <strong>Imagick<\/strong> or <strong>GD<\/strong> with WebP is available (the plugin will warn if not).<\/li>\n<li>Go to <strong>Settings \u2192 Media \u2192 WebP Image Converter &amp; Replacer<\/strong> for overview &amp; tools.<\/li>\n<li>(Recommended) Install <strong>Phoenix Media Rename<\/strong> for robust database URL updates (see below).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='will%20this%20plugin%20delete%20my%20images%3F'><h3>Will this plugin delete my images?<\/h3><\/dt>\n<dd><p>Only if the WebP conversion <strong>succeeds<\/strong> and the WebP is <strong>smaller<\/strong>. Otherwise, the original stays. Always keep backups.<\/p><\/dd>\n<dt id='why%20are%20the%20%E2%80%9Cspace%20saved%E2%80%9D%20numbers%20sometimes%20larger%20than%20the%20single%20file%20size%3F'><h3>Why are the \u201cspace saved\u201d numbers sometimes larger than the single file size?<\/h3><\/dt>\n<dd><p>WordPress creates multiple thumbnail sizes. Savings are calculated across <strong>the original + all thumbs<\/strong> vs. <strong>their WebP equivalents<\/strong>. Thumbnails can outweigh the original file, so total savings can exceed the original\u2019s size.<\/p><\/dd>\n<dt id='what%20if%20i%20uninstall%20the%20plugin%3F'><h3>What if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Your site will continue serving the existing WebP files. Settings are removed; deleted originals are not restored.<\/p><\/dd>\n<dt id='does%20this%20compress%20or%20just%20change%20format%3F'><h3>Does this compress or just change format?<\/h3><\/dt>\n<dd><p>It <strong>converts<\/strong> format using standard WebP quality defaults (approx. 80\u201385). No downscaling or custom per-image quality controls in this version.<\/p><\/dd>\n<dt id='can%20i%20change%20webp%20quality%3F'><h3>Can I change WebP quality?<\/h3><\/dt>\n<dd><p>Not via UI. Advanced users can modify via filter hooks.<\/p><\/dd>\n<dt id='avif%20or%20other%20formats%3F'><h3>AVIF or other formats?<\/h3><\/dt>\n<dd><p>Currently WebP only. AVIF may be added when browser and server support are broadly stable.<\/p><\/dd>\n<dt id='animated%20gifs%3F'><h3>Animated GIFs?<\/h3><\/dt>\n<dd><p>We auto-detect animated gifs and mark them as skipped, we do not convert them.<\/p><\/dd>\n<dt id='multisite%20support%3F'><h3>Multisite support?<\/h3><\/dt>\n<dd><p>Yes. Network-activate, then run conversions per site. Always back up each site first.<\/p><\/dd>\n<dt id='i%20hit%20a%20timeout%2Ferror.'><h3>I hit a timeout\/error.<\/h3><\/dt>\n<dd><p>Use bulk pause\/resume, try smaller batches, or raise PHP memory\/time limits. The plugin includes memory guards, but extreme libraries may need server tweaks.<\/p><\/dd>\n<dt id='does%20it%20support%20all%20browsers%3F'><h3>Does it support all browsers?<\/h3><\/dt>\n<dd><p>Modern browsers do. Legacy\/very old browsers may not; if those matter, use a different approach.<\/p><\/dd>\n<dt id='why%20use%20phoenix%20media%20rename%20instead%20of%20doing%20db%20updates%20internally%3F'><h3>Why use Phoenix Media Rename instead of doing DB updates internally?<\/h3><\/dt>\n<dd><p>We rely on a dedicated, proven solution for comprehensive, safe URL updates\u2014lower risk, better coverage.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Bug fix: \"Fix WebP MIME Types\" Utility<\/li>\n<li>Enhancement: MIME type updated after metadata generation<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Enhancement: Animated GIFs - Better protected &amp; auto-skipped<\/li>\n<li>Enhancement: Oversized images - Detected &amp; auto-skipped<\/li>\n<li>Enhancement: Server limits - Respects ImageMagick &amp; WebP constraints<\/li>\n<li>Bug fix: Large images: 5-min timeout + execution limit<\/li>\n<li>Bug fix: Timeout handling - Client-side polling for accuracy<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Bug fix: improved handling of premium activation edge cases.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Major: Auto-Convert on Upload (Premium)<\/li>\n<li>Major: Optimization Overview (real-time stats)<\/li>\n<li>Enhancement: Phoenix Media Rename integration + auto-install\/activation help<\/li>\n<li>Enhancement: Memory management to prevent PHP exhaustion on large images<\/li>\n<li>Enhancement: Stats cleanup on media deletion<\/li>\n<li>Enhancement: Bulk conversion with pause\/resume and better progress<\/li>\n<li>Enhancement: Bulk select conversion via Media Library<\/li>\n<li>Enhancement: Caching for faster operations<\/li>\n<li>Enhancement: Better error handling and debug logging<\/li>\n<li>Enhancement: WPCS compliance and clearer UI messaging<\/li>\n<li>Bug fix: improved handling of animated GIFs in stats and conversion logic<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Minor fixes and performance improvements<\/li>\n<li>Enhanced compatibility testing<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: manual bulk conversion, automatic replacement when WebP is smaller, individual conversion links, JPEG\/PNG\/static GIF support, GD\/Imagick required.<\/li>\n<\/ul>","raw_excerpt":"Convert images to WebP and replace originals\u2014no duplicates. Save storage and speed up your site. Auto-convert on upload &amp; bulk tools (premium).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/235183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=235183"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/coreessentials"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=235183"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=235183"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=235183"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=235183"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=235183"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=235183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}