Universally Documentation

Step-by-step guides, multilingual SEO tips, and best practices to help you translate and scale your WordPress website.

Install on Squarespace

A Squarespace site connects to Universally with one script tag in its site-wide Code Injection header. The tag renders the language switcher and translates each page in the visitor's browser, so your URLs stay the same in every language and there is no DNS to change. JavaScript serving mode explains how the translation works and what it leaves out.

Before you start

  • A Squarespace plan with Code Injection. Code Injection requires Core, Plus, Advanced, or an eligible legacy plan. Checkout pages do not support custom code.
  • The Owner or Admin role in your Universally workspace, to create the project and see its snippet. Editors see "Ask a project admin for this project's installation snippet." instead of the line.
  • A public site on your own domain. The connection check cannot read private or password-protected pages.

Create the project

  1. Start a new project. Under Select Your Technology, pick Squarespace.
  2. Fill in Domain, the fully qualified domain your site is published on, such as example.com. If the domain does not resolve yet, you see a warning, and you can still continue.
  3. Fill in Project Name, check Source Language (English (US) by default), and click Next.

Squarespace projects have no serving mode to pick, so the next screen is Add the snippet. Language subdomains are not available for Squarespace sites yet: your site is translated by the snippet, on its own addresses.

Add the snippet

The Add the snippet step draws your line inside an example page. The dashboard fills in your project's key:

<script src="https://scripts.universally.com/p/YOUR_PUBLIC_KEY/s.js" async></script>
  1. Click Copy line. It copies only the script tag, and the button changes to Copied.
  2. In Squarespace, open Website › Pages › Custom Code › Code Injection › Header.
  3. Paste the line and save.

Use the site-wide Header field so the script loads on every page. The Mark as complete buttons on the screen are stored in your browser and gate nothing.

Publish and check the connection

  1. Click Save, and make sure Site Availability is Public on the domain you entered in Universally.
  2. Back in Universally, click Check connection.

The check loads your home page and looks for the line. Found it means the line is on your domain, it belongs to this project, and there is nothing else to install.

Nothing changes for your visitors yet. The line only loads the Universally file, and your site starts serving translations once you add languages in the next step.

Continue and I will do this later both move on to Add Languages, and nothing waits on the check. The line stays on the project's Setup page, under The line your site needs.

Add languages

  1. On Add Languages, answer "Which languages do you want to translate into?" with at least one target language.
  2. Click Finish. It stays disabled until the project has a language.

The language dialog still shows URL Format, but the value is unused on Squarespace because your URLs never change. Each language row on All Languages has a Live switch. See Add and remove languages.

Verify it worked

Test outside the Squarespace editor, on the live domain.

  1. Open your site in a private window. A first-time visitor is matched to their browser language automatically, so a browser set to one of your target languages sees the page translated.
  2. Find the language switcher in the bottom-right corner, with flags and language names.
  3. Pick a language. The page reloads in it, at the same address.

To see how much of a page was translated, add ?uni_debug=1 to its URL and open the browser console.

If it does not work

  • We loaded your domain but the line was not in the page: the change was not saved, or the line went into a page's settings instead of the site-wide Header. Fix it and re-check. A cached copy can also hide the line for a while, and the check only looks at your home page.
  • We could not load your domain at all: the site is offline, behind a login, blocking the request, or the domain on the project is wrong. Check that Site Availability is Public.
  • That line belongs to a different project: another project's line is on the site. Replace it with the line on this project's Setup page, then check again.
  • No switcher appears: the project has no live target language yet. Add one, or turn on its Live switch.
  • Some text stays in the source language: the page is behind a login or a password, or JavaScript adds the text after the page loads. See JavaScript serving mode.

More cases are in Translations are not appearing and The switcher is not visible.

Was this helpful?