WordPress image SEO & performance suite — WebP/AVIF conversion, a 6-point image SEO audit, bulk alt text, lazy loading, unused-media cleanup, and a BunnyCDN integration, all from one dashboard.
WordPress.org Listing · Changelog · Installation · Report a Bug
Most image plugins stop at compression. Erdo Image Optimizer goes further: every image in your media library gets a professional SEO health score (0–6), so you know exactly which images are hurting your rankings — and can fix them in bulk, in minutes.
| Dashboard | Failing SEO audit |
|---|---|
![]() |
![]() |
| Perfect score | Settings |
|---|---|
![]() |
![]() |
Image SEO Audit — a 6-point health score for every image
- Scores alt text, filename quality, title, contextual usage, dimensions, and format
- One-click fix for anything failing, plus a CSV export for reporting
- Missing Alt Text filter to focus the dashboard on what needs work
WebP & AVIF Converter
- One-click conversion from JPEG, PNG, GIF, and HEIC/HEIF (iPhone photos, via Imagick)
- Smart Quality mode automatically finds the smallest file size that still looks great; lossless mode for zero quality loss
- Original backup before every conversion, with one-click restore
- EXIF metadata stripper and Max Upload Width auto-resize
Filename Sanitizer
- Turns
IMG_1234 (copy).JPGintoprofessional-web-design.webpautomatically on upload - Bulk-rename existing files with automatic database reference updates (thumbnails, GUID, content, postmeta)
Unused Media Cleanup — scans posts, pages, and postmeta to find images that appear nowhere on your site, so you can reclaim disk space without guessing.
Lazy Loading & WebP Serving — loading="lazy" injected into content automatically, plus WebP delivery via .htaccess rewrite (Apache) or a PHP <picture> element fallback for every other server.
Background Queue & WP-CLI — bulk-convert thousands of images via WP-Cron and close the browser tab, or drive it from the command line: wp erdo convert|audit|restore|stats|clean-cache.
BunnyCDN & REST API — push converted images straight to BunnyCDN storage, or read stats/audit data from /wp-json/erdo/v1/stats and /wp-json/erdo/v1/audit for headless setups.
Dashboard & Extras — dashboard widget, before/after comparison slider, right-click context menu, S/M/L grid sizing, SVG upload support with XSS sanitization, and Multisite network settings.
- Site owners & bloggers who want smaller pages and better image rankings without learning image SEO themselves
- Agencies & freelancers who need to clean up a client's media library in bulk — filenames, alt text, formats, unused files — instead of one image at a time
- Developers who want CLI/REST access to bulk conversion and audit data for headless or large-catalog sites
wp plugin install erdo-image-optimizer --activate
Or manually: download from WordPress.org, upload the erdo-image-optimizer folder to /wp-content/plugins/, activate it, then open Image Optimizer in the wp-admin sidebar to run your first SEO audit.
Requirements: WordPress 5.8+, PHP 7.4+ (AVIF output needs PHP 8.1+ with GD's AVIF support).
wp erdo convert [--id=<id>] [--year=<year>] [--limit=<n>] [--dry-run]
wp erdo audit [--format=csv]
wp erdo restore --id=<id>
wp erdo stats
wp erdo clean-cache
| Endpoint | Description |
|---|---|
GET /wp-json/erdo/v1/stats |
Optimization statistics — total images, conversion rate, space saved |
GET /wp-json/erdo/v1/audit |
Full SEO audit results for the media library |
Runs entirely in your browser, no server or account needed.
Issues and pull requests are welcome — see CONTRIBUTING.md. This repository mirrors the plugin shipped on WordPress.org; releases are cut from the Stable tag in readme.txt.
trunk/— active development copy (the only folder to edit)tags/— frozen snapshots of past releasesassets/— WordPress.org listing assets (banner, icon)
If you find Erdo useful, a ⭐ on this repo or a review on WordPress.org helps other people find it.
Every AJAX handler verifies its nonce and requires the manage_options capability before doing anything. SVG uploads are gated behind an explicit opt-in and run through server-side sanitization to strip scripts before they ever reach the media library. If you find a security issue, please open an issue or contact the author directly rather than disclosing it publicly.
GPLv2 or later — see https://www.gnu.org/licenses/gpl-2.0.html.





