{"id":361572,"date":"2026-09-07T21:56:17","date_gmt":"2026-09-07T21:56:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/converterseo\/"},"modified":"2026-09-07T21:55:46","modified_gmt":"2026-09-07T21:55:46","slug":"converterseo","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/converterseo\/","author":23557781,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.31.0","stable_tag":"1.31.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"ConverterSEO \u2013 WebP Converter and Image SEO","header_author":"DESEO DESIGN","header_description":"Compress images to WebP and write SEO titles, alt text and descriptions with AI \u2014 in any language your customers search in.","assets_banners_color":"17110c","last_updated":"2026-09-07 21:55:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/converterseo.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.31.0":{"tag":"1.31.0","author":"converterseo","date":"2026-09-07 21:55:46","revision":3685644}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3685644,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3685644,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3685644,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3685644,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.31.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3685644,"resolution":"1","location":"assets","locale":"","width":1500,"height":1405},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3685644,"resolution":"10","location":"assets","locale":"","width":1500,"height":1253},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3685644,"resolution":"2","location":"assets","locale":"","width":1500,"height":1401},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3685644,"resolution":"3","location":"assets","locale":"","width":1500,"height":1401},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3685644,"resolution":"4","location":"assets","locale":"","width":1500,"height":1401},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3685644,"resolution":"5","location":"assets","locale":"","width":1500,"height":1400},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3685644,"resolution":"6","location":"assets","locale":"","width":1500,"height":1402},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3685644,"resolution":"7","location":"assets","locale":"","width":1500,"height":1401},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3685644,"resolution":"8","location":"assets","locale":"","width":1500,"height":1401},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3685644,"resolution":"9","location":"assets","locale":"","width":1500,"height":1253}},"screenshots":{"1":"What the plugin does, on one screen: compression to WebP, then titles, alt text, descriptions and filenames \u2014 in your language and in the languages your customers search in.","2":"The audit finds every image still sitting in JPEG or PNG, with its weight. Choose a target size and a maximum width.","3":"Compression running across the library, with progress and the count done.","4":"The same files afterwards: megabytes turned into kilobytes, every thumbnail WordPress made kept.","5":"Images with no title, alt text or description \u2014 invisible to search engines. Pick the market and start.","6":"Writing in progress. Nothing is invented: the text is built from your business, your industry, your product categories and your keywords.","7":"The same rows filled in \u2014 title, alt text, description and filename, all four.","8":"One tick and the same images are written again for a foreign market, in the language people search in there. The file is copied, not compressed again.","9":"Thousands of images and you need one product's. Type the SKU, get its family, and write for all of it at once.","10":"Every screen is fully internationalised and follows your WordPress language, or you pick a language in the settings. Translations arrive through translate.wordpress.org."}},"plugin_section":[],"plugin_tags":[17214,29161,6357,15376,186483],"plugin_category":[],"plugin_contributors":[279621],"plugin_business_model":[],"class_list":["post-361572","plugin","type-plugin","status-publish","hentry","plugin_tags-alt-text","plugin_tags-image-optimization","plugin_tags-image-seo","plugin_tags-webp","plugin_tags-webp-converter","plugin_contributors-converterseo","plugin_committers-converterseo"],"banners":{"banner":"https:\/\/ps.w.org\/converterseo\/assets\/banner-772x250.png?rev=3685644","banner_2x":"https:\/\/ps.w.org\/converterseo\/assets\/banner-1544x500.png?rev=3685644","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/converterseo\/assets\/icon-128x128.png?rev=3685644","icon_2x":"https:\/\/ps.w.org\/converterseo\/assets\/icon-256x256.png?rev=3685644","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-1.png?rev=3685644","caption":"What the plugin does, on one screen: compression to WebP, then titles, alt text, descriptions and filenames \u2014 in your language and in the languages your customers search in."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-2.png?rev=3685644","caption":"The audit finds every image still sitting in JPEG or PNG, with its weight. Choose a target size and a maximum width."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-3.png?rev=3685644","caption":"Compression running across the library, with progress and the count done."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-4.png?rev=3685644","caption":"The same files afterwards: megabytes turned into kilobytes, every thumbnail WordPress made kept."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-5.png?rev=3685644","caption":"Images with no title, alt text or description \u2014 invisible to search engines. Pick the market and start."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-6.png?rev=3685644","caption":"Writing in progress. Nothing is invented: the text is built from your business, your industry, your product categories and your keywords."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-7.png?rev=3685644","caption":"The same rows filled in \u2014 title, alt text, description and filename, all four."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-8.png?rev=3685644","caption":"One tick and the same images are written again for a foreign market, in the language people search in there. The file is copied, not compressed again."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-9.png?rev=3685644","caption":"Thousands of images and you need one product's. Type the SKU, get its family, and write for all of it at once."},{"src":"https:\/\/ps.w.org\/converterseo\/assets\/screenshot-10.png?rev=3685644","caption":"Every screen is fully internationalised and follows your WordPress language, or you pick a language in the settings. Translations arrive through translate.wordpress.org."}],"raw_content":"<!--section=description-->\n<p>Two jobs your media library needs doing, and nobody has time to do by hand.<\/p>\n\n<p><strong>Compression to WebP.<\/strong> 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 \u2014 with or without an account.<\/p>\n\n<p><strong>A library audit.<\/strong> One screen showing what search engines cannot read: images with no alt text, filenames like <code>IMG_4837.jpg<\/code>, and everything still sitting in JPEG or PNG. It is usually more than people expect.<\/p>\n\n<p><strong>Titles, alt text and descriptions written by AI.<\/strong> Not generic captions \u2014 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.<\/p>\n\n<p><strong>Every market you sell into.<\/strong> The same photo described in Polish for Poland and German for Germany, each with the words people search with in that country \u2014 not a word-for-word translation of the first one.<\/p>\n\n<h4>What it costs<\/h4>\n\n<p>Compression and the audit are free, on every plan, without limits. They run on your server and cost us nothing.<\/p>\n\n<p><strong>Twenty-one languages, not just English.<\/strong> 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 \u2014 complete, not half-finished. It follows your WordPress language on its own, or you set it separately in the settings.<\/p>\n\n<p>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.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin relies on one external service.<\/p>\n\n<p>The AI writing happens on our servers, not on yours, so some data leaves your site. In detail:<\/p>\n\n<ul>\n<li><strong>Service:<\/strong> ConverterSEO API, at <code>https:\/\/api.converterseo.com<\/code>, operated by DESEO DESIGN sp. z o.o. (Katowice, Poland).<\/li>\n<li><strong>When:<\/strong> when you press a button that writes something, and when one of the plugin's own admin screens opens \u2014 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.<\/li>\n<li><strong>What is sent with every request:<\/strong> 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.<\/li>\n<li><strong>What is sent when writing:<\/strong> the image itself, its file type, the language you chose, and \u2014 when you ask for a rewrite \u2014 the title, alt text and description the image already has.<\/li>\n<li><strong>What is never sent:<\/strong> anything about your visitors, your posts, your users, or your database. There is no analytics and no tracking of any kind.<\/li>\n<li><strong>Onward processing:<\/strong> to write the description, our server sends the image to Anthropic PBC (USA). It is not used to train models.<\/li>\n<\/ul>\n\n<p>Terms of service: https:\/\/converterseo.com\/terms\/\nPrivacy policy: https:\/\/converterseo.com\/privacy\/\nRefund policy: https:\/\/converterseo.com\/refunds\/<\/p>\n\n<p>Compression and the audit involve no external service at all \u2014 they run entirely on your own server, with or without an account.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Compression and the audit work immediately, with no account and no limit.<\/li>\n<li>For AI writing, create a free account at https:\/\/converterseo.com \u2014 no card needed \u2014 and paste your licence key into ConverterSEO \u2192 Dashboard.<\/li>\n<li>Describe your business once in your account. Everything written afterwards is built from that.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%3F\"><h3>Do I need an account?<\/h3><\/dt>\n<dd><p>Not for compression or the audit \u2014 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.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20openai%20or%20anthropic%20key%3F\"><h3>Do I need an OpenAI or Anthropic key?<\/h3><\/dt>\n<dd><p>No. The licence key replaces it. You never hold an AI provider key and never see a usage bill from one.<\/p><\/dd>\n<dt id=\"will%20converting%20my%20library%20break%20my%20site%3F\"><h3>Will converting my library break my site?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20descriptions%20if%20i%20cancel%3F\"><h3>What happens to my descriptions if I cancel?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20it%20write%20in%20more%20than%20one%20language%3F\"><h3>Can it write in more than one language?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20languages%20is%20the%20plugin%20itself%20in%3F\"><h3>What languages is the plugin itself in?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.31.0<\/h4>\n\n<ul>\n<li>Fixed: choosing an interface language in the settings had no effect when the\ntranslation shipped inside the plugin rather than as a language pack \u2014 the\nscreens stayed in English and said no translation was available. Both\nlocations are now checked, and the notice on the settings screen reports what\nactually happened.<\/li>\n<li>Fixed: a second copy of the plugin left in another folder could take the whole\nsite down with a fatal error instead of being ignored. The main file now\ndeclares nothing itself, so the guard against a duplicate copy actually works,\nand the second copy shows a notice saying which one to deactivate.<\/li>\n<\/ul>\n\n<h4>1.30.0<\/h4>\n\n<ul>\n<li>Note: the copy downloaded from the author's own website is the same plugin\nwith the interface translations bundled in the ZIP, for people who install it\nbefore language packs exist. The copy in this directory takes its translations\nfrom translate.wordpress.org, as the guidelines require. Same plugin, same\nslug, so one replaces the other on install.<\/li>\n<li>Changed: the plugin no longer takes a top-level admin menu item. Its three\nscreens now sit under Media, next to the library they work on. This follows\nthe placement advice in the review guidelines and puts the tool where someone\nlooking for an image tool actually looks.<\/li>\n<\/ul>\n\n<h4>1.29.1<\/h4>\n\n<ul>\n<li>Fixed: the tick inside a checked checkbox could render in WordPress's blue\nrather than white, which reads as a dark mark on the plugin's orange square.\nOlder WordPress releases fill that SVG with #3582c4; the plugin now supplies\nits own white one, so the colour no longer depends on the WordPress version.<\/li>\n<\/ul>\n\n<h4>1.29.0<\/h4>\n\n<ul>\n<li>Security: the AJAX endpoints checked only the general upload_files capability\nbefore acting on an attachment id taken from the request. A user who could\nupload files could therefore rewrite the metadata of, rename, copy, archive\nor compress an image belonging to somebody else. All six endpoints now check\nedit_post against the specific attachment, and the bulk screen lists only\nimages the current user may edit.<\/li>\n<li>Changed: translations are no longer bundled. The plugin is fully\ninternationalised and receives translations through translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.28.0<\/h4>\n\n<ul>\n<li>Changed: the plugin's admin menu no longer claims a position just below\nMedia. WordPress now appends it after Settings, where plugins belong. The\nearlier placement competed with core items for visibility instead of\nfollowing the admin hierarchy users rely on.<\/li>\n<\/ul>\n\n<h4>1.27.0<\/h4>\n\n<ul>\n<li>Added: the conversion result now reports the dimensions as well as the weight,\nfor example \"188 KB to 79 KB \u00b7 1024\u00d71024 \u2192 800\u00d7800\". Conversion replaces the\nfile, so the original dimensions stop existing the moment it finishes and\nthere was no way to confirm what had happened to them. Now there is, on every\nimage. Compression has never cropped and does not crop \u2014 the maximum width\nscales the whole picture and keeps its proportions \u2014 but a square photograph\ncoming out square is easy to mistake for a crop, and this removes the doubt.<\/li>\n<\/ul>\n\n<h4>1.26.0<\/h4>\n\n<ul>\n<li>Fixed: the broken-image icon beside the language flag on media library\nthumbnails. The fix in 1.25.1 was incomplete and did nothing here \u2014 WordPress\nhands the newly added badge to its emoji script as the top of the tree, and\nthe exclusion it honours is only ever checked on elements below that point.\nThe flag now sits one level deeper, where the exclusion is read, and no\npicture is fetched from outside at all.<\/li>\n<li>Changed: the result of a conversion now appears directly under the Convert\nbutton instead of at the very bottom of the panel, three boxes below the\nbutton that produced it.<\/li>\n<li>Changed: the size and width boxes line up in a column, so both lines end at\nthe same edge instead of drifting apart.<\/li>\n<\/ul>\n\n<h4>1.25.1<\/h4>\n\n<ul>\n<li>Fixed: a broken-image icon appeared next to the language flag in the media\nlibrary. The flag is written as plain text, but WordPress replaces emoji\ncharacters with pictures fetched from an outside server, and when that fetch\nis blocked \u2014 by an ad blocker, a firewall, or a site with no outbound access \u2014\nthe browser draws a broken image and the flag beside it. That is why it looked\nlike the flag was being drawn twice: it was, once as a picture and once as the\npicture's fallback text. The flag is now excluded from that replacement and is\ndrawn by the system font, with no outside request at all. On Windows, which\nhas no glyphs for country flags, it shows the country letters instead.<\/li>\n<\/ul>\n\n<h4>1.25.0<\/h4>\n\n<ul>\n<li>Fixed: the panel beside an image in the media library did not appear at all\nuntil a licence key was connected, so a new installation offered no way to\ncompress anything. Compression runs in PHP on your own server, costs nothing\nand has never needed a key \u2014 the button to reach it was simply missing. The\nsize box now always shows; only writing descriptions waits for a key.<\/li>\n<li>Fixed: the translations that ship with the plugin were rebuilt. The compiled\nfiles had fallen five days behind their sources, so a handful of screens came\nout in English on a translated site. They are now rebuilt on every release and\ncannot drift again.<\/li>\n<\/ul>\n\n<h4>1.24.0<\/h4>\n\n<ul>\n<li>Added: the attachment sidebar now has a maximum-width box, the same one the\nbulk tab has, filled in with 1000 px.<\/li>\n<li>Fixed: converting a single image from the sidebar could not reach the size you\nasked for. Without a width to work with, quality was the only lever and it\nstops at 30, so a wide photograph landed at roughly 200 KB whatever number you\ntyped. It was never a second, weaker compressor \u2014 it was the same one, denied\npermission to make the image narrower.<\/li>\n<li>Fixed: the convert button on a row of the compression table ignored the size\nand width you had just entered above it and always aimed at 130 KB.<\/li>\n<li>Changed: compression now sits at the top of the attachment sidebar, above\nwriting descriptions. You compress a file first and describe it afterwards;\nthe other order means describing an image that is about to be replaced.<\/li>\n<\/ul>\n\n<h4>1.23.6<\/h4>\n\n<ul>\n<li>Fixed: the media library showed no language marker for most markets. Only\ntwelve of the twenty-nine had a flag, so Bulgarian, Greek, Croatian, Romanian,\nHungarian, Swedish, Danish, Norwegian, Finnish, Turkish, Lithuanian, Latvian,\nEstonian and every regional variant appeared unlabelled. A market without a\nflag now falls back to its code, the way the plugin's own tables always did,\nso nothing can go unmarked again.<\/li>\n<li>Fixed: transliterated file names now follow each country's official\nromanisation consistently.<\/li>\n<\/ul>\n\n<h4>1.23.5<\/h4>\n\n<ul>\n<li>Fixed: file names for languages not written in the Latin alphabet. Bulgarian,\nGreek, Ukrainian and other such markets produced a two-hundred character run\nof percent escapes instead of a readable name. The name now comes back\ntransliterated \u2014 \"drveno-kreslo-maystorska-izrabotka\" rather than\n\"%d0%b4%d1%80%d0%b2%d0%b5%d0%bd%d0%be\". Titles, alt text and descriptions\nwere never affected.<\/li>\n<\/ul>\n\n<h4>1.23.4<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Convert images to WebP without limits, and write SEO titles, alt text and descriptions with AI \u2014 in every language your customers search in.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=361572"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/converterseo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361572"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361572"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361572"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361572"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361572"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}