<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Enable Media Replace &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/enable-media-replace/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Tue, 23 Jan 2024 00:03:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wadetregaskis.com/wp-content/uploads/2016/03/Stitch-512x512-1-256x256.png</url>
	<title>Enable Media Replace &#8211; Wade Tregaskis</title>
	<link>https://wadetregaskis.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">226351702</site>	<item>
		<title>Image workflow for WordPress</title>
		<link>https://wadetregaskis.com/image-workflow-for-wordpress/</link>
					<comments>https://wadetregaskis.com/image-workflow-for-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 31 Dec 2023 01:41:49 +0000</pubDate>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[AVIF]]></category>
		<category><![CDATA[AVIF Support]]></category>
		<category><![CDATA[Enable Media Replace]]></category>
		<category><![CDATA[Image Regenerate & Select Crop]]></category>
		<category><![CDATA[Image Tool+]]></category>
		<category><![CDATA[ImageOptim]]></category>
		<category><![CDATA[JPEG 2000]]></category>
		<category><![CDATA[JPEG XL]]></category>
		<category><![CDATA[Perfect Images]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[WebP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://wadetregaskis.com/?p=7146</guid>

					<description><![CDATA[These are the main tools and procedures I use for publishing images through WordPress. In case it&#8217;s helpful to others. My input images generally fall into three categories: Some of these formats can be published directly into WordPress &#8211; mainly PNG and JPEG &#8211; but not all, and neither PNG nor JPEG are the best&#8230; <a class="read-more-link" href="https://wadetregaskis.com/image-workflow-for-wordpress/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>These are the main tools and procedures I use for publishing images through WordPress.  In case it&#8217;s helpful to others.</p>



<p>My input images generally fall into three categories:</p>



<ol class="wp-block-list">
<li>Screenshots, as PNGs.</li>



<li>Random 3rd party images, typically as JPEGs but sometimes PNGs or other formats.</li>



<li>Photos, as Nikon NEFs.</li>
</ol>



<p>Some of these formats <em>can</em> be published directly into WordPress &#8211; mainly PNG and JPEG &#8211; but not all, and neither PNG nor JPEG are the best file formats for anything these days.  In terms of compression efficiency, there are numerous superior formats &#8211; JPEG 2000, JPEG XL, HEIF<sup data-fn="ce19f9a1-4b3d-427c-b205-ec8684b1e5ae" class="fn"><a href="#ce19f9a1-4b3d-427c-b205-ec8684b1e5ae" id="ce19f9a1-4b3d-427c-b205-ec8684b1e5ae-link">1</a></sup>, WebP, AVIF, etc.</p>



<p>Using an appropriate and efficient format &#8211; and suitable compression quality settings &#8211; is important to me to save disk space, save bandwidth, minimise page load times, and ensure images are seen the way I want them to be (re. lossless vs lossy).</p>



<h1 class="wp-block-heading">Best image codecs</h1>



<h2 class="wp-block-heading">Legacy options</h2>



<p>PNG and JPEG are supported in practically any &amp; every web browser still in real use today.  As is GIF, technically, although it&#8217;s strictly inferior to PNG [for static images] and actual video formats [for moving images].  It certainly <em>is</em> possible to still use them, but it wastes storage space &amp; bandwidth, and hurts page load times.</p>



<p>That said, PNG is not the worst option <em>if</em> you use appropriate tooling to maximise the compression.  The level of compression you achieve &#8216;out of the box&#8217; with most applications &#8211; e.g. Photoshop, Apple&#8217;s apps, etc &#8211; is actually quite poor.  There are numerous specialised tools which can greatly improve the compression.  I recommend <a href="https://imageoptim.com/mac" data-wpel-link="external" target="_blank" rel="external noopener">ImageOptim</a> &#8211; it&#8217;s free and open source.  It typically reduces PNG files sizes by a further 20% to 50% (depending on how much fine detail or noise the image contains) without any loss of image quality.  It actually makes PNG competitive with the modern formats to a degree, although ultimately still not the best.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>⚠️ ImageOptim does not work correctly with <em>animated</em> PNGs &#8211; it silently removes the animation!</p>
</div></div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="664" height="559" src="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim.webp" alt="" class="wp-image-7150" style="width:664px;height:auto" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim.webp 664w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-256x216.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-512x431.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim@2x.webp 1328w" sizes="(max-width: 664px) 100vw, 664px" /></figure>
</div>


<p>It&#8217;s quite configurable, including with regard to stripping metadata or not &#8211; although, alas, it offers no nuance in this, such as keeping copyright metadata but removing spurious camera metadata, or geolocations.</p>



<div class="alignnormal"><div id="metaslider-id-7155" style="max-width: 775px; margin: 0 auto;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7155 ml-slider ms-theme-default nav-hidden" role="region" aria-label="ImageOptim Preferences" data-height="510" data-width="775">
    <div id="metaslider_container_7155">
        <div id="metaslider_7155" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7157 ms-image " aria-roledescription="slide" data-date="2023-12-30 12:03:47" data-filename="ImageOptim-Settings-General.webp" data-slide-type="image"><img decoding="async" width="775" height="510" src="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-General.webp" class="slider-7155 slide-7157 msDefaultImage" alt="Screenshot of the ImageOptim Preferences window, showing the General tab" rel="" title="ImageOptim Settings - General" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-General.webp 775w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-General-256x168.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-General-512x337.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-General@2x.webp 1550w" sizes="(max-width: 775px) 100vw, 775px" /><div class="caption-wrap"><div class="caption">You have full control over which libraries are used.  Not all the libraries are enabled by default - Guetzli in particular is off by default because it can make the recompression process take a particularly long time.  But in my opinion, if you're going to the trouble of using specialised tools to improve your image compression, you might as well use them to their fullest.</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7158 ms-image " aria-roledescription="slide" data-date="2023-12-30 12:03:47" data-filename="ImageOptim-Settings-Quality.webp" data-slide-type="image"><img decoding="async" width="775" height="510" src="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Quality.webp" class="slider-7155 slide-7158 msDefaultImage" alt="Screenshot of the ImageOptim Preferences window, showing the Quality tab" rel="" title="ImageOptim Settings - Quality" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Quality.webp 775w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Quality-256x168.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Quality-512x337.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Quality@2x.webp 1550w" sizes="(max-width: 775px) 100vw, 775px" /><div class="caption-wrap"><div class="caption">By default ImageOptim preserves your images exactly as they appear (lossless recompression), but it does give you the option of using lossy compression.  Just beware of significant and unpredictable compression artefacts, particularly with PNGs.</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7156 ms-image " aria-roledescription="slide" data-date="2023-12-30 12:03:46" data-filename="ImageOptim-Settings-Optimisation-level.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="775" height="510" src="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Optimisation-level.webp" class="slider-7155 slide-7156 msDefaultImage" alt="Screenshot of the ImageOptim Preferences window, showing the Optimisation level tab" rel="" title="ImageOptim Settings - Optimisation level" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Optimisation-level.webp 775w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Optimisation-level-256x168.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Optimisation-level-512x337.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/ImageOptim-Settings-Optimisation-level@2x.webp 1550w" sizes="auto, (max-width: 775px) 100vw, 775px" /><div class="caption-wrap"><div class="caption">I haven't really played with this 'Optimisation level' setting, I just set it to maximum.  Why use a tool like this if you're not going to use it to its fullest?</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>It&#8217;s also possible to use such specialised tools for <em>lossy</em> PNG compression.  PNG is not inherently lossy, but by manipulating the image before compression it is possible to greatly improve its compressibility.  e.g. by reducing the colour palette, adding or removing dithering, or simply removing fine detail.  Various tools &#8211; including ImageOptim &#8211; will do this for you if you wish, although be warned that the resulting image quality is unpredictable and sometimes very poor (exhibiting obvious colour changes, banding, or visual artefacts otherwise).</p>



<p>The example below is a fairly typical &#8220;good&#8221; result &#8211; the file size is cut by 70%, but the lossy PNG compression has introduced noticeable banding and dithering.  You might consider it worth the trade-off but consider that a lossy WebP version, <em>also</em> saving 70% on file size, doesn&#8217;t have any noticeable image degradation.  And an AVIF version with similar image quality cuts the file size by <em>80%</em>.  So while you might think it&#8217;s neat to use a &#8216;lossy&#8217; PNG and get &#8211; by PNG standards &#8211; dramatically higher compression, you&#8217;re probably better off just using WebP or AVIF.</p>



<div class="alignnormal"><div id="metaslider-id-7178" style="max-width: 1000px; margin: 0 auto;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7178 ml-slider ms-theme-default nav-hidden nav-hidden" role="region" aria-label="Lossy PNG warning" data-height="597" data-width="1000">
    <div id="metaslider_container_7178">
        <div id="metaslider_7178" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7183 ms-image " aria-roledescription="slide" data-date="2023-12-30 16:01:23" data-filename="Swift-on-Raspberry-Pi-lossless.png" data-slide-type="image"><img loading="lazy" decoding="async" width="2000" height="1194" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossless.png" class="slider-7178 slide-7183 msDefaultImage" alt="" rel="" title="Swift on Raspberry Pi (lossless)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossless.png 2000w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossless-256x153.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossless-512x306@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossless-512x306.png 512w" sizes="auto, (max-width: 2000px) 100vw, 2000px" /><div class="caption-wrap"><div class="caption">Lossless PNG (1,956 KB)</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7184 ms-image " aria-roledescription="slide" data-date="2023-12-30 16:01:23" data-filename="Swift-on-Raspberry-Pi-lossy.png" data-slide-type="image"><img loading="lazy" decoding="async" width="2000" height="1194" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossy.png" class="slider-7178 slide-7184 msDefaultImage" alt="" rel="" title="Swift on Raspberry Pi (lossy)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossy.png 2000w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossy-256x153.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossy-512x306@2x.png 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Swift-on-Raspberry-Pi-lossy-512x306.png 512w" sizes="auto, (max-width: 2000px) 100vw, 2000px" /><div class="caption-wrap"><div class="caption">Lossy PNG (587 KB)</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<h2 class="wp-block-heading">Non-options</h2>



<p>Despite its age JPEG 2000 is surprisingly good in my experience &#8211; I used it many years ago on this website for my <a href="https://wadetregaskis.com/raw-converter-comparison/" data-wpel-link="internal">Raw converter comparison</a> as an alternative to TIFF and PNG, as it yielded file sizes about half that of PNG.  It&#8217;s competitive even with newer formats like WebP and AVIF.  JPEG XL is purportedly even better again.  Alas, no browser other than Safari supports either of them.</p>



<p>HEIF exists and is &#8220;modern&#8221; but isn&#8217;t really in the same ballpark &#8211; while it <em>is</em> better than JPEG, that&#8217;s a low bar; it achieves worse results even than JPEG 2000, a codec that&#8217;s <em>twenty years</em> older.  Its only claim to any fame is that it&#8217;s the native source format for many photos today, thanks to its use on Apple iDevices.  In any case, the only current-version web browser which supports it is Safari.</p>



<h2 class="wp-block-heading">Viable options</h2>



<p>The only modern format which is universally supported<sup data-fn="42530c0c-bed1-4a7a-bff8-2c27f0a337bd" class="fn"><a href="#42530c0c-bed1-4a7a-bff8-2c27f0a337bd" id="42530c0c-bed1-4a7a-bff8-2c27f0a337bd-link">2</a></sup> is WebP.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1158" height="746" src="https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP.webp" alt="Screenshot of caniuse.com showing the web browser compatibility matrix for the WebP image format" class="wp-image-7147" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP.webp 1158w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP-256x165.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP-512x330@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP-512x330.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-WebP@2x.webp 2316w" sizes="auto, (max-width: 1158px) 100vw, 1158px" /><figcaption class="wp-element-caption">Source: <a href="https://caniuse.com/webp" data-wpel-link="external" target="_blank" rel="external noopener">caniuse.com</a></figcaption></figure>
</div>


<p>AVIF is <em>nearly</em> universally supported, with the unfortunately notable exception of Edge.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1158" height="879" src="https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF.webp" alt="Screenshot of caniuse.com showing the web browser compatibility matrix for the AVIF image format" class="wp-image-7148" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF.webp 1158w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF-256x194.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF-512x389@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF-512x389.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/caniuse-com-for-AVIF@2x.webp 2316w" sizes="auto, (max-width: 1158px) 100vw, 1158px" /><figcaption class="wp-element-caption">Source: <a href="https://caniuse.com/avif" data-wpel-link="external" target="_blank" rel="external noopener">caniuse.com</a></figcaption></figure>
</div>


<p>I choose to use AVIF nonetheless, as my audience are unlikely to be using Edge anyway, since they&#8217;re unlikely to be using Windows at all.  I also like to assume that Edge <em>will</em>, eventually, get with the program &#8211; although the fact that AVIF support was apparently incorporated in versions 114 to 117, but then <em>removed</em>, is concerning.</p>



<p>So those are the two options, basically.  For better or worse, neither one is strictly superior to the other.</p>



<figure class="wp-block-pullquote"><blockquote><p>WebP is best for lossless compression, and AVIF is usually the best for lossy compression (especially at lower qualities).</p></blockquote></figure>



<p>It is case-dependent and a little subjective as they have noticeably different methodologies:</p>



<ul class="wp-block-list">
<li>AVIF tends to be heavy-handed with &#8216;noise&#8217; removal, which seems to be a significant part of how it achieves better compression.</li>



<li>WebP will more faithfully preserve noise (and artefacts from earlier lossy compressions), which can be counter-productive.</li>
</ul>



<p>AVIF really excels &#8211; compared to WebP and earlier codecs &#8211; with more aggressive compression settings.  It&#8217;s much better under tight file size constraints.  It also performs particularly well for images which <em>aren&#8217;t</em> so clean to begin with &#8211; where they do have some actual image noise, or visible compression artefacts from an earlier lossy compression stage, or otherwise fine details that aren&#8217;t important to preserve.</p>



<p>WebP behaves more &#8220;traditionally&#8221; &#8211; like JPEG &#8211; with regard to increase blockiness and banding as you crank up the compression.  AVIF does a much better job of degrading image quality more &#8216;smoothly&#8217; across the image &#8211; so that particularly bad, noticeable artefacts don&#8217;t develop as easily.  Even while it preserves more genuine detail.</p>



<div class="alignnormal"><div id="metaslider-id-7171" style="max-width: 1024px; margin: 0 auto;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7171 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden" role="region" aria-label="Noisy Echo (WebP vs AVIF high-compression comparison)" data-height="1024" data-width="1024">
    <div id="metaslider_container_7171">
        <div id="metaslider_7171" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7174 ms-image " aria-roledescription="slide" data-date="2023-12-30 15:40:08" data-filename="Noisy-Echo-10.avif" data-slide-type="image"><img loading="lazy" decoding="async" width="2048" height="2048" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-10.avif" class="slider-7171 slide-7174 msDefaultImage" alt="" rel="" title="Noisy-Echo (10)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-10-1024x1024@2x.avif 2048w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-10-256x256.avif 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-10-512x512@2x.avif 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-10-512x512.avif 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><div class="caption-wrap"><div class="caption">AVIF (188 KB)</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7175 ms-image " aria-roledescription="slide" data-date="2023-12-30 15:40:09" data-filename="Noisy-Echo-22.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="2048" height="2048" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-22.webp" class="slider-7171 slide-7175 msDefaultImage" alt="" rel="" title="Noisy-Echo (22)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-22-1024x1024@2x.webp 2048w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-22-256x256.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-22-512x512@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Noisy-Echo-22-512x512.webp 512w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><div class="caption-wrap"><div class="caption">WebP (185 KB)</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>WebP is more competitive with high quality settings or high quality, &#8216;smooth&#8217; images (e.g. screenshots or computer renderings).  In lossless mode WebP universally outperforms AVIF, often by a significant margin.  In fact even PNG typically outperforms AVIF for lossless compression!</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1208" height="566" src="https://wadetregaskis.com/wp-content/uploads/2019/03/Dialog-screenshot.webp" alt="" class="wp-image-4352" style="width:604px" srcset="https://wadetregaskis.com/wp-content/uploads/2019/03/Dialog-screenshot.webp 1208w, https://wadetregaskis.com/wp-content/uploads/2019/03/Dialog-screenshot-512x240@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2019/03/Dialog-screenshot-256x120.webp 256w, https://wadetregaskis.com/wp-content/uploads/2019/03/Dialog-screenshot-512x240.webp 512w" sizes="auto, (max-width: 1208px) 100vw, 1208px" /><figcaption class="wp-element-caption">82 KB as WebP, 119 KB as PNG, and a whopping 284 KB as AVIF!</figcaption></figure>
</div>


<p>I&#8217;ve also noticed that WebP is <em>substantially</em> better at compressing repetitive patterns (even if they&#8217;re not perfectly identical).</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://wadetregaskis.com/wp-content/uploads/2023/12/WebP-repetitive-tiling-example.webp" alt="" class="wp-image-7151" style="object-fit:cover" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/WebP-repetitive-tiling-example-512x512@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/WebP-repetitive-tiling-example-256x256.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/WebP-repetitive-tiling-example-512x512.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/WebP-repetitive-tiling-example@2x.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Using high-quality (but <em>lossy</em>) compression, this conglomerate image comparing four different RAW converters is 2.3 MB as WebP, 3.8 MB as AVIF (and 12.6 MB as an uncompressed TIFF, for reference).  Yet if you compress any one of the quarters individually, AVIF outperforms WebP.  Even though each quarter is significantly different, there&#8217;s enough repetition between them that WebP can extract significant compression gains, that AVIF apparently cannot.  And in cases with more verbatim repetition, WebP&#8217;s advantage increases even further.</figcaption></figure>
</div>


<p>AVIF seems particularly good at reducing visible artefacts resulting from JPEG over-compression, and in avoiding prominent compression artefacts in general &#8211; such as in the example below, where the file sizes are very similar (14 KB for AVIF, 13 KB for WebP) but AVIF does more with it &#8211; preserving more genuine detail such as in the camera lens and IR sensor even while doing a better job of removing the JPEG artefacts (noise, blockiness, and banding).</p>



<div class="alignnormal"><div id="metaslider-id-7188" style="max-width: 849px; margin: 0 auto;" class="ml-slider-3-107-0 metaslider metaslider-flex metaslider-7188 ml-slider ms-theme-default nav-hidden nav-hidden nav-hidden nav-hidden" role="region" aria-label="AVIF vs WebP for reducing JPEG artefacts" data-height="538" data-width="849">
    <div id="metaslider_container_7188">
        <div id="metaslider_7188" class="flexslider">
            <ul class='slides'>
                <li style="display: block; width: 100%;" class="slide-7196 ms-image " aria-roledescription="slide" data-date="2023-12-30 16:52:16" data-filename="Blink-XT.png" data-slide-type="image"><img loading="lazy" decoding="async" width="849" height="538" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT.png" class="slider-7188 slide-7196 msDefaultImage" alt="" rel="" title="Blink-XT" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT.png 849w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-256x162.png 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-512x324.png 512w" sizes="auto, (max-width: 849px) 100vw, 849px" /><div class="caption-wrap"><div class="caption">Original, full of JPEG artefacts</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7195 ms-image " aria-roledescription="slide" data-date="2023-12-30 16:52:16" data-filename="Blink-XT-60.webp" data-slide-type="image"><img loading="lazy" decoding="async" width="849" height="538" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-60.webp" class="slider-7188 slide-7195 msDefaultImage" alt="" rel="" title="Blink-XT (60)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-60.webp 849w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-60-256x162.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-60-512x324.webp 512w" sizes="auto, (max-width: 849px) 100vw, 849px" /><div class="caption-wrap"><div class="caption">WebP</div></div></li>
                <li style="display: none; width: 100%;" class="slide-7194 ms-image " aria-roledescription="slide" data-date="2023-12-30 16:52:15" data-filename="Blink-XT-30.avif" data-slide-type="image"><img loading="lazy" decoding="async" width="849" height="538" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-30.avif" class="slider-7188 slide-7194 msDefaultImage" alt="" rel="" title="Blink-XT (30)" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-30.avif 849w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-30-256x162.avif 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Blink-XT-30-512x324.avif 512w" sizes="auto, (max-width: 849px) 100vw, 849px" /><div class="caption-wrap"><div class="caption">AVIF</div></div></li>
            </ul>
        </div>
        
    </div>
</div></div>



<p>While generally I avoid re-compressing from an already lossy source since it tends to just compound the compression artefacts, AVIF can be useful for replacing low-quality JPEGs when you don&#8217;t have a quality original available.  It can actually <em>improve</em> subjective image quality &#8211; by correcting JPEG artefacts &#8211; even while substantially shrinking the file size.</p>



<h1 class="wp-block-heading">Image format conversion</h1>



<p>There&#8217;s basically two schools of thought on converting images to their serving format &#8211; do it in advance of uploading the image to WordPress, or have WordPress do it (via one or more plug-ins).  I prefer the former as:</p>



<ol class="wp-block-list">
<li>I have more control over the images by doing the conversion myself.
<ul class="wp-block-list">
<li>I can pick the best format for each situation.</li>



<li>I can customise compression settings to suit the situation (e.g. use more aggressive compression if the source image isn&#8217;t high quality to begin with) and use (e.g. use lossless for images which are about comparing image formats, RAW converters, or other such situations where viewers need to see the image <em>exactly</em>).</li>
</ul>
</li>



<li>I have more reliably-available computing horsepower locally; I can run pretty much any conversion or optimisation process and it&#8217;ll just work.  In contrast, WordPress-hosted processing is subject to various limits on runtime and RAM usage, which can cause things to fail in all sorts of ways both obvious and nefarious.  Most web servers [used for WordPress sites] have <em>way</em> less RAM available than even an entry-level personal computer.  Processing of &#8220;large&#8221; images, such as photos from a camera, <em>will</em> fail with default WordPress &amp; PHP settings.</li>



<li>Every additional WordPress plug-in increases the possibility of problems, whether due to bugs in the plug-in, the possibility of incompatibilities between plug-ins, etc.</li>



<li>WordPress plug-ins don&#8217;t always age well; each one I adopt is yet another plug-in which I might have to migrate off of in future.</li>



<li>WordPress plug-ins for image format conversion &amp; optimisation tend, in my experience, to be both buggy and money-grubbing.  Many are tied to 3rd party services like CDNs or &#8220;Cloud&#8221;-based image processing, and try to lock you into pricey and unnecessary paid subscriptions.</li>
</ol>



<p>Nominally having WordPress do it means you can just upload any random image without care for its format or compression, <em>and</em> that over time you can easily adopt new image formats just by installing new plug-ins, with all existing images converted retroactively.  In reality, new image formats come along very rarely and popular ones &#8211; like PNG, JPEG and WebP &#8211; are supported basically forever.</p>



<p>You do have to be a little careful, however, to not over-compress your original uploads (or, retain higher-quality versions locally).  Especially if you&#8217;re churning through image conversions &amp; uploads rapidly, you might not immediately notice compression artefacts.  Having the original available in order to redo the compression is valuable.</p>



<h2 class="wp-block-heading">Advance conversion</h2>



<p>There&#8217;s a further choice as to whether you do the processing locally or use a website.  I prefer to just do it locally, for some of the same reasons as not using WordPress, and <em>also</em> because in my experience I can achieve better results &#8211; websites that do image conversion / recompression, <em>especially</em> those that do it for free, use weak compression in order to minimise processing time, and consequently do not achieve the best results.</p>



<p>The best tool I&#8217;ve found for local image processing is <a href="https://apps.apple.com/us/app/image-tool/id1524216218" data-wpel-link="external" target="_blank" rel="external noopener">Image Tool+</a>.  It supports all the formats you&#8217;ll likely need and is designed for easy batch conversions.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>⚠️ While Image Tool+ <em>mostly</em> supports animated images, it does <em>not</em> support animated AVIFs.  It will silently remove animation from any AVIFs it creates.</p>



<p>Beyond that, though, I&#8217;ve found that it does a surprisingly poor job of producing animated images, no matter what format you use &#8211; the resulting files are <em>huge</em>.  You can get <em>much</em> better results with other tools (e.g. <a href="https://ezgif.com/gif-to-avif" data-wpel-link="external" target="_blank" rel="external noopener">EZGIF</a> albeit with no control over the quality).</p>
</div></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1277" height="832" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool.webp" alt="Screenshot of the Image Tool+ main window, showing a bunch of image format conversions in progress" class="wp-image-7149" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool.webp 1277w, https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool-256x167.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool-512x334@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool-512x334.webp 512w, https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool@2x.webp 2554w" sizes="auto, (max-width: 1277px) 100vw, 1277px" /><figcaption class="wp-element-caption">The user interface is a little clunky &#8211; with some odd but harmless rendering issues occasionally, as seen in the left hand column &#8211; but ultimately it&#8217;s functional, and does a better job than any other apps I&#8217;ve found.</figcaption></figure>
</div>


<p>In years gone by I used <a href="https://www.lemkesoft.de/en/products/graphicconverter/" data-wpel-link="external" target="_blank" rel="external noopener">GraphicConverter</a>, but it doesn&#8217;t support AVIF.</p>



<p>It&#8217;s important to note that the PNG files produced by Image Tool+ are not very efficiently compressed &#8211; you should run them through ImageOptim if you actually intend to use them.</p>



<h1 class="wp-block-heading">Publishing images in WordPress</h1>



<p>WordPress supports <em>some</em> image formats natively, and does a passable job of handling them by default.  So you don&#8217;t <em>have</em> to do anything additional, necessarily.  However, there&#8217;s several plug-ins I recommend which significantly improve its capabilities.</p>



<h2 class="wp-block-heading" id="avif-support"><a href="https://wordpress.org/plugins/avif-support/" data-wpel-link="external" target="_blank" rel="external noopener">AVIF Support</a></h2>



<p>As it says on the tin, it adds support for AVIF to WordPress, which sadly lacks support otherwise.  Without this plug-in, WordPress will simply refuse to accept AVIF uploads.</p>



<p>It&#8217;s free, <a href="https://plugins.trac.wordpress.org/browser/avif-support/" data-wpel-link="external" target="_blank" rel="external noopener">open source</a>, and works pretty seamlessly, as long as your web server and WordPress installation are sufficiently modern.  The easiest way to determine if that&#8217;s the case it to simply install the plug-in &#8211; its Settings page will tell you if AVIF is supported or not.  If it&#8217;s not, only then will you need to do some package upgrading.  In particular, you need (as best I can tell from experience and what I&#8217;ve read online):</p>



<ul class="wp-block-list">
<li><a href="https://grandplugins.com/how-to-upload-avif-images-in-wordpress/" data-wpel-link="external" target="_blank" rel="external noopener">PHP 8.2 (or later)</a>.</li>



<li><a href="https://php.watch/versions/8.1/gd-avif" data-wpel-link="external" target="_blank" rel="external noopener">libavif and suitably-compiled versions of GD and PHP</a>.</li>



<li><a href="https://web.archive.org/web/20240104012918/https://avif.io/blog/tutorials/imagemagick/" data-wpel-link="external" target="_blank" rel="external noopener">ImageMagick 7.0.25 (or later)</a><br><br>…<em>or</em> <a href="https://legacy.imagemagick.org" data-wpel-link="external" target="_blank" rel="external noopener">ImageMagick 6</a> with a suitably new and compiled <a href="https://github.com/strukturag/libheif" data-wpel-link="external" target="_blank" rel="external noopener">libheif</a> w/ AVIF support.  I haven&#8217;t been able to pin down specific version numbers, and it might vary by package repo (as libheif has to be compiled with certain flags to include the AVIF support).  In a nutshell you can tell if your system has it by following the dependency graph from your libmagickcore-6… library (via <code>apt info &lt;package></code> or similar) and seeing if it includes libheifN with in turn an [installed] dependency on svt-av1 or libaomN.  Where &#8216;N&#8217; may be any number.<br><br>Note: ImageMagick 6 doesn&#8217;t support alpha channels in AVIF images (see <a href="#avif-bug-alpha-channels">Bug: Alpha channels</a>, below).  So use ImageMagick 7 if possible.</li>
</ul>



<p>Even though all those versions are quite old, <a href="https://wadetregaskis.com/migrated-hosts-out-of-the-subdomain/" data-wpel-link="internal">I actually had to switch web hosts in order to get them</a>, as you&#8217;d be sadly surprised how many WordPress hosting services are running wildly ancient versions of Linux (kernel &amp; distro) and PHP.  Now that I have my own Linux VPS, however, it was quite trivial &#8211; I basically just used <code>apt</code> and <a href="https://www.plesk.com" data-wpel-link="external" target="_blank" rel="external noopener">Plesk</a> to install the latest versions of all the relevant software (which you should be frequently doing anyway, for security patches and bug fixes).  Although sadly that still only gets me ImageMagick 6 (and an outdated GD that doesn&#8217;t support AVIF) &#8211; Plesk PHP builds are pretty far behind, and Ubuntu doesn&#8217;t officially support ImageMagick 7 at all! 😠</p>



<p>Note that you only need <em>one</em> of GD or ImageMagick to have the necessary AVIF support, which is fortunate in case one of the two is difficult to upgrade with your particular system (such as if you use Plesk).</p>



<p>ImageMagick is apparently superior:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>It&#8217;s recommended though to use Imagick lib. It gives way better results in terms of speed, quality and size.</p>
<cite>AVIF Support author (<a href="https://grandplugins.com" data-wpel-link="external" target="_blank" rel="external noopener">GrandPlugins</a>)</cite></blockquote>



<p>I haven&#8217;t tested that claim myself, but you&#8217;ll find it repeated in numerous places online, and not just in the context of AVIF.  It sounds like the common wisdom is that GD just isn&#8217;t very good<sup data-fn="416556d8-6d2c-4a41-9401-e301838a8bb7" class="fn"><a href="#416556d8-6d2c-4a41-9401-e301838a8bb7" id="416556d8-6d2c-4a41-9401-e301838a8bb7-link">3</a></sup>.</p>



<h3 class="wp-block-heading"><s>Bug: AVIF over-compression</s></h3>



<p><s>At time of writing, it has a bug whereby it doesn&#8217;t respect image quality settings, neither the WordPress defaults nor any customisation you might do with other plug-ins.  Instead, it always uses a 30% quality setting for AVIF compression (e.g. for thumbnails) which often results in noticeable visual artefacts from the over-compression.  I&#8217;ve reported this to the developer and 🤞 they address this soon, as it looks like a trivial one-line patch.</s></p>



<p><em>Update</em>: the plug-in author fixed this in version 1.0.5, January 2nd 2024.  As a bonus they also added plug-in settings for specifying the desired image quality and (for GD) &#8216;speed&#8217; (how hard the AVIF encoder tries, trading off compression speed for effectiveness).</p>



<h3 class="wp-block-heading" id="avif-bug-alpha-channels">Bug: Alpha channels</h3>



<p><a href="https://alexwlchan.net/2023/check-for-transparency/" data-wpel-link="external" target="_blank" rel="external noopener">AVIFs with alpha channels don&#8217;t work with ImageMagick 6</a>, at time of writing &#8211; any time WordPress re-encodes the image, such as for thumbnail generation, it removes the alpha channel.  Typically this results in the transparent sections turning black instead.</p>



<p><s>For now, I use WebP when transparency is involved, as I&#8217;m hamstrung by Plesk&#8217;s lack of support for ImageMagick 7 in their PHP packages. 😕</s></p>



<p>I ultimately upgraded to ImageMagick 7 to fix this bug.  See <a href="https://wadetregaskis.com/how-to-install-imagemagick-7-for-wordpress-under-plesk-obsidian-on-ubuntu-22-04/" data-wpel-link="internal">my upgrade guide</a> if you&#8217;re on Ubuntu or using Plesk, or otherwise can&#8217;t seem to get ImageMagick 7 from your normal package management process.</p>



<h3 class="wp-block-heading">CDN incompatibility</h3>



<p>Note that some CDNs <em>still</em> don&#8217;t support AVIF, and there&#8217;s nothing the AVIF Support plug-in can do about that.  You might be using such a CDN without even realising it &#8211; e.g. the popular <a href="https://wordpress.org/plugins/jetpack/" data-wpel-link="external" target="_blank" rel="external noopener">Jetpack</a> plug-in secretly uses the wp.com CDN, so AVIF images don&#8217;t work in some places, such as Jetpack&#8217;s &#8220;Related posts&#8221; feature.  Alas there&#8217;s not much you can do other than not use such broken CDNs &#8211; nor plug-ins that rely on them, like Jetpack.</p>



<p>In general you don&#8217;t want to use such CDNs anyway, because their lack of support for AVIF &#8211; or any other content format &#8211; is usually only a result of them mucking with your images in some way.  Not all CDNs are bad, though &#8211; e.g. <a href="https://www.cloudflare.com/" data-wpel-link="external" target="_blank" rel="external noopener">Cloudflare</a> has no issues with AVIF because they don&#8217;t try to mess with your files.</p>



<h2 class="wp-block-heading" id="enable-media-replace"><a href="https://wordpress.org/plugins/enable-media-replace/" data-wpel-link="external" target="_blank" rel="external noopener">Enable Media Replace</a></h2>



<p>This lets you replace an existing image without breaking any use of it in existing posts, pages, etc.  <em>Including with a different file format</em>.  That latter detail is something most competing image replacement plug-ins do <em>not</em> support [reliably], but it&#8217;s crucial if you want to upgrade any existing images on your website.</p>



<p>It&#8217;s free and <a href="https://github.com/short-pixel-optimizer/enable-media-replace" data-wpel-link="external" target="_blank" rel="external noopener">open source</a>.</p>



<h2 class="wp-block-heading" id="image-regenerate-and-select-crop"><a href="https://iuliacazan.ro/image-regenerate-select-crop/" data-wpel-link="external" target="_blank" rel="external noopener">Image Regenerate &amp; Select Crop</a></h2>



<p>This lets you perform a bunch of helpful little things, including:</p>



<ul class="wp-block-list">
<li>You can define custom image &#8220;thumbnail&#8221; sizes (and modify WordPress&#8217;s defaults), which can be handy for tailoring your images to your actual presentation sizes.  The WordPress defaults are pretty arbitrary and typically don&#8217;t match what your theme desires, let-alone any other plug-ins&#8217; needs (such as for galleries, slideshows, etc).</li>



<li>You can adjust the default image compression quality setting (for each thumbnail size individually).<br><br>Note however that this doesn&#8217;t always apply, e.g. currently the <a href="#avif-support">AVIF Support</a> plug-in has a bug whereby it ignores this setting.  The setting seems to work for the built-in-supported image formats, though, like JPEG and WebP.</li>



<li>You can manually delete or [re]generate thumbnails in each of the possible sizes, for images both individually or en masse.  This can be handy if you change relevant settings (like compression quality, above) or in debugging situations (such as if you&#8217;re experimenting with other image plug-ins and they muck up your thumbnails).</li>
</ul>



<p>It&#8217;s free (albeit with optional paid &#8216;advanced&#8217; features).</p>



<h2 class="wp-block-heading"><a href="https://meowapps.com/wp-retina-2x/" data-wpel-link="external" target="_blank" rel="external noopener">Perfect Images</a></h2>



<p>It&#8217;s baffling that <em>to this day</em> WordPress doesn&#8217;t support modern displays &#8211; and I use &#8216;modern&#8217; in a very liberal sense, since we&#8217;re talking circa 2010 onwards.  That is, displays designed with a high pixel density that use a non-1-to-1 ratio of points to pixels.  i.e. any smartphone or quality computer display in the last decade.</p>



<p>The result is images that render at a quarter (or worse) of full resolution, looking pixelated or soft.</p>



<p>If you care enough about image quality to even consider what image formats or compression settings you&#8217;re using, you absolutely should be using Perfect Images.</p>



<p>Basically it fixes &amp; extends WordPress&#8217;s image support to &#8211; mostly automagically and invisibly &#8211; just work with full-resolution images.  It&#8217;s particularly noticeable and essential for things like screenshots, or any images containing text, as those are especially obvious if rendered incorrectly.</p>



<p>Its core functionality is free &#8211; and you can get a fair way with just the free version &#8211; but <a href="https://meowapps.com/products/wp-retina-2x-pro/" data-wpel-link="external" target="_blank" rel="external noopener">the pro version</a> is worth it, even if a bit pricey.</p>



<h3 class="wp-block-heading">Usage tips</h3>



<h4 class="wp-block-heading">Fix WordPress&#8217;s image size limit</h4>



<p>Make sure to check the &#8220;Image Threshold … Disable&#8221; checkbox in the General settings.  This fixes a truly obnoxious WordPress bug whereby it mangles uploads of large images.</p>



<h4 class="wp-block-heading">Upload &#8216;Retina&#8217; images specially</h4>



<p>For images which are explicitly &#8220;2x&#8221; &#8211; such as screenshots &#8211; it&#8217;s important to upload them &#8216;manually&#8217; using Media &gt; Add New Media File, as opposed to e.g. just drag-and-dropping them into a post.  The plug-in adds an &#8220;Upload New Retina Image&#8221; option to the dedicated upload page, which registers the uploaded image with WordPress at technically a quarter of its actual size.  That basically tricks WordPress into using the <em>correct</em> dimensions for the image &#8211; otherwise, WordPress mistakes the <em>pixel</em> dimensions for the <em>point</em> dimensions, and will naively try to display the image at four times its natural size.</p>



<p>Don&#8217;t worry, Perfect Images preserves the real, full-resolution version as the &#8220;2x&#8221; version of the upload, and will display that instead to your visitors.</p>



<p>This particular upload method is the <em>only</em> way to get images to render correctly in all cases.  In some places &#8211; e.g. embedded in posts &#8211; you can manually specify the correct image dimensions, but that&#8217;s both tedious and error-prone, and not possible in all uses.</p>



<p>The only caveat is that those images will look ugly and blurry in the post &amp; page editors.  Don&#8217;t worry, they&#8217;ll render correctly in the actual published (and preview) version of your posts &amp; pages.</p>



<p>For images which don&#8217;t have an intrinsic pixel density &#8211; such as photos &#8211; you typically don&#8217;t have to worry about this, as you&#8217;ll usually just let them render at whatever size the viewport &amp; layout permit, up to their natural full size.</p>



<h3 class="wp-block-heading">Limitations</h3>



<p>The core functionality works reliably in my experience (over <em>many</em> years now), but some of the peripheral features are broken or notably buggy:</p>



<ul class="wp-block-list">
<li>Image replacement will <em>not</em> work correctly if the file format changes &#8211; and it won&#8217;t even recognise this case and prevent it, instead leaving you with broken images.  Use <a href="#enable-media-replace">Enable Media Replace</a> for this instead.</li>



<li>Batch regeneration of thumbnails doesn&#8217;t work reliably &#8211; it will silently fail midway if an error occurs, such as it encountering a video file.  Use <a href="#image-regenerate-and-select-crop">Image Regenerate &amp; Select Crop</a> for this instead.</li>



<li>Custom Image Sizes don&#8217;t work correctly &#8211; they <em>always</em> force cropping of the image (&#8220;resize to fill&#8221;), rather than resizing to fit.  This is almost never what you want.  Use <a href="#image-regenerate-and-select-crop">Image Regenerate &amp; Select Crop</a> for this instead.</li>



<li>For the Pro version [only], auto-update doesn&#8217;t work.  You have to periodically check the website for new versions.</li>



<li>It sometimes reports &#8220;issues&#8221; for images, in its special dashboard under the Media section, when there aren&#8217;t any.  This is of course pretty insignificant &#8211; you can just ignore it &#8211; although it might hide any <em>actual</em> issues if they occur.  I did find a way to clear these bogus issues, but it involved manually deleting all thumbnails for all my images and regenerating them, which was a bit of an ordeal due to other, aforementioned bugs.  So I don&#8217;t recommend mucking with it.</li>
</ul>


<ol class="wp-block-footnotes"><li id="ce19f9a1-4b3d-427c-b205-ec8684b1e5ae">Note that <a href="https://nokiatech.github.io/heif/technical.html" data-wpel-link="external" target="_blank" rel="external noopener">HEIF <em>does</em> support lossless encoding</a> but support for this amongst actual encoding applications is poor to non-existent.  As such it&#8217;s generally not a suitable replacement for PNG in practice. <a href="#ce19f9a1-4b3d-427c-b205-ec8684b1e5ae-link" aria-label="Jump to footnote reference 1">↩︎</a></li><li id="42530c0c-bed1-4a7a-bff8-2c27f0a337bd">As the matrix shows, no version of <a href="https://en.wikipedia.org/wiki/Internet_Explorer" data-wpel-link="external" target="_blank" rel="external noopener">Internet Explorer</a> supports WebP.  But &#8211; though there apparently <em>is</em> some non-trivial number of people still using it &#8211; I don&#8217;t consider Internet Explorer a browser of concern anymore, given it has an official and straightforward successor in <a href="https://en.wikipedia.org/wiki/Microsoft_Edge" data-wpel-link="external" target="_blank" rel="external noopener">Edge</a>, and <a href="https://en.wikipedia.org/wiki/Internet_Explorer#Internet_Explorer_11" data-wpel-link="external" target="_blank" rel="external noopener">its last version was released <em>a decade ago</em> in 2013</a>. <a href="#42530c0c-bed1-4a7a-bff8-2c27f0a337bd-link" aria-label="Jump to footnote reference 2">↩︎</a></li><li id="416556d8-6d2c-4a41-9401-e301838a8bb7">Although for image compression, specifically, this is odd, since there&#8217;s only a couple of underlying libraries they could possibly be using, and while <a href="https://github.com/strukturag/libheif/wiki/AVIF-Encoder-Benchmark" data-wpel-link="external" target="_blank" rel="external noopener">they do vary significantly in speed</a> they should produce very similar outputs. <a href="#416556d8-6d2c-4a41-9401-e301838a8bb7-link" aria-label="Jump to footnote reference 3">↩︎</a></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/image-workflow-for-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2023/12/Image-Tool.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">7146</post-id>	</item>
	</channel>
</rss>
