Guides/website chat widget

Website Chat Widget: Best Practices for Placement & Copy

Turn your chat launcher into a conversion tool with better placement, greetings, and frictionless handoff.

Why most chat widgets underperform

The usual issues are:

  • Too aggressive placement (covers buttons or forms)
  • Generic copy (“Chat with us” everywhere)
  • Slow load and janky animations
  • No clear expectation for response time

Fixing those can increase replies without increasing traffic.

Placement that works (desktop + mobile)

  • Desktop: bottom-right, offset from sticky footers.
  • Mobile: bottom-right or bottom-center, but avoid covering primary CTAs.
  • If you have a cookie banner or fixed nav, test for overlap.

GizmoSauce widgets are designed to reduce z-index conflicts, but you should still verify your theme layout.

Copy that gets clicks

Use a short, specific promise:

  • “Ask a question” (support)
  • “Get a quote” (sales)
  • “Check availability” (service)

Add a greeting preview (one sentence) and set expectations like “Replies typically in minutes”.

Step-by-step: build it in GizmoSauce and embed it

If you want a fast, reliable way to ship a website chat widget, this is the “no surprises” workflow.

1) Pick a widget and open the editor

Start in /widgets and choose a widget that matches your goal. For this guide, we’ll use WhatsApp Chat as the example.

Click Customize to open the editor: /get-widget/whatsapp-chat.

Editor overview wireframe

2) Configure Content, Layout, and Design

Most widgets follow the same structure:

  • Content: what the widget shows (sources, text, items)
  • Layout: how items are arranged (grid/list/cards, columns, spacing)
  • Design: colors, typography, radius, shadows

Use the preview toggles (desktop/tablet/mobile) to validate the mobile layout before you publish.

3) Save and copy the embed snippet

Click Save & Get Code to publish the widget config and copy your snippet.

Embed snippet wireframe

4) Paste into your website builder

In your website builder, look for an HTML/code block (often called Embed, Custom HTML, Code, or Custom Liquid). Paste the snippet, publish, then verify on the live URL.

Many platforms don’t execute scripts inside editor previews. If you don’t see the widget immediately, publish to staging/live and reload.

If you’re embedding multiple GizmoSauce widgets on one page, you typically only need one loader script per page. Duplicating loaders can cause flicker or redundant work.

Platform notes (WordPress, Webflow, Shopify, and HTML)

The same embed snippet works across builders—you’re mostly choosing where to paste it.

Platform embed block wireframe

WordPress

Use a Custom HTML block in the block editor (or an HTML module in Elementor). See the WordPress integration guide: /integrations/wordpress.

Webflow

Use an Embed element and publish to staging/live to verify (scripts can be limited in preview). Guide: /integrations/webflow.

Shopify

Use Custom Liquid (recommended) or add the snippet to your theme layout for site-wide widgets. Guide: /integrations/shopify.

Plain HTML / any framework

Paste the snippet into your HTML (often before </body>). If you use React/Vue/etc, avoid inserting the loader multiple times on re-renders.

Troubleshooting checklist (when it doesn’t show)

If your widget doesn’t appear, these are the fastest fixes:

  1. Hard refresh (Cmd+Shift+R / Ctrl+Shift+R) or try an incognito window.
  2. Confirm the snippet is pasted on the right page and in the right section.
  3. Check whether the builder strips script tags.
  4. Make sure you didn’t paste the loader script multiple times.
  5. If you use a cache/performance plugin, purge cache.

For a deeper checklist, see: /help/install-and-embed/embed-basics/embed-troubleshooting.

If you still can’t get it live, send us your page URL and we’ll help you debug: /support.

Performance, privacy, and safety (what “good” looks like)

A widget should help conversions without hurting UX. Here’s what to look for:

  • No layout shift (CLS): good widgets reserve space so content doesn’t jump.
  • Lazy loading: load only when visible (or when the user interacts).
  • Style isolation: avoids theme CSS breaking the widget.
  • Safe URL handling: blocks unsafe schemes like javascript: in links/media sources.

GizmoSauce applies URL sanitizing and isolates widget rendering to reduce common risks. If you add links or assets manually, stick to normal https:// URLs.

Want a deeper explanation? Start here: /help/security-and-troubleshooting/security/xss-and-safe-embeds.

FAQ

Should I use a floating or inline chat widget?

Floating is best for quick access site-wide. Inline is better on specific pages (pricing/contact) where you want more context.

Do chat widgets work on every platform?

Yes—if you can paste code or use an embed block. GizmoSauce provides copy/paste snippets for common builders.

What’s the best greeting message?

A short greeting + a helpful question (e.g., “Hi! What can we help you with?”) usually performs best.