Widget isn't showing on your site, or shows only for logged-in users, or shows blank when you open it. This page is the symptom → cause → fix flowchart. Run the checks in order; most installs hit the first one and skip the rest.

Symptom: widget shows for logged-in users only

Cause: page cache. WordPress caching plugins (W3 Total Cache, WP Rocket, LiteSpeed Cache, WP Super Cache), hosting- level page cache (Hostinger, SiteGround, Cloudways, Kinsta), or Cloudflare APO all serve anonymous visitors a cached HTML snapshot taken BEFORE you installed Pitchbar. Logged-in users bypass page cache, so they always hit fresh PHP and see the widget.

Fix:

  1. WP admin → your caching plugin → click Purge All Cache.
  2. If you're on Hostinger / SiteGround / Cloudways / Kinsta: control panel → Page Cache → Purge.
  3. If Cloudflare is proxying your domain: Cloudflare dashboard → Caching → Configuration → Purge Everything.
  4. Open your site in incognito (new private window) → right-click → View Source → search for widget.js. Present = fixed.

Symptom: widget doesn't show at all

Walkthrough:

  1. Confirm the Pitchbar WP plugin is configured. WP admin → Pitchbar (left sidebar). All three fields must be set: Base URL, API Token, Agent ID. Missing any one of them = the plugin's shouldRender() gate returns false and nothing renders.
  2. Confirm the widget is enabled. Same Pitchbar settings page → checkbox "Widget enabled". Default on, but worth confirming.
  3. Confirm post-type scoping. Settings page → "Show on these post types". Defaults to post + page. If your front page is a custom post type (e.g. landing, product) and you haven't ticked it, the widget skips that page. Tick the box.
  4. Open browser DevTools → Network tab on your front-end page. Search for widget.js:

Symptom: widget shows but says "Sorry — something went wrong"

Widget retries the SSE stream 3 times then surfaces this generic bubble. The real error is logged server-side; the bubble is intentionally vague so visitors don't see raw provider errors.

Tail your Laravel logs while reproducing in the widget:

tail -f storage/logs/laravel.log

Common patterns and their fixes:

Symptom: widget shows but the launcher pill never appears

Theme conflict. Some themes set iframe { display: none !important } or use a global z-index reset. The Pitchbar widget renders inside a Shadow DOM but its mount point is a <div> on the host page.

Fix: add this CSS to your theme's Additional CSS:

#pitchbar-root,
#pitchbar-root * {
    display: revert !important;
    visibility: visible !important;
    z-index: 2147483647 !important;
}

Still stuck?

Reach out at support@pitchbar.app with: