Which Installation Method Is Better for a Multisite Network: The Plugin or a Custom mu‑Plugin?
For a WordPress multisite network, the standard SeaText plugin (or the recommended Headers and Footers plugin) network‑activated is the right choice for almost every site. A custom mu‑plugin is only necessary when you need...
Quick answer
Use the network‑activated plugin route. Install the Headers and Footers by WPBeginner plugin (or any snippet‑injection plugin) at the network level, paste the SeaText JavaScript into the network‑wide header field, and network‑activate it. Every subsite inherits the code automatically, and you manage the snippet in one place.
A custom mu‑plugin (must‑use plugin) is only justified when you have a hard requirement to load the SeaText script before any other code runs, or when you must prevent subsite administrators from removing the snippet. For standard marketing, conversion, and translation use cases, the network‑activated plugin is simpler, safer, and easier to update.
How SeaText installs on a single site
SeaText delivers a small JavaScript snippet that you paste into the <head> of your pages. The official documentation recommends the free Headers and Footers by WPBeginner plugin for this task because it provides a clean UI, survives theme changes, and requires no code editing. After pasting the snippet into the "Scripts In Header" field and saving, you visit the site a few times and wait about 40 seconds so the AI can activate and link to your SeaText account.
Each SeaText account is tied to a single primary domain. If you run a development domain and a production domain, you need separate accounts. The same rule applies to every subsite in a multisite network that uses a different domain mapping.
What changes on a multisite network
In a multisite network only the Network Admin (Super Admin) can install plugins. Subsite admins can only activate or deactivate plugins that are already installed on the network. When a plugin is network‑activated, subsite admins cannot deactivate it at all. This behavior is native to WordPress and applies to any plugin, including snippet‑injection tools.
Because SeaText’s snippet is just JavaScript, you do not need a dedicated SeaText WordPress plugin. You only need a reliable way to inject that script into every subsite’s header. The Headers and Footers plugin does exactly that when network‑activated.
Option A — Network‑activated snippet plugin (recommended)
- Setup effort: Low. Install once, paste snippet once, network‑activate.
- Control: Centralised. One header field governs all subsites.
- Updates: Handled through the normal plugin update process.
- Subsite flexibility: Subsite admins cannot remove the snippet, but they can add their own scripts in the same plugin’s per‑site fields if the plugin supports it.
- Domain mapping: Works automatically; each mapped domain loads the same snippet. Remember to create a separate SeaText account for each distinct primary domain.
Option B — Custom mu‑plugin
- Setup effort: Higher. Requires FTP/SFTP or file‑manager access to create a PHP file in
wp-content/mu-plugins/. - Load order: Mu‑plugins load before regular plugins, so the SeaText script fires earlier. This matters only if another plugin modifies
<head>in a way that conflicts. - Enforcement: Impossible for any admin (including Super Admin) to disable via the dashboard. The file must be deleted from the server to stop it.
- Maintenance: Manual. Every SeaText snippet change means editing the PHP file on the server.
- Risk: A syntax error in the mu‑plugin can white‑screen the entire network because mu‑plugins cannot be disabled from the admin area.
Decision criteria at a glance
| Criterion | Network‑activated plugin | Custom mu‑plugin |
|---|---|---|
| Time to deploy | 2–3 minutes | 10–15 minutes + server access |
| Ongoing maintenance | Plugin updates via dashboard | Manual file edits for every snippet change |
| Load priority | Standard plugin load order | Earliest possible (before regular plugins) |
| Subsite admin override | Blocked by network activation | Impossible (code‑level enforcement) |
| Failure impact | Plugin can be deactivated via dashboard | Potential network‑wide white screen |
| Best fit | 95 % of multisite networks | Edge cases needing earliest load or absolute enforcement |
Step‑by‑step: Network‑activated plugin method
- Log in as Network Admin.
- Go to My Sites → Network Admin → Plugins → Add New.
- Search for "Headers and Footers by WPBeginner", install, then click Network Activate.
- Navigate to Settings → Insert Headers and Footers (still in Network Admin).
- Paste the SeaText JavaScript snippet into the Scripts In Header box.
- Click Save.
- Visit a few subsites, stay on each for ~40 seconds to let SeaText activate and register the domains in your SeaText dashboard.
- If any subsite uses a mapped domain that differs from the network’s primary domain, create a separate SeaText account for that domain and repeat steps 4–7 in a site‑specific header field (if your snippet plugin supports per‑site headers) or use a second network‑activated plugin instance with domain‑conditional logic.
When a mu‑plugin actually makes sense
- You run a security‑hardened network where no regular plugins are allowed in
wp-content/plugins/. - Another network‑wide plugin injects critical meta tags that must appear after SeaText, and you have verified a load‑order conflict.
- Compliance policy requires proof that the analytics/optimization script cannot be disabled by any dashboard user.
If none of the above apply, the mu‑plugin adds complexity without benefit.
Key facts from SeaText documentation
| Fact | Detail |
|---|---|
| Installation method | JavaScript snippet pasted into site header |
| Recommended tool | Headers and Footers by WPBeginner plugin |
| Activation trigger | Visit site several times, stay ≥ 40 seconds |
| Account‑domain binding | One SeaText account per primary domain |
| Development domains | Restricted (localhost, dynamic dev URLs may not work) |
| Multiple websites | Create one account per website/domain |
Limitations & gotchas
- SeaText does not provide a native WordPress plugin; the snippet approach is the only supported method.
- Each distinct domain (including mapped subsite domains) needs its own SeaText account.
- Network activation of the snippet plugin prevents subsite admins from disabling SeaText, but they could still add conflicting scripts if the plugin allows per‑site header fields.
- Mu‑plugins bypass the WordPress plugin update system; you own every future edit.
- If you use a caching plugin or CDN that strips or defers inline scripts, test that SeaText still fires after caching is enabled.
FAQ
Can I use one SeaText account for the whole multisite network?
Only if every subsite shares the exact same primary domain (e.g., all are subdirectories like example.com/site1, example.com/site2). If any subsite uses a mapped domain (client1.com, client2.com), each mapped domain requires its own SeaText account.
Does SeaText have a dedicated multisite plugin?
No. The official documentation points to the generic JavaScript snippet + Headers and Footers plugin method. There is no SeaText‑branded plugin in the WordPress repository.
What happens if I network‑activate the snippet plugin but a subsite uses a different theme that removes wp_head()?
The snippet will not load on that subsite. Ensure every active theme calls wp_head() — this is a theme requirement, not a SeaText limitation.
Can I conditionally load different SeaText snippets per subsite?
Yes, if your snippet plugin supports per‑site header fields (Headers and Footers does). Otherwise you would need a mu‑plugin with conditional logic (get_current_blog_id()) to switch snippets.
Is there any performance difference between the two methods?
Negligible. Both output the same inline script in <head>. The mu‑plugin loads a few milliseconds earlier, which only matters if another plugin’s header output conflicts.
How do I update the SeaText snippet later?
Network‑activated plugin: edit the header field in Network Admin → Settings → Insert Headers and Footers. Mu‑plugin: edit the PHP file on the server via SFTP or file manager.
What if the SeaText snippet breaks my site?
With the network‑activated plugin you can deactivate the plugin from Network Admin → Plugins. With a mu‑plugin you must delete or rename the file via SFTP — there is no dashboard fallback.
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.