{
    "title": "TranslatePress",
    "seo_title": "TranslatePress: review, recommended settings and limits",
    "h1": "TranslatePress",
    "description": "TranslatePress free or paid: visual translation, limitations, license pricing, recommended settings and 2026 security fixes, to help you decide.",
    "lead": "TranslatePress translates a WordPress site right on the page, including content, theme and plugins, by hand or with automatic translation. Our take on the free version and the licenses, the settings that protect your translation budget and the vulnerabilities patched in 2026.",
    "language": "en",
    "locale": "en-US",
    "type": "plugin-sheet",
    "url": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/",
    "canonical": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/",
    "markdown": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/index.md",
    "json": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/index.json",
    "published": "2026-11-04T08:00:00+00:00",
    "modified": "2026-11-05T21:27:08+00:00",
    "site": {
        "name": "WP Masquerade",
        "url": "https://www.wp-masquerade.com/"
    },
    "translations": [
        {
            "language": "en",
            "hreflang": "en-US",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/",
            "markdown": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/features/camouflaged-plugins/translatepress/index.json"
        },
        {
            "language": "fr",
            "hreflang": "fr-FR",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/fr/fonctionnalites/extensions-camouflees/translatepress/",
            "markdown": "https://www.wp-masquerade.com/fr/fonctionnalites/extensions-camouflees/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/fr/fonctionnalites/extensions-camouflees/translatepress/index.json"
        },
        {
            "language": "es",
            "hreflang": "es-ES",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/es/funcionalidades/plugins-camuflados/translatepress/",
            "markdown": "https://www.wp-masquerade.com/es/funcionalidades/plugins-camuflados/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/es/funcionalidades/plugins-camuflados/translatepress/index.json"
        },
        {
            "language": "de",
            "hreflang": "de-DE",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/de/funktionen/getarnte-plugins/translatepress/",
            "markdown": "https://www.wp-masquerade.com/de/funktionen/getarnte-plugins/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/de/funktionen/getarnte-plugins/translatepress/index.json"
        },
        {
            "language": "it",
            "hreflang": "it-IT",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/it/funzionalita/plugin-camuffati/translatepress/",
            "markdown": "https://www.wp-masquerade.com/it/funzionalita/plugin-camuffati/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/it/funzionalita/plugin-camuffati/translatepress/index.json"
        },
        {
            "language": "pt",
            "hreflang": "pt-BR",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/pt/recursos/plugins-wordpress-camuflados/translatepress/",
            "markdown": "https://www.wp-masquerade.com/pt/recursos/plugins-wordpress-camuflados/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/pt/recursos/plugins-wordpress-camuflados/translatepress/index.json"
        },
        {
            "language": "nl",
            "hreflang": "nl-NL",
            "title": "TranslatePress",
            "url": "https://www.wp-masquerade.com/nl/functies/gecamoufleerde-plugins/translatepress/",
            "markdown": "https://www.wp-masquerade.com/nl/functies/gecamoufleerde-plugins/translatepress/index.md",
            "json": "https://www.wp-masquerade.com/nl/functies/gecamoufleerde-plugins/translatepress/index.json"
        }
    ],
    "headings": [
        {
            "level": 1,
            "text": "TranslatePress"
        },
        {
            "level": 2,
            "text": "What TranslatePress does on your site"
        },
        {
            "level": 2,
            "text": "Which sites TranslatePress is a good fit for"
        },
        {
            "level": 2,
            "text": "TranslatePress strengths and limitations"
        },
        {
            "level": 3,
            "text": "Strengths"
        },
        {
            "level": 3,
            "text": "Limitations"
        },
        {
            "level": 2,
            "text": "The TranslatePress settings we recommend"
        },
        {
            "level": 2,
            "text": "TranslatePress security: a busy fall 2026"
        },
        {
            "level": 2,
            "text": "TranslatePress frequently asked questions",
            "id": "faq"
        }
    ],
    "body": "## The essentials\n\n- Best for bilingual sites or WooCommerce stores you want to translate visually, page by page.\n- Main caveat: the free version allows one translation language and no multilingual SEO.\n- Free; licenses run from €99 per year for one site to €349 for unlimited sites.\n\n## What TranslatePress does on your site\n\nTranslatePress translates a WordPress site from the page itself. You open the translation editor, the page appears exactly as your visitors see it, you click a piece of text and type its translation. Everything is covered: content, menus, theme strings, and output from page builders, forms and WooCommerce. Each post stays a single post: translations live in separate tables in your database, and the plugin swaps them in for the original text when the page is rendered.\n\nTranslated pages get their own URLs, with one subdirectory per language (`/en/`, `/de/`), and the plugin adds [hreflang](https://www.wp-masquerade.com/glossary/hreflang/) tags in the head that link the versions together. The language switcher can be added as a menu item, a block, the `[language-switcher]` shortcode or a floating dropdown. For automatic translation, the free version offers TranslatePress AI up to 2,000 words, or Google Translate with your own API key, whose usage Google may bill you for.\n\nThe developer, Cozmoslabs, sells three yearly licenses. They unlock extra languages (the free version is limited to one translation language), the SEO Pack add-on to translate slugs, titles and meta descriptions, a quota of words translated by TranslatePress AI and, from the Business plan up, DeepL, translator accounts and automatic detection of the visitor’s language.\n\n![Diagram: TranslatePress works on visitors and bots, wordpress, database and files. Public traces: folder name (hidden with Pro); tag IDs (hidden with Pro); JavaScript variables (still visible); CSS classes (still visible).](https://www.wp-masquerade.com/media/wpm-sheets/translatepress/diagram-en.svg?v=08d4576a)\n\n## Which sites TranslatePress is a good fit for\n\nTranslatePress works well when you want to translate what your visitors actually see, without managing a copy of every post:\n\n- **Bilingual sites**: the free version covers one main language and one translation language, with no page limit.\n- **Sites built with Elementor, Divi or another page builder**: you translate the final output, including module text that classic translation screens tend to miss.\n- **WooCommerce stores**: product pages, cart, checkout and emails are translated in the same visual editor.\n- **Small teams without a dedicated translator**: a first automatic pass, then a page-by-page review.\n\nIt is not the best choice if you want each translation to be real WordPress content, with its own author, categories or a different layout per language: [Polylang](https://www.wp-masquerade.com/features/camouflaged-plugins/polylang/) creates a separate post for each language. If you need more than two languages, budget for a paid license from day one.\n\n## TranslatePress strengths and limitations\n\n### Strengths\n\n- **Translation in context.** You see the real page while you translate, which avoids text that runs too long or misses the point.\n- **No forgotten strings.** Theme and plugin strings are translated in the same place as your content.\n- **Translations stay with you.** Everything lives in your database, and your translations keep showing if you do not renew the license.\n- **API cost control.** Crawler blocking and a daily character cap keep automatic translation from running away.\n\n### Limitations\n\n- **One translation language in the free version.** Anything beyond a bilingual site needs a paid license.\n- **Paid multilingual SEO.** Slugs, titles, meta descriptions and social tags are translated with the SEO Pack, which the free version lacks.\n- **DeepL and translator accounts start at Business.** The €99 Personal license does not include them.\n- **A run of vulnerabilities in 2026.** Between August and October, about ten flaws were patched, including a critical one exploitable without an account.\n\n## The TranslatePress settings we recommend\n\nAll these settings exist in the current free version, under Settings > TranslatePress. Save each tab, then run the checks below.\n\n| Setting | Recommended value | Why |\n| --- | --- | --- |\n| **Default Language**  Settings > TranslatePress > General | The language your content is written in | Changing it later invalidates every existing translation, even from en_US to en_GB. |\n| **Use a subdirectory for the default language**  Same screen | Off (default) on an existing site | URLs in your main language stay the same; only translations get a prefix such as `/en/`. |\n| **Force language in custom links**  Same screen | On (default) | A hand-typed link keeps visitors in the language they chose. |\n| **Enable Automatic Translation**  Settings > TranslatePress > Automatic Translation | On only if someone reviews the output | Machine translation published without review shows, especially on sales pages. |\n| **Block Crawlers**  Same tab, Advanced subtab | On (default) | Bots crawling your pages do not trigger automatic translations at your expense. |\n| **Limit machine translation / characters per day**  Same screen | On with Google Translate or DeepL | Usage of these APIs may be billed separately: a daily cap protects your budget if something goes wrong. |\n| **Log machine translation queries**  Same screen | Off (default) | The developer reserves this log for testing, since it can slow the site down. |\n| **Manual Translation Only**  Settings > TranslatePress > Advanced | Depends on the site: consider it once translations are done | Strings are no longer saved on every visit, only in the translation editor; in exchange, new content is no longer translated automatically outside the editor. |\n\n- Open a page in the translated language: its URL should start with the language prefix, for example `/en/`.\n- View the source of the same page: you should find one `link rel=\"alternate\" hreflang` tag per published language.\n- Switch languages with the switcher, then click a menu link: you should stay in that language.\n- In Plugins, check that TranslatePress runs at least version 3.3.8, which fixes the latest published flaw.\n\n## TranslatePress security: a busy fall 2026\n\nTranslatePress reads and rewrites the HTML of every page, including text submitted by visitors such as comments: that is where its flaws cluster. After two [deserialization](https://www.wp-masquerade.com/glossary/insecure-deserialization/) flaws in 2025, the Patchstack database lists about ten fixes between August and October 2026. The most important ones:\n\n- **CVE-2025-58592, fixed in 2.10.3**: PHP object injection without an account (CVSS 8.1).\n- **CVE-2026-19632, fixed in 3.3.2**: an unauthenticated visitor could retrieve an administrator’s password reset link, stored in the translation table, and take over the account (CVSS 9.8). It required automatic string saving to be on, which is the default, and the administrator’s profile language to be a published translation language. Patchstack flags it as exploited and also lists it as CVE-2026-78267.\n- **CVE-2026-89412, fixed in 3.3.6, and CVE-2026-107768, fixed in 3.3.8**: unauthenticated [stored XSS](https://www.wp-masquerade.com/glossary/xss/), the second through a comment published without moderation (CVSS 7.2).\n\nGiven the pace of fixes, turn on automatic updates for TranslatePress in Plugins (see our guide to automatic plugin updates); if your comments go live without approval, switch them to moderation. WP Masquerade Pro removes the TranslatePress folder name from its file URLs and its tag IDs, which makes the plugin harder to spot for bots targeting these flaws; the `trp_*` JavaScript variables and `trp-*` classes stay visible, and this masking does not replace updating.\n\n## TranslatePress frequently asked questions\n\n**Is the free version of TranslatePress enough?**\n\nFor a bilingual site, often yes: the visual editor, theme and plugin translation, the language switcher and hreflang tags are free. You need a license for a third language, to translate slugs and SEO metadata, or for a real AI translation quota.\n\n**How much does TranslatePress cost, and for how many sites?**\n\nThe official page lists €99 per year for one site (Personal, 50,000 AI words), €199 for three sites (Business, 200,000 words) and €349 for unlimited sites (Developer, 500,000 words). Licenses renew automatically each year and come with a 15-day refund window.\n\n**What happens if I do not renew the license?**\n\nAccording to the developer, the plugin keeps working and your translations keep showing. You lose access to TranslatePress AI, some premium features, new releases and downloads.\n\n**Does TranslatePress slow down my site?**\n\nThe developer claims a small impact, but the plugin swaps text in as each translated page is rendered. Since every translated version has its own URL, a caching plugin such as [LiteSpeed Cache](https://www.wp-masquerade.com/features/camouflaged-plugins/litespeed-cache/) caches it like any other page.\n\n## Key facts\n\n- Category: Languages and translation\n- Vendor: Cozmoslabs\n- Price: Free for one translation language; licenses from €99 per year for one site\n- Active installations (wordpress.org): 400 000+\n- Version: 3.3.9\n- Official page: https://wordpress.org/plugins/translatepress-multilingual/\n\n## What WP Masquerade hides\n\n- Handled by WP Masquerade Pro only\n- With Pro: folder name, tag IDs\n- Still visible: JavaScript variables, CSS classes",
    "catalog": "translatepress",
    "essentials": [
        "Best for bilingual sites or WooCommerce stores you want to translate visually, page by page.",
        "Main caveat: the free version allows one translation language and no multilingual SEO.",
        "Free; licenses run from €99 per year for one site to €349 for unlimited sites."
    ],
    "format": "application/json"
}