Description
Two jobs your media library needs doing, and nobody has time to do by hand.
Compression to WebP. Every image you upload becomes WebP at a size you choose, keeping every thumbnail WordPress made. Your existing library can be converted in place. This runs on your own server, costs nothing, and has no limit — with or without an account.
A library audit. One screen showing what search engines cannot read: images with no alt text, filenames like IMG_4837.jpg, and everything still sitting in JPEG or PNG. It is usually more than people expect.
Titles, alt text and descriptions written by AI. Not generic captions — written from keywords you set once, for the products you actually sell. Filenames can be renamed to match, which is what decides whether an image is found in Google Images at all.
Every market you sell into. The same photo described in Polish for Poland and German for Germany, each with the words people search with in that country — not a word-for-word translation of the first one.
What it costs
Compression and the audit are free, on every plan, without limits. They run on your server and cost us nothing.
Twenty-one languages, not just English. The plugin’s own screens speak English, Polish, German, Spanish, French, Italian, Portuguese, Dutch, Czech, Slovak, Romanian, Hungarian, Turkish, Bulgarian, Croatian, Greek, Ukrainian, Finnish, Swedish, Danish and Norwegian — complete, not half-finished. It follows your WordPress language on its own, or you set it separately in the settings.
What you pay for is the writing: one description is one image in one language. A free account covers five, without a card, so you can see what it writes about your own products before deciding.
External services
This plugin relies on one external service.
The AI writing happens on our servers, not on yours, so some data leaves your site. In detail:
- Service: ConverterSEO API, at
https://api.converterseo.com, operated by DESEO DESIGN sp. z o.o. (Katowice, Poland). - When: when you press a button that writes something, and when one of the plugin’s own admin screens opens — that second call only asks which plan you are on and how much of your allowance is left, and the answer is cached for 15 minutes. Never on the front end, never for your visitors. With no licence key connected the plugin makes no outbound request at all.
- What is sent with every request: your licence key, and your site address. The address is what lets us tell you which of your sites a licence is being used on, and refuse one more than your plan covers.
- What is sent when writing: the image itself, its file type, the language you chose, and — when you ask for a rewrite — the title, alt text and description the image already has.
- What is never sent: anything about your visitors, your posts, your users, or your database. There is no analytics and no tracking of any kind.
- Onward processing: to write the description, our server sends the image to Anthropic PBC (USA). It is not used to train models.
Terms of service: https://converterseo.com/terms/
Privacy policy: https://converterseo.com/privacy/
Refund policy: https://converterseo.com/refunds/
Compression and the audit involve no external service at all — they run entirely on your own server, with or without an account.
Screenshots










