# Free WordPress translation plugin: Automatically translate WPML content using Claude and ChatGPT

> URL: https://4eck-media.de/en/blog/free-wordpress-translation-plugin-automatically-translate-wpml-content-using-claude-and-chatgpt/  
> Language: en  
> Description: There is a moment familiar to anyone running a multilingual WordPress site: the German version is ready, you want to add a second language, and suddenly it’s all about the cost. A…

---

There is a moment familiar to anyone running a multilingual WordPress site: the German version is ready, you want to add a second language, and suddenly it’s all about the cost. A translation agency wants to be paid per word. WPML’s automatic translation charges based on credits. And the built-in translation editor silently drops fields on large sites because PHP hits its limit at 1,000 form fields. Yet, you are likely already paying around 20 euros a month for an AI subscription that could handle this exact task. What was missing was the bridge between your AI subscription and WPML.

That is exactly what we built: a **free WordPress translation plugin** that lets you **automatically translate with WPML** – directly using Claude or ChatGPT. In this post, we show what the WPML AI Translator can do, what it intentionally doesn’t do, how to install and set it up, the order in which to translate, and the mistakes you can avoid – as well as how to verify at the end that absolutely everything has been translated, not just the text WPML recognizes. Current as of plugin version 2.0.3. The download button is located directly below the graphic.

![Graphic showing the WPML AI Translator: German WordPress content is translated into English, French, Spanish, and Italian via a secure XLIFF interface using AI.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-kostenlos-wordpress-uebersetzungsplugin.avif)

*From the German original to four language versions: The WPML AI Translator securely exchanges XLIFF data between WordPress, WPML, and an AI.*

[Download plugin (v2.0.3, ZIP)](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-2.0.3.zip)

    
        
            
                                                    What the WPML AI Translator can do
                            
                            
                    
                        
- **Translate via XLIFF:** Export and import for all WPML content, from pages and custom post types to SEO titles and meta descriptions.
- **No silent field loss:** The pipeline bypasses the PHP max_input_vars limit that causes the classic translation editor to truncate large pages.
- **One-click inventory:** The plugin lists everything translatable and clearly identifies items outside WPML’s scope, such as ACF fields, menus, and theme strings.
- **Status per language:** Track which content is complete, what is missing, and which URL pairs belong together.
- **Built-in diagnostics:** Detects incorrect URL segments, broken hreflang pairs, and URLs that have changed since the initial import.
- **Theme strings included:** Read and translate theme strings via the WPML String Translation interface.
- **Verification export after every import:** Check exactly what was saved rather than relying on a “complete” status.
- **Developer brief:** A ready-made ticket for your theme developer if fields are missing from the wpml-config.
- **Security first:** No response without a key; features include IP whitelisting, limited write access, and activity logging. The plugin never alters the source language content.
- **No autopilot:** You initiate every step yourself; nothing changes on your website without your supervision.
                                            
                                    
                    
    

## Why we no longer wanted to pay for WPML translations on a per-word basis

We use WPML on almost every multilingual client site, and this plugin doesn’t change that. WPML’s automatic translation works, but it is billed in credits, and consumption increases with the volume of text and the number of target languages. For a five-page website, that doesn’t matter. For 280 content items, including product data sheets, industry-specific texts, and 163 download descriptions, it certainly does.

The same AI subscription that many of you are already paying for provides a model that doesn’t just translate but understands the context of the entire website: It maintains a consistent glossary across all pages, translates terms like “gear racks” (Zahnstangen) identically on every single page, and truncates SEO titles to the correct pixel width. An unexpected side effect: During translation, Claude repeatedly flagged typos in the German original that no one had noticed before.

**Our stance on this is clear:** If you have an AI subscription and are translating larger websites, you are wasting money by paying extra on a per-word basis. You already have the subscription. All that was missing was the bridge between the model and WPML. This plugin is that bridge.

![Diagram of how the WPML AI Translator works: Claude or ChatGPT exchange XLIFF files with WPML via the plugin’s REST API, secured by keys and IP whitelisting.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-schema-claude-chatgpt-wpml-xliff-1.avif)

## Quick start for power users: Let Claude read the instructions for you.

If you don’t want to read the instructions, let Claude read them. After installation, you simply need to set up access and provide Claude with the full task description from the Info tab.

