{"id":334331,"date":"2026-07-02T13:37:28","date_gmt":"2026-07-02T13:37:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/designed2use-convert-to-webp\/"},"modified":"2026-09-18T13:26:57","modified_gmt":"2026-09-18T13:26:57","slug":"designed2use-convert-to-webp","status":"publish","type":"plugin","link":"https:\/\/es-mx.wordpress.org\/plugins\/designed2use-convert-to-webp\/","author":23516420,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Designed2Use Convert to WebP\/AVIF","header_author":"Designed2Use","header_description":"Private, reversible image optimization. Resizes and converts new uploads to WebP or AVIF automatically, and converts your existing Media Library in batches \u2014 entirely on your own server, with one-click restore and a live savings total. No external services.","assets_banners_color":"c2cac9","last_updated":"2026-09-18 13:26:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.designed2use.co.uk\/wordpress-plugins-built-properly\/convert-to-webp\/","header_author_uri":"https:\/\/www.designed2use.co.uk","rating":5,"author_block_rating":0,"active_installs":10,"downloads":249,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"designed2use","date":"2026-07-02 13:37:12","revision":3594102},"1.0.1":{"tag":"1.0.1","author":"designed2use","date":"2026-09-17 10:03:37","revision":3700023},"1.0.2":{"tag":"1.0.2","author":"designed2use","date":"2026-09-18 13:26:57","revision":3702063}},"upgrade_notice":{"1.0.2":"<p>Fixes phone-camera portrait photos appearing sideways, stops WordPress re-scaling converted images to &quot;-scaled&quot;, and resizes WebP\/AVIF uploads to your max edge.<\/p>","1.0.1":"<p>WordPress 7.1 compatibility: uploads are converted once, on your server, as before.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3594102,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3594102,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3594102,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3594102,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3594102,"resolution":"1","location":"assets","locale":"","width":1411,"height":817},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3594102,"resolution":"2","location":"assets","locale":"","width":1375,"height":708},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3594102,"resolution":"3","location":"assets","locale":"","width":1607,"height":1052}},"screenshots":{"1":"Settings \u2014 output format (WebP\/AVIF), quality, maximum edge, and format options.","2":"Media -&gt; Convert Existing \u2014 savings dashboard, batch converter, and restore controls.","3":"Media -&gt; Convert\/Restore single image from media library."}},"plugin_section":[],"plugin_tags":[194661,4154,187,396,15376],"plugin_category":[52,54],"plugin_contributors":[269038,269039],"plugin_business_model":[],"class_list":["post-334331","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-convert","plugin_tags-optimization","plugin_tags-privacy","plugin_tags-webp","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-designed2use","plugin_contributors-guy1ncognito","plugin_committers-designed2use"],"banners":{"banner":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/banner-772x250.png?rev=3594102","banner_2x":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/banner-1544x500.png?rev=3594102","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/icon-128x128.png?rev=3594102","icon_2x":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/icon-256x256.png?rev=3594102","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/screenshot-1.png?rev=3594102","caption":"Settings \u2014 output format (WebP\/AVIF), quality, maximum edge, and format options."},{"src":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/screenshot-2.png?rev=3594102","caption":"Media -&gt; Convert Existing \u2014 savings dashboard, batch converter, and restore controls."},{"src":"https:\/\/ps.w.org\/designed2use-convert-to-webp\/assets\/screenshot-3.png?rev=3594102","caption":"Media -&gt; Convert\/Restore single image from media library."}],"raw_content":"<!--section=description-->\n<p><strong>Designed2Use Convert to WebP\/AVIF<\/strong> is a privacy-first image optimizer with one promise the\nbig-name plugins can't make: <strong>your images never leave your server, and every conversion\ncan be undone.<\/strong><\/p>\n\n<p>Most popular optimizers upload your images to a third-party cloud service to do the work \u2014\ncounting against monthly quotas and handing your media to someone else's servers. This\nplugin does everything <strong>locally<\/strong>, using WordPress's own image editor (Imagick, falling\nback to GD). No accounts, no API keys, no external requests.<\/p>\n\n<h4>Why it's different<\/h4>\n\n<ul>\n<li><strong>100% local &amp; private<\/strong> \u2014 no cloud service, no telemetry, no phone-home. Every image is\nprocessed on your own site.<\/li>\n<li><strong>Fully reversible<\/strong> \u2014 bulk conversion (and uploads made with \"Keep original file\" on)\nkeep your original file on disk and record a restore manifest, so you can put any image\n(or all of them) back with one click. Uploads that replace the original can't be undone.<\/li>\n<li><strong>WebP <em>or<\/em> AVIF<\/strong> \u2014 choose the modern format you want. AVIF (newer, smaller) is offered\nautomatically when your server supports it, with a safe fall back to WebP.<\/li>\n<li><strong>See your savings<\/strong> \u2014 a built-in dashboard shows how much disk space you've saved, all\ncalculated on-site.<\/li>\n<\/ul>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Converts on upload<\/strong> \u2014 JPG\/JPEG and PNG uploads become WebP or AVIF automatically, and\nbecause the conversion happens before WordPress builds its sub-sizes, every thumbnail size\nis generated in the new format too.<\/li>\n<li><strong>Converts existing media<\/strong> \u2014 a batch tool under <strong>Media \u2192 Convert Existing<\/strong> processes\nyour library a few images at a time with a live progress bar (no timeouts).<\/li>\n<li><strong>Convert &amp; restore from the Media Library<\/strong> \u2014 convert or restore a single image right\nfrom its details (both list and grid view), or select several and use the Media-list bulk\nactions; roll back the whole library from the Tools page.<\/li>\n<li><strong>Resizes oversized images<\/strong> \u2014 anything larger than your chosen longest-edge limit is\nscaled down (aspect ratio preserved); smaller images are never enlarged.<\/li>\n<li><strong>Never breaks an upload<\/strong> \u2014 if anything goes wrong, or the server can't write the format,\nthe original file is kept and the upload proceeds normally.<\/li>\n<\/ul>\n\n<h4>Settings<\/h4>\n\n<p>Under <strong>Settings \u2192 Convert to WebP\/AVIF<\/strong>:<\/p>\n\n<ul>\n<li><strong>Enable conversion<\/strong> \u2014 master on\/off switch for upload-time conversion.<\/li>\n<li><strong>Output format<\/strong> \u2014 WebP (broad support) or AVIF (smaller, when available).<\/li>\n<li><strong>Quality<\/strong> \u2014 1\u2013100 (default 80). Lower means smaller files.<\/li>\n<li><strong>Max longest edge (px)<\/strong> \u2014 default 1600. Set 0 to convert without resizing. This replaces\nWordPress's own 2560px \"big image\" scaling for converted images, so they are never resized\ntwice or renamed with a \"-scaled\" suffix.<\/li>\n<li><strong>Keep original file<\/strong> \u2014 affects new uploads only; off by default (the original is\nreplaced). Turn on to keep both \u2014 and only then can an upload be restored later.<\/li>\n<li><strong>Convert these formats<\/strong> \u2014 JPG\/JPEG and PNG, plus <strong>WebP \/ AVIF (resize only, format\nkept)<\/strong>: already-modern uploads keep their format and filename and are only resized to the\nmax longest edge. With <strong>Keep original file<\/strong> on, the untouched upload is saved alongside\nas <code>name-original.webp<\/code> (or <code>.avif<\/code>) so it can be restored.<\/li>\n<\/ul>\n\n<h4>Converting and restoring existing images<\/h4>\n\n<p>Go to <strong>Media \u2192 Convert Existing<\/strong>. The page shows how many images still need converting,\nhow many can be restored, and your running savings total. Conversions run in safe batches.<\/p>\n\n<p>Because bulk conversion <strong>always keeps the original file on disk<\/strong>, the change is never\ndestructive: use <strong>Restore all to originals<\/strong> on the Tools page, or the <strong>Restore original<\/strong>\nrow action on any converted item in the Media list (single images, or several at once via the\nMedia-list bulk actions), to delete the converted files and put the attachment back exactly\nas it was. Uploads converted with <strong>Keep original file<\/strong> turned on are restorable the same\nway; uploads that replaced their original cannot be undone.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin contacts <strong>no external server<\/strong>, collects no data, and adds no tracking. WebP\nand AVIF are written by your own server's image library. Everything happens on your site.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>designed2use-convert-to-webp<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install\nthrough <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Settings \u2192 Convert to WebP\/AVIF<\/strong>, choose your output format, quality, and maximum\nedge (sensible defaults are set for you).<\/li>\n<li>Upload an image as usual \u2014 it's stored in the modern format automatically.<\/li>\n<li>To convert your existing library, open <strong>Media \u2192 Convert Existing<\/strong> and click\n<strong>Convert existing images<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20send%20my%20images%20to%20a%20cloud%20service%3F\"><h3>Does it send my images to a cloud service?<\/h3><\/dt>\n<dd><p>No. Unlike many optimizers, this plugin does all conversion on your own server using\nWordPress's built-in image editor. There are no external requests, accounts, or quotas.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20conversion%3F\"><h3>Can I undo a conversion?<\/h3><\/dt>\n<dd><p>Yes \u2014 as long as the original is still on disk. Bulk conversion always keeps originals, and\nuploads keep theirs when <strong>Keep original file<\/strong> is enabled. Use <strong>Restore all to originals<\/strong>\non the Tools page, the <strong>Restore original<\/strong> row action on any converted image, or the\nMedia-list bulk action for several at once. Restore deletes the converted files and puts the\nattachment back to its original file, mime type, and thumbnails. Uploads that replaced\ntheir original (the default) cannot be undone.<\/p><\/dd>\n<dt id=\"webp%20or%20avif%20%E2%80%94%20which%20should%20i%20choose%3F\"><h3>WebP or AVIF \u2014 which should I choose?<\/h3><\/dt>\n<dd><p>WebP has the broadest browser and host support and is the default. AVIF produces smaller\nfiles and is offered when your server's image library can write it; if you select AVIF on a\nserver that can't, the plugin safely falls back to WebP.<\/p><\/dd>\n<dt id=\"does%20it%20convert%20images%20already%20in%20my%20media%20library%3F\"><h3>Does it convert images already in my Media Library?<\/h3><\/dt>\n<dd><p>Yes \u2014 that's what <strong>Media \u2192 Convert Existing<\/strong> is for. It processes JPG\/PNG attachments in\nbatches with a progress bar and updates the savings dashboard as it goes.<\/p><\/dd>\n<dt id=\"will%20my%20originals%20be%20deleted%3F\"><h3>Will my originals be deleted?<\/h3><\/dt>\n<dd><p>Bulk conversion never deletes originals \u2014 that's what makes restore possible. For new\nuploads, the original is replaced by default; turn on <strong>Keep original file<\/strong> to keep both,\nwhich is also what makes an upload restorable later.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20shared%20hosting%3F\"><h3>Does it work on shared hosting?<\/h3><\/dt>\n<dd><p>Yes, as long as the server's image library can write the chosen format \u2014 the Imagick PHP\nextension, or GD with WebP\/AVIF support. If it can't, the plugin shows a notice and leaves\nyour images untouched.<\/p><\/dd>\n<dt id=\"can%20developers%20customise%20the%20conversion%3F\"><h3>Can developers customise the conversion?<\/h3><\/dt>\n<dd><p>Yes. Both upload and bulk conversion go through the same two hooks:<\/p>\n\n<ul>\n<li><code>d2ucw_convert_args<\/code> (filter) \u2014 change <code>quality<\/code>, <code>max_edge<\/code>, or <code>mime<\/code> + <code>ext<\/code> for a\nsingle image. Receives <code>$opts<\/code> and the source file path.<\/li>\n<li><code>d2ucw_before_save<\/code> (action) \u2014 runs after rotation and resizing, just before saving.\nReceives the <code>WP_Image_Editor<\/code>, the source path, the output path and the output mime type.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: portrait photos taken with a phone camera (e.g. the \"Take photo\" upload option) are no\nlonger saved sideways. The photo's EXIF orientation is now applied before converting to\nWebP\/AVIF.<\/li>\n<li>Fix: with \"Max longest edge\" set to 0 or above 2560px, converted images were resized a\nsecond time by WordPress's \"big image\" scaling and renamed to \"-scaled\". The plugin's\nmax-edge setting now applies on its own, for uploads and bulk conversion.<\/li>\n<li>New: WebP and AVIF uploads are resized to the max longest edge (format and filename kept)\ninstead of being scaled by WordPress to 2560px with a \"-scaled\" suffix. Can be turned off\nunder \"Convert these formats\".<\/li>\n<li>New: developer hooks <code>d2ucw_convert_args<\/code> and <code>d2ucw_before_save<\/code> for customising\nconversion without editing plugin files.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>WordPress 7.1 compatibility: while upload conversion is enabled, WordPress 7.1's in-browser\nimage processing is switched off, so each upload is resized and converted once, on your\nserver, exactly as on earlier WordPress versions (instead of being compressed in the\nbrowser and then again by the plugin).<\/li>\n<li>Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: private, on-server conversion of uploads and existing media to WebP or\nAVIF; resize-to-max-edge; convert and restore from the Media Library (row actions and bulk\nactions); one-click restore of a single image or the whole library \u2014 including uploads kept\nwith \"Keep original file\"; and a local savings dashboard. No external services.<\/li>\n<\/ul>","raw_excerpt":"Private, reversible image optimization: convert uploads and existing media to WebP or AVIF on your own server, with one-click restore.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/334331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=334331"}],"author":[{"embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/designed2use"}],"wp:attachment":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=334331"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=334331"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=334331"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=334331"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=334331"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=334331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}