Linux 软件免费装
Banner图

Erdo Image Optimizer – Image SEO, AI Alt Text, Media Cleanup, WebP & AVIF

开发者 erdincbulat
更新时间 2026年10月30日 20:46
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

alt text webp image seo avif unused images

下载

2.1.0 2.0.1 1.8.5 2.2.2 2.0.0 2.2.0 2.2.1 3.0.0

详情介绍:

Erdo Image Optimizer is an image SEO plugin for WordPress. It scores every image in your media library from 0 to 100 and helps you fix what holds it back in Google Images and on your pages: missing or weak alt text (written by you, taken from the file name, or suggested by AI), camera file names such as IMG_1234 (renamed safely, with 301 redirects), unused images (moved to a reversible quarantine), and heavy JPEG and PNG files (served as WebP or AVIF copies while the originals stay untouched). Nothing is changed without a preview, and almost everything can be undone. Image SEO score AI alt text with your own key (WordPress 7.0+) Safe renaming Unused media cleanup with quarantine WebP and AVIF without touching originals Also included What it does not do

安装:

  1. Install the plugin from Plugins > Add New, or upload the erdo-image-optimizer folder to /wp-content/plugins/.
  2. Activate it.
  3. Open Image Optimizer in the admin menu. The first-run setup tests your server, recommends settings and builds the usage index.
  4. Optional: to use AI suggestions on WordPress 7.0 or newer, connect Anthropic, Google or OpenAI under Settings > Connectors.

屏幕截图:

  • Library: every image with its score, filterable by issue, in grid or list view.
  • Image detail panel: score breakdown, where the image is used, file sizes, WebP/AVIF copies and editable alt text, file name and title.
  • AI suggestions: current and suggested values side by side, accepted field by field.
  • Cleanup: unused images and the quarantine, with one-click restore.
  • Bulk rename: preview of the new file names before anything is changed.
  • Settings: each option with a one-sentence explanation.
  • First-run setup: server test and recommended settings.

升级注意事项:

3.0.0 Major rebuild: originals are never changed again, unused images go to a reversible quarantine, and there is a new 0-100 SEO score and AI alt text. If 2.x converted your images, use the "Repair now" notice after updating.

常见问题:

Are my original images changed?

No. WebP and AVIF copies are saved next to the originals, and "Remove copies" simply deletes them. Three features do write files, and only when you use them: renaming moves files to the new name (and can be undone), resizing in the detail panel creates a smaller version and keeps the original for undo, and the optional "Remove camera data (EXIF)" setting rewrites each new upload once.

What does quarantine mean, and how do I restore an image?

Quarantine replaces deletion. The image's files (all sizes and copies) are moved to a folder with an unguessable name inside your uploads directory and the image is hidden from the media library. Nothing is lost: open the Cleanup tab and click Restore on one image, or "Restore all". Images are deleted permanently only when you choose to, or after a number of days if you turn on automatic emptying (off by default).

How does the plugin know an image is unused, and what can it miss?

It keeps an index of every place an image is referenced: post and page content (by ID and by URL, including resized, -scaled and WebP/AVIF URLs), featured images, galleries, custom fields and page builder data, theme settings, widgets, site logo and icon, term images and WooCommerce galleries. Drafts and trashed posts count as used. An image that is only attached to a post but not shown in it counts as unused. It cannot see images hard-coded in theme or plugin PHP files, images used only in CSS files, images stored in custom database tables, or images linked from other websites. That is why unused images go to quarantine first.

Does it work with Cloudflare and other CDNs?

Yes. The default delivery method writes <picture> tags into the HTML, so every browser gets a URL it can use and caches do not mix formats up. The .htaccess method serves different files under the same URL; use it only if your CDN respects the Vary: Accept header. The setup detects Cloudflare and recommends <picture> tags.

Does the .htaccess method work on LiteSpeed and nginx?

LiteSpeed and OpenLiteSpeed read the same rules as Apache, but apply a changed .htaccess only after up to a minute, so check the result after that. nginx does not read .htaccess: copy the snippet from Settings > Delivery into your server { } block (not inside a location) and reload nginx. In both cases the old URLs of renamed images keep redirecting.

Which AI providers can I use, and what does it cost?

Anthropic (Claude), Google (Gemini) or OpenAI, connected under Settings > Connectors in WordPress 7.0 or newer. You pay your provider directly, with your own key. The plugin prefers small, inexpensive vision models; its own estimate is roughly $0.15 to $0.40 per 1,000 images, shown before every bulk run. Actual prices depend on your provider and model.

What is sent to the AI provider, and is anything saved automatically?

For each image: the image itself (at most 1024 px on the long side) plus short text context, namely the title of the page it appears on, up to 500 characters of text around it, the focus keyword, the current alt text and title, the content language, and the product name and categories for WooCommerce products. No user names, e-mail addresses or other personal data are sent. Requests happen only when you ask for a suggestion, or after an upload if you turn on "Suggest on upload". Nothing is written to your images until you accept a suggestion. See "External services" below for details.

Which WP-CLI commands are available?

  • wp erdo convert [--id=<id>] [--year=<year>] [--limit=<n>] [--dry-run] creates WebP/AVIF copies.
  • wp erdo restore --id=<id> removes the copies of one image.
  • wp erdo audit [--format=table|csv|json] [--limit=<n>] [--status=red|orange|green|gray] prints SEO scores and issues.
  • wp erdo stats shows library and encoder statistics.
  • wp erdo index [--status] builds the usage index or shows its status.
  • wp erdo unused [--format=table|csv|json|ids] lists unused images.
  • wp erdo quarantine list|add|restore|purge|add-unused [--id=<id>] [--yes] manages the quarantine.
  • wp erdo rename [<id>...] [--all] [--name=<name>] [--pattern=<pattern>] [--keyword=<keyword>] [--dry-run] [--undo=<batch>] renames images safely.
  • wp erdo migrate [--dry-run] [--batch=<n>] repairs images converted by version 2.x.
  • wp erdo clean-cache clears the audit cache.

What happens when I delete the plugin?

Your original images stay. Settings, the usage index, scores, rename history and the .htaccess rules are removed; old-URL redirects stop working at that point. Under Settings > Uninstall you choose whether the WebP/AVIF copies are deleted (default) or kept, and whether quarantined images are put back into the media library (default) or deleted permanently. Deactivating the plugin only removes the .htaccess rules and scheduled tasks.

I used version 2.x. What changes, and what is the repair tool?

Version 2.x replaced originals with WebP files and did not update the image links in your content, which could leave broken images. Version 3.0 never does this. After updating, if the plugin finds images converted by 2.x, a notice offers "Repair now" (or run wp erdo migrate). If a 2.x backup exists, the original is put back and a WebP copy is created next to it. If there is no backup, links to the old JPEG/PNG files are pointed to the existing WebP file, safely for serialized data. Until the repair runs, a fallback keeps such images visible on your pages. SVG uploads, the BunnyCDN integration, the lazy-loading filter and the network settings page were removed in 3.0. For SVG, use a dedicated plugin such as Safe SVG; for BunnyCDN, use a pull zone.

Does it support HEIC or SVG?

No. Copies are created from JPEG, PNG and GIF images. Images that are already WebP or AVIF are scored but not converted.

更新日志:

3.0.0 This release rebuilds the plugin around safety and image SEO. 2.2.2 2.2.1 2.2.0 2.1.0 2.0.1 2.0.0 1.8.5