The short version
Every live chat product on the market installs the same way underneath: a small JavaScript snippet on your pages loads the widget. That means adding chat to a website is a two-minute job on any platform that lets you edit HTML — and a plugin-store install on the platforms that do not.
Method 1: the script tag (works on any website)
- Get your snippet. Create a free account and copy the embed code from the deployment page — it is a single
<script> tag tied to your account.
- Paste it before
</body> on every page where chat should appear. If your site uses a shared template, footer include, or layout file, paste it once there and every page inherits it.
- Reload your site. The chat button appears immediately. No DNS changes, no server configuration.
Placement matters less than people expect: the snippet is asynchronous, so it does not block your page load either way, but end-of-body keeps it out of the critical path entirely.
MyLiveChat installs with the same script tag everywhere, and each platform has its own guide showing exactly where that code goes: WordPress (and WooCommerce), Shopify, BigCommerce, Magento, and OpenCart. Website builders like Wix, Squarespace, and Webflow take the script tag through their custom-code settings — each linked guide walks through the exact clicks.
The whole install, end to end. The last step is the one people skip, and it is the only one that proves the other three worked.
- Offline behavior. Decide what visitors see when no agent is online: an offline message form is the minimum; a knowledge base or AI assistant keeps answering.
- Pre-chat questions. Asking for a name and question up front qualifies the conversation — but every field you add costs you some chats. Ask for the minimum you will actually use.
- Departments. If sales and support questions should reach different people, set up routing before launch, not after the first misrouted week.
- Proactive invitations. A chat button waits; an invitation on your pricing or checkout page opens the conversation. Start with one high-intent page and measure.
- Agent notifications. A chat nobody answers is worse than no chat. Make sure whoever is on duty gets desktop or mobile notifications before the widget goes live.
How to test it
Open your site in a private browsing window (so you are treated as a visitor, not an agent), start a chat, and answer it from the agent console. Then close the console and confirm the offline experience does what you configured. Total test time: three minutes — and it catches almost every launch-day surprise.
Where the snippet goes in your template
The snippet works anywhere in the page, but where you put it decides whether it loads on every page
or only some, and whether it slows anything down. Put it in the shared layout file your site uses for
every page rather than pasting it into individual pages — that way new pages get chat
automatically and you never have to remember.
In practice that means the master layout or theme footer: Default.master or a shared layout
on ASP.NET, footer.php or the theme's footer hook on WordPress, _Layout.cshtml on
modern .NET, base.html on Django or Jekyll, or the root layout component on a JavaScript
framework. If your site has a tag manager, that works too and keeps the change out of your codebase.
The script loads asynchronously, so placing it near the end of the body is conventional but not
required for performance. What does matter is that it is present on the pages where people actually
have questions — pricing, checkout, contact and product pages are worth checking individually
after you install.
Almost every failed installation is one of a short list of causes, and they are quick to tell
apart. Open your browser's developer console on the page and work down:
- Content Security Policy. If your site sends a CSP header, it must allow our
domain or the browser silently refuses to load the widget. You will see an explicit CSP violation in
the console naming the blocked URL. Both
script-src and style-src need to
permit *.mylivechat.com — blocking scripts stops the widget mounting at all, and
blocking styles loads it looking broken.
- Mixed content. A snippet loaded over
http:// on a page served over
https:// is blocked as mixed content. Always use the https form of the snippet.
- Caching. A CDN, a caching plugin or your own page cache will happily serve the
version of the page from before you edited it. Purge the cache and hard-reload before concluding
anything.
- Wrong or missing site identifier. If the snippet was hand-edited, the identifier
may not match your account. Re-copy it from the dashboard rather than fixing it by hand.
- Ad blockers and privacy extensions. These block chat widgets fairly often. Test
in a private window with extensions disabled before assuming the installation failed.
- Visitor filtering. If you have set the widget to appear only on certain pages or
to certain visitors, an empty page is the rule working correctly rather than a fault.
If the console is clean and the widget still does not render, check whether the page has a
JavaScript error from unrelated code earlier in the page. One broken script can stop everything after
it from executing.
The first week after it works
Installation is the easy part; the first week decides whether chat is useful or just present. Watch
for chats arriving outside the hours you can answer, because that number drives your next decision
more than any other.
Read every transcript for the first week, even the trivial ones. The repeated questions become your
canned replies, the confused ones point at wording problems on the page the visitor started from, and
the ones you could not answer tell you what to write down before you hand chat to anyone else.
Set the offline behaviour deliberately before your first evening. A widget that quietly disappears
when you go home loses the enquiry; one that captures a message and states when someone will reply
keeps it. That single setting is worth more than any amount of styling.
If page speed is a concern on your site, there is a parallel-loading install pattern worth knowing: loading the chat script without slowing your page explains what each attribute on the snippet is for.