1. **Install the plugin.** Upload the ZIP file and activate it.
2. **Secure access.** Generate a new shared key under Settings and save it securely. Select “Add Claude hosted egress ranges” for claude.ai or Cowork, or “Add my current IP” for Claude Code running on your local machine. Check and save the translator user ID.
3. **Copy the work order.** Switch to the Info tab and click “Copy & open Claude.”
4. **Complete the order details.** Enter the key, target language, and scope. Request a full translation plan first; do not import anything yet.
5. **Run a pilot translation.** Have a small page translated, then check the export and the live page.
6. **Process the rest.** After the pilot, execute the plan. Finally, run /urlcheck and /hreflangcheck.

## What the WPML AI Translator is and what it is deliberately not

The WPML AI Translator is a free WordPress translation plugin that does not translate a single word itself. This isn’t a shortcoming; it’s the design concept. It provides secure REST APIs that allow an AI to work with WPML: querying translation statuses, creating translation jobs, exporting and importing XLIFF files, translating ACF fields and theme options, writing theme strings and image alt text – and finally, verifying that everything has been successfully transferred.

XLIFF is the exchange format WPML has offered to professional translation agencies for years. An XLIFF file contains every translatable field of a page as an individual segment: headings, paragraphs, SEO titles, meta descriptions, and button labels. The AI ​​receives this file, fills in the target segments, and sends it back. WPML imports the result just as if it had come from a translation agency.

What the plugin doesn’t do: It doesn’t create anything, delete anything, change any settings, or touch the original German content. The worst-case scenario is a poor translation that you spot during review and request again. A tool that grants an external AI access to your website needs to be boringly predictable.

