My page is not translating
On this page
Work through these in order. The first one that matches is usually the cause.
1. Is the site published?#
In the dashboard, the site list should say Live with a version number. Not published means nothing has been published yet. Partly updated means a target failed. See Publish changes.
2. Is the language published?#
A language only reaches visitors after a publish that included it. Check the languages of the site, then publish again.
3. Is the loader running?#
Open the browser's developer tools and the Network tab. Reload. Is loader.js requested, and does it answer with status 200? A blocked request means no translation. Ad blockers and a content security policy can block it. See Content security policy.
On WordPress, check that you pressed Sync now and that the plugin shows a loader. Without a valid site key and public key nothing is added.
4. Is the manifest requested?#
Look for manifest.json. The address looks like <base>/v1/<site key>/manifest.json. A 404 means the site key is wrong, nothing is published, or data-base points to the wrong place.
5. Signature or key problem#
The loader refuses a manifest that is unsigned, signed by a key it does not know, or older than one it already accepted. Check that data-public-key is the current public key shown for the site. The loader reports an error event with a stage that says where it failed. Without a public key, the loader switches itself off and writes one warning in the console.
6. Checksum mismatch#
A proxy, cache or optimiser that rewrites JSON files changes the bytes, and the file is refused. Exclude the translation file paths from such features. See Caching plugins and CDNs.
7. Unsupported browser#
The loader needs Fetch, Promise, MutationObserver, TextEncoder and signature checking in Web Crypto. A browser without them stays on the original language.
8. The text is not in the bundle#
A missing translation shows the original text. Make sure the text was found and translated, then publish. Text in code blocks and in translate="no" elements is never translated. See What is and is not translated.
9. It works for you but not for visitors#
The loader keeps the visitor's choice and cached files in the browser. Test in a private window with an empty cache.
Still stuck#
Keep the site name, the time and what you saw. Never send a secret key.