{"id":334483,"date":"2026-07-15T04:16:47","date_gmt":"2026-07-15T04:16:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/simply-webp\/"},"modified":"2026-07-15T04:39:25","modified_gmt":"2026-07-15T04:39:25","slug":"tanupom-in-place-converter-for-webp","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tanupom-in-place-converter-for-webp\/","author":23525504,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.0","stable_tag":"0.3.0","tested":"7.0.1","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Tanupom In-Place Converter for WebP","header_author":"tanupom","header_description":"Convert new uploads and your existing media library to WebP in place, and update the references in your content. A simple, single-format approach to lighter images.","assets_banners_color":"ffcaad","last_updated":"2026-07-15 04:39:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/tanu-pom\/tanupom-in-place-converter-for-webp","header_author_uri":"https:\/\/github.com\/tanu-pom","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.0":{"tag":"0.3.0","author":"tanupom","date":"2026-07-15 04:39:25"}},"upgrade_notice":{"0.2.0":"<p>New uploads are now converted to WebP automatically. If you also intend to run the bulk converter for old files, back up your media library and database first \u2014 bulk conversion is in-place and irreversible.<\/p>","0.1.0":"<p>Initial release. Always back up your media library and database before running the bulk conversion \u2014 it is in-place and irreversible.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3608230,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3608230,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3608230,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3608230,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3608230,"resolution":"1","location":"assets","locale":"","width":1440,"height":1094},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3608230,"resolution":"2","location":"assets","locale":"","width":1440,"height":320}},"screenshots":{"1":"The In-Place WebP tools page (under the Tools menu): inventory scan, bulk conversion with live progress, and reference replacement.","2":"Conversion settings (WebP quality, lossless PNG, strip metadata)."}},"plugin_section":[],"plugin_tags":[4154,29161,12497,247,15376],"plugin_category":[54],"plugin_contributors":[271592],"plugin_business_model":[],"class_list":["post-334483","plugin","type-plugin","status-publish","hentry","plugin_tags-convert","plugin_tags-image-optimization","plugin_tags-imagick","plugin_tags-performance","plugin_tags-webp","plugin_category-security-and-spam-protection","plugin_contributors-tanupom","plugin_committers-tanupom"],"banners":{"banner":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/banner-772x250.png?rev=3608230","banner_2x":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/banner-1544x500.png?rev=3608230","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/icon-128x128.png?rev=3608230","icon_2x":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/icon-256x256.png?rev=3608230","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/screenshot-1.png?rev=3608230","caption":"The In-Place WebP tools page (under the Tools menu): inventory scan, bulk conversion with live progress, and reference replacement."},{"src":"https:\/\/ps.w.org\/tanupom-in-place-converter-for-webp\/assets\/screenshot-2.png?rev=3608230","caption":"Conversion settings (WebP quality, lossless PNG, strip metadata)."}],"raw_content":"<!--section=description-->\n<p>Most WebP plugins keep your original JPEG\/PNG files and serve WebP conditionally, which leaves you maintaining two copies of every image. <strong>Tanupom In-Place Converter for WebP<\/strong> takes the opposite, minimal approach: it replaces the originals with WebP <strong>in place<\/strong>, so your whole library ends up as a single set of WebP files. No rewrite rules, no <code>.htaccess<\/code> tricks, no duplicate storage.<\/p>\n\n<p>It uses your server's Imagick (ImageMagick) build to do the conversion, so heavy lifting stays on the server and the plugin itself stays small.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Automatic conversion on upload.<\/strong> New uploads of JPEG, PNG, BMP, HEIC, and HEIF are converted to WebP at upload time via the <code>wp_handle_upload<\/code> filter, replacing the original in place. If your server cannot output WebP (or HEIC\/HEIF delegates are missing), the upload is passed through unchanged.<\/li>\n<li><strong>Inventory scan (non-destructive).<\/strong> Before touching anything, it reports where image URLs are used across post content, post meta, and options \u2014 so you know what a conversion will affect.<\/li>\n<li><strong>Bulk WebP conversion.<\/strong> Converts every existing JPEG and PNG attachment \u2014 the original plus all of its generated sub-sizes \u2014 to WebP, then deletes the old files. Runs in small batches via AJAX so it survives shared-hosting execution-time limits, and shows live progress.<\/li>\n<li><strong>Reference replacement.<\/strong> After conversion, it rewrites the old image URLs to the new <code>.webp<\/code> URLs in your post content and options. Serialized options (widgets, theme mods) are handled with a serialize-safe replacement so the data does not break.<\/li>\n<\/ul>\n\n<h4>Conversion settings<\/h4>\n\n<ul>\n<li>JPEG is encoded as lossy WebP at a configurable quality (default 80).<\/li>\n<li>PNG is encoded as <strong>lossless<\/strong> WebP with alpha (transparency) preserved, to avoid fringing on logos and text.<\/li>\n<li>EXIF orientation is baked into the pixels before conversion (no more sideways phone photos).<\/li>\n<li>EXIF metadata is stripped (smaller files, and no leaking GPS location data).<\/li>\n<\/ul>\n\n<p>All three of these are adjustable from the plugin's settings.<\/p>\n\n<h4>Important: this is in-place and irreversible<\/h4>\n\n<p>This plugin <strong>replaces and deletes<\/strong> your original images, both at upload time and during bulk conversion. There is no automatic rollback. <strong>Back up your media library (and database) before running the bulk conversion.<\/strong><\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>The Imagick PHP extension, built with WebP support. The plugin detects this and disables conversion (with a notice) if your server can't output WebP.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tanupom-in-place-converter-for-webp<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Tools \u2192 In-Place WebP<\/strong>.<\/li>\n<li><strong>Back up your media library and database first.<\/strong><\/li>\n<li>(Optional) Run <strong>Inventory<\/strong> to see where image URLs are referenced.<\/li>\n<li>Click <strong>Start bulk conversion<\/strong> and let it run to completion.<\/li>\n<li>Click <strong>Run reference replacement<\/strong> to update your content to the new WebP URLs.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20keep%20my%20original%20jpeg%2Fpng%20files%3F\"><h3>Does it keep my original JPEG\/PNG files?<\/h3><\/dt>\n<dd><p>No. This plugin is deliberately \"in place\": it converts the originals to WebP and deletes the old files. This keeps your library to a single set of files. Make a backup before running it.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20the%20conversion%3F\"><h3>Can I undo the conversion?<\/h3><\/dt>\n<dd><p>Not from within the plugin. Restore from your backup if you need the originals back. This is why a backup is required before conversion.<\/p><\/dd>\n<dt id=\"my%20server%20says%20webp%20conversion%20is%20unavailable.%20why%3F\"><h3>My server says WebP conversion is unavailable. Why?<\/h3><\/dt>\n<dd><p>Your Imagick build can't output WebP. Ask your host to enable WebP support in ImageMagick\/Imagick, or use a server that provides it.<\/p><\/dd>\n<dt id=\"does%20it%20convert%20images%20automatically%20when%20i%20upload%20them%3F\"><h3>Does it convert images automatically when I upload them?<\/h3><\/dt>\n<dd><p>Yes, since 0.2.0. New uploads of JPEG, PNG, BMP, HEIC, and HEIF go through the <code>wp_handle_upload<\/code> filter and are written to disk as WebP, replacing the original. The same conversion settings (quality, lossless PNG, strip metadata) are used.<\/p>\n\n<p>If your server's Imagick build cannot output WebP, or HEIC\/HEIF delegates are missing, the upload is passed through unchanged so nothing breaks.<\/p><\/dd>\n<dt id=\"will%20it%20break%20image%20urls%20in%20my%20posts%3F\"><h3>Will it break image URLs in my posts?<\/h3><\/dt>\n<dd><p>After conversion, run <strong>Run reference replacement<\/strong>. It rewrites old image URLs to the new <code>.webp<\/code> URLs in post content and options, including serialized options, using a serialize-safe replacement.<\/p><\/dd>\n<dt id=\"what%20about%20heic%2C%20gif%2C%20bmp%20or%20already-webp%20files%3F\"><h3>What about HEIC, GIF, BMP or already-WebP files?<\/h3><\/dt>\n<dd><p>The two conversion paths cover different formats:<\/p>\n\n<ul>\n<li><strong>Automatic conversion on upload<\/strong> accepts JPEG, PNG, BMP, HEIC, and HEIF. BMP\/HEIC\/HEIF actually convert only when your server's Imagick has the corresponding delegate; otherwise the upload is passed through unchanged.<\/li>\n<li><strong>Bulk conversion of the existing library<\/strong> is limited to JPEG and PNG.<\/li>\n<\/ul>\n\n<p>GIF (typically animated) and existing WebP files are always left untouched. Other MIME types are ignored.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Tanupom In-Place Converter for WebP\". Internal prefixes, option names, and the <code>tanupom_ipc_replace_post_types<\/code> filter were renamed to match.<\/li>\n<li>Translations now load automatically; the explicit <code>load_plugin_textdomain()<\/code> call was removed.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Added automatic WebP conversion of new uploads (JPEG, PNG, BMP, HEIC, HEIF) via the <code>wp_handle_upload<\/code> filter, with graceful fallback when the server cannot output WebP.<\/li>\n<li>Added a \"Reference replacement\" settings section: select additional public custom post types whose <code>post_content<\/code> should be scanned during URL replacement.<\/li>\n<li>Added the <code>tanupom_ipc_replace_post_types<\/code> filter so developers can override the scanned post types programmatically.<\/li>\n<li>Added Japanese translation (.po \/ .mo).<\/li>\n<li>Internal cleanup: improved code documentation and consistency.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Inventory scan of image URL usage across content, meta, and options.<\/li>\n<li>Bulk in-place WebP conversion of existing JPEG\/PNG attachments and their sub-sizes.<\/li>\n<li>Serialize-safe reference replacement for post content and options.<\/li>\n<li>Adjustable conversion settings (WebP quality, lossless PNG, strip metadata).<\/li>\n<\/ul>","raw_excerpt":"Convert new uploads and your existing media library to WebP in place, and update the references in your content automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/334483","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=334483"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tanupom"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=334483"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=334483"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=334483"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=334483"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=334483"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=334483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}