We have documented the development of this workflow in two articles: [Translating WordPress with ChatGPT and Claude: How It Really Works](https://4eck-media.de/en/blog/translate-wordpress-with-chatgpt-and-claude-time-and-cost-comparison/) and [Translating WordPress with AI: Our Complete Workflow](https://4eck-media.de/en/blog/translating-wordpress-with-ai-fast-cheap-and-without-the-wpml-frustration-our-complete-workflow/). This article presents the plugin version of that process, which you can install on any of your own WPML-powered websites.

## The real reason for this plugin: max_input_vars is lying to you.

Anyone who has ever saved a large page in the classic WPML translation editor might be familiar with the problem, even without realizing it. PHP limits the number of form fields per request; the default value is 1,000. When saving, a complex page with blocks and custom fields can easily submit more fields than this limit allows. PHP silently discards anything exceeding the limit. The editor reports “saved,” the status switches to “complete,” yet part of the translation is lost.

That is exactly where our first attempt with the browser-based editor failed. The XLIFF file is not subject to this limit: WPML imports it as a single file, regardless of whether the page has 40 fields or 400. That’s why we use XLIFF, and that’s why we created this plugin.

**Remember this: The “Complete” status is a status field, not proof.** Therefore, the workflow includes a verification export after every import: the AI ​​retrieves the translation again via the interface and checks whether every target segment has actually been saved. Trust the verification, not the display.

![Schematic: The classic WPML translation editor discards form fields exceeding the PHP max_input_vars limit without an error message, whereas the XLIFF export transfers all content without loss in a single file.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-uebersetzungseditor-max-input-vars-feldverlust-vs-xliff-1.avif)

## Download and install the free WordPress translation plugin.

Prerequisites: WordPress 6.0 or higher, PHP 7.4 or higher, and an active WPML installation with the Translation Management module. You also need WPML String Translation for string routes, ACFML for options pages, and ACF for ACF routes. If any of these are missing, only the affected routes will return a clear error; the rest of the system continues to function normally. Installation follows the standard procedure for any plugin:

For custom WordPress solutions, our [WordPress agency](https://4eck-media.de/en/competencies/wordpress-agency-websites-that-work-for-your-business/) ensures clean development, high performance, and reliable maintenance.

1. Download the ZIP file using the button above.
2. WordPress Admin → Plugins → Add New → Upload Plugin → Select ZIP → Activate.
3. The “WPML AI Translator” item appears in the menu with four tabs: Settings, Info, ACF, and Audit.

We announce new versions here on the blog. Simply download the latest ZIP file and install it via Plugins > Add New > Upload Plugin; your settings will be preserved. The tool is not tied to any specific theme or page builder, as it works exclusively with WPML’s native translation jobs.

## Setup: just three fields

The Settings tab requires exactly three inputs, each for a specific security reason:

**Allowed IPs.** The plugin only responds to requests from these addresses. For Claude in the browser or in Cowork, there is a button that automatically enters the official Anthropic address ranges. This is important if you use Claude Code on your own computer: in that case, the traffic originates from your connection, not from Anthropic. For this scenario, there is a second button, “Add my current IP,” which enters your current address. With IPv6, it automatically includes the appropriate /64 range so that the authorization remains valid even after a forced router reconnection.

**Translator user ID.** A WordPress user registered in WPML as a local translator for the target languages. Imports are processed under this user account, ensuring a clear, traceable record in the history.

**Shared Key.** A secret key that you generate via the “Generate new shared key” option in the settings tab; you should save it securely immediately and store it at both ends: within the plugin and on your AI system. WordPress stores only the hash. Without a valid key, the interface will not respond to anything, even if the request comes from an authorized IP address. An IP address alone does not constitute an identity; the key does.

The interface remains completely closed until a key is set. It is impossible to accidentally leave the plugin running in an open state.

![Settings tab of the WPML AI Translator, showing Allowed IPs, Translator user ID, and Shared Key.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-settings-tab-2-0-3.avif)

*The entire setup process: save the key, whitelist the IP, and you’re done. Screenshot from our client project wmh-herion.de.*

## The Info tab: the ready-made prompt used by Claude to automatically translate for WPML.

The Info tab may have an unassuming name, but it saves you the most work. It contains a complete, detailed set of instructions for the AI: the full prompt covering all interfaces, the correct sequence, safety rules, and verification steps. It also features four buttons: Copy prompt, Download as Markdown, and two direct shortcuts, “Copy & open Claude” and “Copy & open ChatGPT.”

To ensure content appears as a credible source in AI responses, our [GEO agency](https://4eck-media.de/en/competencies/llm-geo-ai-optimization/) combines semantics, technology, and demonstrable expertise.

Here’s the workflow for you: copy the prompt, paste it into Claude, add your key, and specify the target language. From there, the AI ​​works autonomously following this pattern:

1. **/ping**: Is the connection active? Are write operations possible? Which languages ​​and post types does the website actually have?
2. **/inventory**: What can this interface translate, and what falls outside its scope (more on that in a moment)?
3. **/status**: Which content is missing in the target language, and which is outdated?
4. **/requeue and /export**: Create a fresh translation job for each piece of content and retrieve the XLIFF file.
5. Translate, using a consistent glossary across all pages.
6. **/import**: Send the populated XLIFF file back.
7. Verification export: Retrieve the translation again to check that every segment was actually saved.

The Info tab also displays an overview of your specific website: active languages, post types with item counts, and active caching plugins. The AI ​​doesn’t have to guess; it reads the data.

![WPML AI Translator Info tab showing the ready-to-use prompt and buttons for Claude and ChatGPT](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-info-tab-prompt-2-0-3.avif)

*The Info tab provides the ready-to-use prompt: copy it, paste it into Claude or ChatGPT, and get started.*

## How to get started today: from scratch to an active translation in ten steps

We explained the individual components above. Here is the sequence for assembling them in a single afternoon:

1. **Download the plugin** using the button at the top of this article.
2. **Authorize your website for Claude.** In the settings on claude.ai, add your domain to the list of allowed websites so that Claude can access it.
3. **Install and activate the plugin**: Plugins > Install > Upload plugin > Select ZIP file.
4. **Generate a key**: Click “Generate new shared key” in the Settings tab, immediately save the key securely, and save your settings. The key is displayed only once; you will provide it to Claude directly in the chat later.
5. **Configure IP authorizations**: Use the Anthropic button for Claude in the browser or Cowork, and select “Add my current IP” for Claude Code on your local machine.
6. **Open the Info tab and copy the entire text.** Paste it into Claude with a single instruction: “Read this through, but don’t do anything yet.”
7. **Request the translation plan.** You can find the prompt for this in the box below this list.
8. **Choose the right model.** Our practical recommendation: let Fable 5 with Ultracode handle the planning, and Opus 5 with Ultracode handle the execution. If limits are tight, Opus 5 can do both. The minimum requirement is clear: at least Opus 5, always with Ultracode. Smaller models lose the thread when dealing with 100 or more XLIFF files.
9. **Save the plan as a file and work through it point by point.** This ensures the project survives a new chat session: the file represents the current status, not the chat’s memory.
10. **Final review with your own eyes.** Click through the new language version, page by page. If you find something untranslated, take a screenshot and give it to Claude: “Find the source and translate this.” The model is amazingly good at exactly this; it can tell from the screenshot whether the text comes from a menu, a theme string, or an ACF field.

```
You have read the WPML AI Translator guide. Create a complete translation plan for this website in [TARGET LANGUAGE] now, before translating anything. The plan needs to consist of two parts. Part 1: everything handled via the plugin interface (WPML content via XLIFF), following this order: a pilot page, then the homepage, then structural pages, and finally the bulk of the content. Part 2: everything WPML does not recognise: ACF fields, menus, buttons, theme strings, forms, theme options, and alt texts. Use /ping, /inventory, and /status to populate both parts with real figures, and determine for yourself how menus and strings are translated on this website. Save the completed plan as a separate file and work through it point by point. Perform a verification export after every import. Finally, run /urlcheck and /hreflangcheck.
```

![Screenshot of the Claude app showing the initial instruction for the WPML AI Translator pasted in, ready to be sent.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-claude-startauftrag-vor-dem-absenden.avif)

*After installation, Claude receives the initial instruction: define the target language and scope, review the plan, and only then proceed with translation.*

## Automatic translation with WPML: start with the pilot page, then the homepage, and handle the bulk of the content last.

Based on our largest translation project to date, a specific workflow has proven effective and is now our recommended standard:

1. **Start with a single pilot item.** Run one small page through the entire cycle and check the result on the frontend. Only proceed with the rest of the content once slugs, SEO fields, and custom fields are correctly transferred.
2. **Home page and main pages.** Translating the home page activates the language version, allowing you to effectively test menu items and links.
3. **Structural content**: category pages, product pages, and service pages. This is where the URL structure for the new language is determined.
4. Bulk content last: news, downloads, and team pages. In this project, Claude alone translated 163 download entries in batches using a shared glossary. Identical terms were translated only once and applied consistently throughout.

A point that can prove costly if overlooked: **Clarify your slugs before importing.** WPML derives the translated slug from the translated title. If your redirect map or existing inbound links require specific English URLs, provide the AI ​​with the target slugs as a requirement. Renaming them later creates redirect chains.

    
        
            

## Successful multilingual growth

                            

These articles demonstrate how to implement international websites that are technically sound, linguistically consistent, and compelling for both search engines and new markets.

                    
        
                            
                    
                        [![WordPress, WPML, and AI connect content across five language versions; icons show time savings, quality, and lower costs](https://4eck-media.de/wp-content/uploads/2026/07/wordpress-chatgpt-claude-time-cost-cover-1920x1080px-3.avif "Translating WordPress with AI: a faster and more cost-efficient workflow")](https://4eck-media.de/en/blog/translating-wordpress-with-ai-fast-cheap-and-without-the-wpml-frustration-our-complete-workflow/ "Translating WordPress with AI: fast, affordable, and without the WPML frustration: our complete workflow")
                        
                            [Translating WordPress with AI: fast, affordable, and without the WPML frustration: our complete workflow](https://4eck-media.de/en/blog/translating-wordpress-with-ai-fast-cheap-and-without-the-wpml-frustration-our-complete-workflow/)
                                                            
                                    Matthias Petri
                                
                            

                                                    
                    
                

                            
                    
                        [![](https://4eck-media.de/wp-content/uploads/2026/07/wordpress-chatgpt-claude-time-cost-cover-1920x1080px.avif "wordpress-chatgpt-claude-time-cost-cover-1920x1080px")](https://4eck-media.de/en/blog/translate-wordpress-with-chatgpt-and-claude-time-and-cost-comparison/ "Translate WordPress with ChatGPT and Claude: Time and Cost Comparison")
                        
                            [Translate WordPress with ChatGPT and Claude: Time and Cost Comparison](https://4eck-media.de/en/blog/translate-wordpress-with-chatgpt-and-claude-time-and-cost-comparison/)
                                                            
                                    Matthias Petri
                                
                            

                                                    
                    
                

                            
                    
                        [![Recommended by ChatGPT, Commissioned from Tokyo: The Bilingual Corporate Website IME.eus](https://4eck-media.de/wp-content/uploads/2026/07/tokia-website-case-study.avif "Recommended by ChatGPT, Commissioned from Tokyo: The Bilingual Corporate Website IME.eus")](https://4eck-media.de/en/blog/recommended-by-chatgpt-commissioned-from-tokyo-the-bilingual-corporate-website-ime-eus/ "Recommended by ChatGPT, Commissioned from Tokyo: The Bilingual Corporate Website IME.eus")
                        
                            [Recommended by ChatGPT, Commissioned from Tokyo: The Bilingual Corporate Website IME.eus](https://4eck-media.de/en/blog/recommended-by-chatgpt-commissioned-from-tokyo-the-bilingual-corporate-website-ime-eus/)
                                                            
                                    Matthias Petri
                                
                            

                                                    
                    
                

                            
                    
                        [![Case Study: Multilingualism (6 Languages) with WPML for School Websites](https://4eck-media.de/wp-content/uploads/2026/02/case-study-mehrsprachigkeit-wpml-wordpress-720x480.avif "Case Study: Multilingualism (6 Languages) with WPML for School Websites")](https://4eck-media.de/en/blog/case-study-multilingualism-6-languages-with-wpml-deepl-for-school-websites/ "Case Study: Multilingualism (6 Languages) with WPML + DeepL for School Websites")
                        
                            [Case Study: Multilingualism (6 Languages) with WPML + DeepL for School Websites](https://4eck-media.de/en/blog/case-study-multilingualism-6-languages-with-wpml-deepl-for-school-websites/)
                                                            
                                    Matthias Petri
                                
                            

                                                    
                    
                

                    
    

## The major blind spot: WPML doesn’t see your entire website.

This is the most important section of this article, and we state it so clearly because we fell into this trap ourselves: **The XLIFF method translates exactly what WPML recognizes as a translation job.** In short: translating content does not mean translating the entire website. A translation job encompasses content, SEO fields, and custom fields registered as translatable in the WPML configuration. A real website consists of more:

- ACF fields without translation configuration. If the theme’s wpml-config.xml doesn’t recognize a field, WPML simply never includes it in the translation. In our project, this meant the English version initially looked like this: product pages with only a headline and introduction, 163 downloads missing file links, and contact cards without phone numbers. The content was “translated,” but the fields were empty.
- **Theme strings**: button labels, search fields, 404 pages, footer text. These are handled via WPML String Translation, not XLIFF.
- **Menus, forms, image alt text, theme options.** These are separate areas requiring their own tools.

Our audit following the content translation revealed remaining German text or empty spaces on 82 out of 86 English pages. This wasn’t because the translation was poor, but because that content had never passed through the XLIFF pipeline. We explain why we check for this before every launch in our [pre-launch website checklist](https://4eck-media.de/en/blog/website-checklist-before-go-live-what-we-check-before-a-website-is-allowed-to-go-online/): every language version is essentially a separate website.

The good news: Claude can handle almost all of this itself if you task it with the job. It reconstructs menus via WordPress interfaces, translates theme strings using String Translation, populates theme options in the admin area, diagnoses ACF gaps, and provides the developer with a ready-made wpml-config template. This is exactly how the English version of our real-world project was completed: the XLIFF part was the quick first step, while Claude handled the rest bit by bit within the admin interface. From the start, the plugin uses the /inventory endpoint to honestly report which areas fall outside its scope, allowing you to plan for this second phase rather than discovering it on launch day.

![Schema: WPML translates pages, custom post types, and SEO fields via the XLIFF pipeline, while ACF fields, menus, theme strings, forms, theme options, and alt text are translated directly within the WordPress admin using Claude.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-blinder-fleck-acf-felder-menues-theme-strings-1.avif)

## Translating ACF fields, theme options, and strings: the second pipeline

When we wrote the first draft of this article, this second part required manual work in the admin area. That is no longer the case. There is now a workflow for ACF fields identical to the one for content, using JSON instead of XLIFF. **/acf/fields** lists every registered field – along with its role (translate, copy, container, or check), location, and current WPML setting – and provides the missing wpml-config block, ready to be inserted. The plugin derives the recommended action from the field’s value rather than its type: a phone number is copied, whereas a copyright notice is translated. In our real-world project, this route identifies 556 registered fields, 38 of which lack a translation configuration.

Subsequently, **/acf/status** compares every translation pair value by value and reports two states: empty and identical to the original. **/acf/export** outputs the pending values ​​as a document, while **/acf/import** writes them back – initially as a dry run, exclusively into existing translations (never the original), with every written value subsequently read back. Two types of fields are intentionally excluded until you explicitly enable them: link fields, where it is impossible to tell from the outside whether the stored title serves as a visible button label, and structural fields such as relations, files, and galleries. You see the field on the frontend; the plugin sees only the value.

If a field is missing from the wpml-config, you can use this to fix the value immediately. However, you should still provide the configuration block to your theme developer: without it, the translation will be lost the next time the German original is saved.

![WPML AI Translator’s ACF tab showing the list of unconfigured fields and the completed wpml-config block.](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-acf-tab-wpml-config-block.avif)

*The ACF tab counts the fields, identifies the ones that aren’t covered, and displays the ready-to-copy wpml-config block alongside them.*

Until recently, theme options – such as headers, footers, and contact details – were the kind of content you had to type in manually within the admin area while switching languages. Now, the endpoints **/acf/options/status**, **/acf/options/export**, and **/acf/options/import** handle this. The import function writes only to the language-specific namespace used by ACF itself, repairs repeater parent rows, and additionally registers translated body text with the ACFML string package; the source options remain untouched. For each field, the response indicates the required action: translate, copy, or review. In our real-world project, this involves 377 option fields, the majority of which need to be copied rather than translated: such as API keys, phone numbers, and image IDs.

The plugin reads and writes theme strings via **/strings**, directly within the WPML database tables. Each entry includes its status, source language, gettext context, saved translation, and an indication of whether it is writable. If the same text is registered multiple times – for example, “Open” appearing once as a menu item and once as an opening hour – the response lists each instance along with its ID. This allows the AI ​​to target the exact line it intends to address, rather than guessing.

**/mediacheck** inspects image alt and title texts, while **/media** writes the translations, always applying changes only to the translated file. Taxonomy terms and navigation menus remain to be handled manually. /inventory tells you which items on your website fall into which category.

## Verify at the end, don’t just hope: the built-in verification interfaces

Based on this experience, we equipped the plugin with six verification interfaces, plus a seventh that aggregates them. Start with /audit: this command selects a sample, evenly distributed across all translatable post types, and checks rendered pages, ACF gaps, missing repeater rows, un-translated strings, and integrations where string registration is still disabled. Each finding indicates who can resolve it: the AI, the theme developer, or you via the admin dashboard. A check that could not be performed is reported as “unreachable,” never as “clean.” This gives you a definitive conclusion. The individual checks run beneath this level:

![WPML AI Translator Audit tab showing outstanding issues per language and who is responsible for fixing them](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-audit-tab-befunde-nach-zustaendigkeit.avif)

*The Audit tab shows what is still missing for each language – and who can fix it.*

- **/urlcheck** identifies translated pages where the URL path still contains segments from the source language, a typical sign that the theme is constructing permalinks without regard for language.
- **/hreflangcheck** verifies the links between language versions in both directions. The check detects a class of errors that is almost invisible from the outside: links where the path is generated in one language and the language prefix in another. Such links lead to dead ends, and Google completely ignores hreflang pairs that lack a valid reciprocal link: the association between your language versions in search results is lost. In our practical project, /urlcheck reported zero hits, even though all 19 English product pages were pointing to dead ends via their hreflang tags. That is precisely why you should run both checks, not just one.
- **/linkcheck** verifies the fully rendered translation, including navigation and footer elements: it checks for empty targets or those pointing to “#”, executable URL schemes, internal links that have lost their protocol or port, and links pointing from the current language version to another active language. The check deliberately avoids fetching every external address – a clean result does not imply a complete crawl.
- **/paircheck** compares the rendered pages rather than the database content: text volume, headings, buttons, images, tables, and lists. Additionally, the route flags headings and alt texts that are identical in both languages. While brand names and model designations are permitted to be identical, standard German body text is not – please review the examples before making changes.
- **/mediacheck** lists attachments where the alt text or title still matches the original, as well as attachments that lack a translation entirely. The latter scenario is problematic: without a translated attachment, the page displays the German attachment, complete with German alt text, and this cannot be fixed via the translation page itself.
- **/redirectcheck** records the URL where a translation was published during each import. If a slug or category base changes later, the check lists every relocated URL so you can set up a 301 redirect for the old address instead of letting it result in a 404 error.

If any of the checks detect a theme-related issue, the response includes a ready-made **developer_brief** containing the symptom, diagnosis, example URLs, and acceptance criteria, all phrased for the developer responsible for maintaining the theme. Simply copy the text into your ticket, and you’re done.

And finally, the simplest verification step: give Claude the list of translated pages and have it spot-check the frontend. It can see for itself what is still in German and fix whatever it is capable of repairing right away.

![Screenshot of a JSON response from the WPML AI Translator’s urlcheck interface showing the URL check results](https://4eck-media.de/wp-content/uploads/2026/08/wpml-ai-translator-urlcheck-antwort-json.avif)

*The built-in check responds with a clear list: what is clean and where there are issues. Real-world result from the wmh-herion.de project: no mixed-language URLs found in 200 checked pairs – the two pages flagged had not yet been translated at that time.*

## Common errors when translating with WPML and AI

| Errors | How to spot it | Solution |
| --- | --- | --- |
| Whitelisting the wrong sender IP | “Client IP is not allowed” error, even though you entered your IP | Claude Code sends requests from your connection, while Claude in the browser uses Anthropic addresses. Use both buttons in the Settings tab. |
| Trusting the “Complete” status | Frontend shows blank spaces despite the green checkmark | Verification export after every import; the prompt in the Info tab already includes this step |
| Editing the German source text after translation | Translation status switches to “Outdated” | Finalize the source text first, then translate. Implement accumulated corrections in a batch |
| Slugs not clarified beforehand | Redirects leading to dead ends; redirect chains | Specify target slugs for the AI; run /redirectcheck after every slug change |
| Old redirect rule overriding a new translation URL | English page exists in the admin, but the browser lands on a different page; a crawler following redirects reports a 200 status and hides the issue | Check the redirect map against new URLs after adding a new language version: query without following redirects; delete rules pointing to a path that now exists |
| Forgetting the cache during checks | hreflang and strings appear broken even though they have been fixed | Clear the page cache before evaluating a result; /ping identifies the active cache plugin, while the check routes bypass the cache itself |

### Everything looks green, yet the page remains in German: six states that look like “done”

These six states do not trigger an error message, and the status indicators remain green in all six cases. They are also included in the provided prompt, and /audit checks for all six.

| State | How to spot it | Solution |
| --- | --- | --- |
| ACF field is set to “do not translate” but contains a visible value | English pages are bare-bones: title present, content missing | /acf/status shows the gaps, /acf/fields provides the wpml-config block for the developer, /acf/import populates the values ​​immediately |
| Repeater or relation field has zero rows in the translation, even though the child items are translated | The English page renders one less map, file link, or button; the job status is “complete” | WPML only copies a “copy” field when the source is saved. Set the configuration, then re-save the German source items once |
| Image without a translated attachment | Alt text remains in German, even though everything has been updated in the translation | /mediacheck lists attachments that have no translation at all. These are created via WPML > Media Translation; /media then writes the text strings |
| Plugin only registers its strings after a specific toggle is activated for each element | String Translation is empty, yet the form remains in German | For Fluent Forms, enable translation on a per-form basis. /audit detects this on a per-form basis and indicates the path to the setting |
| Importing into a job that has already been completed | The import reports success, but nothing is saved | First run /requeue, then export and import |
| String is registered in the target language | The write operation reports success, yet the page remains in German, and the next check again indicates “not translated” | /strings rejects the write attempt with the status source_language_is_target. Only you can fix this: go to WPML > String Translation, select the strings, and use the bulk action “Change the language of selected strings” |

## The Practical Test: An Industrial Client with 284 Pieces of Content

The WPML AI Translator is not a lab project. It is already running in production on the recently completed relaunch of an industrial client: a full website migration plus an English version, across nine post types, from product data sheets to 163 downloads. We show which website it is in the screenshots in this article.

![Comparison from the wmh-herion.de project: the same product page shown side-by-side in German and English](https://4eck-media.de/wp-content/uploads/2026/08/wpml-uebersetzung-praxisprojekt-wmh-herion-de-en-1.avif)

*Our real-world project: WMH Herion Antriebstechnik from Wolnzach. The English language version was created entirely using the plugin with Claude.*

Project figures: 284 content items across nine post types translated in a single workday. For context: this was done using the premium Claude subscription costing 200 euros per month. As a rough benchmark using Opus 5 today: a typical subpage takes just a few minutes, including export, import, and review. With the €20 subscription, you hit usage limits sooner and spread the same volume across several days. This doesn’t change the outcome, only the schedule.

After updating the areas outside the XLIFF pipeline and applying two minor theme fixes, the Seobility optimization score for the entire website rose from 68 to 85 percent, and the technical score from 37 to 74. The English version features clean URLs and complete hreflang pairs. Menus, strings, and theme options have been translated. Ongoing costs are limited to the AI ​​subscription we already have.

**What remains outstanding.** As of August 7, 2026, the sitemaps list 158 ​​URLs: 79 German and 79 English. When accessed without following redirects, 157 of them respond directly with a 200 status code; the single exception lies behind the dealer login. Our measurements no longer detect visible German text on the English pages. Nevertheless, /audit does not report a “clean” status, and this is the honest part: 38 translatable ACF fields are not configured for translation in WPML – a task for the theme developer; the ready-made configuration block is provided by /acf/fields. Be sure to cross-check every notification against the rendered page: the strings from the two menu packages also appear as untranslated in the list, even though the English menu is fully translated on the frontend.

**And a lesson that cost us time:** Field configuration does not apply retroactively. WPML offers three settings for custom fields – translate, copy, and ignore. “Copy” means WPML writes the value from the German original into the translation, specifically at the moment the original is saved. If you apply the setting only after the translation already exists, you get nothing: the field remains empty, the job continues to report “complete,” and a card, phone number, or file link ends up missing from the frontend. The fix is simple – just re-save the German source items. The cost is shown in the table above: any change to the source triggers WPML’s “outdated” flag. Sort out the field configuration before the initial translation, not after.

## Our help, your responsibility

We are sharing the plugin for free because we spent a long time looking for something like this ourselves. It is a tool we developed based on real-world projects. Just to be clear: **We are sharing our experience and capabilities here, not offering a guarantee.** Every website is structured differently, every theme registers its fields in its own way, and you are responsible for the outcome on your own installation. Create a backup before your first import, test with sample content, and review the export files. In the worst-case scenario, you simply have to request the translation again: exactly as described above.

One final request: If you download and try out the plugin, please send us a quick email at [info@4eck-media.de](mailto:info@4eck-media.de). Let us know what worked and what didn’t, and what setup you used. Our testing features originated from exactly this kind of feedback, and your experiences will feed into the next version.

**Would you prefer to outsource the entire translation process?** As a [WordPress agency](https://4eck-media.de/en/competencies/wordpress-agency-websites-that-work-for-your-business/), we handle the whole workflow for you: We translate all WPML content, then take care of menus, ACF fields and theme strings, and then verify URLs, hreflang tags, layout, and functionality via a [technical SEO audit](https://4eck-media.de/en/competencies/technical-seo-for-your-website-technical-seo-audit-consulting/technical-seo-for-your-website-technical-seo-audit-consulting/). You receive a professionally translated, technically sound, and fully tested website – [contact us for a no-obligation quote](https://4eck-media.de/en/contact/).

    
        
                        
                                    

## Frequently Asked Questions about the WPML AI Translator

                                
                                                                        
                                
                                    Do I need WPML to use the plugin?
                                    
                                                                            
                                
                                
                                    

Yes. The plugin acts as a bridge to WPML, utilizing its translation jobs and XLIFF functions. For the XLIFF pipeline, you need the Translation Management module; for theme strings, String Translation; and for ACF options pages, ACFML. Without WPML, none of its routes works. Our two workflow articles on duplicates describe the approach without WPML.

                                    
                                                                            
                                
                            
                                                    
                                
                                    Does it only work with Claude or also with ChatGPT?
                                    
                                                                            
                                
                                
                                    

With both, and essentially with any AI that can make HTTP requests and process files. The prompt in the Info tab includes direct buttons for Claude and ChatGPT. The only important thing is that the model translates long documents consistently and adheres to a glossary.

                                    
                                                                            
                                
                            
                                                    
                                
                                    How much does it cost to translate WPML with AI?
                                    
                                                                            
                                
                                
                                    

The translation plugin itself is free. You only pay for your existing AI subscription from around €20 a month, with no per-word or per-character billing. Speed depends on the subscription: we work with the €200 premium subscription; with smaller subscriptions, a large project is spread across several days.

                                    
                                                                            
                                
                            
                                                    
                                
                                    Does the plugin translate automatically in the background?
                                    
                                                                            
                                
                                
                                    

No, and that is intentional. You or your AI trigger every translation actively, and every import can be verified using a verification export. An autopilot that changes content without supervision was not an option for us.

                                    
                                                                            
                                
                            
                                                    
                                
                                    What about ACF fields, menus and theme texts?
                                    
                                                                            
                                
                                
                                    

Most of this is now handled through the plugin as well: ACF fields via /acf/status, /acf/export and /acf/import; theme options via /acf/options/*; theme strings via /strings; image alt texts via /mediacheck and /media. Taxonomy terms and navigation menus are the only items that still require manual work. /inventory tells you what falls into which category on your website.

                                    
                                                                            
                                
                            
                                                    
                                
                                    How secure is the interface?
                                    
                                                                            
                                
                                
                                    

Without a stored key, it does not respond at all; with a key, only from approved IP addresses. Write access is additionally limited, imports are validated, and every request is recorded in the log. The plugin never touches the original content of your source language.

                                    
                                                                            
                                
                            
                                                    
                                
                                    I’ve already translated content using an older version – do I need to do anything else?
                                    
                                                                            
                                
                                
                                    

Yes, probably. Update the plugin and run /audit once for each target language. The old version did not touch ACF fields, ACF options pages, theme strings, or image alt texts. Your translated content remains as it is.

                                    
                                                                            
                                
                            
                                                    
                                
                                    How do I know that the translation is really complete?
                                    
                                                                            
                                
                                
                                    

Use /audit. The command checks samples of rendered pages, ACF gaps, missing repeater rows and open strings, and assigns each finding to a responsible party: the AI, theme developer or you in the admin. You are finished when /audit reports nothing more – or when you can justify every remaining finding.
