Skip to content

Works with your stack

Cookie consent for translation plugins

the banner speaks every language

← Cookie Rocks for your stack

Translation plugins rarely set cookies on their own with default settings. What matters is where the text goes to be translated, and which language the banner shows. Some translate on your server, some in the visitor’s browser.

What each translation plugin puts on your pages

Weglot
Translates on your server with Weglot. No cookie and no Weglot script by default. Redirection, previews and page view statistics are options that add cookies or data.
TranslatePress
No cookie and nothing in the browser’s storage. It sets the WordPress language from the page address. Automatic translation sends text from your server.
MultilingualPress
One site per language in a network. Cookie Rocks keeps one choice and one set of settings per site, so the banner shows again after a language switch.
GTranslate
Translates in the visitor’s browser with Google in the free version. Its library loads on request. Cookie Rocks classes it as necessary and never holds it.

What matters for consent with Translation plugins

Little to hold by default

With default settings, Weglot and TranslatePress set no cookie, keep nothing in the browser’s storage and load no outside tracker.

Server or browser

Weglot and TranslatePress’s automatic translation send text from your server. GTranslate sends it from the visitor’s browser. Neither can wait for a banner: mention the provider in your privacy policy.

The banner’s language

A banner that follows the WordPress language shows in the page’s language with TranslatePress and MultilingualPress. Weglot leaves the WordPress language unchanged.

Translating the banner itself

TranslatePress and GTranslate can translate text added after load, banner included. Each has its own way to keep an element out.

What our tests found on Translation plugins

  • Good to know · WeglotWhat Weglot stores in visitors' browsers

    Weglot: 3 cookie(s) or browser key(s) for visitors, recognised by Cookie Rocks from 2.9.8.

    NameKept inCategoryWhat it is for
    WG_CHOOSE_ORIGINALcookiePreferencesRemembers that the visitor chose the original language
    weglot_wp_rocket_cachecookieNecessaryServes the right translated page from the cache
    wp-resetpass-*cookieNecessaryKeeps a password reset going

    Read in its code, 2 November 2026, Weglot.

    Full detail

    Weglot can store these in a visitor's browser: WG_CHOOSE_ORIGINAL (cookie, preferences: Remembers that the visitor chose the original language); weglot_wp_rocket_cache (cookie, necessary: Serves the right translated page from the cache); wp-resetpass-* (cookie, necessary: Keeps a password reset going). Cookie Rocks recognises them from 2.9.8, with this category and purpose, and lists them in the cookie policy when it sees them.

  • Good to know · TranslatePressWhat TranslatePress stores in visitors' browsers

    TranslatePress: 1 cookie(s) or browser key(s) for visitors, recognised by Cookie Rocks from 2.9.8.

    NameKept inCategoryWhat it is for
    trp_languagecookieNecessaryRemembers the language chosen by the visitor

    Seen in our tests, 2 November 2026, TranslatePress.

    Full detail

    TranslatePress can store these in a visitor's browser: trp_language (cookie, necessary: Remembers the language chosen by the visitor). Cookie Rocks recognises them from 2.9.8, with this category and purpose, and lists them in the cookie policy when it sees them.

  • Good to know · TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet, MatomoTranslatePress, Weglot, MailPoet and others set nothing by default

    by default: Default settings

    With default settings and nothing set up, TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet and Matomo for WordPress set no cookie, use no storage and load no known third-party tool.

    Seen in our tests, 17 October 2026, TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet, Matomo 3.3.8, 6.4.3, 6.14.0, 10.1.10, 5.42.0, 5.13.1. Source

    Full detail

    On a fresh WordPress home page with default settings (no account, key or content set up), TranslatePress, Weglot, Smash Balloon Instagram Feed, WP Go Maps, MailPoet and Matomo for WordPress set no cookie, keep nothing in the browser's storage and load no known third-party tool, after Accept all.

  • Set before the choice · WeglotWeglot loads no script by default; page view statistics send data to Weglot

    setting “page_views_enabled” · by default: false

    Flag images and custom switchers load from cdn.weglot.com. With page view statistics on (off by default), a script in the page sends each address and its languages to api.weglot.com.

    Read in its code, 16 October 2026, Weglot 6.4.3.

    Full detail

    By default Weglot's plugin loads no Weglot script on visitor pages; weglot.min.js from cdn.weglot.com is added only through the weglot_translate_dynamics or weglot_autoredirect_js filters. Flag images of its new flag style load from cdn.weglot.com/flags, and custom switchers made in the Weglot dashboard load a script from cdn.weglot.com/switchers. If page view statistics are on in the Weglot project (page_views_enabled, off by default), an inline footer script POSTs the page address, its language and the browser language to api.weglot.com/pageviews on every page; being inline, it has no script address to match.

  • Depends on a setting · WeglotWeglot sets cookies only with some settings

    setting “Auto redirect (auto_switch)” · by default: false

    • With redirection on, choosing the original language sets WG_CHOOSE_ORIGINAL (2 days).
    • With WP Rocket and redirection: weglot_wp_rocket_cache (session) on the first request.
    • weglot_allow_private (2 days) is for previewing private languages.
    • It never sets wglang. Cookie Rocks 2.5.1 lists these cookies with these durations.

    Read in its code, 16 October 2026, Weglot 6.4.3.

    Full detail

    Weglot's WordPress plugin sets cookies in PHP only with some settings. Automatic redirection (off by default) sends a 302 to the browser's language from original-language pages with Vary: Accept-Language; choosing the original language sets WG_CHOOSE_ORIGINAL for 2 days. With WP Rocket and redirection, it sets the session cookie weglot_wp_rocket_cache on the first request and declares it mandatory, so a visitor's first page is not served from cache. weglot_allow_private (2 days) is for previewing private languages. It never sets a wglang cookie, and its local scripts use no cookie or browser storage. Cookie Rocks 2.5.1 lists these cookies with these durations.

  • Sent from your server · WeglotWeglot translates on the server and sends page text to api.weglot.com

    It does not change the WordPress language, so anything that follows the WordPress locale stays in the original language unless it reads Weglot's current language.

    Read in its code, 16 October 2026, Weglot 6.4.3.

    Full detail

    Weglot translates pages on the site's server: the HTML of each page in a translated language (and Ajax JSON answers) is parsed and its text sent to api.weglot.com, then the page is rewritten in the output buffer. It does not change the WordPress language: on a translated page, determine_locale() still returns the original language, so anything that follows the WordPress locale stays in the original language unless it reads Weglot's current language.