Installation
- Install and activate the plugin.
- Compression and the audit work immediately, with no account and no limit.
- For AI writing, create a free account at https://converterseo.com — no card needed — and paste your licence key into ConverterSEO Dashboard.
- Describe your business once in your account. Everything written afterwards is built from that.
FAQ
-
Do I need an account?
-
Not for compression or the audit — those work the moment you activate the plugin and have no limit. Only the AI writing needs an account, and the free one needs no card: five images, so you can see what it writes about your own products before deciding.
-
Do I need an OpenAI or Anthropic key?
-
No. The licence key replaces it. You never hold an AI provider key and never see a usage bill from one.
-
Will converting my library break my site?
-
No. Every thumbnail size WordPress made is kept, and attachments are updated to point at the new files. Filenames are only changed when you ask for it, and files already used in published posts keep their names, so nothing that is live can break.
-
What happens to my descriptions if I cancel?
-
They stay. Titles, alt text and descriptions are written into your own WordPress, on your own server. Cancelling stops new writing; it does not reach into your site and take anything away.
-
Can it write in more than one language?
-
Yes, and that is most of the point. Each market gets its own keywords, written the way people search in that country. One description is one image in one market, so a photo described for four markets uses four descriptions from your allowance.
-
What languages is the plugin itself in?
-
English, Polish, German, Spanish, French, Italian, Portuguese, Dutch, Czech, Slovak, Romanian, Hungarian, Turkish, Bulgarian, Croatian, Greek, Ukrainian, Finnish, Swedish, Danish and Norwegian. It follows your WordPress language, or you can set it separately in the plugin’s settings.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“ConverterSEO – WebP Converter and Image SEO” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “ConverterSEO – WebP Converter and Image SEO” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.31.0
- Fixed: choosing an interface language in the settings had no effect when the
translation shipped inside the plugin rather than as a language pack — the
screens stayed in English and said no translation was available. Both
locations are now checked, and the notice on the settings screen reports what
actually happened. - Fixed: a second copy of the plugin left in another folder could take the whole
site down with a fatal error instead of being ignored. The main file now
declares nothing itself, so the guard against a duplicate copy actually works,
and the second copy shows a notice saying which one to deactivate.
1.30.0
- Note: the copy downloaded from the author’s own website is the same plugin
with the interface translations bundled in the ZIP, for people who install it
before language packs exist. The copy in this directory takes its translations
from translate.wordpress.org, as the guidelines require. Same plugin, same
slug, so one replaces the other on install. - Changed: the plugin no longer takes a top-level admin menu item. Its three
screens now sit under Media, next to the library they work on. This follows
the placement advice in the review guidelines and puts the tool where someone
looking for an image tool actually looks.
1.29.1
- Fixed: the tick inside a checked checkbox could render in WordPress’s blue
rather than white, which reads as a dark mark on the plugin’s orange square.
Older WordPress releases fill that SVG with #3582c4; the plugin now supplies
its own white one, so the colour no longer depends on the WordPress version.
1.29.0
- Security: the AJAX endpoints checked only the general upload_files capability
before acting on an attachment id taken from the request. A user who could
upload files could therefore rewrite the metadata of, rename, copy, archive
or compress an image belonging to somebody else. All six endpoints now check
edit_post against the specific attachment, and the bulk screen lists only
images the current user may edit. - Changed: translations are no longer bundled. The plugin is fully
internationalised and receives translations through translate.wordpress.org.
1.28.0
- Changed: the plugin’s admin menu no longer claims a position just below
Media. WordPress now appends it after Settings, where plugins belong. The
earlier placement competed with core items for visibility instead of
following the admin hierarchy users rely on.
1.27.0
- Added: the conversion result now reports the dimensions as well as the weight,
for example “188 KB to 79 KB · 1024×1024 800×800”. Conversion replaces the
file, so the original dimensions stop existing the moment it finishes and
there was no way to confirm what had happened to them. Now there is, on every
image. Compression has never cropped and does not crop — the maximum width
scales the whole picture and keeps its proportions — but a square photograph
coming out square is easy to mistake for a crop, and this removes the doubt.
1.26.0
- Fixed: the broken-image icon beside the language flag on media library
thumbnails. The fix in 1.25.1 was incomplete and did nothing here — WordPress
hands the newly added badge to its emoji script as the top of the tree, and
the exclusion it honours is only ever checked on elements below that point.
The flag now sits one level deeper, where the exclusion is read, and no
picture is fetched from outside at all. - Changed: the result of a conversion now appears directly under the Convert
button instead of at the very bottom of the panel, three boxes below the
button that produced it. - Changed: the size and width boxes line up in a column, so both lines end at
the same edge instead of drifting apart.
1.25.1
- Fixed: a broken-image icon appeared next to the language flag in the media
library. The flag is written as plain text, but WordPress replaces emoji
characters with pictures fetched from an outside server, and when that fetch
is blocked — by an ad blocker, a firewall, or a site with no outbound access —
the browser draws a broken image and the flag beside it. That is why it looked
like the flag was being drawn twice: it was, once as a picture and once as the
picture’s fallback text. The flag is now excluded from that replacement and is
drawn by the system font, with no outside request at all. On Windows, which
has no glyphs for country flags, it shows the country letters instead.
1.25.0
- Fixed: the panel beside an image in the media library did not appear at all
until a licence key was connected, so a new installation offered no way to
compress anything. Compression runs in PHP on your own server, costs nothing
and has never needed a key — the button to reach it was simply missing. The
size box now always shows; only writing descriptions waits for a key. - Fixed: the translations that ship with the plugin were rebuilt. The compiled
files had fallen five days behind their sources, so a handful of screens came
out in English on a translated site. They are now rebuilt on every release and
cannot drift again.
1.24.0
- Added: the attachment sidebar now has a maximum-width box, the same one the
bulk tab has, filled in with 1000 px. - Fixed: converting a single image from the sidebar could not reach the size you
asked for. Without a width to work with, quality was the only lever and it
stops at 30, so a wide photograph landed at roughly 200 KB whatever number you
typed. It was never a second, weaker compressor — it was the same one, denied
permission to make the image narrower. - Fixed: the convert button on a row of the compression table ignored the size
and width you had just entered above it and always aimed at 130 KB. - Changed: compression now sits at the top of the attachment sidebar, above
writing descriptions. You compress a file first and describe it afterwards;
the other order means describing an image that is about to be replaced.
1.23.6
- Fixed: the media library showed no language marker for most markets. Only
twelve of the twenty-nine had a flag, so Bulgarian, Greek, Croatian, Romanian,
Hungarian, Swedish, Danish, Norwegian, Finnish, Turkish, Lithuanian, Latvian,
Estonian and every regional variant appeared unlabelled. A market without a
flag now falls back to its code, the way the plugin’s own tables always did,
so nothing can go unmarked again. - Fixed: transliterated file names now follow each country’s official
romanisation consistently.
1.23.5
- Fixed: file names for languages not written in the Latin alphabet. Bulgarian,
Greek, Ukrainian and other such markets produced a two-hundred character run
of percent escapes instead of a readable name. The name now comes back
transliterated — “drveno-kreslo-maystorska-izrabotka” rather than
“%d0%b4%d1%80%d0%b2%d0%b5%d0%bd%d0%be”. Titles, alt text and descriptions
were never affected.
1.23.4
- First public release.
