interPROter

WordPress · WooCommerce · Every language

Translation, done PROperly.

interPROter translates your whole WordPress site — every page, menu, button, image alt and address — about two minutes after you hit publish, and keeps the translations in your own database. Nothing to configure, no strings to register, nothing that disappears when you stop paying.

Download the plugin » See the measurements No card, no account to try it: the plugin fetches a preview key itself and translates your front page.
2.4 kBadded to a translated page — the hreflang tags and the language switcher, nothing else.
0JavaScript files loaded on the front end. Compare TranslatePress: 3.5 MB of JavaScript shipped.
+7database queries on a translated page with 378 translatable texts. Original-language pages: untouched.
456 kBthe whole plugin, unpacked. Compare WPML: 86 MB across four plugins.

Measured on WordPress 7.1 / PHP 8.3 with WordPress's own theme unit test content, 15 Sep 2026. Plugin sizes measured from each plugin's own package the same day.

Why it is different

It translates the page. Not the database.

Every other WordPress translation plugin translates posts, taxonomies and whatever strings a developer remembered to register. Everything else — the text your theme hard-codes, the button a plugin draws, the popup your page builder opens — becomes a special case that needs its own compatibility layer. That is why their forums are full of "string not appearing".

interPROter translates the finished page on its way to the visitor. If it is visible, it is translated. There is no list of exceptions, because there is no list.

Code needed just to support Elementor
WPML5,883lines of PHP
interPROter2lines of PHP

Elementor's output is HTML like everyone else's. The same goes for Divi, Gutenberg, WPBakery, Bricks and whatever comes next.

Getting a theme or plugin text translated
WPML6 stepsplus 4 fallback methods when it still does not appear
interPROter0strings to register, ever

No functions.php, no scanning, no guide. Titles, menus, buttons, alt texts, placeholders, meta descriptions, Open Graph and JSON-LD are picked up on the first pass.

Copies of your content
WPML, Polylang1 copyper language — a duplicate post, page or product each
interPROter0duplicates — translations are rows, not copies

Your original content stays exactly where it is, so nothing drifts out of sync and nothing needs re-linking.

Compared

The things that actually decide it.

Not a feature checklist — every plugin has hreflang and a language switcher. These are the five things that decide whether you will still be happy in a year.

Plugin Where your translations live Works with any theme or builder Registering strings Plugin size, unpacked How you pay
interPROter Your database Yes — translates the output Never 456 kB, 0 JS Per site, every language, allowance renews monthly
WPML Your database Nine builder-specific compatibility layers 6 steps, plus 4 fallback methods 86 MB, four plugins Yearly licence + translation credits that do not refund
Polylang Pro Your database Automatic translation not available for Elementor or Divi PHP code in functions.php 3.7 MB Yearly licence; bring your own DeepL key
TranslatePress Your database Visual editor, most things Separate String Translation tab 33 MB, 3.5 MB JS Yearly licence with a yearly word cap
Weglot Weglot's servers — gone if you cancel Yes — proxy Automatic 5.4 MB Monthly, word cap that never renews
GTranslate GTranslate's servers Yes — proxy Automatic 3.1 MB Per site, per month; no hreflang at all

Read from each plugin's own documentation and pricing page, and measured from each plugin's own package, 15 Sep 2026. Sources listed in the plugin's readme.

How it works

Publish once. Every language follows.

There is no translation queue to work through and no editor to learn. You add a language; the site takes it from there.

  1. Add a language

    Pick the language and the address it should live under — /de/, /sv/, whatever suits. That is the whole setup.

  2. The site translates itself

    A new page is translated about two minutes after you publish it, and the whole site is checked every hour. Titles, menus, buttons, alt texts, meta descriptions — and the addresses: /rooms/ becomes /de/zimmer/, and the old address keeps working.

  3. It goes live when it is complete

    Visitors never meet a half-translated page. If you would rather read it first, switch that one language to Require approval — the machine keeps translating, and the language waits for you.

When a word is wrong

Click it. Fix it. Done.

Editors get a button in the admin bar that opens the same page in fix mode. Click any text, type the correction, and it is live the moment you save.

  • Your correction is locked. No translation run will ever overwrite it.
  • Visitors are not affected: the page they get is byte-for-byte identical, fix mode or not — we checked the checksum.
  • Glossary terms — brand names, product names, the words you never want translated — are set once and respected everywhere.
wp-admin bar Fix translations /de/zimmer/

Unsere Zimmer liegen direkt am See. Jedes Zimmer hat eine eigene Sauna und einen Blick auf das Polarlicht, wenn die Nacht klar ist.

Nordlichter saved · locked

SEO and AI answers

Every language, readable by every engine.

The parts search engines need are the parts most translation plugins get wrong — and the parts AI answer engines need are the same parts, read the same way. Here they are done by default, and verified against the two SEO plugins people actually use.

Search engines

Indexed as its own site, in each language.

  • hreflang on every page, including x-default — GTranslate ships none.
  • Canonical addresses per language, so nothing competes with itself.
  • A multilingual sitemap at /wpt-sitemap.xml, with cart, checkout and builder templates left out.
  • Translated addresses — /de/zimmer/, not /de/rooms/ — and the old address keeps resolving.
  • Titles, meta descriptions, Open Graph and Twitter tags: translated.
  • Yoast SEO and Rank Math: verified on real sites, not assumed.
