JavaScript website translation for any site

Paste one snippet into the head of your pages. ConveyThis translates what the browser shows, including text your own JavaScript adds later, and adds a language switcher. You review and change any wording in your dashboard.
Try it free

No card details

Free plan: 10,000 words, 1 language, 1 website · Paid plans from $12 a month · 4,500+ paying customers

See all integrations

G2 High Performer Spring 2023
G2 Easiest Setup Fall 2024
G2 Best Support Spring 2025

What the snippet does on your site

  • Text added after page load
  • Single-page app navigation
  • Titles and meta descriptions
  • Visual editor
  • Language URLs on Business and higher

How ConveyThis works on any website

The JavaScript snippet is for any site without a ConveyThis plugin or app. That includes hand-written HTML, static site generators and site builders with a header code field. It also works for apps with a PHP, Python, Ruby or Node back end. You paste the snippet into the head of your pages, and a language switcher appears on your live site.

The snippet translates what the browser displays: body text, page titles, meta descriptions, image alt text, placeholders and button labels. It keeps watching the page, so text your own scripts add later is translated when it appears. ConveyThis is not a library you build into your code. It translates the site your visitors see, and you review the wording in the ConveyThis dashboard.

Other ways to translate a JavaScript site

Integration illustration

Instead of the Google Translate widget

Google stopped supporting its Website Translator widget on October 1, 2026, and the widget has been closed to new commercial sites since 2020. It translated each page in the visitor's browser and saved nothing, so there was no wording to review or fix. ConveyThis saves every translation in your account. You can change any sentence in the visual editor. On the Starter plan or higher, a glossary keeps brand names fixed. We read Google's notice on September 27, 2026.

Instead of building translation into your code

With ConveyThis, you don't move your text into translation files or change your templates. One snippet translates the pages as the browser shows them, including page changes in single-page apps. You or your team can fix wording in the dashboard, and changes go live when you save them, without a release. Building it yourself is the better choice if translations must be in the HTML your own server sends, or if every string has to go through code review.

Language URLs and search engines

Shared URL or one URL per language

By default, the snippet translates your pages in the visitor's browser. Visitors change language with the language switcher and stay on the same URL, so your languages don't have URLs of their own. The setup wizard also offers a language parameter in the URL. For a separate URL per language, you need the Business plan or higher and a DNS change. With subdomains such as fr.example.com, you add one CNAME record per language, and your own server keeps serving the original site. With subdirectories such as example.com/fr/, the domain's A record points at ConveyThis. All traffic to your site, including the original pages, then goes through ConveyThis, and a wrong record can take the site offline. Each language URL gets hreflang tags and a translated title and meta description in the page, so search engines can find and index each language. We recommend subdomains for most custom sites.

Multilingual SEO illustration

Translation quality you can check

Translation quality illustration

AI translation, then your edits

AI and machine translation give you a first draft of every page. The draft usually reads naturally, but review it, starting with your most visited pages. In the visual editor, you click any text on your live site and change it. The visual editor can't open a site that is password-protected or in maintenance mode. When you change a sentence, the change applies to every page that already has that sentence. For text that must be exact, you can order a professional human translation from the text editor in your dashboard, priced per word. Test it on your own site first, on the Free plan.

Control what gets translated

Exclusions, files and team access

Some values must stay as they are, such as account names, order numbers or code samples. On paid plans, you can exclude whole pages with a rule, or single elements by their ID or class. You can also add the conveythis-no-translate class in your markup. Import and export translations as CSV or TMX files. On the Pro plan or higher, you can invite translators and managers to your ConveyThis account, and their edits go live when they save them.

Control and collaboration illustration

Images, switcher and visitor language

Website localization illustration

Images per language and the language switcher

Swap an image, video or PDF for each language, for example a screenshot with English text on it. ConveyThis doesn't read text inside images, but it does translate image alt text. Choose the switcher's position, colors and flags, and show it as a dropdown or a popup. You can also add your own CSS. On the Starter plan or higher, you can send visitors to the language their browser uses.

