For a SpideyChat chatbot on WordPress, use the plugin unless you have a specific reason not to. It loads the same chat as the snippet, but it activates the license from inside WordPress, marks the script so caching plugins don't delay it, and lets you hide the chat on chosen pages. A header and footer snippet is the better fit when you already manage every third-party script in one tool, or when your host won't let you upload plugins.
Our general piece on whether you need a plugin at all covers plugins versus script tags across vendors. This one is specific to SpideyChat on WordPress, where the two routes behave differently in a few ways that matter.
What each route puts on your page
Both end with the same thing in your page's HTML: one script tag that loads widget.js from SpideyChat with your bot ID. The chat window, the answers, the leads and the conversations are all managed in the SpideyChat dashboard either way.
The difference is how the tag gets there.
- The snippet is the line you copy from your chatbot's page and paste into a header and footer tool (such as WPCode's Footer box) or your theme's footer.
- The plugin prints that tag for you. It loads the script in the footer with defer, so it doesn't block your page, and adds a few extra attributes covered below.
At the time of writing (October 2026), the plugin is a zip download, not yet listed on WordPress.org. You upload it under Plugins > Add New > Upload Plugin.
License key or bot ID
This is the biggest practical difference.
With the snippet, your bot ID is in the tag. A SpideyChat chatbot registers the first website it loads on automatically. Any website after that has to be added on purpose under License & websites on the chatbot's page.
With the plugin, you paste the license key instead, which starts with sc_lic_. The plugin knows the difference. Paste a bot ID by mistake and it tells you to use the license key. Saving the key activates the license for that website, and the settings page then shows how many of your plan's websites are in use. After that:
- The plugin rechecks the license once a day, so a cancelled or suspended license switches the chat off. A network blip during the check never switches a working chat off.
- Deactivate license on this site removes the website from the license and frees its slot, which is useful before you move to a new domain. Uninstalling the plugin also tries to free the slot.
- Activating on a subdomain of a website that's already licensed, such as a staging copy, doesn't use a new slot.
For agencies and anyone running several sites, that's the deciding factor. Slots are limited by plan (Free 1 website per chatbot, Starter 3, Pro 10), and the plugin makes moving a slot a one-click job. There's more on how sites are counted in chatbot licenses and website limits.
Caching and delayed scripts
Many WordPress speed plugins hold JavaScript back until the visitor scrolls, taps or moves the mouse. For a chat button that means it only appears after interaction, and visitors who read without scrolling never see it.
The plugin adds attributes to its script tag that the common optimisers recognise as "leave this alone": data-cfasync="false" for Cloudflare Rocket Loader, nowprocket for WP Rocket's delay feature, and data-no-optimize, data-no-minify and data-no-defer for others. A pasted snippet has none of these unless you add them. You'll usually need to exclude widget.js in your cache plugin's settings yourself. Our guide to cache plugin fixes has the exact setting for each popular plugin.
Control from inside WordPress
The plugin's settings page (Settings > SpideyChat) has three controls a snippet doesn't:
- Show chatbot. A tick box that switches the chat off on this site without touching the license.
- Hide on. One path per line. The chat button is hidden on that page and everything under it, for example
/checkout. On those pages the script isn't printed at all. - Launcher label. The short text beside the chat button.
The label is also possible with a snippet: add a data-help-text attribute to the script tag. Page hiding isn't, unless your header and footer tool has its own page rules. If you're deciding whether to show chat on checkout pages, see should your chat widget show on WooCommerce checkout.
Where a snippet still makes sense
| Situation | Better route |
|---|---|
| One business site, you want the simplest setup | Plugin |
| Several sites, or you move domains | Plugin |
| A caching plugin that delays JavaScript | Plugin |
| You keep every script in WPCode or a similar tool, by policy | Snippet |
| You load all third-party scripts through Google Tag Manager | Snippet, as a tag in GTM |
| Your host doesn't allow uploading plugins | Snippet, if the host allows scripts |
| You want to test for a day before committing | Either; the snippet is quicker to remove |
If you do use the snippet, put it somewhere that survives updates. WPCode's Footer box is fine. Your theme's footer.php is only safe in a child theme, because a parent theme update can overwrite the file and remove your line.
Don't run both
Install one or the other. If you switch from the snippet to the plugin, remove the snippet. Two copies of the same bot won't show two buttons, because the widget mounts once per bot and ignores the second copy. You will, though, have two places to look when something changes, and only one of them respects the plugin's Hide on rules.
The short version
Most WordPress sites should use the plugin: license key in, Show chatbot ticked, done, with caching and page rules handled. Choose the snippet when a tool you already rely on manages your scripts. The WordPress integration page has the plugin download, and our step-by-step WordPress install guide covers both routes in detail.