Four steps, in order, for every request that asks for a language other than your own.
Your domain points at the translation proxy instead of straight at your server. A request for /es/pricing arrives at the proxy, not at your origin.
The proxy strips the language prefix and requests /pricing from your own server, exactly as a browser would. Your site is unchanged and does not know the difference.
Visible text, link titles, form labels, alt text, and the meta title and description are pulled out of the HTML and translated with full page context, so a word is translated the way the surrounding sentence uses it.
The proxy writes the translations back into the same HTML and returns it. The result is cached at the edge, so the next visitor asking for that page in that language is served without any translation work.
Every architecture trades something away. These are the trades a proxy makes, including ours.
Nothing is installed in your codebase or your content management system. This is the reason proxies exist: teams with no engineering time, or a stack nobody wants to touch, can still ship a multilingual site.
The translation happens before the page reaches the browser, so a crawler receives a fully rendered page in the target language rather than an English page that a script would have rewritten later.
Translated pages are served from your own domain under a path such as /es/ or /ja-jp/, so each language inherits the authority the domain has already earned.
A page published this morning is translated the first time somebody requests it. There is no export, no re-import, and no build step to re-run.
Full proxy mode means your domain resolves to us. That is a real dependency and the reason we offer two lighter modes as well. If you are not ready for it, hybrid mode gives crawlers server-rendered translations while your DNS stays where it is.
A proxy reads HTML, and text painted into a JPEG is not HTML. Alt text is translated automatically. Text baked into the image itself is translated only for the images you opt in per image, and the translated image is then cached for that language.
Pages a crawler can never reach still translate for the visitor who is signed in, but they cannot be pre-translated by crawling alone. Authenticated pages are discovered separately.
A proxy translates continuously, so it is billed continuously. What we do not do is re-bill a sentence you have already paid for: translated words are stored permanently rather than metered again every month.
Most translation services give you one install mode and expect you to live with its trade-off. Proxylang ships three, and you can move between them without redoing the setup.
| Mode | Available on | Your DNS | Search engines |
|---|---|---|---|
| Script tag One line of JavaScript translates the page in the visitor’s browser. Fastest to install and the right choice when you want the language switcher working today. It is not a proxy, and it does not earn you search traffic on its own. | Every plan, including free | Unchanged | See your original language |
| Hybrid Visitors are translated in the browser; search engine crawlers are served a translated page rendered on the server. You get the indexable pages a proxy gives you without moving your DNS. Crawler pages are translated within a per-page token budget. | Start plan and up | Unchanged | Get server-rendered translated HTML |
| Full reverse proxy Every request for a translated URL is rendered on the server for everyone. This is the mode this page is about, and the one that behaves identically for a visitor, a crawler and an AI assistant. | Pro plan and up | Points at Proxylang | Get the same page every visitor gets |
A website translation proxy is a server that sits between your visitors and your website. When somebody requests a translated URL, the proxy fetches the original page from your server, translates the text inside the HTML, and returns the translated page. Your site is never modified, and you do not install anything in it. The translated pages live on your own domain, usually under a language path such as /es/ or /ja-jp/.