AI answers

It cannot cite what it cannot read.

  • The translation is in the HTML your server sends — not painted on afterwards with JavaScript. AI crawlers such as GPTBot, ClaudeBot and PerplexityBot do not run JavaScript; they get the whole translated page as-is. There is no JavaScript to run: zero files on the front end.
  • Structured data is translated too: the JSON-LD name, description and headline — the fields an answer engine reads to decide what a page is.
  • hreflang, x-default and canonical tell the engine which language version is which, so a German question is answered from /de/, not from the original.

Whether that earns you a citation is up to the engine. We have not measured that, and we will not claim it until we have.

WooCommerce

The shop, the product, the cart and the checkout.

Measured on WooCommerce 11.1 in a real browser, 16 Sep 2026: the catalogue, the product page, the cart and the whole checkout — down to E-Mail-Adresse, Vorname and Postleitzahl — in the visitor's language. Every add-to-cart link, product ID and product URL left exactly as it is in the original.

  • Your product names and descriptions are translated from your own store.
  • The cart and checkout interface — Proceed to checkout, Subtotal, Quantity, every field label — comes from WooCommerce's own language packs, installed for you when you add a language. Thousands of people already translated those well; you do not pay a machine to do it again.
  • Nothing is duplicated: one product, one stock count, one price, every language.

Not translated: order emails and the WordPress admin. The admin stays in your language on purpose.

Quality

DeepL, with the page as context.

Every segment is sent with its page as context, with the formality your language expects (German visitors are addressed as Sie, consistently) and with your glossary. We measured it against Google's baseline on a real site: DeepL chose a different translation in roughly half of all segments — and where they differed, it was the words the site is sold with.

revontulet · the northern lights
DeepLNordlichter
GoogleNordlicht

Singular. There is never just one.

poro · reindeer
DeepLRentier
GoogleRen

The zoological term, not the animal you meet.

Varaa nyt · Book now
DeepLJetzt buchen
GoogleBuchen Sie jetzt

The form every German booking button actually uses.

Finnish → German and English, 31 Aug 2026, four runs on a hotel site. DeepL differed from Google in 48 % of segments in English and 54 % in German.

Ownership

Your translations. Your database. Your PROperty.

Every translation is a row in your own WordPress database, and every page is rendered on your own server. Our service produces new translations; it is not in the path of a single visitor.

If we went away tomorrow, your site would keep serving every language exactly as it does today. Only new translations would stop appearing.

If you stop paying, nothing is taken back. Weglot and GTranslate serve your translated pages from their servers: cancel, and the languages vanish.

If you delete the plugin, the translations stay — unless you tick the one box that says otherwise. "Delete and reinstall" is a normal WordPress fix, and it should never cost you a year of work.

If you want them out, they are plain rows in plain tables. Export them whenever you like.

Pricing

One price per site. Every language included.

The allowance renews every month — there is no running total that eventually forces you up a tier, and you are never charged per language. For scale: a complete two-language translation of a normal hotel site came to about 110,000 characters, once, and our own site, bastinet.fi in two languages, to 552,000. Either fits a Site plan in its first month and every month after. After that, only what you change is translated again.

The difference shows over time. With credit-based plugins the included credits are spent once and do not come back — our own site would have used twice WPML's included amount in its first year, the rest bought separately. With proxy services the word cap never renews, so a growing site is pushed up a tier. Here, the same plan covers the same site for as long as you keep it. Figures from each service's own pricing page, 15 Sep 2026.

SiteOne site
€149per year
  • 1,000,000 characters a month
  • Every language
  • Email support from the people who built it
Order Site »
Studio5 sites
€549per year
  • 1,000,000 characters a month, on each site
  • Every language
  • One invoice for all five
Order Studio
Agency10 sites +
€990per year
  • 10 sites included, €69 a year for each one after that
  • 1,000,000 characters a month, on each site
  • Every language. One invoice.
Order Agency

Pay by card on Stripe's checkout page. The key for your site is upgraded within one working day, and the receipt comes by email. Prefer an invoice? Order by email instead. Prices in euros, VAT not included; EU companies enter their VAT number at checkout and pay no VAT. Before you buy, the plugin translates your front page on a preview key — 5,000 characters, once — so you see the result on your own site. No card, no account.

More than 25 sites, a reseller agreement, your own translation engine key, or special terms? Talk to us — we agree a price that fits.

What it does not do

The honest list.

Every claim on this page is something we measured. So is this.

Order emails and the WordPress admin are not translated. The admin stays in your language on purpose — you should see your own site the way you wrote it.

Text that a plugin draws with JavaScript after the page has loaded is reached only if that plugin ships its own translations. Most do.

The translation engine is DeepL. It is very good, and it is not a human translator. Anything you correct by hand is locked and never overwritten.

We have not measured page speed against the other plugins in the same lab yet. Until we have, you will not see the word "faster" on this page.

Start

Your site, in every language, by lunch.

Install the plugin, add a language, publish. The preview key translates your front page first, so you see the result on your own site before you pay.

Download the plugin » Version 0.1.1, 157 kB, GPL. Install it from Plugins → Add New → Upload. Made in Finland, running on our own sites first.