Free plan and paid plans

Free plan

10,000 words, 1 language and 1 website. No card needed and no time limit.

Paid plans from $12 a month

Starter has 60,000 words in 1 language. Business has 200,000 words in 3 languages, plus language URLs. You can upgrade from your dashboard at any time.

4,500+ paying customers

20,000+ websites translated. Rated 4.8/5 on Capterra from 36 reviews.

More that comes with ConveyThis

Platform plugins

WordPress, Shopify and other platforms have their own ConveyThis plugin or app. Use that instead of the snippet.

Framework guides

Angular, Backbone and Ember have their own setup guides.

Right-to-left languages

On every plan, Arabic and Hebrew pages display right to left.

Usage statistics

See words translated, translation requests and languages used, for the whole site and per page.

Glossary

On the Starter plan or higher, keep brand and product names fixed in every language.

How to add ConveyThis to your site in 4 steps

You need access to the head of your pages, or to your builder's header code field.

Follow these steps in the ConveyThis dashboard and in your site's code.

1

Create a free account

Sign up with your email.
2

Add your website and languages

In the dashboard, add your domain, set your site's original language and choose the languages you want.
3

Paste the snippet

Copy the snippet from your dashboard. Paste it into the head of every page, just before the closing head tag. If all pages share one layout file or header include, adding it there once is enough. On a site builder, use the setting called Custom Code, Header Code or similar. If you later change settings in the dashboard, copy the snippet again.
4

Check your site

Open your live site. The language switcher appears. The first time, this can take a little while. Then review your main pages in the visual editor.

The JavaScript setup guide has screenshots of each step.

Setup takes a few minutes.

Common questions about JavaScript website translation

Which kinds of websites can use the snippet?

Any site where you control the HTML that reaches the visitor's browser. That includes hand-written HTML, output from static site generators and site builders that let you add header code. It also includes server-rendered apps written in PHP, Python, Ruby or Node. If your site runs on a platform with its own ConveyThis plugin or app, install that instead of the snippet.

See ConveyThis for WordPress.

See ConveyThis for Shopify.

What about text that JavaScript adds after the page has loaded?

It gets translated too. The snippet watches the page for changes. Results from AJAX calls, filtered product lists, tabs and "load more" sections are translated when they appear. When your app changes the URL without a full reload, the snippet translates the new page too. Messages your scripts add to the page, such as form errors, are included. To keep values such as account names or order numbers in the original language, use the exclusions described above.

Read the exclusion guide.

I build sites for clients. Can one account cover several of them?

Yes, on the Pro plan or higher. Pro ($64 a month) includes 3 websites, Pro+ ($110 a month) includes 5 and Optimum ($160 a month) includes 10. Free, Starter and Business cover 1 website. Each website keeps its own languages and settings, and the plan's word allowance is shared across all of them.

Read about using ConveyThis on several websites.

What does ConveyThis cost for a custom site?

You pay for translated words and languages. Each word is counted once, the first time it is translated. Each plan also includes a monthly number of translation requests (page loads). The Free plan has 10,000 words, 1 language and 2,500 page loads. Starter is $12 a month for 60,000 words in 1 language and 15,000 page loads. Business is $24 a month for 200,000 words in 3 languages and 50,000 page loads, and it adds language URLs. A busy site may need a bigger plan because of its page loads, not its words. Paying yearly gives you 12 months for the price of 10.

Compare all plans.

What happens when I reach my word limit?
Pages that are already translated keep showing in every language. New text stays in your site's original language until you upgrade.

Have a different question?

Write to our support team. We can help in multiple languages.

Try ConveyThis on your site

Start on the Free plan: 10,000 words in 1 language, with no card needed and no time limit. Upgrade from $12 a month when you need more.

Start translating my site

No card details