← All releases

wp-content/plugins/tallow/tallow.php

Tallow

Compress uploads on your own server, and keep the original.

== Description ==

Every popular image optimiser uploads your images to someone else’s server, charges per image, and stops working when the subscription lapses. Tallow uses the image libraries already on your host, runs in the background, and has no external dependency at all.

It generates AVIF and WebP alongside the original format and serves them with a picture element, falling back correctly for browsers that want the original. The original file is never overwritten, so a bad compression setting is undoable.

On a typical photography upload it saves 55–70% at a quality setting most people cannot distinguish in a blind comparison. The readme includes the comparison methodology, because everyone quotes a percentage and nobody says how they got it.

== Screenshots ==

Numbered the way they ship in /assets/. Click any one to see it full width.

== Installation ==

  • Install and activate the plugin. It reports which image libraries your host has.
  • Set a quality level, or accept the default of 82.
  • Run wp tallow optimise --all for existing uploads, in the background.

Requires Imagick or GD with the relevant format support. It will tell you exactly what is missing.

== Frequently asked questions ==

Can I undo it?

Yes. Originals are kept, and wp tallow restore puts everything back.

Does it work on shared hosting?

Usually. AVIF encoding is CPU-heavy; the background queue is rate-limited so it does not get you throttled.

Does anything leave my server?

Nothing. There is no HTTP client in the codebase.

== Changelog ==

= 3.6.0 =

  • AVIF generation, behind a capability check for hosts without encoder support.
  • Background queue is rate-limited by load average rather than a fixed delay.

= 3.4.0 =

  • Originals are always retained. Previously the retain setting defaulted to off, which was the wrong default.

= 3.0.0 =

  • Dropped the optional cloud service entirely. Local encoding is now the only path.