{"id":322490,"date":"2026-07-01T12:40:21","date_gmt":"2026-07-01T12:40:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/picqlo-image-converter\/"},"modified":"2026-07-01T12:40:06","modified_gmt":"2026-07-01T12:40:06","slug":"picqlo-image-converter","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/picqlo-image-converter\/","author":23508777,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"7.6","stable_tag":"7.6","tested":"7.0","requires":"6.3","requires_php":"8.2","requires_plugins":null,"header_name":"Picqlo Image Converter","header_author":"Picqlo","header_description":"Bulk convert JPEG & PNG media to AVIF or WebP. Progress tracking, backup\/revert, selective source formats.","assets_banners_color":"","last_updated":"2026-07-01 12:40:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/picqlo.com","header_author_uri":"https:\/\/profiles.wordpress.org\/gambitrls\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"7.6":{"tag":"7.6","author":"gambitrls","date":"2026-07-01 12:40:06"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3592689,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3592689,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["7.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3592675,"resolution":"1","location":"assets","locale":"","width":1197,"height":691},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3592675,"resolution":"2","location":"assets","locale":"","width":1200,"height":741},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3592675,"resolution":"3","location":"assets","locale":"","width":1199,"height":807},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3592675,"resolution":"4","location":"assets","locale":"","width":1202,"height":996},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3592675,"resolution":"5","location":"assets","locale":"","width":1197,"height":951}},"screenshots":{"1":"Converter tab \u2014 format selector, quality slider, live stats (remaining, converted, skipped, bandwidth saved), and activity log.","2":"Images tab \u2014 per-image status badges (AVIF, WebP, AVIF + WebP, unconverted), size savings, and per-image actions.","3":"Diagnostics tab \u2014 server health (encoder support, WP-Cron, memory limit) and server-side delivery configuration.","4":"Settings tab \u2014 auto-convert on upload, quality controls, auto-run schedule, picture tag delivery, lossless optimization, and auto-heal.","5":"Settings tab (continued) \u2014 auto-resize, skip small images, job completion notifications, and Cloud API configuration."}},"plugin_section":[262246],"plugin_tags":[194661,146523,29161,5896,15376],"plugin_category":[],"plugin_contributors":[269727],"plugin_business_model":[],"class_list":["post-322490","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-avif","plugin_tags-image-converter","plugin_tags-image-optimization","plugin_tags-page-speed","plugin_tags-webp","plugin_contributors-gambitrls","plugin_committers-gambitrls"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/icon-128x128.png?rev=3592689","icon_2x":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/icon-256x256.png?rev=3592689","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/screenshot-1.png?rev=3592675","caption":"Converter tab \u2014 format selector, quality slider, live stats (remaining, converted, skipped, bandwidth saved), and activity log."},{"src":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/screenshot-2.png?rev=3592675","caption":"Images tab \u2014 per-image status badges (AVIF, WebP, AVIF + WebP, unconverted), size savings, and per-image actions."},{"src":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/screenshot-3.png?rev=3592675","caption":"Diagnostics tab \u2014 server health (encoder support, WP-Cron, memory limit) and server-side delivery configuration."},{"src":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/screenshot-4.png?rev=3592675","caption":"Settings tab \u2014 auto-convert on upload, quality controls, auto-run schedule, picture tag delivery, lossless optimization, and auto-heal."},{"src":"https:\/\/ps.w.org\/picqlo-image-converter\/assets\/screenshot-5.png?rev=3592675","caption":"Settings tab (continued) \u2014 auto-resize, skip small images, job completion notifications, and Cloud API configuration."}],"raw_content":"<!--section=description-->\n<p><strong>Picqlo Image Converter<\/strong> converts your existing WordPress media library from JPEG and PNG to modern formats (AVIF, WebP) for faster page loads and better Core Web Vitals scores \u2014 without touching your content or changing any image URLs.<\/p>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li><strong>Bulk conversion<\/strong> \u2014 convert your entire media library in one click<\/li>\n<li><strong>AVIF + WebP<\/strong> \u2014 AVIF where your server supports it, WebP as a reliable fallback<\/li>\n<li><strong>Auto mode<\/strong> \u2014 uses AVIF if available locally, WebP otherwise; no manual configuration needed<\/li>\n<li><strong>Non-destructive by default<\/strong> \u2014 AVIF and WebP conversion never modifies your originals; companion files are placed alongside them and deleted on revert. Lossless Optimize is the exception \u2014 it rewrites originals in place but creates a <code>.lossless-bak<\/code> backup first; reverting restores from the backup<\/li>\n<li><strong>Real-time progress log<\/strong> \u2014 live streaming log with encoder badges (<code>[GD]<\/code>, <code>[Imagick]<\/code>, <code>[exec]<\/code>, <code>[API]<\/code>) and a progress bar<\/li>\n<li><strong>Per-image controls<\/strong> \u2014 convert, reconvert, revert, or force-cloud on individual images from the Images tab<\/li>\n<li><strong>Diagnostics tab<\/strong> \u2014 see which encoders are available on your server before you start<\/li>\n<li><strong>Cloud API<\/strong> \u2014 guaranteed AVIF encoding on any host via the Picqlo Cloud API, even on shared hosting without local AVIF support (requires credits from picqlo.com)<\/li>\n<\/ul>\n\n<p><strong>Encoders used (in priority order):<\/strong><\/p>\n\n<p><strong>AVIF:<\/strong>\n1. GD library (<code>imageavif<\/code>)\n2. ImageMagick (via the Imagick PHP extension)\n3. <code>cavif-rs<\/code> or <code>avifenc<\/code> binary (via <code>exec<\/code>, if pre-installed on your server)\n4. Picqlo Cloud API \u2014 remote AVIF encoder, works on any host (requires API key at picqlo.com)\n5. WebP fallback \u2014 if AVIF fails on all local encoders, falls back to WebP automatically<\/p>\n\n<p><strong>WebP:<\/strong>\n1. ImageMagick (better quality, ICC profile preserved)\n2. <code>cwebp<\/code> binary (via <code>exec<\/code>, if pre-installed on your server)\n3. GD library (<code>imagewebp<\/code>)<\/p>\n\n<p><strong>Cloud API:<\/strong><\/p>\n\n<p>The Cloud API is an optional external service for guaranteed AVIF encoding on hosts where no local AVIF encoder is available (e.g. old shared hosting). It requires an API key from <a href=\"https:\/\/picqlo.com\">picqlo.com<\/a>. Credits are consumed only when the cloud encoder is actually used; if your server handles AVIF locally, no credits are spent and no data is sent externally.<\/p>\n\n<p><strong>Privacy:<\/strong> All local processing is entirely local \u2014 no data leaves your server. Cloud API processing is in-memory only; images are deleted immediately after conversion. See <a href=\"https:\/\/picqlo.com\/privacy\">picqlo.com\/privacy<\/a>.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to the <strong>Picqlo Cloud API<\/strong> (<code>api.picqlo.com<\/code>), a remote AVIF encoding service. The Cloud API is only used when:<\/p>\n\n<ol>\n<li>An API key has been entered in the plugin settings, AND<\/li>\n<li>A conversion is initiated that uses the cloud encoder<\/li>\n<\/ol>\n\n<p>No data is sent to external servers during free local conversion. When the Cloud API is used, images are transmitted over TLS 1.2+, processed in-memory, and deleted immediately after conversion. Nothing is stored.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/api.picqlo.com\">Picqlo Cloud API<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/picqlo.com\/privacy\">https:\/\/picqlo.com\/privacy<\/a><\/li>\n<li>Data Processing Agreement: <a href=\"https:\/\/picqlo.com\/dpa\">https:\/\/picqlo.com\/dpa<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/picqlo.com\/terms\">https:\/\/picqlo.com\/terms<\/a><\/li>\n<li>Account &amp; Credits Portal: <a href=\"https:\/\/app.picqlo.com\">app.picqlo.com<\/a> \u2014 account registration, API key management, and credit purchases. No image data is sent to this service. Links to this portal are shown only when the official Picqlo API key is configured.<\/li>\n<\/ul>\n\n<p>Administrators may configure a custom AVIF API endpoint in the plugin settings. When a custom endpoint is configured, image data and the API key are transmitted to that endpoint instead of api.picqlo.com. Custom endpoints must use HTTPS; the plugin rejects HTTP and private\/internal addresses.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>When the Cloud API is used, source images are transmitted to api.picqlo.com over TLS 1.2+. Images are processed in-memory and deleted immediately after conversion \u2014 nothing is stored. No data is sent to external servers during free local conversion.<\/p>\n\n<ul>\n<li>Privacy Policy: https:\/\/picqlo.com\/privacy<\/li>\n<li>Data Processing Agreement: https:\/\/picqlo.com\/dpa<\/li>\n<\/ul>\n\n<h3>AI Disclosure<\/h3>\n\n<p>Portions of this plugin's code were developed with the assistance of AI tools. All code has been reviewed, tested, and is fully understood by the plugin author. No AI-generated code was included without human review and verification.<\/p>\n\n<!--section=installation-->\n<h4>Automatic<\/h4>\n\n<ol>\n<li>Go to <strong>WordPress Admin \u2192 Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for \"Picqlo Image Converter\"<\/li>\n<li>Click <strong>Install Now<\/strong> \u2192 <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual<\/h4>\n\n<ol>\n<li>Download the <code>picqlo.zip<\/code> file<\/li>\n<li>Go to <strong>WordPress Admin \u2192 Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Upload <code>picqlo.zip<\/code>, click <strong>Install Now<\/strong> \u2192 <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>First conversion<\/h4>\n\n<ol>\n<li>Go to <strong>WordPress Admin \u2192 Image Converter<\/strong><\/li>\n<li>Select your target format (Auto recommended)<\/li>\n<li>Click <strong>Start Conversion<\/strong> and watch the live log<\/li>\n<\/ol>\n\n<p>Full setup guide: <a href=\"https:\/\/picqlo.com\/setup\">picqlo.com\/setup<\/a><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20to%20my%20original%20images%3F\"><h3>What happens to my original images?<\/h3><\/dt>\n<dd><p>By default, yes \u2014 AVIF and WebP conversion never touches your originals; companion files are created alongside them (e.g. <code>photo.jpg<\/code> \u2192 <code>photo.avif<\/code> \/ <code>photo.webp<\/code>) and deleted on revert. The exception is the Lossless Optimize feature, which rewrites originals in place to reduce file size. Before doing so it creates a <code>.lossless-bak<\/code> backup, and reverting restores from that backup.<\/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. WebP works on any host that runs PHP and WordPress. AVIF requires a modern ImageMagick (v7+) or GD with libavif \u2014 available on most managed hosts. If AVIF isn't available locally, the Cloud API provides guaranteed AVIF on any host (requires credits from picqlo.com).<\/p><\/dd>\n<dt id=\"can%20it%20use%20server-installed%20encoders%20like%20cavif%2C%20cwebp%2C%20jpegtran%2C%20or%20optipng%3F\"><h3>Can it use server-installed encoders like cavif, cwebp, jpegtran, or optipng?<\/h3><\/dt>\n<dd><p>Yes. If those tools are installed on your server (e.g. via your host's package manager), Picqlo detects and uses them automatically. The plugin does not download or install binaries itself.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20image%20urls%20or%20break%20my%20content%3F\"><h3>Will it change my image URLs or break my content?<\/h3><\/dt>\n<dd><p>No. Your original files stay untouched. AVIF and WebP companion files are generated alongside them, and WordPress serves the best format each browser supports via a <code>&lt;picture&gt;<\/code> tag filter. Your original URLs remain identical and all posts and pages continue to work without any edits.<\/p><\/dd>\n<dt id=\"what%20formats%20are%20converted%3F\"><h3>What formats are converted?<\/h3><\/dt>\n<dd><p>JPEG and PNG files only. GIF, SVG, AVIF, WebP, and other formats are skipped automatically. Native AVIF or WebP files uploaded directly to the media library will not appear in the Images tab \u2014 they are already in a modern format and do not need conversion.<\/p><\/dd>\n<dt id=\"what%20if%20a%20converted%20file%20ends%20up%20larger%20than%20the%20original%3F\"><h3>What if a converted file ends up larger than the original?<\/h3><\/dt>\n<dd><p>The plugin keeps the original in this case and marks the image as skipped (shown as \"Larger \u26a0\" in the log). If a cloud-converted file is larger than the original it is also discarded and the credit is automatically refunded.<\/p><\/dd>\n<dt id=\"can%20i%20convert%20specific%20images%20instead%20of%20the%20whole%20library%3F\"><h3>Can I convert specific images instead of the whole library?<\/h3><\/dt>\n<dd><p>Yes. The Images tab shows your full library with filtering, sorting, and per-image actions. You can convert, reconvert, or revert individual images.<\/p><\/dd>\n<dt id=\"do%20credits%20expire%3F\"><h3>Do credits expire?<\/h3><\/dt>\n<dd><p>No. Credits never expire and remain on your API key until used or the key is revoked.<\/p><\/dd>\n<dt id=\"is%20my%20image%20data%20private%20when%20using%20the%20cloud%20api%3F\"><h3>Is my image data private when using the Cloud API?<\/h3><\/dt>\n<dd><p>Yes. Images sent to the Cloud API are encrypted in transit (TLS 1.2+), processed entirely in-memory, and deleted immediately after conversion. Nothing is stored. See the <a href=\"https:\/\/picqlo.com\/privacy\">Privacy Policy<\/a> and <a href=\"https:\/\/picqlo.com\/dpa\">Data Processing Agreement<\/a>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20a%20cloud%20api%20key%3F\"><h3>How do I get a Cloud API key?<\/h3><\/dt>\n<dd><p>Create an account at <a href=\"https:\/\/app.picqlo.com\">app.picqlo.com<\/a>, purchase a credit pack, and copy your API key from the Keys tab. Paste it into the Cloud API card in the plugin settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>7.6<\/h4>\n\n<ul>\n<li>Improved: Converter tab stats bar now shows average reduction percentage alongside bandwidth savings, and a format breakdown (AVIF \/ WebP \/ both) below the converted count<\/li>\n<\/ul>\n\n<h4>7.5<\/h4>\n\n<ul>\n<li>Fixed: \"All formats\" download in the Images tab action column now correctly includes the WebP companion for WebP-only images (previously only the original was included)<\/li>\n<li>Fixed: download button on unconverted images now forces a file download rather than opening the file in the browser<\/li>\n<\/ul>\n\n<h4>7.4<\/h4>\n\n<ul>\n<li>Improved: bulk ZIP download now excludes thumbnail-size companions by default; an \"Include thumbnail sizes\" checkbox in the download modal opts them back in \u2014 applies to both the bulk download button and the per-row \"All formats\" shortcut<\/li>\n<\/ul>\n\n<h4>7.3<\/h4>\n\n<ul>\n<li>Fixed: \"Restore Originals\" bulk revert now correctly skips images that have only skip sentinels \u2014 only images with real companions are reverted<\/li>\n<li>Fixed: Diagnostics tab \"Clear Skip Flags\" now refreshes the counts panel after completion rather than after a fixed delay<\/li>\n<li>Improved: Settings tab scheduled-conversion card now shows \"WP-Cron available\" instead of the misleading \"Active\" label; \"Running\u2026\" and \"Run now\" are suppressed when auto-run is disabled<\/li>\n<\/ul>\n\n<h4>7.2<\/h4>\n\n<ul>\n<li>Fixed: nonce verification now precedes capability check in all AJAX handlers<\/li>\n<li>Fixed: script handle for activation notice registered with empty string source instead of boolean false (Plugin Check compatibility)<\/li>\n<\/ul>\n\n<h4>7.1<\/h4>\n\n<ul>\n<li>Fixed: Diagnostics tab incorrectly reported Apache server-side delivery as inactive even when rewrite rules were fully in place<\/li>\n<li>Fixed: reconverting an image that was already converted (re-encode path) could incorrectly delete the restored companion's post meta when output was larger than source, causing the image to appear as unconverted and be re-queued indefinitely<\/li>\n<li>Fixed: a permission race on the source file between file_exists() and filesize() could coerce filesize() false to 0, discarding every successfully encoded companion as \"larger than source\"<\/li>\n<\/ul>\n\n<h4>7.0<\/h4>\n\n<ul>\n<li>Fixed: progress bar now advances in real-time during a batch (previously it only updated between batches, appearing stuck while the log streamed live results)<\/li>\n<li>Fixed: progress bar and indicators now reset correctly when a background cron job finishes<\/li>\n<li>Fixed: inline style and script in admin now use wp_add_inline_style() and wp_add_inline_script() as required<\/li>\n<li>Fixed: dashboard widget now restricted to manage_options users<\/li>\n<li>Removed: load_plugin_textdomain() call \u2014 translations auto-loaded by WordPress for hosted plugins<\/li>\n<\/ul>","raw_excerpt":"Bulk-convert your WordPress media library from JPEG\/PNG to AVIF or WebP. Real-time progress, backup &amp; revert, per-image controls, and Cloud API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322490","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=322490"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gambitrls"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322490"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322490"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322490"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322490"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322490"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}