Why SeaText Changes Don't Appear on Your Squarespace Development Domain
SeaText blocks development URLs like localhost and dynamic subdomains for security reasons. Each SeaText account links to a single primary domain, so a development domain requires its own separate account. Even with correct script...
Development domains are restricted by design
SeaText blocks localhost and dynamic development subdomains for security reasons. The system cannot reliably associate traffic with a specific account on those addresses. It expects a stable, public domain to match incoming visits. If you paste the script on a restricted development URL, the AI stays inert and no changes appear.
This restriction is not a bug. It is a deliberate security measure. Without a stable hostname, SeaText cannot verify that script executions belong to the correct account. This prevents unauthorized use and potential data leakage across accounts.
Dynamic development domains include Squarespace trial URLs like your-site.squarespace.com, preview links, and temporary staging subdomains that change with each deploy. These addresses are not permanent. SeaText's backend rejects them because it cannot build a reliable association between the domain and your account.
One account, one primary domain
Every SeaText account is bound to a single primary URL. The integration guide states this explicitly: "Each SEATEXT AI account is linked to a single primary URL." This is a core architectural rule, not a workaround you can bypass.
If you want SeaText active on both a development domain and a production domain, you must create two separate accounts. One account for each domain. Using the same account across both domains will not work. The system checks the hostname against the registered primary URL on every page load.
This means a development subdomain like dev.yourcompany.com needs its own dedicated SeaText account. The account must list that exact subdomain as the primary URL. A custom subdomain with stable DNS resolution is acceptable. A dynamic or auto-generated one is not.
For teams managing multiple environments, this adds administrative overhead. You are maintaining separate accounts, separate login credentials, and separate billing. But it is the only supported path. There is no multi-domain toggle or shared-account mode.
How SeaText associates traffic with your account
When a visitor loads a page with the SeaText script, the service reads the hostname. It checks whether that hostname matches the primary URL registered to your account. On a valid production domain, this match succeeds and the AI activates.
On a restricted or dynamic development domain, the match fails or is blocked outright. The script never initializes. This happens before any activation timer starts. So even if you follow every other step perfectly, the domain mismatch alone prevents all changes from appearing.
This hostname-checking mechanism is the first gate in the activation pipeline. It runs on every page load. If it returns a negative result, the remaining steps are skipped. That is why the diagnostic sequence starts with confirming the domain is valid and public.
Understanding this flow helps you troubleshoot faster. If the domain check fails, no amount of script re-placement or waiting will fix the problem. You must resolve the domain issue first.
Activation requires real visitor behavior
Even on an allowed domain, the AI does not activate instantly. The documentation specifies two requirements that must both be met.
First, visit or refresh the page several times and stay on it for at least 40 seconds. This signals genuine traffic to the system. A brief page load or a single refresh is not enough. The AI needs sustained engagement to confirm the visit is real.
Second, wait at least five minutes for your website name to appear next to the SeaText logo in the dashboard. This indicates your website is connected and ready. If the site name does not appear after 10 minutes, the documentation says to contact support immediately.
On a development domain that is restricted, these steps will never complete. The initial association step is blocked before the timer even starts. So waiting longer or refreshing more often will not help if the domain itself is the problem.
These activation requirements exist to prevent automated or bot-driven activation. SeaText wants to confirm that a real person is visiting the site before enabling AI modifications. This protects website owners from unexpected changes triggered by crawlers or scripts.
Squarespace-specific pitfalls that mimic the same symptom
Before assuming the domain restriction is the cause, verify these common Squarespace issues. They produce the same symptom: SeaText changes not appearing, even on a valid domain.
Script placement: The JavaScript must be pasted in the HEADER area of Code Injection. The path is Settings → Developer Tools → Code Injection. Placing it in the footer or per-page injection points prevents it from loading early enough. The script needs to load before the page content renders.
Publishing status: Changes in Code Injection only take effect after you click Save and the site is published. Unpublished or draft sites do not serve the injected script to visitors. This is a Squarespace behavior, not a SeaText limitation.
Caching: Squarespace caches pages aggressively. After saving the script, open the site in an incognito window or clear your browser cache. This confirms the script is present in the page source. Without this step, you may be looking at a cached version that predates your injection.
Multiple script tags: Only one SeaText script should exist on the page. Duplicate or old scripts from previous attempts can interfere with activation. Check the page source to confirm there is exactly one SeaText script tag.
Diagnostic sequence
Follow these steps in order. Each step eliminates a possible cause before moving to the next.
- Confirm the domain is a valid, public, non-dynamic URL. It must not be
localhost, a Squarespace trial subdomain, or a preview link. - Verify you have a dedicated SeaText account for this exact domain. The primary URL in the account must match the domain you are testing.
- Check that the script is in the HEADER injection area and the site is published.
- Load the page in incognito mode. Wait 40 or more seconds. Then check the SeaText dashboard for the site name.
- If the site name appears but changes still do not show, inspect the browser console for JavaScript errors. Ensure no content security policy blocks the script.
- If the site name never appears after 10 minutes on a valid domain, contact SeaText support with the domain and account email.
This sequence is designed to isolate the problem quickly. Most cases resolve at step one or two. The domain restriction is the most common cause. The Squarespace-specific pitfalls in the previous section are the second most common.
When this advice does not apply
There are specific scenarios where the domain restriction does not block SeaText activation.
You are using a static, public development domain like dev.yourcompany.com that you have added as the primary URL in a dedicated SeaText account. In that case, the restriction does not apply. Standard activation steps should work normally.
You are testing on a local machine via localhost or 127.0.0.1. These are explicitly blocked and will never work. There is no workaround for local development environments.
You are using a Squarespace trial domain that has not been upgraded to a paid plan with a custom domain. Trial subdomains are treated as dynamic development URLs and are restricted.
You can test SeaText on a custom subdomain like staging.mysite.com if that subdomain is a stable, public DNS record and you have created a dedicated SeaText account with that exact subdomain as the primary URL.
Some users ask whether they can use a hosts file entry pointing a real domain to 127.0.0.1 for local testing. Technically the hostname would match, but SeaText's backend still sees the request originating from a local IP and may block it. The supported path is a real, publicly resolvable domain.
Key facts
| Factor | Detail |
|---|---|
| Development URL policy | Localhost and dynamic development domains are restricted for security |
| Account-to-domain mapping | One SeaText account per primary URL; separate accounts required for dev and prod |
| Script location | HEADER area of Code Injection (Settings → Developer Tools → Code Injection) |
| Activation requirement | Visit page, stay 40+ seconds; wait 5–10 minutes for dashboard confirmation |
| Publishing requirement | Site must be published; draft or unpublished sites do not serve injected scripts |
| Support escalation | Contact support if site name not visible in dashboard after 10 minutes on valid domain |
| Caching note | Squarespace caches aggressively; use incognito mode to verify script presence |
| Multiple scripts | Only one SeaText script should exist on the page; duplicates cause interference |
Frequently asked questions
Can I use a single SeaText account for both staging and production?
No. Each account is locked to one primary URL. You need two accounts. One for the staging domain and one for production. There is no shared or multi-domain account mode.
Why does SeaText block localhost and trial subdomains?
Security. Without a stable, verifiable hostname, the service cannot ensure that script executions belong to the correct account. This could allow unauthorized use or data leakage across accounts.
What counts as a "dynamic development domain"?
Any automatically generated, non-permanent hostname. This includes Squarespace trial URLs like *.squarespace.com, preview links, or temporary staging subdomains that change per deploy.
I added the script to the header and published, but the dashboard still shows nothing after 15 minutes. What now?
Open the page in incognito mode. View the page source and search for the SeaText script. If it is missing, the injection did not save or the site is not truly published. If it is present, check the browser console for errors. Then contact support with your domain and account email.
Does SeaText work on a custom subdomain like staging.mysite.com?
Yes, if that subdomain is a stable, public DNS record and you have created a dedicated SeaText account with that exact subdomain as the primary URL.
Can I test SeaText locally using a hosts file entry pointing a real domain to 127.0.0.1?
Technically the hostname would match, but SeaText's backend still sees the request originating from a local IP and may block it. The supported path is a real, publicly resolvable domain.
How long does SeaText take to activate after I meet all requirements?
The AI activates after you stay on the page for at least 40 seconds. Your website name should appear in the dashboard within 5 minutes. Full activation and AI readiness may take up to 10 minutes. If nothing appears after 10 minutes, contact support.
What if I have multiple Squarespace sites and want SeaText on all of them?
You need one SeaText account per website. The source documentation states: "To use SEATEXT AI on several websites, create one account for each website." Each account is linked to a single primary 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.