https://github.com/thisismyurl/thisismyurl-webp-support
Non-destructive WebP/AVIF conversion for WordPress Media Library images. Backups included. One-click restore.
https://github.com/thisismyurl/thisismyurl-webp-support
avif image-optimization media-library performance picture-element webp wordpress wordpress-plugin
Last synced: about 1 month ago
JSON representation
Non-destructive WebP/AVIF conversion for WordPress Media Library images. Backups included. One-click restore.
- Host: GitHub
- URL: https://github.com/thisismyurl/thisismyurl-webp-support
- Owner: thisismyurl
- License: gpl-2.0
- Created: 2026-04-21T13:31:11.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-14T13:09:53.000Z (about 2 months ago)
- Last Synced: 2026-05-14T15:18:18.808Z (about 2 months ago)
- Topics: avif, image-optimization, media-library, performance, picture-element, webp, wordpress, wordpress-plugin
- Language: PHP
- Homepage: https://thisismyurl.com/thisismyurl-webp-support/
- Size: 161 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# This Is My URL - WEBP Support
[](https://github.com/thisismyurl/thisismyurl-webp-support/actions/workflows/ci.yml) [](https://wordpress.org/) [](LICENSE)
Current version: **0.6126**
A WordPress plugin that converts Media Library attachments (JPEG, PNG, GIF, BMP) to WebP or AVIF non-destructively, with safe backups and one-click restore. Built for site owners who want modern image formats without giving up the ability to roll back.
## What It Does
- Tools > WebP Support page with Optimize, Settings, Pending, and Managed Media sections.
- **Output Format** setting: WebP (default), AVIF (requires Imagick with libheif), or Both (AVIF primary + WebP companion via `` for format negotiation).
- **Quality Preset** setting: Web (82), Print (95), Lossless (100), or Custom.
- Per-format conversion toggles for JPG/JPEG, PNG, GIF, and BMP.
- Non-destructive batch conversion with progress bar, savings stats, and a working Cancel.
- Pending table shows per-image file sizes; Managed Media table shows bytes saved.
- Single-image Restore plus a Restore All Originals bulk action.
- Per-attachment lock so two operators (or two browser tabs) cannot race the same file.
- Attachment metadata regenerated after each conversion or restoration.
- Optional backup-folder cleanup on uninstall.
- WP-CLI: `wp webp convert `, `wp webp restore `, `wp webp status`.
- French (Canada) translation included (`fr_CA`).
## What It Does Not Do
The 0.6115 README listed several features that were never in the code. Those claims have been retracted. This plugin does **not** ship:
- A tabbed admin UI or ROI report.
- Optimize-on-upload, background auto-optimize, or WP-Cron scheduling.
- EXIF / GPS / metadata stripping.
- Outbound UTM tagging.
- Theme-image conversion (removed in 0.6123 — incompatible with managed hosts).
If you need any of those, this is not the plugin for you. Open an issue if you'd like one of them added.
## Requirements
- WordPress 6.0 or later
- PHP 8.1 or later
- WordPress image editor support (GD or Imagick)
## Installation
1. Copy this plugin into your plugins directory as `thisismyurl-webp-support/`.
2. Activate **WEBP Support by This Is My URL** in `wp-admin > Plugins`.
3. Open `Tools > WebP Support`.
4. Configure quality, batch size, and enabled source formats.
5. Click **Optimize All** to start.
## How Backup and Restore Works
- On conversion the original is moved to `uploads/webp-backups//`.
- The attachment record is updated to point at the new `.webp` file.
- Backup paths are stored relative to `uploads/basedir/` so dev↔prod database copies survive migration. Legacy absolute paths from earlier versions are still understood on read.
- Restoring moves the original back, deletes the WebP, and regenerates metadata.
## Security and Standards
- Direct-access protection (`ABSPATH` check).
- Nonce verification on every AJAX action.
- `current_user_can( 'manage_options' )` capability checks on every admin / AJAX handler.
- Output escaping and input sanitization aligned with WordPress Coding Standards.
- Settings API used with a sanitization callback.
- No external services. No phone-home. No telemetry.
## Versioning
This plugin uses the format `x.Yddd`:
- `x` = release class (`0` pre-release, `1` full release)
- `Y` = last digit of the year
- `ddd` = Julian day of the release
`0.6123` = pre-release built on Julian day 123 of 2026 (May 3).
## Changelog
See [CHANGELOG.md](CHANGELOG.md).
## License
GPL-2.0-or-later. See [LICENSE](LICENSE).
---
*This project follows the [10 Core Pillars](PILLARS.md). Support quality work [here](https://github.com/sponsors/thisismyurl).*