What to Do When SeaText Installation Fails on Squarespace
Most SeaText installation errors on Squarespace come from three places: the JavaScript snippet was truncated or pasted into the wrong field, the Squarespace plan doesn't allow code injection, or the domain isn't yet linked...
Quick diagnostic checklist
Before you troubleshoot further, run through these four checks in order. They resolve the majority of installation errors.
- Full script copied. The SeaText snippet must be copied exactly as shown in your SeaText dashboard — no missing characters, no extra whitespace. A single missing character can break the entire script. Copy the code directly from the SeaText dashboard, not from an email or a screenshot.
- Correct injection field. Paste the code into the Header area of the Code Injection panel, not the Footer or Page Header fields. The Header field loads the script early in the page lifecycle, which is required for SeaText to initialize before your content renders. If you paste it in the Footer, the script may load too late or not at all.
- Plan permits code injection. Squarespace Personal plans and trial sites block custom code. You need a Business, Commerce, or Enterprise plan. If you are on a Personal plan, the Code Injection fields are present but they silently ignore anything you paste. There is no error message. You must upgrade to a paid plan that supports custom code.
- Live domain, not localhost. SeaText rejects development URLs such as
localhostor dynamic preview domains. Use a real, published domain. If you are testing on a staging site, create a separate SeaText account for that domain. Dynamic development domains may not function properly because SeaText cannot reliably associate traffic with your account.
If all four checks pass and you still see an error, move on to the next section.
Common error symptoms and what they mean
Errors rarely show a single clear message. Instead you’ll see one of these patterns:
- Nothing happens after save. The script is likely in the wrong field or the plan blocks injection. Check the plan first. If you are on Business or higher, verify the script is in the Header field and not the Footer.
- SeaText dashboard shows “Waiting for connection” after 10+ minutes. The domain isn’t linked to your account, or the script isn’t loading on the live page. This can also happen if you visited the page for less than 40 seconds or if a caching layer served an old version of the page.
- Console shows “SEATEXTCODEINTEGRATION is not defined.” The snippet was truncated or pasted into a field that strips scripts. This error means the JavaScript variable that SeaText uses to initialize was not created. Re-copy the entire snippet from the SeaText dashboard and paste it again.
- Multiple domains under one account. Each domain needs its own SeaText account; sharing one account across domains breaks tracking. If you have a development domain and a production domain, create two separate accounts. The SeaText system links each account to a single primary URL.
- The script appears in the page source but SeaText still doesn’t connect. This usually points to a browser extension or a content security policy blocking the script. Test in an incognito window with all extensions disabled.
Understanding these symptoms helps you narrow down the root cause quickly.
Step-by-step verification
- Open your Squarespace dashboard, click the three-dot menu on the site, and choose Settings.
- Scroll to the bottom and open Developer Tools → Code Injection.
- Confirm the entire SeaText JavaScript snippet sits in the Header box. Delete any old versions first. If you have multiple snippets, remove all except the current SeaText one.
- Click Save, then publish the site if it isn’t already live. Publishing is required for the changes to take effect on the public site.
- Visit the published URL in a fresh browser tab. Stay on the page for at least 40 seconds — this triggers the initial handshake. Do not navigate away or close the tab during this time.
- Return to your SeaText dashboard. Wait five minutes. Your site name should appear next to the SeaText logo. If it does not appear after 10 minutes, contact SeaText support.
This sequence is the official installation path. Skipping any step can cause a false negative.
Why the Header field matters
SeaText must load in the Header because it needs to initialize before your page content renders. The script sets up a global variable and starts monitoring visitor behavior. If it loads in the Footer, it may run after the page has already loaded, missing key events. Squarespace’s Code Injection panel has three fields: Header, Footer, and Page Header. The Header field injects code into the <head> of every page. The Footer field injects code just before the closing </body> tag. The Page Header field is for individual pages only. For SeaText, you must use the global Header field.
If you accidentally paste the script into the Footer, you may see partial functionality or no connection at all. Move it to the Header field and save again.
Squarespace plan restrictions
Code injection is a plan-gated feature. Personal plans and free trials silently ignore anything placed in Code Injection fields. If you’re on a Personal plan, you must upgrade to Business or higher before SeaText can load. There is no workaround — the platform simply strips the script on restricted plans.
To check your plan, go to your Squarespace dashboard and look at the plan name under Billing. If you are on a trial, you are on the Personal tier. You can upgrade to Business or Commerce to enable code injection. Enterprise plans also support it. If you are unsure, contact Squarespace support to confirm your plan’s features.
Even if you see the Code Injection panel, it does not mean your plan supports it. The panel is visible on all plans, but the code is ignored on Personal and trial plans. This is a common source of confusion.
Account and domain configuration
SeaText ties each account to a single primary URL. If you manage a staging domain and a production domain, create two separate SeaText accounts. Using one account for both will cause the second domain to never register. Also, dynamic development URLs (e.g., *.squarespace.com preview links) are unreliable; always test on the final custom domain.
Development URLs such as localhost are restricted for security reasons. SeaText cannot associate traffic from those addresses with your account. If you are developing locally, use a real domain or a staging subdomain that is publicly accessible.
If you need to use SeaText on multiple websites, create one account for each website. Do not try to share a single account across different domains. This will break tracking and prevent the connection from appearing.
Activation and verification
After the script is live, the 40-second visit and five-minute wait are mandatory. SeaText uses that window to fingerprint the domain and bind it to your account. If the site name still hasn’t appeared after 10 minutes, something blocked the handshake — usually a content security policy, an ad blocker on your test browser, or a caching layer serving an old page version. Clear caches, disable blockers, and try again from an incognito window.
To verify the script is loading, open your browser’s developer tools (F12) and go to the Console tab. Look for any errors related to seatext.com or SEATEXTCODEINTEGRATION. If you see a CSP violation, you may need to adjust your security headers. If you see a 404 for the script URL, the script was not injected correctly.
You can also check the Network tab to see if a request to seatext.com is made when the page loads. If no request appears, the script is not running.
When to contact support
Open a support ticket if:
- You’ve confirmed all four checklist items and the site name still doesn’t appear after 10 minutes.
- The browser console shows a SeaText-specific error you can’t resolve (e.g., CSP violation referencing
seatext.com). - You need to move an existing SeaText account to a new domain — this requires a manual reset.
- You have a valid Business or higher plan, the script is in the Header field, and you’ve visited the live site for 40+ seconds, but the connection never appears.
When contacting support, include your domain name, your Squarespace plan, the exact error message from the console, and a screenshot of your Code Injection panel. This helps support diagnose the issue faster.
Key facts
| Item | Detail |
|---|---|
| Injection location | Settings → Developer Tools → Code Injection → Header |
| Required Squarespace plan | Business, Commerce, or Enterprise (Personal and trials block code injection) |
| Domain rule | One SeaText account per primary domain; localhost and dynamic preview URLs are rejected |
| Activation trigger | Visit live site, stay 40+ seconds; connection appears in dashboard within 5 minutes |
| Support escalation | Contact SeaText support if no connection after 10 minutes on a valid plan and domain |
Limitations
This guide covers only the SeaText-side installation path. Squarespace occasionally changes the Code Injection UI or adds new plan restrictions without notice. If the Developer Tools section is missing entirely, check Squarespace’s own help center for plan-specific feature lists. SeaText cannot override platform-level blocks.
Also, SeaText requires a real, publicly accessible domain. If your site is behind a firewall or a private network, the handshake may fail. Similarly, if you use a CDN that caches pages aggressively, the script may not load on the first visit. Clear the cache and try again.
Finally, the 40-second visit is a minimum. If you leave the page earlier, the handshake may not complete. Make sure you stay on the page for the full duration.
FAQ
Why does my SeaText script disappear after I save?
You’re likely on a Personal or trial plan. Those plans strip custom code on save. Upgrade to Business or higher.
Can I install SeaText on a Squarespace trial site to test?
No. Trial sites run on the Personal plan tier and block code injection. Use a paid Business+ plan or a live domain.
I pasted the code in the Footer field by mistake. Does that matter?
Yes. SeaText must load in the Header to initialize before page content renders. Move it to the Header field and republish.
My site is live but the dashboard still says “Waiting for connection.”
Clear browser cache, disable ad blockers, and revisit the live URL in incognito mode for 40+ seconds. If it still doesn’t connect after 10 minutes, contact SeaText support with the exact domain.
Can one SeaText account handle www and non-www versions?
Yes, as long as they resolve to the same primary domain you registered. But separate subdomains (e.g., shop.example.com and blog.example.com) each need their own account.
Does SeaText work with Squarespace’s built-in password protection?
Password-protected pages still load the Header script, so SeaText will initialize. However, search engines and ad platforms can’t crawl protected pages, limiting SEO and ad agents.
What if I switch Squarespace templates after installing?
Template changes don’t affect Code Injection settings. The script stays in place. Just verify it’s still in the Header field after the switch.
How do I know if my plan supports code injection?
Check your plan under Billing in the Squarespace dashboard. Personal and trial plans do not support it. Business, Commerce, and Enterprise do. If you are unsure, contact Squarespace support.
What should I do if I see a CSP error in the console?
A Content Security Policy can block SeaText from loading. You may need to add seatext.com to your allowed domains. If you are using a security plugin, whitelist the script. If you cannot modify the CSP, contact your hosting provider or Squarespace support.
Can I use SeaText on a staging site with a subdomain?
Yes, but you need a separate SeaText account for that subdomain. The subdomain must be publicly accessible, not a localhost or a dynamic preview URL.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.