Short answer: Google Sites lets you embed HTML through an embed element, but that content is placed inside an iframe on the page, which means a chat widget cannot float over your site the way it does everywhere else. You can get a working chat box inside a page block. You cannot get a proper corner bubble, and there is no site-wide script injection. This post explains what you actually get and what your options are.
The honest constraint first
Most install guides pretend every platform is equally capable. Google Sites is not, and knowing why saves you an afternoon.
Google Sites is deliberately locked down. There is no template layer to edit, no head or footer field, and no place to add a script that runs on every page. The only entry point for custom code is the embed element, and Google renders embedded HTML inside an iframe for security isolation.
An iframe is a page within a page, and code inside it cannot reach out and position itself against the outer browser window. So a floating chat bubble, which works by anchoring to the corner of the viewport, ends up anchored to the corner of a small box in the middle of your page instead.
That is a platform limitation, not a widget limitation, and no provider can engineer around it.
What you can actually do
Open the page in the Google Sites editor. From the insert panel, choose the embed option, then switch to the tab for pasting code rather than a URL. Paste your HTML, insert it, and resize the resulting block on the canvas.
You now have a chat interface living in a block on that page. It works. People can type into it, it answers, it can capture details. It just looks like a widget parked in your layout rather than a bubble hovering over it.
Two practical notes. Make the block reasonably large, because a cramped iframe makes a chat conversation miserable to read. And repeat this on every page where you want it, since there is no site-wide option.
Where to place it if you do this
Put it low on the page, after your content has made its case, on the pages where people are deciding: services, pricing, contact.
Give it a short heading above the block so visitors understand what it is. Something plain like "Ask us a question" works better than leaving an unexplained box in your layout. On Google Sites the widget cannot announce itself with a bubble, so your page has to do that job.
The workarounds, ranked honestly
Accept the inline version. Free, five minutes, works. If your Google Sites page is a simple brochure and you mainly want people to be able to ask questions before contacting you, this is fine.
Add it to your key pages individually. Slightly more work, better coverage. Do the contact and services pages at minimum.
Move to a platform that allows script injection. If chat is going to be a meaningful part of how you get enquiries, this is the real answer. Almost every other website platform, including free ones, lets you add a site-wide script. Google Sites is the outlier.
There is no fourth option involving clever code. If someone tells you they can make a floating widget work site-wide on Google Sites without moving off it, ask them to show you on your live domain, in a private window, on a page they did not edit for the demo.
Verifying what you built
Publish the site. Google Sites keeps edits in a draft state until you publish, and the editor canvas does not run embedded code the way the live page does. Custom embeds frequently look blank or broken in the editor and work perfectly once published.
Open the published URL in a private browser window. Scroll to your block. Type a question and check you get a sensible answer.
If the block is blank on the live site, the most common causes are an incomplete paste, or code that assumes it can reach the parent page. If it renders but is unusably small, resize the block.
Common gotchas
Editor preview versus published site. The number one source of false alarms on Google Sites. Judge only from the published URL.
Publishing scope. Google Sites can be published to a restricted audience. If your site is only visible to your organisation, that is a publishing setting, not a widget problem.
Fixed block height. The embed block does not grow with the conversation. Size it generously up front.
Mobile layout. A block that looks fine on desktop can be very tight on a phone. Check both.
Every page needs its own block. There is no inherit-across-pages behaviour.
Is it worth doing at all
If your Google Site is a placeholder while you build something better, put your effort into the something better rather than into an inline chat box.
If your Google Site is your real business website and you get enquiries through it, the inline version is a genuine improvement over a bare contact form, because it answers questions instead of only collecting them. The reasoning is in chatbot vs contact form.
And if you are seriously trying to increase enquiries from a site you already have traffic to, the platform constraint becomes the thing worth fixing. How to capture more leads from your website covers what changes when you can actually run a widget properly.
Frequently asked questions
Can I get a floating chat bubble on Google Sites?
No. Embedded code runs inside an iframe and cannot position itself against the browser window. Anyone claiming otherwise is showing you something else.
Is there a site-wide code injection setting I have missed?
No. Google Sites does not offer head or footer script injection.
Does the classic version of Google Sites work differently?
The older version had different capabilities, but it has been retired and is not an option for new sites.
Will the inline version still capture leads?
Yes. Conversations, answers and lead capture all work normally inside the block. Only the floating placement is lost.
What should I move to instead?
Anything with a footer script field, which is most platforms. The embed code is a single script tag and takes minutes to place once you are somewhere that allows it.