BytCrush Image Compression

Optimize every image in your Media Library in one click.

BytCrush brings the compression engine behind bytcrush.com straight into WordPress. It runs on your own server, with no API keys, no monthly quotas and no images leaving your site. Originals are always kept safe, and WebP and AVIF versions are served automatically.

Features

One click, whole library

Press “Optimize all images” and watch it work, with a live progress ring, savings counter and activity log. Pause and resume any time, or close the tab and let it finish on your server.

Originals are never lost

Every file is backed up byte for byte before it is touched. Restore one image or your entire library with a click.

Every size, not just the original

Thumbnails and every size WordPress or your theme generates are optimized too. New uploads are handled automatically.

WebP and AVIF, served automatically

Delivered with <picture> tags that work on any host and CDN, or with rewrite rules on Apache and LiteSpeed.

Tuned for quality

EXIF rotation is applied before metadata is removed, colour profiles are kept, JPEG quality is never raised above the source's, and a file is never replaced by a bigger one.

No API keys, no quotas

Compression runs on your own server with Imagick or GD. Nothing is uploaded to a third party and there is no monthly image limit.

Pro

Requires WordPress 5.3+ and PHP 7.2+. Tested up to WordPress 7.1.

Questions

Where are my originals?

In a private folder inside wp-content/uploads/ named bytcrush-backups- plus a random code unique to your site, mirroring your uploads folder. Settings shows the exact name. The random name keeps the originals, which still contain camera metadata, from being guessed, including on Nginx servers that ignore .htaccess protection.

Does my server support it?

BytCrush needs the Imagick (preferred) or GD PHP extension, which almost every host provides. The Settings screen shows whether your server can create WebP and AVIF.

Which PHP and WordPress versions are supported?

PHP 7.2 to 8.5 and WordPress 5.3 to 7.1. Every release is tested on each of those versions, on a strict shared-hosting setup (GD only, 64 MB memory, 30-second time limit) as well as on Nginx. AVIF needs PHP 8.1+ with GD, or Imagick with AVIF support.

I use Nginx.

Use the default “Picture tags” delivery method. It works on every server.

How do I exclude an image from picture-tag delivery?

Add the class no-bytcrush or the attribute data-bytcrush-skip to the <img> tag.

All WordPress plugins