Can I Use SeaText AI on a Staging or Development Domain?
Yes, you can use SeaText AI on staging or development domains, but each domain requires its own separate SeaText AI account. Localhost and dynamic development URLs are restricted for security reasons, so you must...
Yes, you can use SeaText AI on a staging or development domain. However, each domain — including development, staging, and production — must have its own dedicated SeaText AI account. The platform links each account to a single primary URL, so you cannot share one account across multiple domains.
Localhost addresses and dynamic development URLs (such as temporary preview links) are restricted for security reasons. SeaText AI needs a stable, real domain name to reliably associate traffic with your account. If you use a valid domain for staging (for example, staging.yourcompany.com or dev.yourcompany.com), it will work once you create a separate account for that domain.
Why SeaText AI Requires One Account Per Domain
SeaText AI ties each account to a single primary URL. This design ensures that the AI can correctly attribute visitor traffic, conversions, and variant performance to the right website. When you install the JavaScript snippet on a domain, the system watches for visits to that specific URL. If the same snippet were used on two different domains, the platform could not reliably separate the data.
The source documentation states: "Each SEATEXT AI account is linked to a single primary URL." This means a production site at example.com and a staging site at staging.example.com count as two distinct primary URLs, each needing its own account.
How Traffic Association Works
After you install the snippet, SeaText AI waits for real visits to the domain. The onboarding flow asks you to "visit or refresh your website several times and stay on your page for at least 40 seconds — this will activate the AI and link it to your account." The system then expects to see your website name appear next to the SeaText logo in the dashboard within five to ten minutes. This handshake only works when the domain is publicly reachable and stable.
Dynamic preview URLs (such as those generated by some CI/CD pipelines or tunneling services) often change on every deploy. Because the domain string shifts, SeaText AI cannot maintain a consistent link between traffic and account, leading to activation failures or split data.
Setting Up Staging and Production Environments
- Create a production account. Register at SeaText AI using your live domain (e.g.,
example.com). Install the snippet on the production site and complete the activation visits. - Create a staging account. Register a second account using your staging domain (e.g.,
staging.example.com). Install the same snippet code on the staging environment. - Verify each account independently. Visit the staging domain, stay for 40+ seconds, and confirm the staging domain name appears in the second account's dashboard. Repeat for production.
- Configure agents per environment. In each account's Main AI Hub, activate only the agents you want for that environment. For example, you might enable the Translation Agent on staging to test localized copy before pushing to production.
This separation keeps experiment data, variant libraries, and conversion reports clean. Changes you make in the staging account's Variant Editor never leak into the production account.
Limitations with Localhost and Dynamic Domains
The documentation explicitly restricts "Development URLs, such as localhost, are restricted for security reasons." It also warns: "Dynamic development domains may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account."
Practical implications:
http://localhost:3000orhttp://127.0.0.1:8000will not work.- Temporary tunnels like
https://random-string.ngrok.ioorhttps://pr-123.myapp.github.devare unreliable because the hostname changes. - Fixed subdomains under your control (e.g.,
dev.example.com,staging.example.com,preview.example.com) are the supported pattern.
If your team relies on ephemeral preview URLs, consider setting up a wildcard DNS entry (e.g., *.preview.example.com) that resolves to a stable staging server, then create one SeaText account for preview.example.com and use path-based routing for individual pull requests.
Step-by-Step Multi-Domain Setup Checklist
- List every domain that will run SeaText AI (production, staging, QA, demo, etc.).
- For each domain, register a separate SeaText AI account using that domain as the primary URL.
- Copy the JavaScript snippet from each account's dashboard.
- Install the correct snippet on the corresponding domain. If you use a tag manager or CMS plugin, create a separate container or configuration per domain.
- Visit each domain, stay 40+ seconds, and confirm the domain name appears in the correct account within 10 minutes.
- Activate desired AI agents per account (CRO Optimizer, Google Ads Agent, Translation Agent, etc.).
- Set up Variant Editor permissions per account so only authorized editors modify each environment.
Tip: Use a naming convention for accounts (e.g., "Acme Corp — Production", "Acme Corp — Staging") to avoid confusion in the dashboard.
Common Mistakes and Troubleshooting
| Mistake | Symptom | Fix |
|---|---|---|
| Using one account for production and staging | Mixed variant data; staging edits appear on production | Create a second account for the staging domain |
| Installing snippet on localhost | Account never activates; dashboard shows no domain name | Use a real domain (e.g., dev.example.com) |
| Using a new tunnel URL per deploy | Activation fails or resets every deploy | Point a stable subdomain to the preview environment |
| Forgetting the 40-second activation visit | Domain name doesn't appear after 10 minutes | Revisit the domain, stay 40+ seconds, wait 5 minutes |
| Installing the wrong account's snippet | Traffic attributed to the wrong domain in dashboard | Match snippet to domain; verify in each account's dashboard |
Key Facts
| Fact | Detail |
|---|---|
| Account-to-domain ratio | One SeaText AI account per primary URL |
| Localhost support | Restricted for security reasons |
| Dynamic development domains | May not function properly; unreliable traffic association |
| Supported pattern | Valid, real domain names (e.g., staging.example.com) |
| Activation requirement | Visit domain, stay 40+ seconds; domain name appears in dashboard within 5–10 minutes |
| Multi-site usage | Create one account for each website/domain |
Frequently Asked Questions
Can I use a single SeaText account for multiple subdomains?
No. Each subdomain (e.g., app.example.com, blog.example.com, staging.example.com) counts as a separate primary URL and requires its own account.
What if my staging domain is behind a VPN or IP allowlist?
SeaText AI needs to receive real visitor traffic to activate and maintain the account link. If the domain is not publicly accessible, the activation handshake will fail. Consider a publicly reachable staging domain or a dedicated demo domain for testing.
Do I pay for each staging account?
Pricing is per account. Check the SeaText pricing page for current plans; some tiers may include multiple domains or offer discounted staging seats.
Can I copy variants from staging to production?
The Variant Editor lives inside each account. There is no automated sync between accounts. You can manually recreate winning variants in the production account after validating them on staging.
What happens if I accidentally install the production snippet on staging?
Staging traffic will be attributed to the production account, polluting your production data. Remove the wrong snippet, install the correct staging snippet, and re-verify the staging account activation.
Does SeaText AI work on password-protected staging sites?
If the protection blocks the SeaText activation visit (the 40-second stay), the account won't activate. You can temporarily allow the SeaText crawler IP or use a public staging domain for the activation step, then re-enable protection.
Can I use SeaText AI on a local development machine with a hosts file entry?
A hosts file entry (e.g., 127.0.0.1 dev.example.com) still resolves to localhost. The restriction applies to the underlying address, not the hostname. Use a real domain pointed to a reachable server.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How SeaText AI Can Help
SeaText AI lets you run isolated experiments on staging without risking production data. Each domain gets its own account, so variant libraries, conversion reports, and agent configurations stay cleanly separated. The Translation Agent, Google Ads Agent, and CRO Optimizer can all be tested on a staging domain before you activate them for live traffic.
Remember: you need a valid, real domain for each environment. Localhost and ephemeral preview URLs won't work. Set up a stable subdomain (e.g., staging.yourdomain.com), create a second SeaText account for it, and follow the 40-second activation visit to link the domain.