WebP Express

plugin banner

Serve autogenerated WebP images instead of jpeg/png to browsers that supports WebP.

Author:Bjørn Rosell (profile at wordpress.org)
WordPress version required:4.0
WordPress version tested:6.5.2
Plugin version:0.25.9
Added to WordPress repository:01-08-2018
Last updated:20-10-2023
Rating, %:88
Rated by:156
Plugin URI:https://github.com/rosell-dk/webp-express
Total downloads:3 104 476
Active installs:300 000+
plugin download
Click to start download

More than 9 out of 10 users are using a browser that is able to display webp images. Yet, on most websites, they are served jpeg images, which are typically double the size of webp images for a given quality. What a waste of bandwidth! This plugin was created to help remedy that situation. With little effort, WordPress admins can have their site serving autogenerated webp images to browsers that supports it, while still serving jpeg and png files to browsers that does not support webp.

The image converter

The plugin uses the WebP Convert library to convert images to webp. WebP Convert is able to convert images using multiple methods. There are the “local” conversion methods: imagick, cwebp, vips, gd. If none of these works on your host, there are the cloud alternatives: ewww (paid) or connecting to a WordPress site where you got WebP Express installed and you enabled the “web service” functionality.

The “Serving webp to browsers that supports it” part.

The plugin supports different ways of delivering webps to browsers that supports it:

  1. By routing jpeg/png images to the corresponding webp – or to the image converter if the image hasn’t been converted yet.
  2. By altering the HTML, replacing image tags with picture tags. Missing webps are auto generated upon visit.
  3. By altering the HTML, replacing image URLs so all points to webp. The replacements only being made for browsers that supports webp. Again, missing webps are auto generated upon visit.
  4. In combination with Cache Enabler, the same as above can be achieved, but with page caching.
  5. You can also deliver webp to all browsers and add the webpjs javascript, which provides webp support for browsers that doesn’t support webp natively. However, beware that the javascript doesn’t support srcset attributes, which is why I haven’t added that method to the plugin (yet).

The plugin implements the “WebP On Demand” solution described here and builds on a bunch of open source libraries (all maintained by me):
WebP Convert: For converting images to webp
WebP Convert Cloud Service: For the Web Service functionality
DOM Util for WebP: For the Alter HTML functionality
Image MimeType Guesser: For detecting mime types of images.
HTAccess Capability Tester: For testing .htaccess capabilities in a given directory, using live tests
WebP Convert File Manager: For browsing conversions and triggering conversions.
Exec With Fallback: For emulating exec() on systems where it is disabled (using proc_open(), passthru() or similar alternatives).

Benefits

  • Much faster load time for images in browsers that supports webp. The converted images are typically less than half the size (for jpeg), while maintaining the same quality. Bear in mind that for most web sites, images are responsible for the largest part of the waiting time.
  • Better user experience (whether performance goes from terrible to bad, or from good to impressive, it is a benefit).
  • Better ranking in Google searches (performance is taken into account by Google).
  • Less bandwidth consumption – makes a huge difference in the parts of the world where the internet is slow and costly (you know, ~80% of the world population lives under these circumstances).
  • Currently ~97% of all traffic are done with browsers supporting webp.
  • It’s great for the environment too! Reducing network traffic reduces electricity consumption which reduces CO2 emissions.

Limitations

Supporting WebP Express

Bread on the table don’t come for free, even though this plugin does, and always will. I enjoy developing this, and supporting you guys, but I kind of need the bread too. Please make it possible for me to continue wasting time on this plugin:

Supporters of WebP Express

Persons who recently contributed with ko-fi – Thanks!

  • 18 Oct: Magestyx
  • 10 Oct: Jesper
  • 4 Oct: Caio Nogueira
  • 22 Sep: Mark
  • 8 Sep: Brinsley
  • 4 Aug: Henri
  • 13 Jun: Pat
  • 2 May: Label Vier
  • 28 Apr: Nealboy

Persons who contributed with extra generously amounts of coffee / lifetime backing (>30$) – thanks!:

  • Max Kreminsky ($115)
  • Justin – BigScoots ($105)
  • Bill Vallance ($102)
  • Label Vier ($100)
  • Sebastian ($99)
  • Tammy Lee ($90)
  • Steven Sullivan ($51)
  • Mathieu Gollain-Dupont ($50)
  • Erica Dreisbach ($50)
  • Brian Laursen ($50)
  • Dimitris Vayenas ($50)

Persons currently backing the project via GitHub Sponsors or patreon – Thanks!


Screenshots
FAQ
ChangeLog