Alemedia

WebP and JPEG XL copies of every upload, served to browsers that accept them, plus a media library with folders.

A large photo frame shrinking into smaller lighter frames
Alemedia

At a glance

Version

0.4.2

Released

Released 2026-10-21

License

GPLv2 or later

WordPress

6.5 or newer

PHP

8.1 or newer

Alemedia

What does it do?

WebP on upload

A .webp copy next to the original and each subsize, at quality 82. Copies larger than the source are discarded.

JPEG XL when available

With libjxl-tools installed, JPEGs are repacked losslessly into .jxl and PNGs encoded at the WebP quality.

Content negotiation

Rewrite rules check the Accept header and serve .jxl, then .webp, then the original. Vary: Accept is appended.

Same URLs everywhere

Nothing in your content changes. Pages, themes, CDNs and caches keep pointing at the .jpg and .png files.

Bulk conversion

Images uploaded before the plugin, or before JXL support, are converted in batches from the admin.

Folders

A hierarchical folder taxonomy for attachments, managed from the Library screen and the media modal.

Clean-up on delete

When WordPress deletes an upload or regenerates sizes, the .webp and .jxl siblings go with it.

Self-updating

Rewrite rules are refreshed on every new version, and updates arrive under Dashboard → Updates.

First five minutes

What do I do right after activating?

A first result before you read anything else.

1. Upload an image

Go to Media → Add New and upload a JPEG or PNG. Alemedia writes a .webp sibling next to it and each thumbnail.

2. Check the served format

Open the image URL in your browser, then look at the response in the Network tab of the developer tools: the content type reads image/webp (or image/jxl).

3. Convert older images

Under Media → Alemedia, run the bulk conversion for everything uploaded before the plugin was active.

4. Make folders

Open Media → Library, add a folder and drag images into it. File paths do not change.

How it works

How does the browser get the smaller file?

The browser asks for the file it has always asked for. The server answers with the best format it can prove the browser accepts. This part needs Apache or LiteSpeed: see What does it need? below.

1. Upload

wp_generate_attachment_metadata runs. Alemedia writes photo.jpg.webp and, with cjxl present, photo.jpg.jxl beside photo.jpg and each thumbnail.

2. Request

The page still references photo.jpg. The browser sends Accept: image/jxl or image/webp alongside the request.

3. Rewrite

The .htaccess block checks the Accept header and that the sibling file exists, then serves it with the right content type.

4. Vary

A Vary: Accept header is appended, so proxies and CDNs cache one copy per format instead of mixing them up.

Install

How do I install it?

Two routes. Either one takes about a minute: a download, an upload and a click on Activate.

With Git Plugin

In your WordPress admin, open Plugins, click Git Plugin, paste the repository URL and click Install, then Activate.

https://git.web9.live/pcgraphics/alemedia

Get Git Plugin

Upload the zip

Download the zip, then in Plugins click Add New Plugin, then Upload Plugin. Choose the zip, click Install Now, then Activate.

What does it need?

  • WordPress 6.5 or newer
  • PHP 8.1 or newer
  • Apache or LiteSpeed with mod_rewrite: the plugin writes its serving rules to .htaccess on activation
  • On Nginx the copies are still made, but the originals are served until you add equivalent rules to the server config yourself
  • libjxl-tools (cjxl) on the server for JPEG XL output, optional

How do I update it?

Alemedia checks its repository for a newer release tag. A new version shows up under Dashboard → Updates next to your other plugins; click Update. If you uploaded the zip by hand, install Git Plugin to get the same update checks.

Is it really free?

GPLv2 or later, public repository, no paid tier, no license keys, no account. Use it on as many sites as you like, yours or your clients'.

Found a bug?

Open an issue on the repository. Say what you did, what you expected and what happened, and the plugin and WordPress versions from At a glance.

Open an issue
Works with

The rest of the set

Each plugin stands on its own. Together they cover building, forms, media, backups, admin and updates.

Want them preinstalled?

On Web9 hosting these are already installed, $12 per site per month.

See hosting