This TYPO3 extension optimizes images (jpg, png, gif, svg) for web presentation when they are published. It will generate WebP versions of each rendered image and serve them to the client.
The current version (dev-master) of this extension has been tested in TYPO3 12 on PHP 8.1, 8.2 and 8.3.
This extension requires additional third-party tools.
- jpegoptim: utility to optimize/compress JPEG files
- optipng: OptiPNG is a PNG optimizer that recompresses image files to a smaller size, without losing any information
- pngquant: pngquant is a command-line utility and a library for lossy compression of PNG images
- svgo: Node.js tool for optimizing SVG files
- gifsicle: Create, manipulate, and optimize GIF images and animations
You should install them using your package manager of choice.
The following is an example installation on Ubuntu:
sudo apt-get install jpegoptim optipng pngquant gifsicle
sudo npm install -g svgo
macOS Example (using Homebrew)
brew install jpegoptim
brew install optipng
brew install pngquant
brew install svgo
brew install gifsicle
macOS Example (using MacPorts)
port install jpegoptim
port install optipng
port install pngquant
port install svgo
port install gifsicle
Install the package via composer.
composer require netlogix/nximageoptimizer
Place the following in your .htaccess file and images will be replaced with WebP version.
# Check if browser support WebP images
# Check if WebP replacement image exists
# Serve WebP image instead
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$0.webp -f
RewriteRule (.+)\.(jpe?g|png)$ $0.webp [T=image/webp,E=accept:1]
Tell every caching proxy to cache based on "accept" header
RewriteRule (.+)\.(jpe?g|png|webp)$ - [env=POTENTIAL_WEBP_IMAGE:1]
Header merge vary accept env=POTENTIAL_WEBP_IMAGE
The Ubuntu source package for imagemagick does not declare a build dependency on libwebp-dev. Thus imagemagick gets built without webp support. To fix this install the webp package.
sudo apt-get install webp