{"id":349789,"date":"2026-08-27T17:48:18","date_gmt":"2026-08-27T17:48:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pdev-image-optimizer\/"},"modified":"2026-08-27T17:47:53","modified_gmt":"2026-08-27T17:47:53","slug":"pdev-image-optimizer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pdev-image-optimizer\/","author":20866267,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"PDEV Image Optimizer","header_author":"Grzegorz Puszka","header_description":"Converts WordPress media images to WebP or AVIF and serves them with Apache or Nginx.","assets_banners_color":"2b3a48","last_updated":"2026-08-27 17:47:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/puszkadev","header_plugin_uri":"","header_author_uri":"https:\/\/puszka.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"grzegorzpuszka","date":"2026-08-27 17:47:53","revision":3669331}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3669320,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3669320,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3669320,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3669320,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3669320,"resolution":"1","location":"assets","locale":"","width":1394,"height":781},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3669320,"resolution":"2","location":"assets","locale":"","width":1394,"height":781},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3669320,"resolution":"3","location":"assets","locale":"","width":1394,"height":781},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3669320,"resolution":"4","location":"assets","locale":"","width":1394,"height":781},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3669320,"resolution":"5","location":"assets","locale":"","width":1394,"height":781}},"screenshots":{"1":"Simple conversion settings for format, sources, automatic conversion, theme images, and quality.","2":"Restartable Media Library optimization with live progress and error counts.","3":"Thumbnail scan and regeneration tools.","4":"Optional Cloudflare connection, compatibility test, and cache actions.","5":"Privacy-safe System status report covering WordPress, PHP, server, Imagick, GD, delivery, and recent plugin errors."}},"plugin_section":[],"plugin_tags":[194661,163,187,2956,15376],"plugin_category":[50,52],"plugin_contributors":[277940],"plugin_business_model":[],"class_list":["post-349789","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-images","plugin_tags-optimization","plugin_tags-thumbnails","plugin_tags-webp","plugin_category-media","plugin_category-performance","plugin_contributors-grzegorzpuszka","plugin_committers-grzegorzpuszka"],"banners":{"banner":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/banner-772x250.png?rev=3669320","banner_2x":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/banner-1544x500.png?rev=3669320","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/icon-128x128.png?rev=3669320","icon_2x":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/icon-256x256.png?rev=3669320","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/screenshot-1.png?rev=3669320","caption":"Simple conversion settings for format, sources, automatic conversion, theme images, and quality."},{"src":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/screenshot-2.png?rev=3669320","caption":"Restartable Media Library optimization with live progress and error counts."},{"src":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/screenshot-3.png?rev=3669320","caption":"Thumbnail scan and regeneration tools."},{"src":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/screenshot-4.png?rev=3669320","caption":"Optional Cloudflare connection, compatibility test, and cache actions."},{"src":"https:\/\/ps.w.org\/pdev-image-optimizer\/assets\/screenshot-5.png?rev=3669320","caption":"Privacy-safe System status report covering WordPress, PHP, server, Imagick, GD, delivery, and recent plugin errors."}],"raw_content":"<!--section=description-->\n<p>PDEV Image Optimizer was created because I needed a small image optimization\nplugin that simply did its job. I did not need a cloud dashboard, a subscription,\nor a long list of advanced settings. I also did not want basic features to stop\nworking behind a paywall after installing the plugin.<\/p>\n\n<p>This plugin is completely free and will remain free. There is no PRO version,\nno limited free plan, no account, and no feature unlock hidden in the settings.<\/p>\n\n<h4>What does the plugin do?<\/h4>\n\n<p>PDEV Image Optimizer creates WebP or AVIF copies of images from the WordPress\nMedia Library. It can convert new uploads automatically and process an existing\nlibrary in small batches that can be stopped and continued later.<\/p>\n\n<p>You only choose:<\/p>\n\n<ul>\n<li>WebP or AVIF as the output format.<\/li>\n<li>Which source formats should be converted: JPEG, PNG, GIF, or WebP where applicable.<\/li>\n<li>Conversion quality.<\/li>\n<li>Whether new uploads and images from the active theme should be processed.<\/li>\n<\/ul>\n\n<p>The plugin also includes thumbnail scanning and regeneration, storage savings\nstatistics, conflict detection, optional Cloudflare support, and a detailed\nsystem report for troubleshooting. The Settings overview explains failed checks\nand links directly to the action needed to resolve each problem.<\/p>\n\n<h4>How does it work?<\/h4>\n\n<ol>\n<li>WordPress stores an image such as <code>photo.jpg<\/code> and usually creates thumbnail\nfiles such as <code>photo-768x512.jpg<\/code>.<\/li>\n<li>PDEV Image Optimizer uses Imagick, or GD as a fallback, to create an optimized file next to\neach source file. The file is named <code>photo.jpg.webp<\/code>, <code>photo.jpg.avif<\/code>, or for\nexample <code>photo-768x512.jpg.webp<\/code>.<\/li>\n<li>The original image is not deleted, renamed, or replaced. WordPress content\ncontinues to use the original URL ending in <code>.jpg<\/code>, <code>.png<\/code>, <code>.gif<\/code>, or <code>.webp<\/code>.<\/li>\n<li>When a browser requests that original URL, the web server checks the browser's\n   Accept header. If the browser supports the selected modern format and the\nsidecar file exists, the server returns the WebP or AVIF file instead.<\/li>\n<li>A browser without support receives the untouched original image.<\/li>\n<\/ol>\n\n<p>On Apache and compatible LiteSpeed servers, the plugin adds a clearly marked\n    PDEV Image Optimizer block to <code>.htaccess<\/code> inside the uploads directory. If\ntheme image optimization is enabled, it also manages a marked block in the\nactive theme directory. The block uses rewrite rules, sets the correct MIME\ntype, and adds <code>Vary: Accept<\/code> so caches know that one URL can return different\nfile formats.<\/p>\n\n<p>On Nginx, WordPress cannot safely edit the server configuration. PDEV Image Optimizer therefore\nshows ready-to-copy <code>map<\/code> and <code>location<\/code> blocks in <strong>System status<\/strong>. A server\nadministrator must add them to the Nginx configuration and reload Nginx.<\/p>\n\n<p>The Settings overview includes an optional live delivery test. It creates a\ntemporary one-pixel source and optimized sidecar inside uploads, requests the\nsource URL with the appropriate <code>Accept<\/code> header, verifies the returned HTTP\nstatus and <code>Content-Type<\/code>, and immediately removes both test files. The test runs\nonly when an administrator clicks <strong>Test image delivery<\/strong>.<\/p>\n\n<p>Conversion and delivery are separate steps. If WebP or AVIF files exist on disk\nbut the server rules are missing or ignored, conversion succeeded but visitors\nwill still receive the original files. Check <strong>System status<\/strong> when this happens.<\/p>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Local WebP and AVIF conversion with Imagick or GD.<\/li>\n<li>Automatic conversion of new uploads and WordPress thumbnails.<\/li>\n<li>Restartable optimization of the existing Media Library.<\/li>\n<li>Optional optimization of supported images from the active theme.<\/li>\n<li>Thumbnail scan, missing-thumbnail repair, full regeneration, and obsolete-file cleanup.<\/li>\n<li>Per-image safety limits that skip unsafe files without stopping the whole batch.<\/li>\n<li>Storage and estimated transfer savings statistics.<\/li>\n<li>Apache\/LiteSpeed <code>.htaccess<\/code> delivery and generated Nginx configuration.<\/li>\n<li>General image-plugin and rewrite-rule conflict detection.<\/li>\n<li>Optional Cloudflare Free-compatible cache integration.<\/li>\n<li>Detailed privacy-safe system report with copy and JSON export.<\/li>\n<li>Clear Settings overview with tested encoder support, server requirements, delivery status, and conflict checks.<\/li>\n<li>Actionable recovery instructions and a live HTTP test for Apache\/LiteSpeed and Nginx delivery.<\/li>\n<li>Error history from the last 24 hours, limited to 50 entries.<\/li>\n<li>No external conversion service, tracking, subscription, paywall, or PRO version.<\/li>\n<\/ul>\n\n<h4>Server requirements - read before installing<\/h4>\n\n<p>The plugin needs both an image conversion library and working web-server rules.\nInstalling and activating the plugin cannot add missing PHP extensions or change\nserver configuration that your hosting provider has disabled.<\/p>\n\n<p>Required for conversion:<\/p>\n\n<ul>\n<li>WordPress 6.4 or newer.<\/li>\n<li>PHP 8.0 or newer.<\/li>\n<li>Imagick or GD installed and enabled in PHP.<\/li>\n<li>The selected library must support the selected output format. WebP support does\nnot automatically mean AVIF support.<\/li>\n<li>The WordPress uploads directory must be writable by PHP.<\/li>\n<li>Enough PHP\/server memory and execution time for the size of your images.<\/li>\n<\/ul>\n\n<p>Required for automatic delivery on Apache or LiteSpeed:<\/p>\n\n<ul>\n<li>Apache-compatible rewrite support (<code>mod_rewrite<\/code>).<\/li>\n<li>MIME and header support (<code>mod_mime<\/code> and <code>mod_headers<\/code>).<\/li>\n<li><code>.htaccess<\/code> files must be allowed and processed for the uploads directory.\nOn Apache this normally requires an appropriate <code>AllowOverride<\/code> setting.<\/li>\n<li>The uploads directory or its existing <code>.htaccess<\/code> file must be writable by PHP\nso the plugin can add its marked rules.<\/li>\n<li>If theme images are enabled, the active theme directory and its <code>.htaccess<\/code>\nfile must meet the same requirements.<\/li>\n<\/ul>\n\n<p>Required for delivery on Nginx:<\/p>\n\n<ul>\n<li>Access to the Nginx website configuration.<\/li>\n<li>Permission to add the generated <code>map<\/code> block to the <code>http<\/code> context and the\ngenerated <code>location<\/code> block to the correct <code>server<\/code> context.<\/li>\n<li>Permission to test and reload Nginx after changing its configuration.<\/li>\n<\/ul>\n\n<p>If you use managed hosting and do not have access to these settings, ask the\nhosting provider whether Imagick\/GD supports WebP or AVIF and whether the required\nApache modules and <code>.htaccess<\/code> overrides are enabled. PDEV Image Optimizer cannot bypass server\nrestrictions imposed by the hosting provider.<\/p>\n\n<h4>Hosting resource protection and image limits<\/h4>\n\n<p>Image conversion can use considerably more memory than the compressed source\nfile suggests. To reduce timeouts, 503 responses, and account resource-limit\nerrors on shared hosting, PDEV Image Optimizer applies conservative limits before and during\nconversion.<\/p>\n\n<p>Default limits applied to both Imagick and GD:<\/p>\n\n<ul>\n<li>Maximum source file size: <strong>64 MB<\/strong>.<\/li>\n<li>Maximum width or height: <strong>16,384 pixels<\/strong>.<\/li>\n<li>Maximum total image size: <strong>25 megapixels<\/strong>.<\/li>\n<\/ul>\n\n<p>Additional GD protection:<\/p>\n\n<ul>\n<li>GD conversion uses a conservative <strong>256 MB per-request memory budget<\/strong>.<\/li>\n<li>The estimate includes decoded image pixels, the source file, current PHP\nmemory usage, and a reserved safety margin.<\/li>\n<li>A hosting provider or PHP configuration may impose a lower effective limit.<\/li>\n<\/ul>\n\n<p>Additional Imagick protection:<\/p>\n\n<ul>\n<li>Memory limit: <strong>128 MB<\/strong>.<\/li>\n<li>Memory-map limit: <strong>256 MB<\/strong>.<\/li>\n<li>Temporary disk limit: <strong>512 MB<\/strong>.<\/li>\n<li>Processing time limit: <strong>30 seconds<\/strong>.<\/li>\n<li>Thread limit: <strong>1 thread<\/strong>.<\/li>\n<\/ul>\n\n<p>These are safety ceilings, not resource reservations. The server may enforce\nlower limits, and increasing a PHP or plugin limit cannot bypass the hosting\naccount's CPU, RAM, process, or I\/O allowance.<\/p>\n\n<p>Media Library optimization starts with one attachment per request and may use\ntwo only after several fast batches. Slow or memory-heavy batches automatically\nreturn to one attachment. Short pauses are added between requests, and temporary\nHTTP 409, 429, 502, 503, and 504 responses use an increasing retry delay. Progress\nis saved after every attachment, so a stopped job can be continued without\nstarting the library scan from the beginning.<\/p>\n\n<p>One WordPress attachment can contain the original image and several thumbnail\nfiles. Processing one attachment can therefore still convert several physical\nfiles. Thumbnail regeneration always handles one attachment per request and\nwaits briefly before requesting the next one. Thumbnail scanning is lighter and\nuses batches of up to five attachments.<\/p>\n\n<p>An image that exceeds a safety limit is not converted. It is shown as a failed\nitem with the reason in the conversion log and error list, while the optimizer\ncontinues with the next attachment. The original image is never removed or\nmodified. Developers can adjust the safeguards with WordPress filters, but doing\nso should be based on the real limits of the hosting account.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Cloudflare integration is optional. When configured, PDEV Image Optimizer sends the Zone ID and\nAPI token to Cloudflare to manage its own Cache Rule and purge the selected zone.\nThe compatibility test requests one public Media Library image with different\n    Accept headers and stores only technical response information. Images are not\nuploaded to Cloudflare by this plugin.<\/p>\n\n<p>Cloudflare information: <a href=\"https:\/\/www.cloudflare.com\/website-terms\/\">Terms<\/a> and\n<a href=\"https:\/\/www.cloudflare.com\/privacypolicy\/\">Privacy Policy<\/a>.<\/p>\n\n<h3>Support<\/h3>\n\n<p>Support is provided <strong>only through the official support forum for this plugin on\nWordPress.org<\/strong>: <a href=\"https:\/\/wordpress.org\/support\/plugin\/pdev-image-optimizer\/\">PDEV Image Optimizer support forum<\/a>.<\/p>\n\n<p>Support is not provided by email, through the author's website, Ko-fi, social\nmedia, private messages, or any other channel. Please use the WordPress.org forum\nso questions and solutions remain public and useful to other users.<\/p>\n\n<p>Before opening a topic, check <strong>Tools &gt; Image Optimizer &gt; System status<\/strong>,\nthen copy the report or export its JSON file and include the relevant details in\nyour forum post. The report is designed to omit URLs, credentials, personal data,\nfull server paths, and media content.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate PDEV Image Optimizer.<\/li>\n<li>Open <strong>Tools &gt; Image Optimizer &gt; Settings<\/strong> and review the Overview section.<\/li>\n<li>Follow the instruction next to every yellow or red check.<\/li>\n<li>Choose WebP or AVIF, source formats, and quality, then click <strong>Save settings<\/strong>.<\/li>\n<li>On Nginx, open <strong>System status &gt; Nginx configuration<\/strong>, copy the generated\nblocks into the server configuration, and reload Nginx.<\/li>\n<li>Click <strong>Test image delivery<\/strong> in Overview. The result should confirm an\n   image\/webp or <code>image\/avif<\/code> response.<\/li>\n<li>Open <strong>Media library<\/strong> and start optimization for existing images.<\/li>\n<\/ol>\n\n<p>Do not enable overlapping WebP\/AVIF rewrite rules in more than one image plugin.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"are%20original%20images%20deleted%20or%20replaced%3F\"><h3>Are original images deleted or replaced?<\/h3><\/dt>\n<dd><p>No. The original files stay in place. PDEV Image Optimizer writes a separate sidecar file next\nto every converted source and WordPress continues to use the original URL.<\/p><\/dd>\n<dt id=\"why%20do%20i%20see%20webp%20or%20avif%20files%20on%20disk%20but%20the%20website%20still%20sends%20jpeg%20or%20png%3F\"><h3>Why do I see WebP or AVIF files on disk but the website still sends JPEG or PNG?<\/h3><\/dt>\n<dd><p>Conversion works, but delivery rules do not. On Apache\/LiteSpeed, check that\n    .htaccess, <code>mod_rewrite<\/code>, <code>mod_mime<\/code>, <code>mod_headers<\/code>, and <code>AllowOverride<\/code> are\navailable. On Nginx, install the generated configuration and reload the server.\nAlso clear page, server, CDN, and browser caches before testing again.<\/p><\/dd>\n<dt id=\"why%20is%20avif%20unavailable%3F\"><h3>Why is AVIF unavailable?<\/h3><\/dt>\n<dd><p>Your installed Imagick and GD builds decide which output formats are available.\nMany servers support WebP but were compiled without AVIF support. The plugin\ncannot add AVIF support to PHP; the hosting provider must enable it.<\/p><\/dd>\n<dt id=\"which%20library%20is%20used%3F\"><h3>Which library is used?<\/h3><\/dt>\n<dd><p>Imagick is preferred when it supports the selected output format. GD is used as\na fallback. The detailed System status report shows both libraries, versions,\nformat support, and resource limits.<\/p><\/dd>\n<dt id=\"how%20can%20i%20test%20delivery%3F\"><h3>How can I test delivery?<\/h3><\/dt>\n<dd><p>Open <strong>Settings &gt; Overview<\/strong> and click <strong>Test image delivery<\/strong>. PDEV Image\nOptimizer creates temporary local test files, requests the original URL with the\nselected format in the <code>Accept<\/code> header, verifies the response, and removes the\nfiles immediately. A successful result confirms an <code>image\/webp<\/code> or <code>image\/avif<\/code>\nresponse. The last result remains visible until conversion or delivery settings\nchange.<\/p>\n\n<p>You can also verify a real image in browser developer tools. Select its request\nin the Network panel and inspect <code>Content-Type<\/code>. The URL may still end in <code>.jpg<\/code>\nwhile the response type is <code>image\/webp<\/code> or <code>image\/avif<\/code>; that is expected.<\/p><\/dd>\n<dt id=\"does%20it%20convert%20existing%20images%20and%20thumbnails%3F\"><h3>Does it convert existing images and thumbnails?<\/h3><\/dt>\n<dd><p>Yes. <strong>Media library<\/strong> processes the original attachment and all registered\nWordPress image sizes. Work is split into small restartable requests. One failed\nor oversized image is logged and skipped without stopping the remaining batch.<\/p><\/dd>\n<dt id=\"why%20was%20an%20image%20skipped%20because%20of%20a%20resource%20or%20safety%20limit%3F\"><h3>Why was an image skipped because of a resource or safety limit?<\/h3><\/dt>\n<dd><p>The compressed file size does not show how much memory is needed after decoding.\nPDEV Image Optimizer skips sources larger than 64 MB, wider or taller than 16,384 pixels, or\ncontaining more than 25 megapixels. GD and Imagick also have separate memory,\ntime, disk, and thread safeguards described in <strong>Hosting resource protection and\nimage limits<\/strong> above. The skipped attachment remains unchanged and is listed as\nan error so it can be reviewed instead of silently exhausting the server.<\/p><\/dd>\n<dt id=\"what%20are%20thumbnail%20tools%20for%3F\"><h3>What are Thumbnail tools for?<\/h3><\/dt>\n<dd><p>They scan the Media Library for missing registered thumbnail files and obsolete\nfiles associated with image sizes that are no longer registered. They can create\nmissing sizes or fully regenerate thumbnails. Thumbnail regeneration itself does\nnot create WebP or AVIF files; run Media Library optimization afterward.<\/p><\/dd>\n<dt id=\"can%20it%20optimize%20images%20stored%20in%20my%20theme%3F\"><h3>Can it optimize images stored in my theme?<\/h3><\/dt>\n<dd><p>Yes. Enable active theme images in Settings. The theme directory must be readable\nand writable, and the web-server delivery rules must also cover that directory.\nDevelopment directories such as <code>node_modules<\/code>, <code>vendor<\/code>, <code>.git<\/code>, and <code>.svn<\/code> are\nexcluded from scanning.<\/p><\/dd>\n<dt id=\"are%20animated%20gif%20files%20supported%3F\"><h3>Are animated GIF files supported?<\/h3><\/dt>\n<dd><p>Animated GIF files are detected and skipped so animation is not replaced by a\nstatic image. A non-animated GIF can be converted when GIF is selected.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20use%20extra%20disk%20space%3F\"><h3>Does the plugin use extra disk space?<\/h3><\/dt>\n<dd><p>Yes. Original files are preserved and optimized sidecars are added next to them.\nThe Storage savings card shows sidecar disk usage and estimates the smaller\ntransfer size visitors may receive.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20cloudflare%3F\"><h3>Does it work with Cloudflare?<\/h3><\/dt>\n<dd><p>Local conversion and origin delivery work without connecting an API. Without a\nconfirmed shared-cache rule, PDEV Image Optimizer uses private-cache protection so Cloudflare\ndoes not cache the wrong format for a shared image URL.<\/p>\n\n<p>The optional Cloudflare tab can configure a Free-compatible Cache Rule, test\ndelivery, and purge cache. Automatic rule creation requires a zone-scoped token\nwith <strong>Cache Settings: Edit<\/strong> and <strong>Cache Purge: Purge<\/strong>. The standard Cloudflare\nWordPress token preset supports purge but does not include Cache Settings: Edit.<\/p>\n\n<p>Credentials can optionally be defined in <code>wp-config.php<\/code>:<\/p>\n\n<pre><code>define( 'PDEV_IMAGE_OPTIMIZER_CLOUDFLARE_ZONE_ID', 'your-zone-id' );\n\ndefine( 'PDEV_IMAGE_OPTIMIZER_CLOUDFLARE_API_TOKEN', 'your-api-token' );\n<\/code><\/pre><\/dd>\n<dt id=\"does%20the%20plugin%20send%20images%20or%20usage%20statistics%20anywhere%3F\"><h3>Does the plugin send images or usage statistics anywhere?<\/h3><\/dt>\n<dd><p>No. Images are converted locally. The plugin has no telemetry or analytics\nendpoint. Cloudflare is contacted only when an administrator explicitly provides\ncredentials or runs the compatibility test. The Ko-fi page opens only after the\nuser clicks its link.<\/p><\/dd>\n<dt id=\"what%20is%20included%20in%20the%20system%20report%3F\"><h3>What is included in the system report?<\/h3><\/dt>\n<dd><p>The report includes WordPress, PHP, web-server, Imagick, GD, plugin settings,\ndelivery status, writable-directory checks, Cloudflare status, optimization\nstatistics, the last live delivery test, conflicts, thumbnail status, and recent\nplugin errors. Site URLs,\ncredentials, personal data, media content, and full server paths are excluded.<\/p><\/dd>\n<dt id=\"how%20long%20are%20plugin%20errors%20stored%3F\"><h3>How long are plugin errors stored?<\/h3><\/dt>\n<dd><p>Only errors from the last 24 hours are shown and included, with an additional\nmaximum of 50 entries. Paths, URLs, email addresses, and image names are redacted\nfrom the support report. The log is removed when the plugin is uninstalled.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a PRO version?<\/h3><\/dt>\n<dd><p>No. Every feature is free and the plugin will remain free.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>[Release] First public build.<\/li>\n<\/ul>","raw_excerpt":"Create WebP or AVIF copies of WordPress images locally and serve them without changing original URLs. Free, simple, and without a PRO version.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349789","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=349789"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/grzegorzpuszka"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349789"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349789"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349789"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349789"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349789"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}