Flash of untranslated text
On this page
Why it happens#
The script tag translates the page after the browser has drawn it. This is by design. The loader never blocks rendering, so a slow or failing translation can never hold your page back.
On a script-only site, a visitor can therefore see your original text for a moment, and then the translated text. If the translated text is longer, the page can shift.
How big is the shift?#
In a test on one sample page, text of the same length caused no shift. When every paragraph was 20 percent longer, the layout shift score was 0.076. The usual "good" limit is 0.1. That is one test page, not a promise for your site. Measure your own pages.
What reduces it#
- Use an install path that translates before the page is sent. WordPress with language addresses, Shopify, and the framework kits write translated text into the page. The loader sees that the page is already translated and does nothing. See Install.
- Leave room for longer text. Set minimum heights on headings and buttons, and let text wrap.
- Keep the script early. Put the
asynctag in the head, not at the end of the body. - Return visitors load the translation files from their browser's saved copy, which is quicker.
Hiding the page until it is ready#
There is no setting for this, and we do not offer one that could leave your page blank. The owner approved an opt-in "hide until ready" mode on 2026-10-28. It cannot be built safely on the current script tag, for three reasons:
- The script tag has a fixed list of attributes. A hide setting would add a new one. That changes the tag contract, and the checks in the dashboard, the install checker, the snippet generator and the Shopify extension would all have to change with it.
- The script arrives after the first paint. To hide the page before it is drawn, something else has to run earlier, in the head, and block rendering. That breaks the rule that our script never blocks your page. It also needs your content security policy to allow an inline style or script.
- The script gives no reliable "translated" signal on a first visit. Its ready event can come before the language file is applied. A hide that waits for it could reveal too early or, if it never comes, leave the page blank.
Until that contract is changed, use the ways above to reduce the flash. The install paths that translate before the page is sent avoid it completely.
What not to do#
Do not write your own code that hides the page. If the script fails, the page would stay hidden. Always keep the original text visible as the fallback.