See the 7 other findings
  • Good to know · TranslatePressTranslatePress sends a banner's text to the site to look for a translation

    On secondary-language pages, text added after load is sent to the site by Ajax. The data-no-translation attribute or the Exclude from dynamic translation setting skips an element.

    Read in its code, 16 October 2026, TranslatePress 3.3.8.

    Full detail

    On pages in a secondary language, TranslatePress's trp-translate-dom-changes.js watches the page with a MutationObserver and sends text added after load, such as a consent banner, to the site by Ajax (trp_get_translations_domchanges) to look for a translation. Elements are skipped with the data-no-translation attribute or the Exclude from dynamic translation setting. Its code classes its own inline data script as functional for another consent plugin, so that it is not held.

  • Good to know · MultilingualPressWith MultilingualPress, the banner shows again in each language

    Each language is its own network site, with its own consent cookie and Cookie Rocks settings. A visitor who switches language sees the banner again, even on subfolders of one domain.

    Read in its code, 16 October 2026, MultilingualPress 5.3.0.

    Full detail

    MultilingualPress gives each language its own site in a WordPress network. Cookie Rocks keeps one consent cookie per network site (cr_consent on the main site, cr_consent_<id> on the others) and one set of settings per site, so a visitor who switches language sees the banner again, even when the language sites are subfolders of one domain. The banner language follows each site's WordPress locale.

  • Set before the choice · GTranslateGTranslate loads its library when the visitor points at the switcher

    setting “enable_cdn” · by default: off

    It also loads on click, or on page load if a language is kept or detected. It no longer sets googtrans and keeps the language in localStorage.

    Read in its code, 16 October 2026, GTranslate 5.0.1.

    Full detail

    GTranslate 5.0.1 serves its widget scripts from the site by default (CDN option off) and inserts its translation library (cdn.gtranslate.net/widgets/latest/lib.min.js) with JavaScript when the visitor points at or focuses the switcher, clicks it, or on load if a language is kept or browser language detection applies. Every response also carries a Link: <https://cdn.gtranslate.net/>; rel=dns-prefetch header. It no longer sets googtrans; it keeps the language in localStorage __GT_TRANSLATE_LANGS (and gt_autoswitch).

  • Sent from your server · GTranslateGTranslate paid versions relay visitors' requests and cookies to its servers

    With language folders, each translated page request is sent with the visitor's headers, cookies, form data, files and IP address. With browser detection, it sets gt_auto_switch for 30 days.

    Read in its code, 16 October 2026, GTranslate 5.0.1.

    Full detail

    In GTranslate's paid versions with language folders, the site relays each translated page request to <server>.tdn.gtranslate.net with all the visitor's HTTP headers (cookies included, so the consent cookie too), form bodies, uploaded files and IP address. With browser detection, PHP sets gt_auto_switch for 30 days on the home page and redirects by Accept-Language (Vary: Accept-Language).

  • Good to know · GTranslateGTranslate free sends the page text to Google once a language is chosen

    This also happens when the language is detected from the browser. Text added later is translated too, so the banner's text is sent. Elements marked notranslate are skipped.

    Read in its code, 16 October 2026, GTranslate 5.0.1.

    Full detail

    In GTranslate's free version, once a language is chosen (or detected from the browser, without a click), the page text is posted from the visitor's browser to translate-pa.googleapis.com, and a MutationObserver translates text added later, so a banner's text is sent too. Elements with the class notranslate or translate="no" are skipped.

Questions

What about WPML and Polylang?

They have their own pages: WPML and Polylang.

Does the visitor have to choose again in each language?

Only when each language is a separate site in a network, as with MultilingualPress. With the other plugins, one choice covers every language.

What happens after the 30-day trial?

The banner, your visitors’ choices and your proofs of consent keep working. Without a key, most settings lock, updates and support stop. Take a key at any time and everything opens again.

For multilingual sites

One banner in every language.

your translations stay

Every feature of the complete plugin for 30 days, no card. Your translation plugin keeps working as it does today.

  • During the trial: everything, including the full settings and the scans
  • After 30 days without a key: the banner, your visitors’ choices and your proofs of consent keep working
  • What waits for a key: most settings, updates and support

How the trial works, in detail

Get your trial key

Your e-mail and your site. Your key arrives as soon as you confirm your e-mail.

One trial per domain. Local and staging sites never use up your key.

We keep your e-mail address to send your key and help you with it, as explained in our privacy policy. No newsletter, nothing else.